Modulen Touch - en robotic hund leksak. (5 / 6 steg)

Steg 5: Arduino kod - Test maskin



Här är en video av grundläggande funktionalitet, alla spakarna kopplas ihop så att om någon av hävstänger trycks, motorn vänder och behandlar kan levereras:

Innan integrera motorn, kan lysdioder och flex sensorer testas:

Det finns två lägen svårighetsgrader för Touch-modulen.

Först, alla 3 lysdioder lyser upp och hunden kan slå någon spak som de väljer att leverera en behandla från fördelaren.
Andra, en enda LED lyser och hunden måste slå spaken motsvarar ljuset för att leverera en behandla från fördelaren.

Andra nivån av svårigheter:
Den andra svårigheten är faktiskt det enklaste att program och koden är följande:

#include < TrueRandom.h >

/*
HÅRDVARA:
//
För Flex sensorer (inte att flex sensor stiften är utbytbara)
Givarstaven = GND
Givarstaven = Analog In, med 10K förkopplingsmotstånd till + 5V

För lysdioder
+ stift = Digital In pin
-pin = 470 förkopplingsmotstånd till GND

*/

int ledPinG = 7. STIFT 7 är en grön LED
int ledPinR = 6; STIFT 6 är en röd LED
int ledPinB = 5; STIFT 6 är en blå LED
int ledPin;
int analogPin;
int del = 1000;
int x;

void setup() {
Serial.BEGIN(9600);
pinMode (ledPinG, produktionen); Ställer in alla LED stift till utgång
pinMode (ledPinR, produktionen);
pinMode (ledPinB, produktionen);
pinMode (ledPin, produktionen);

}

void loop()
{
digitalWrite (ledPinG, hög); Första LED-blixt att ange indata redo
digitalWrite (ledPinR, hög);
digitalWrite (ledPinB, hög);
Delay(del);
digitalWrite (ledPinG, låg);
digitalWrite (ledPinR, låg);
digitalWrite (ledPinB, låg);

x = TrueRandom.random (1, 4); Jag använde detta TrueRandom bibliotek jag hittade på nätet,
på grund av ett känt fel med Arduinos slumpmässiga funktion är icke-slumpmässigt
Serial.println(x);

int sens;
Sens = SensorRead(); Anropa funktionen SensorRead()

}

int SensorRead() {
om (x == 1) / / här om-elseif stamement länkar slumptal (1, 2 eller 3) med en spak.
{
analogPin = 0; analoga PIN 0 aktiveras
ledPin = 7. Denna LED motsvarar med spaken ansluten till analogPin 0
}
annars om (x == 2)
{
analogPin = 1; Denna LED motsvarar med spaken ansluten till analogPin 1
ledPin = 6;
}
annars om (x == 3)
{
analogPin = 2; Denna LED motsvarar med spaken ansluten till analogPin 2
ledPin = 5;
}

digitalWrite (ledPin, hög); Vänd på en lampa över den nivå som valdes slumpmässigt.

int sensor;

sensor = analogRead(analogPin); Läser på nuvarande spaken flex sensor värde och anger ett tröskelvärde på 3
int initVal = sensor;
int initValHigh = 6 + sensor;
int initValLow = sensor - 6.

medan (sensor < initValHigh & & sensor > initValLow) / / så länge värdet sensor läsa inom +/-6 av det initiala värdet, analog PIN-koden
fortsätter att läsa. Bryta while loop innebär att rätt spaken har tryckts.
{
sensor = analogRead(analogPin);
Serial.println(sensor);
Serial.println(initVal);

}
digitalWrite (ledPin, låg); Lysdioden är avstängd.

Delay(del);
}

SLUTET AV KODEN

Här är några anteckningar om koden:
--Jag använde TrueRandom bibliotek i stället för inbyggda Arduino slumpmässiga kommandot på grund av en känd bugg där inbyggt slumpmässiga faktiskt inte är slumpmässigt alls. Webbplats för biblioteket är mycket tydlig på hur den skall uppnås.

--Du kan följa de pin avläsningarna på Serial bildskärmen med denna kod. Du kan se de ständigt uppdaterande avläsningarna för nuvarande givarstaven. Om din PIN-kod är varierar mer än +/-6 från det ursprungliga värdet utan beröring, kan du behöva öka värdet. Leka med den för att hitta det rätta trycket, där det inte går slumpmässigt, men också reagerar vid minsta beröring. Vi vill ha hunden till få en njutning varje gång det händer att köra mot rätt spaken.

Första nivån av svårigheter:
Den första nivån av svårigheter fungerar så länge någon av de tre spakarna trycks ner. Du kan uppnå detta genom att tejpa alla tre spakar tillsammans och använda följande kod (som i princip triplicates andra nivå koden ovan). Funktionen TrueRandom behövs inte längre.

Jag har också lagt i MOTOR funktionalitet i slutet av koden så att motorn blir i 1 sekund, nog för en dos av behandlar ska levereras.

/*

HÅRDVARA:
//
För Flex sensorer (inte att flex sensor stiften är utbytbara)
Givarstaven = GND
Givarstaven = Analog In, med 10K förkopplingsmotstånd till + 5V

För lysdioder
+ stift = Digital In pin
-pin = 470 förkopplingsmotstånd till GND

*/

int ledPinG = 7. STIFT 7 är en grön LED
int ledPinR = 6; STIFT 6 är en röd LED
int ledPinB = 5; STIFT 5 är en blå LED
int analogPin0;
int analogPin1;
int analogPin2;
int del = 1000;
int PWM_B = 11; Dessa två stift är reserverade redan på den arduMoto skölden
int DIR_B = 13.

void setup() {
Serial.BEGIN(9600);
pinMode (ledPinG, produktionen); Ställer in alla LED stift till utgång
pinMode (ledPinR, produktionen);
pinMode (ledPinB, produktionen);

pinMode (PWM_B, OUTPUT); Ställa in kontroll stiften att utgångar
pinMode (DIR_B, OUTPUT);

}

void loop()
{
digitalWrite (ledPinG, hög); Första LED-blixt att ange indata redo
digitalWrite (ledPinR, hög);
digitalWrite (ledPinB, hög);
Delay(del);
digitalWrite (ledPinG, låg);
digitalWrite (ledPinR, låg);
digitalWrite (ledPinB, låg);

int sens;
Sens = SensorRead(); Anropa funktionen SensorRead()

}

int SensorRead() {

digitalWrite (ledPinG, hög);
digitalWrite (ledPinR, hög);
digitalWrite (ledPinB, hög);

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.

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

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

digitalWrite (ledPinG, låg);
Delay(100);
digitalWrite (ledPinR, låg);
Delay(100);
digitalWrite (ledPinB, låg);
Delay(100);
digitalWrite (ledPinB, hög);
Delay(100);
digitalWrite (ledPinR, hög);
digitalWrite (ledPinB, låg);
Delay(100);
digitalWrite (ledPinG, hög);
digitalWrite (ledPinR, låg);
Delay(100);
digitalWrite (ledPinG, låg);
Delay(100);

digitalWrite (DIR_B, hög); Kan vara använda omvänd motor riktning, 1 - hög, 2 - låg

analogWrite (PWM_B, 255); Ställ motorn körs på 255/255 = 100% arbetscykel för att erhålla erforderligt moment.

Delay(1000);

analogWrite(PWM_B,0); stänga av motorn

Delay(1000);

}

END-KOD

Se Steg
Relaterade Ämnen

FrankenDog! DIY Animatronic - styra en i-cybie robot hund med ett toy piano

Har du döda leksaker liggande? I denna video tutorial ger jag nytt liv till en död i-Cybie robot hund vars "hjärnan" förstördes efter det kort circuited och nästan fattade eld. Lär dig animera döda!Cybie är en billig AIBO klon med många avancera...

Hur man skapar ett enkelt rep hund leksak

i detta instructable, jag ska visa dig hur man gör enkelt rep hund leksaker med två Matthew Walker knop. Många rep leksaker du kan få på djuraffären består av ett rep med två overhand knop i den. Matthew Walker knuten är mycket mer symmetrisk och min...

Hur man gör en boll och rep hund leksak

efter att få en valp, jag började göra sin hund leksaker av repet. Denna leksak har en lång svans som är bra för svängande det runt för att kasta det för fetch eller spela-a-dragkamp. På hunden park hade jag någon kallar det en "fiske linje för hunda...

Nr-sy Denim hund leksak

här är ett sätt att göra en billigt/gratis och tuff hund leksak. Vi har en herder/grop cross och medan hon har en mjuk mun hon älskar att tugga på. Jag har hittat att gör hennes "disponibel" leksaker bara är mer meningsfullt. Jag har alltid håll...

Hund leksak från Upcycled T-Shirt

Har du gamla t-shirts som inte passar dig? Har du en leksak kärleksfull hund? Visste du att du kan göra en hund leksak för din dyrbara pooch ur bara en gammal t-shirt och en tennisboll? Genom att följa dessa enkla instruktioner, kan du göra en egen!...

Liten hund leksak för din leksak hund

inte har någon bra leksaker att använda som en leksak hund leksak? Tja, för detta instructables behöver du bara hår band (små) att göra en liten leksak för din leksak hund.Ledsen om detta inte är bra, det är min första instructables.Steg 1: Vad du be...

En RFID-hund leksak med ljud

För min magisterexamen i Interaction Design avhandling vid Malmö högskola (Sverige) byggde jag en prototyp hund leksak som kunde fånga både ljud och lukt. Jag började med en lo-fi prototyp inklusive en mjuk leksak som jag kunde dölja en telefon som s...

Hund leksaker för tunga Chewers

dessa lätt att göra färgglada rep leksaker är bra för någon storlek hund. Bara skala upp eller ner diametern på repet att passa din hund, 1/4" för liten hund eller 3/8" för stora hundar. Instruktionerna är för en grundläggande slänga/bogserbåt l...

Lätt hund leksak!

Denna super lätt att göra hund leksak är awesome och göra din hund super glad! Allt du behöver göra är att följa dessa stegSteg 1: Hitta en hund leksak som dennaSteg 2: Skär bollen ur leksaken Steg 3: Ta jordnötssmör och blanda det med Smushed upp hu...

Strumpor och flaska hund leksak

en enkel och lätt 5 minuters hund leksak för Fido. Tillverkad i 3 delar. Jag garanterar din älskvärda länge eared vän kommer att få en kick av dessa bullriga krispigt leksaker!Steg 1: Grejer behövs allt du behöver är några gamla stinkande strumpor oc...

Göra en rep hund leksak

vår hund Dodger kommer att slita isär normal hund leksaker i ca 15 minuter. "Oförstörbara leksaker" ta lite längre ;)Jag lärde mig hur man gör en monkey fist Knut på en jonglering festival för några år sedan--bara för skojs skull gjorde jag Dodg...

Hur man gör garn hund leksak

mina hundar är alltid riva genom sina leksaker, så jag ville se om jag kunde göra några för dem efter att ha sett det gratis mönstret på Lion Brand platsen.http://www.lionbrand.com/patterns/Craft-WEC-dogToy.html?noImageJag gjorde en hund leksak dessa...

Förhoppningsvis oförstörbar fyllda hund leksak

mina hundar är onda små monster. Seriemördare av världens uppstoppad hund leksak, finfina plysch leksaker darra i rädsla när de går in i djuraffären... och de borde. Mina hundar har förstört alla fyllda leksak de någonsin har fått sina tassar på, äve...

DIY - hemgjord hund leksak

dag ska jag visa dig hur man gör en hemmagjord hund leksak för denna lilla krabatenVARNING - GE INTE TILL VILKEN TYP AV HUND SOM ÄTER TYG!Leveranser• Två lager väv• symaskin• papper påse/mjukpapper/servett ect.Steg 1: mönster Göra ett mönster för lek...

DIY hund leksaker från runt huset

jag ofta gå till stora djuraffärer och titta på smått och gott, vid detta speciella tillfälle gick jag för att köpa några hund leksaker. Omedvetna om det pris som de ville, en boll! ett gummi ben! bra ändå beslutat jag att hoppa över de dyra leksaker...

Denim hund leksak

vill ha något coolt och robust hund leksak? Denna hund leksak kommer inte att kosta dig mycket pengar. Helt enkelt hitta någon gammal denim jeans i garderoben. Och bara några omkonstruktion på dina gamla jeans, kan du ha en ny Denim hund leksak.Saker...

Hund leksak från återvunnet byxor

hur man gör en flätad hund leksak från återvinning byxor.Steg 1: Leveranser används Två par byxorSaxSynålStark trådSteg 2: Ta bort dragkedjor Bort dragkedjorna från botten av byxa benen. Vi vill inte att vårt barn tugga på dessa.Steg 3: klipp Vi vill...

Jätte hund leksak

Hej, dessa instruktioner kommer att leda dig att göra en super cool jätte hund leksak tillverkad av enkelt husgeråd. Faktiskt, först var det tänkt för att vara en gigantisk topz, men när vi föll kort på paint, vår ursprungliga plan fungerade inte. De...

Stickade hund leksak

denna enkla hund leksak kommer att vara lätt att göra och denna leksak är justerbar för större och mindre hundar :)Steg 1: Samla ditt material Behöver du följande:1-2 olika färger eller garn eller mer (jag använde röd Heart varumärke garn)Sax (Hur an...