Lägg till hinder upptäcka morrhår på din Robot (5 / 6 steg)

Steg 5: programmering



Med morrhåren nu anslutit allt vi behöver göra är att lägga till lite kod.

Vad den gör

  • Programmet kommer att driva din robot fram tills en av morrhår påträffar något, den vilja då omvänd för 500 millisekunder då vända slumpmässigt vänster eller höger under en tid mellan 300 och 1500 millisekunder, innan du fortsätter fram till möta ett annat hinder.

För de intresserade helt enkelt att få det finns gå det två alternativ.

Alternativ 1 - ladda ner och packa upp

  • Hämta bifogade zip-filen (07_SERB_Whiskers.zip)
  • Packa upp den till din Arduino skiss katalog (standard/Mina dokument/Arduino /)
  • Starta Arduino miljö och hämta skissen (_SERB_Whiskers)
  • Ladda upp och börja spela

Alternativ 2 - kopiera och klistra in

  • Kopiera den Arduino koden nedan
  • Klistra in den i utvecklingsmiljön Arduino.
  • Ladda upp och börja spela

Tillägg 1 - Arduino kod (_SERB_Whiskers)

/ *** * Arduino kontrollerade Servo Robot (serbiska) - Whisker undvikande ** för mer information besök: http://www.oomlout.com/serb **** beteende: använder två tråd Morris, att stöta på hinder och ** ändras riktningen. Det kommer poll den ** morrhår och när man visar sig vara utlöst det ** kommer att vända för 500 millisekunder sedan ** aktivera slumpmässigt vänster eller höger för en slumpmässig tid ** mellan 300 och 1500 millisekunder **** ledningar:--Arduino kontrollerade Servo Robot--** rätt Servo signalen - pin 9 ** vänster Servo signalen - stift 10 **--morrhår ledningar--** rätt morrhår - stift 6 ** lämnade whisker - pin 7 ** morrhår common - marken **** licens : Detta arbete är licensierat under Creative Commons ** Erkännande-Dela Lika 3.0 Unported License. Till ** se en kopia av denna licens, besök ** http://creativecommons.org/licenses/by-sa/3.0/ ** eller skicka ett brev till Creative Commons, 171 andra ** Street, Suite 300, San Francisco, Kalifornien 94105, ** USA. *** *** / / /---/ / START av MORRHÅR INGRESSEN #define RIGHTWHISKER 6 //the stifts rätt morrhår är kopplad till #define LEFTWHISKER 7 //the pin den vänstra morrhår är kopplad till / /---/ / START av ARDUINO kontrollerade SERVO ROBOT (serbiska) ingress #include < Servo.h > #define LEFTSERVOPIN 10 //The pin vänster Servo är ansluten till #define RIGHTSERVOPIN 9 //The stifts rätt Servo är ansluten till #define MAXOMDR 30 //due till hur kontinuerlig rotation servon //work högsta hastighet uppnås på ett mycket //lower värde än 90 (detta värde ändras //depending på din servon) (för Parallax servon) //20 ger dig komplett utbud 10 gör det mycket //controllable men en liten slowServo leftServo; Servo rightServo; int leftSpeed; Anger hastigheten robot (vänster servon) //a procentsatser mellan - MAXOMDR och MAXSPEEDint rightSpeed; Anger hastigheten på roboten (båda servon) //a andel mellan - MAXOMDR och MAXSPEEDint hastighet = 100; används för enkel kontroll (goForward etc.) //a andel mellan 0 och MAXOMDR / / slutet av detta program INGRESSEN / /---void setup() {beginSerial (9600); //Starts seriell port serbSetup(); //adds servon och förbereder alla //SERB med variabler whiskerSetup();} / * * Huvudloop * skickar roboten framåt sedan kontrollerar det är Morris, om man trycker på * roboten kommer att vända då tur och huvudet framåt gång * / void loop() {goForward(); //sends robot framåt checkWhiskers(); //checks att se om ett morrhår trycks} //---//START MORRHÅR ROUTINESvoid whiskerSetup() {pinMode (RIGHTWHISKER, indata); //Sets rätt morrhår pin vara en ingående pinMode (LEFTWHISKER, indata); //Sets lämnade whisker pin för att vara en ingående digitalWrite (RIGHTWHISKER HÖG); //Sets rätt morrhår pin's interna pullup //resistor (detta innebär PIN-koden är hög när //there är ingen signal ansluten och läser låg //when en negativ signal är fäst digitalWrite (LEFTWHISKER, hög); //Sets lämnade whisker pin's interna pullup //resistor}void checkWhiskers() {if(!digitalRead(RIGHTWHISKER)){reverseAndTurn();} //if rätt morrhår trycks //then bakåt och vrid om ()! digitalRead(LEFTWHISKER)){reverseAndTurn();} //if lämnade whisker trycks //then omvänd och tur} void reverseAndTurn() {goBackward(); //goes bakåt delay(500) //for halv ett andra turnRandom(300,1500); //turns slumpmässigt under en tid mellan 300 och 1500 millisekunder} //END av MORRHÅR rutiner / /---/ /---/ / START av ARDUINO kontrollerade SERVO ROBOT (serbiska) rutiner / * * sätter upp din arduino att ta itu med din serbiska med hjälp av den medföljande * rutiner * / void serbSetup() {setSpeed(speed); pinMode (LEFTSERVOPIN OUTPUT); Anger den vänstra servo signalen pin //to utgång pinMode (RIGHTSERVOPIN, OUTPUT); anger rätt servo signalen pin //to utgång leftServo.attach(LEFTSERVOPIN); fäster lämnat servo rightServo.attach(RIGHTSERVOPIN); fäster rätt servo goStop();} / * * Anger hastigheten av roboten mellan 0-(stopped) och 100-(full hastighet) * OBS: hastighet ändras inte den aktuella hastigheten måste du ändra hastighet * sedan ringa gå metoder innan förändringar sker. * / void setSpeed (int newSpeed) {om (newSpeed > = 100) {newSpeed = 100;} //if hastighet är större än 100 //make det 100 if (newSpeed < = 0) {newSpeed = 0;} //if hastighet är mindre än 0 //it 0 hastighet = newSpeed * MAXOMDR / 100; //scales hastigheten är //between 0 och MAXOMDR} / * * anger hastigheten av robotar rightServo mellan-100-(reversed) och 100-(forward) * OBS : samtal till denna rutin kommer att gälla omedelbart * / void setSpeedRight (int newSpeed) {om (newSpeed > = 100) {newSpeed = 100;} //if hastighet är större än 100 //make det 100 if (newSpeed < = -100) {newSpeed = -100;} //if hastighet är mindre än -100 gör //it -100 rightSpeed = newSpeed * MAXOMDR / 100; //scales hastigheten att vara //between - MAXOMDR och MAXOMDR rightServo.write (90 - rightSpeed); //sends det nya värdet till servo} / * * anger hastigheten av robotar leftServo mellan-100-(reversed) och 100-(forward) * OBS : samtal till denna rutin kommer att gälla omedelbart * / void setSpeedLeft (int newSpeed) {om (newSpeed > = 100) {newSpeed = 100;} //if hastighet är större än 100 //make det 100 if (newSpeed < = -100) {newSpeed = -100;} om hastigheten är mindre än-100 //make det-100 leftSpeed = newSpeed * MAXOMDR / 100; //scales hastigheten att vara //between - MAXOMDR och MAXOMDR leftServo.write (90 + leftSpeed); skickar det nya värdet till servo} / * * vänder sig till robot slumpmässigt vänster eller höger för en slumpmässig tidsperiod mellan * minTime (millisekunder) och maxTime (millisekunder) * / void turnRandom (int minTime, int maxTime) {int val = random(2); //Random nummer att bestämma //between vänster (1) och höger (0) int turnTime = random(minTime,maxTime); //Random nummer för paus //time if(choice == 1) {goLeft();} //If slumptal = 1 sedan vända //left annat {goRight();} //If slumptal = 0 sedan vända //right delay(turnTime); //delay för slumpmässig tid} / * * skickar roboten framåt * / void goForward() {leftServo.write (90 + hastighet); rightServo.write (90 - hastighet);} / * * skickar roboten bakåt * / void goBackward() {leftServo.write (90 - speed), rightServo.write (90 + hastighet);} / * * skickar roboten rätt * / void goRight() {leftServo.write (90 + hastighet), rightServo.write (90 + hastighet);} / * * skickar roboten vänster * / void goLeft() {leftServo.write (90 - speed), rightServo.write (90 - hastighet);} / * * stannar roboten * / void goStop() {leftServo.write(90); rightServo.write(90);} SLUTET AV ARDUINO KONTROLLERADE SERVO ROBOT (SERBISKA) RUTINER / /---

Se Steg
Relaterade Ämnen

Trådlös, hinder upptäcka, pipa roboten med Arduinos!

Detta är ett trådlöst styrd, autonoma hinder upptäcka robot!För ett tag sedan jag hade gjort detta Instructable och ville göra några stora uppgraderingar sedan dess.Följande är robotens funktioner:-1.he är trådlöst kontrollerade med 433 MHz Tx/Rx mod...

Med en ACS712 och Arduino för att upptäcka manöverdonet gränser

Jag arbetar med ett projekt som använder en 400 lb kraft, 30" kasta ställdon som har inbyggd, oflyttbara Gränslägesbrytare men ger inte positionering feedback. De flesta av (prisvärda) stora manöverdonen hittade jag inte ge feedback och har bara två...

Förvandla Raspberry Pi till en Bluetooth-enhet som kan upptäckas av fjärranslutna bluetooth klient

IntroduktionJag har en Bluetooth Radio USB-enhet som samlar damm när jag snubblat på det. Så jag tänkte jag skulle ta den i bruk med Raspberry Pi. Detta instructable är om mitt lärande resa för att lägga till en bluetooth-gränssnitt till Raspberry Pi...

Pensel penna: Upptäcka färg till kontroll dator markören

detta projekt används en foto-cell monterad på toppen av en pensel för att upptäcka position på ett rutnät av färg. Foto-cellen var kopplad till en Picoboard <http://www.picocricket.com/picoboard.html>, som interagerade med en Scratch <http://scr...

Arduino nyckelring kamera ändra till rörelse upptäcka kamera

Aktivera videokameran nyckelring i rörelse upptäcka kamera.När rörelse upptäcks av HC SR501 PIR-sensor, kamera aktivera, ta en bild och stänga av, väntar på nästa rörelse.Steg 1: ledningar Ledningar är mycket enkel.Efter att tas bort, klipp av batter...

RC bil till hinder att undvika Robot

detta är den gamla bilen.Jag hitta en gammal RC bil i mitt skjul.Hur jag förvandlas till en robot? Det är enkelt, jag kommer att förklara du i nästa steg.Steg 1: Den gamla RC bil 1. ta bort höljet2. ta bort kretsen.Steg 2: kontroll För att kontroller...

Upptäcka cirklar med OpenCV och Python

Inspiration:-Idén till detta kom när jag mixtra med OpenCV och det är olika funktioner. Sedan frågade en vän att hjälpa honom att utveckla en algoritm som kan upptäcka en cirkel från en FPV kamera monterad på ett RC plan och justera justering av plan...

ULTIMATE Guide på hur man upptäcker vägglöss | Upptäcka en säng bugg angrepp

vägglöss finns inte bara i skissartad rum på den nedgångna sidan av staden. Dessa parasitiska insekter kan trivas i häftigaste hotellrum eller i sovrummet av en miljon dollar hem. Lära sig hur man upptäcker vägglöss är mycket viktigt. Stegen nedan ka...

Automatisk night-upptäcka skåp ljus

HejInstructableRs!!Jag är säker på att det finns några platser runt ditt hem som väl inte lyser, så när du letar efter något där du alltid måste hålla en ljus fackla i munnen medan gräva inuti. Om du inte har en, lycklig du, eftersom jag hade en rätt...

Upptäcka falska polymer vietnamesiska pengar

av tonytran2015 (Melbourne, Australien).Figur: Fönstret mot-förfalskad på en bit av vietnamesiska polymer pengar är i mitten av den röda cirkeln.När du reser till Vietnam kan du behöva använda vietnamesiska polymer pengar. Tyvärr för vietnamesiska pe...

Att skapa Bookhuddle.com, en webbplats för att upptäcka, organisera och dela bokinformation

detta inlägg beskriver de olika stegen i att skapa och lanserar Bookhuddle.com, en webbplats syftar till att hjälpa läsarna att upptäcka, organisera och dela informationen.Steg som beskrivs här gäller utvecklingen av andra webbplatser.Steg 1: Komma m...

Oförstörbar tummen upptäcka handla Stein

90% Awesome. 99% om du fasa kanten och rensa ut hydraulvätska före användningen, sissy.Steg 1: Git din smutsiga händerna på ett använt filter. Här är från en monstruös gammal bit av redskap som körs på revorna av föräldralösa barn. (+ 1 butik cred)De...

Pokemon upptäcka armband

Vill kunna jaga och hitta Pokemon gömmer sig i den verkliga världen? Nu kan du med din egen Pokemon upptäcka armband *!* Ej att förväxla med Pokemon gå Plus armband. Någon gång i år (2016), Pokemon går projektet kommer att gå live där du kommer att k...

Lätt att göra flytande sil för metall upptäcka

För att göra en flytande sil du behöver några enkla och mycket billiga produkter, allt kom från home depot och dollar store (pool nudlar).Du behöver,En konkret blandning badkar,en längd av 1/2 pvc rör4 x 90 graders pvc hörnett paket med zip band2 poo...

Dark upptäcka nattlampan

Hej alla!Idag ska jag visa hur man gör en mörk upptäcka nattlampa. Det är en grundläggande ljus som lyser när den upptäcker inget ljus, så när du stänger av belysningen i rummet, det kommer att lysa upp av sig själv och ge ut en mild vackra sken. Om...

Mänskliga upptäcka rådjur skalle ljuset

Hur man gör en människa upptäcka (rörelse aktiverat) rådjur skalle ljus.Detta är min första Instructable, så jag hoppas mina steg kan följas lätt för att hjälpa andra. Ledsen, men mitt projekt var helt klar vid skapandet av denna handledning. Det jag...

Ljus upptäcka och positionering enhet

Detta är en mellanliggande nivå svårigheten Field Programmable Gate Array projekt. När du är klar den här enheten kommer att kunna upptäcka där mest ljus är som lyste och använder en servo, flytta en solpanel mot den högsta koncentrationen av ljuset....

Micro Light upptäcka krets

denna lilla krets mäter 10 x 10 mm och är förmodligen en av de minsta och mest grundläggande ljus upptäcka kretsar runt.Kretsen kan du upptäcka ljusnivåer och till exempel aktivera en LED att slå på när det blir mörkt!Steg 1: ReservdelslistaLödaLödko...

Onda Dark upptäcka sol Piggy Night Light

Lägga till ljus till random saker i ditt hus är väldigt roligt för barn i alla åldrar. Lägga till sol ljus till random saker i ditt hus är ännu roligare. Att lägga till röda ögon i en spargris att göra det onda är förmodligen det roligaste du har hel...