De Touch module - robot hond speelgoed. (5 / 6 stap)

Stap 5: Arduino Code - testmachine


Hier is een video van de basisfunctionaliteit, alle van de hefbomen zijn bedraad samen, zodat als om het even welk van de hefbomen is ingedrukt, de motor draait en behandelt kunnen worden geleverd:

Alvorens de motor te integreren, kunnen de LEDs en flex sensoren worden getest:

Er zijn twee wijzen van moeilijkheid voor de Touch-module.

Ten eerste, alle 3 LEDs oplichten en de hond kunnen raken een hefboom die ze kiezen om te leveren een traktatie uit het zeepbakje.
Ten tweede, een enkele LED oplicht en de hond moet de hendel die overeenkomt met het licht aan het leveren van een traktatie uit het zeepbakje raken.

Tweede moeilijkheidsgraad:
Het tweede niveau van moeilijkheid is eigenlijk het makkelijkst te programma en de code is als volgt:

#include < TrueRandom.h >

/*
HARDWARE:
//
Voor Flex sensoren (niet dat de flex sensor pinnen uitwisselbaar zijn)
Sensor pin = GND
Sensor pin = analoog In, met 10K Ohm weerstand aan + 5V

Voor LED 's
+ pin = Digital In pin
-pin 470 Ohm weerstand met GND =

*/

int ledPinG = 7; PIN 7 is een groene LED
int ledPinR = 6; PIN 6 is een rode LED
int ledPinB = 5; PIN 6 is een blauwe LED
int ledPin;
int analogPin;
int del = 1000;
int x;

VOID Setup {}
Serial.begin(9600);
pinMode (ledPinG, OUTPUT); Alle van de LED-pinnen naar uitvoer instellen
pinMode (ledPinR, OUTPUT);
pinMode (ledPinB, OUTPUT);
pinMode (ledPin, OUTPUT);

}

void loop
{
digitalWrite (ledPinG, hoge); Eerste LED-flitser om aan te geven van input klaar
digitalWrite (ledPinR, hoge);
digitalWrite (ledPinB, hoge);
delay(del);
digitalWrite (ledPinG, laag);
digitalWrite (ledPinR, laag);
digitalWrite (ledPinB, laag);

x = TrueRandom.random (1, 4); Ik gebruikte deze bibliotheek van de TrueRandom vond ik online,
vanwege een bekende fout met Arduino de random-functie wordt niet-random
Serial.println(x);

int sens;
Sens = SensorRead(); De SensorRead() functie aanroepen

}

int SensorRead() {}
Als (x == 1) / / dit als-elseif stamement links de willekeurig getal (1, 2 of 3) met een hefboom.
{
analogPin = 0; analoge PIN 0 is geactiveerd
ledPin = 7; Deze LED komt overeen met de hendel verbonden met analogPin 0
}
anders als (x == 2)
{
analogPin = 1;  Deze LED komt overeen met de hendel verbonden met analogPin 1
ledPin = 6;
}
anders als (x == 3)
{
analogPin = 2; Deze LED komt overeen met de hendel verbonden met analogPin 2
ledPin = 5;
}

digitalWrite (ledPin, hoge); Hiermee schakelt u een van de LED's boven het niveau dat werd willekeurig gekozen.

int sensor;

sensor = analogRead(analogPin); Leest de huidige hendel flex sensor waarde en stelt een drempel van 3
int initVal = sensor;
int initValHigh = 6 + sensor;
int initValLow = sensor - 6;

terwijl (sensor < initValHigh & & sensor > initValLow) / / zolang de sensor-waarde binnen +/-6 van de aanvankelijke waarde, de analoge pin lezen
nog steeds worden gelezen. Breken van de while lus betekent dat de juiste hefboom is ingedrukt.
{
sensor = analogRead(analogPin);
Serial.println(sensor);
Serial.println(initVal);

}
digitalWrite (ledPin, laag); De LED is afgesloten.

delay(del);
}

EINDE VAN CODE

Hier zijn een paar opmerkingen over de code:
--Ik gebruikte de TrueRandom bibliotheek in plaats van de ingebouwde Arduino willekeurige opdracht toe te schrijven aan een bekende bug waarin de ingebouwde willekeurige eigenlijk helemaal niet willekeurig is. De website voor de bibliotheek is zeer duidelijk over hoe uit te voeren.

--U kunt volgen de pin lezingen op de seriële Monitor met deze code. Hier ziet u het constant bijwerken lezingen voor de huidige pin van de sensor. Als uw pincode is fluctuerende meer dan +/-6 van de aanvankelijke waarde zonder geraakt, moet u wellicht de waarde te verhogen. Speel mee om te vinden van de juiste druk, waar het willekeurig niet afgaan, maar ook reageert op de geringste aanraking. Wij willen de hond te krijgen een elk moment dat het gebeurt om uit te voeren tegen de juiste hefboom te behandelen.

Eerste niveau van moeilijkheid:
Het eerste niveau van moeilijkheid werkt zolang een van de drie hefbomen is ingedrukt. U kunt dit bereiken door taping alle drie hefbomen samen en gebruik de volgende code (die in principe triplicates de tweede niveau code hierboven). De TrueRandom functie is niet langer nodig.

Ik heb ook toegevoegd in de functionaliteit van de MOTOR aan het einde van de code, zodat de motor draait gedurende 1 seconde, genoeg voor één dosis van traktaties om verlost te worden.

/*

HARDWARE:
//
Voor Flex sensoren (niet dat de flex sensor pinnen uitwisselbaar zijn)
Sensor pin = GND
Sensor pin = analoog In, met 10K Ohm weerstand aan + 5V

Voor LED 's
+ pin = Digital In pin
-pin 470 Ohm weerstand met GND =

*/

int ledPinG = 7; PIN 7 is een groene LED
int ledPinR = 6; PIN 6 is een rode LED
int ledPinB = 5; PIN 5 is een blauwe LED
int analogPin0;
int analogPin1;
int analogPin2;
int del = 1000;
int PWM_B = 11; Deze twee pinnen zijn al gereserveerd op het schild van de arduMoto
int DIR_B = 13;

VOID Setup {}
Serial.begin(9600);
pinMode (ledPinG, OUTPUT); Alle van de LED-pinnen naar uitvoer instellen
pinMode (ledPinR, OUTPUT);

pinMode (ledPinB, OUTPUT);
pinMode (PWM_B, uitvoer); Besturingselement instellen pinnen te worden uitgangen
pinMode (DIR_B, uitvoer);

}

void loop
{
digitalWrite (ledPinG, hoge); Eerste LED-flitser om aan te geven van input klaar
digitalWrite (ledPinR, hoge);
digitalWrite (ledPinB, hoge);
delay(del);
digitalWrite (ledPinG, laag);
digitalWrite (ledPinR, laag);
digitalWrite (ledPinB, laag);

int sens;
Sens = SensorRead(); De SensorRead() functie aanroepen

}

int SensorRead() {}

digitalWrite (ledPinG, hoge);
digitalWrite (ledPinR, hoge);
digitalWrite (ledPinB, hoge);

int sensor1;
int sensor2;
int sensor3;

sensor1 = analogRead(analogPin0);
sensor2 = analogRead(analogPin1);
sensor3 = analogRead(analogPin2);

int initVal1 = sensor1;
int initVal2 = sensor2;
int initVal3 = sensor3;

int initValHigh1 = 6 + sensor1;
int initValHigh2 = 6 + sensor2;
int initValHigh3 = 6 + sensor3;

int initValLow1 = sensor1 - 6;
int initValLow2 = sensor2 - 6;
int initValLow3 = sensor3 - 6;

terwijl (sensor1 < initValHigh1 & & sensor1 > initValLow1)
{
sensor1 = analogRead(analogPin0);
sensor2 = analogRead(analogPin1);
sensor3 = analogRead(analogPin2);

Serial.println(sensor1);
Serial.println(initVal1);
}

digitalWrite (ledPinG, laag);
delay(100);
digitalWrite (ledPinR, laag);
delay(100);
digitalWrite (ledPinB, laag);
delay(100);
digitalWrite (ledPinB, hoge);
delay(100);
digitalWrite (ledPinR, hoge);
digitalWrite (ledPinB, laag);
delay(100);
digitalWrite (ledPinG, hoge);
digitalWrite (ledPinR, laag);
delay(100);
digitalWrite (ledPinG, laag);
delay(100);

digitalWrite (DIR_B, hoge); Kan zijn gebruikte omgekeerde motor richting, 1 - hoog, 2 - laag

analogWrite (PWM_B, 255); instellen van de motor te draaien op 255/255 = taakcyclus van 100% om te verkrijgen van de vereiste koppel.

delay(1000);

analogWrite(PWM_B,0); draaien van de motor

delay(1000);

}

EINDE CODE

Gerelateerde Artikelen

Een RFID hond speelgoed met geluiden

Een RFID hond speelgoed met geluiden

Voor mijn MSc in Interaction Design proefschrift aan de Universiteit van Malmö (Zweden) bouwde ik een prototype hond speelgoed die zouden kunnen zowel geluid en geur vastleggen. Ik ben begonnen met een prototype van de lo-fi inclusief een zacht stuk
FrankenDog! DIY Animatronic - beheren van een i-cybie robot hond met een speelgoedpiano

FrankenDog! DIY Animatronic - beheren van een i-cybie robot hond met een speelgoedpiano

Heb je dode speelgoed rondslingeren? In deze video tutorial ik nieuw leven te geven aan een dode i-Cybie robot hond waarvan "brein" na het korte ven en bijna in brand werd verwoest. Leer hoe animate de doden!De cybie is een goedkope AIBO -kloon
Hond speelgoed uit Upcycled T-Shirt

Hond speelgoed uit Upcycled T-Shirt

Hebt u oude t-shirts die u niet passen? Heb je een liefdevolle hond speelgoed? Wist u dat u een hond speelgoed voor uw kostbare pooch uit slechts een oud t-shirt en een tennisbal maken kunt? Door deze eenvoudige instructies te volgen, kunt u een van
Hoe maak je een eenvoudige touw hond speelgoed

Hoe maak je een eenvoudige touw hond speelgoed

In dit instructable, ik zal je laten zien hoe maak je een eenvoudige touw hond speelgoed met twee Matthew Walker knopen. Veel touw speelgoed die kunt u op de pet store bestaan uit een touw met twee bovenhands knopen erin. De Matthew Walker-knoop is v
Hopelijk onverwoestbaar gevuld hond speelgoed

Hopelijk onverwoestbaar gevuld hond speelgoed

mijn honden zijn kwaadaardige kleine monsters.  De serial killers van de gevulde hond speelgoed wereld, piepende, pluche speelgoed beven in angst wanneer zij in de dierenwinkel lopen... en ze moeten.  Mijn honden hebben vernietigd elke gevulde speelg
No-naai Denim hond speelgoed

No-naai Denim hond speelgoed

hier is een manier om een goedkope/vrije en taaie hond speelgoed. We hebben een herder/put steken en terwijl ze een zachte mond heeft houdt om op te kauwen. Ik heb ontdekt dat het maken van haar "wegwerp" speelgoed gewoon meer zin maakt. Ik houd
Hoe maak je een bal en touw hond speelgoed

Hoe maak je een bal en touw hond speelgoed

na het krijgen van een pup, ik begonnen met het maken van haar hond speelgoed uit touw. Dit speelgoed heeft een lange staart, die geweldig is voor swingende rond om te gooien voor fetch, of spelen sleepboot-a-oorlog. Bij de hond park had ik iemand no
"Indestructible" hond speelgoed

"Indestructible" hond speelgoed

mijn moeder's hond, Molly, houdt om te spelen - een activiteit die voor haar gaat meestal al haar speelgoed oppakken en rippen van hen aan flarden. In een poging om een soort van onverwoestbaar speelgoed of op zijn minst iets dat ze kan spelen met di
Hoe het bouwen van een 3D-gedrukte robot rendieren speelgoed

Hoe het bouwen van een 3D-gedrukte robot rendieren speelgoed

3D printen! Schimmel-maken! Digitale weergave! Apoxie beeldhouwen!!! Woodshoppery! Voor dit project Tina en ik besloten om te proberen om te leren over 3D printen en ik zal je laten zien wat we geleerd hebben en hoe we eindigde het speelgoed te maken
Hoe maak je een garen hond speelgoed

Hoe maak je een garen hond speelgoed

mijn honden zijn altijd door middel van hun speelgoed, scheuren, dus ik wilde om te zien of ik wat voor hen maken kon na het zien van het gratis patroon op de Leeuw merk Site.http://www.lionbrand.com/Patterns/Craft-WEC-dogToy.html?noImageIk heb een h
Rubber hond speelgoed

Rubber hond speelgoed

Ik hou van dode fiets binnenbanden, en dus doet mijn hond ontkiemen.Dit speelgoed is gemaakt van rubber-die lekker op zijn tanden voelt wanneer hij het bijt.Het heeft raggy bits aan beide uiteinden, die het internet me honden zoals het herinnert hen
Een hond speelgoed dat kun je jezelf

Een hond speelgoed dat kun je jezelf

In dit instructable, ik zal u tonen hoe maak je een cool hond speelgoed. Zodra u de materialen hebt, 's it gonna worden echt gemakkelijk (met uitzondering van het deel waar je het vilt naaien). By the way, dit is mijn eerste ' ible, zodat het wellich
Gemakkelijke hond speelgoed!

Gemakkelijke hond speelgoed!

Deze super makkelijk te maken hond speelgoed is geweldig en super blij Maak voor je hond! Alles wat je hoeft te doen is als volgtStap 1: Vind een hond speelgoed uitzienStap 2: Knip de bal uit het speelgoed Stap 3: Pindakaas nemen en meng het met Smus
Sok fles hond speelgoed

Sok fles hond speelgoed

het gemakkelijkste, goedkoopste hond speelgoed die u ooit zult vinden. Gratis! Onze hond houdt dit zo veel dat ze proberen bleef om het weg te nemen en te spelen terwijl ik dit instructable maakte.Stap 1: Wat moet je u nodig:1 oude Sok (niet nodig om