Swarmbots: Autonoma Arduino bilar som spelar musikaliska stolar (3 / 6 steg)

Steg 3: Linje Trackers

Material:

Tre linje trackers. Används: VEX Robotics linje Tracker http://www.vexrobotics.com/276-2154.html och SparkFun RedBot Sensor - rad efterföljare http://www.vexrobotics.com/276-2154.html


Installationer:

Oavsett vilken typ du använder, linje trackers har tre utgångar: VCC, GND och ut. UT går till en analog pinne i arduino, GND går till marken, och VCC kan gå till ~ + 5V.

Dessa "linje trackers" består av en fotodiod som i huvudsak matar arduino värden som överensstämmer med mängden ljus som det mottar. Eftersom vi använde Reflexband för spår av vårt spel, kunde linje trackers lätt skilja mellan marken och golvet i spelfältet.

Till att börja, förvärvade vi först raden trackers från ovan angiven webbplatser. Vi anslöt dem på framsidan av vår bil. Anslutning av dem till baksidan vore oklokt eftersom bilen kommer att vara alltför långt bort i raden i samband med att sensorerna upptäcka att bilen är på väg bort av linjen och försöket att tillämpa en korrigering. Således är att placera sensorerna framför bilen det optimala valet för den snabbaste raden spårar reaktioner. Höger och vänster rad tracker ska dessutom placeras tillräckligt långt avstånd från centrum tracker att när center tracker är ovanför linjen, är varken höger eller vänster tracker ovanför linjen.

Observera att om du försöker att ansluta alla de komponenter som behöver makt (linje trackers, motorer, ljud sensorer, IR/ultraljudssensorer etc.) till 5V källa på Arduino, du kommer att ha en dålig tid. 5V källan inte kan leverera tillräckligt aktuell för alla dessa komponenter och så de kommer inte att fungera korrekt, om alls. För att bekämpa detta, vi anslutna linje trackers till den + 5V för arduino, ljud- och avståndet till 12V (8 1.5V batterier) leveranser driver motorerna. Det kan finnas andra varianter av den här inställningen att se till att alla sensorer (och motorerna) levererade tillräcklig kraft för att fungera korrekt, men denna setup fungerade bra för oss.

Efter anslutning varje sensor till en strömkälla, måste du ansluta varje sensor till en Arduino PIN-kod så att den kan läsa värdena på sensorn. De måste vara ansluten till en analog stift, inte en digital PWM.

Nu måste vi tala arduino hur till spår linjen tanke på tillförseln av dessa tre linje trackers. Huvudprincipen i koden är att om den mittersta sensorn ser linjen, du är i god form och bilen kan gå rakt. På grund av hur vi placerade på höger och vänster sensorer, kan vi avgöra om bilen vridande av fodra baserat på om höger eller vänster sensorerna börjar upptäcka Reflexband linjen. Genom att veta detta, kan vi då säga bilen att använda lämpliga korrigeringar för att styra bilen tillbaka mot linjen. Beroende på vilken sensor känner av linjen, kan du faktiskt bestämmer vilken riktning korrigeringen måste tillämpas. Till exempel om rätt sensorn känner linjen, bilen pendlade från linjen mot vänster och en rätt korrigering måste tillämpas.

Du måste också leka med din tröskelvärde, som markerar skillnaden i sensormätningar mellan linjen och golvet. Detta värde varierar beroende på typ och reflexion av linjen och golvet bilen driver på, distansera av sensorer från marken, och typ av sensorer som du köper. Därför måste du mixtra med koden och testa bilen för att se vilka tröskelvärdet är bäst för dig. I huvudsak kommer du vill testa din sensorer genom att skriva deras Läs värden i följetong monitor. Denna debug genomfördes i vår kod nedan.

Koden nedan är en metod som anger hur raden bilen spårar, baserad på teorin ovan. För att genomföra raden spårar i huvudsakliga slingan med denna metod, måste det bara anropas en gång.

< p > int centerThresh = 10; < br > int rlThresh = 800; < /p >< p > void lineTrack (int t) {< /p >< p > int rightLine = analogRead(A1); < br > int leftLine = analogRead(A2); < br > int mittlinjen = analogRead(A0); / / använda dessa utskrivna utgångar i följetong monitor för att bestämma dina trösklar < br > Serial.print ("rätten:"); < br > Serial.print(rightLine); < br > Serial.print (", Center:"); < br > Serial.print(centerLine); < br > Serial.print (", vänster:"); < br > Serial.println(leftLine); < /p >< p > om (rightLine < rlThresh) {< br > < br > delay(t) Serial.println ("sväng vänster, på rätt sensor"); < br > turnRight(); < /p >< p >} < /p >< p > annars om (leftLine < rlThresh) {< br >< /p >< p > turnLeft(); < br > Serial.println ("sväng höger på vänster sensor "); < br > delay(t); < /p >< p >} < /p >< p > annars om (mittlinjen < centerThresh) {< /p >< p > goStraight();
Serial.println("Straight");
Delay(t); < /p >< p >} < /p >< p >} < /p >

Totala koden för sensorer genomfört visas alla tillsammans i slutet av instruktionerna.

Eftersom Arduinos kan bara hantera en primär funktion i metoden loop(), är det inte möjligt att ha det lyssna för musiken vid försök att följa linjen. Således hade vi att kringgå de vanliga reglerna för musikaliska stolar. Varje bil var programmerad att följa linjen 14 sekunder efter första ljudet. Under dessa 14 sekunder, ljudet fortsatte att spela. Efter 14 sekunder, både ljudet avstängd och bilarna stannade längs med den och vände inåt för att hitta tillgängliga stolar. Detta gav illusionen att bilarna svarar på musiken. Vid programmering bilar att köra 14 sekunder var relativt enkelt, programmering musikaliska stolar låten spela bara 14 sekunder var svårare och krävs användning av Java-programmering genom Eclipse. Nedan är koden för att göra våra musikaliska stolar sång, Star Wars tema låten eftersom vårt spel av musikaliska stolar spelet spelades på den 4 maj 2016, spela bara 14 sekunder.

< p > Importera objectdraw.*; importera java.applet.AudioClip; < /p >< p > / ** * klass: fysik 128
* Term: Våren 2016
* Instruktör: Janice Hudgings
** Projektsamarbete: musikaliska stolar
* Skolan: Fremont Academy
* Grupp: Femineers
* *
*--Spelar musikaliska stolar låten (John Williams' Star Wars introt för * 14 sekunder)
*--Fördröjning av 1 sekund från start för applet till början av låten
*--Total körtid är 14 sekunder *
** Fönster storlek: 250 x 250 ** Adam Mitchell, onsdagen den 4 maj 2016 * / offentliga klassen MusicalChairsPlayer utökar WindowController {
privata statisk sista int THRESHOLD_DELAY = 1; fördröjning för privata statisk sista int THRESHOLD_PLAY = 14. tid att köra för
public void begin() {
Lokala variabler AudioClip musik; Booleska spelar = false; om musik spelas
Läsa in ljudklipp musik = getAudio("starWars.au");
Spela musik music.play(); spela = sant;
Spela in den aktuella tiden int tempTime1 = (int) System.currentTimeMillis() / 1000; < /p >< p > medan (spelar) {< /p >< p > om ((int) System.currentTimeMillis() / 1000 - tempTime1 > = (THRESHOLD_DELAY + THRESHOLD_PLAY)) {
Stoppa musiken efter 10 sekunder, för totalt 14 music.stop(); < /p >< p > spela = false; < /p >< p >} < /p >< p >} < /p >< p >} < /p >< p > public void onMouseClick (plats punkt) {< /p >< p > / / Starta om koden < br > this.begin(); < /p >< p >} < /p >< p >} < /p >

Se Steg
Relaterade Ämnen

Hur att spela musikaliska stolar

inte är ingen part som en musikalisk stol part! Om du letar efter ett underhållande spel som är roligt för alla åldrar, musikaliska stolar är vägen att gå! Med dessa åtta enkla instruktioner kan du vara livet på festen!Steg 1: Få ditt material Få dit...

RC bil till autonoma Arduino Robot

Har du någonsin önskat att konstruera en enkel autonoma Arduino robot? Jag blev inspirerad att bygga en grundläggande Arduino robot för att hjälpa min förståelse av Arduino, Arduino IDE och driften av ultraljudssensorer och motor förare. Och så, jag...

Autonoma Arduino Tank (A.A.T)

Hej alla, detta är min allra första robot. Jag är en 15-årig nybörjare. Jag har varit intresserad av robotar sedan den 6: e klass och varit försöker bygga en sedan dess. Jag har beslutat att kalla det A.A.T eftersom det är en autonom arduino tank, pr...

Autonoma Arduino bil med infraröd närhets-Sensor

Detta Instructable visar hur du ändrar en preloved RC bil så det kan styras med en Arduino. Sedan visar Instructable dig hur man gör RC kör en enkel figur 8 kod därifrån Instructable visar dig hur du lägger till en infraröd rörelsesensor så det kan i...

Burning skiss till Atmega328P-PU på en skärbräda med Arduino Uno som programmerare

Det finns redan flera instructables på hur man bränner Arduino skiss till Atmega328P-PU på en skärbräda med olika USB - UART moduler. Men som de flesta modulerna är tillverkade i Kina, de är dåligt dokumenterad, felaktigt märkta, underligt utformad,...

Använder Arduino Leonardo som mus och tangentbord, kontroll av bluetooth.

En awsome funktion i Arduino Leonardo, som gör det särskilda styrelsemöte, är att det kan fungera som mus och tangentbord på datorn. Detta kan vara nyttigt till controll datorn av olika sätt, till exempel styrspak och här BLUETOOTH!saker som används...

Arduino autonom gräsklippare som CutFlower

Hej, här är en artikel om inrättandet av en autonom gräsklippare, en första förkroppsligandet av ett projekt baserat arduino uno bennurre.MEG motor framdrivning (motorn essuis is), skärande motor borstlös 1000KV, hinder detektering av tre sonar senso...

Autonoma Arduino bil

mina frågor för de gör att lära ungdomar tävling :)Vad gjorde du?Detta mål med detta projekt var att ta allmänt tillgänglig elektronisk utrustning och skapa en billig, justerbar fordon. Enklare uttryckt är det här ett försök till grundläggande autono...

En Arduino Shield som omvandlar din Radio styrd bil till en Robot

Jag har sett en massa Instructables som beskriver hur en Radiostyrd bil kan konverteras till en robot. De flesta av dessa kräver att R/C bil mottagare styrelsen ändras så att avsnittet RF i mottagaren kringgås med vänster/höger/framåt/bakåt signalern...

Hur man gör en musikal Solid State teslaspole (SSTC) som spelar gitarr!

Detta är min första fasta statliga Tesla Coil (SSTC), som jag tycker blev ganska bra! Min avsikt var mer mot det spelar musik snarare än stora gnistor, men jag fick ca 6 in gnistor från det också vilket är en bonus.Syftet med detta instructable är at...

Autonoma Arduino Rover 5

detta är min allra första Arduino http://youtu.be/4KKbA1m54Y4project, jag ville lära mig C och C ++ programmering samtidigt ha roligt. Så jag bestämde mig att sätta ihop en autonom leksak kan driva sig själv runt och undvika hinder. Igen jag är på at...

Arduino lätta upp musikaliska personal

I detta projekt ska du använda två Arduino RedBoards för att skapa en musikaliska personal som lyser upp när toner spelas.Steg 1: Samla materialFör detta projekt behöver du:-två Sparkfun uppfinnarens kit-Extra bygel ledningar (två per knapp, tre per...

Arduino UNO som AtMega328P programmerare

Efter att ha fått min första Arduino UNO, insåg jag snart att det är opraktiskt att använda en UNO för varje projekt. Som med mikrochip familjen av MCU, jag ville ha ett enkelt sätt att programmet fristående kretsar och chips.Söka på internet, var de...

Arduino Leonardo som ISP

Leonardo var min första Arduino, jag köpte den eftersom det är native USB-funktioner. Efter att ha experimenterat med Arduino, bestämde jag mig att migrera från min Arduino Leonardo till en fristående Atmega328p eller, för mindre projekt, till en mik...

Höra dina växter som spelar musik! (WIFI version)

Denna genomgång kommer att visa dig hur man bygger en sensor för att övervaka din anläggning miljön och använda statistik i ljudets ERC-20 app för att göra dessa data till musik, så att du kan lyssna på din anläggning reaktion på sin miljö. För mer i...

Din egen iPod Nano som spelar!

Detta är hur du kan göra din egen iPod som faktiskt spelar!Steg 1: material För denna iPod behöver du:1/4 gallon blå färg* 1 x-acto kniv* 4 ft av 4 ft. bit kartong.* Dator (att skriva ut en skärm)* 6 led lampor* 2 strån* 1 sharpie* 1 pensel* Förpackn...

Arduino Robot som undviker mänskliga

I min tidigare instructable, visade jag att det är mycket enkelt att kontrollera DC-motorer med hjälp av Arduino Nano kompatibel controller och Tyg sköld. Du kan få denna robot genom min kicken project.Jag ska visa dig hur du läsa ultraljud avstånd s...

Burning Bootloader på ATMega328 med Arduino UNO som ISP

uppdatering: denna handledning kommer att arbeta på Arduino IDE 1.0.1, den senaste 1.0.5 gör vissa förändringar på ISP skissen så jag inte är säker på om det kommer att fungera (jag bara köpte 2 ATMega328 och brände både på 1.0.1).Vänligen använd 1.0...

Arduino Nano som Attiny 85 programmerare och 5 LED POV

Arduino moduler/styrelser är inte billiga och enkla projekt som min ledde träd. Vi kan använda billigare och mer makt effektiv mikrokontrollanter som attiny85. Det finns många instructables om detta ämne, men lite gammal. Jag hoppas att dela den sena...