Swarmbots: Autonome Arduino auto's die stoelendans spelen (3 / 6 stap)

Stap 3: Lijn Trackers

Materialen:

Drie lijn trackers. Typen gebruikt: VEX Robotics lijn Tracker http://www.vexrobotics.com/276-2154.html en SparkFun RedBot Sensor - lijn volgeling http://www.vexrobotics.com/276-2154.html


Installaties:

Ongeacht welk type u gebruiken, de lijn trackers hebben drie uitgangen: GND, VCC en OUT. UIT gaat naar een analoge pin in de arduino, gaat de GND op grond, en VCC kunt gaan ~ + 5V.

Deze "lijn trackers" bestaan uit een fotodiode die in wezen voedt de arduino-waarden die overeenkomen met de hoeveelheid licht die het ontvangt. Omdat wij reflecterende tape voor het bijhouden van ons spel gebruikt, konden de lijn trackers gemakkelijk onderscheid maken tussen de grond en de verdieping van het speelveld.

Om te beginnen, verworven we eerst de trackers van de lijn van de boven-genoemde websites. We dan ze aangesloten op de voorkant van onze auto. Hen verbinden met de achterkant zou onverstandig zijn, omdat de auto te ver weg van de lijn tegen de tijd dat de sensoren detecteren worden zal dat de auto zich beweegt op de lijn en de poging om een correctie toepassen. Plaatsen van de sensoren aan de voorkant van de auto is dus de optimale keuze voor de snelste lijn reacties bijhouden. De rechter en linker lijn tracker moet bovendien ver genoeg afstand van de center-tracker dat wanneer de tracker centrum hoger is dan de regel, noch de rechts of links tracker boven de regel zijn geplaatst worden.

Merk op dat als u probeert alle onderdelen die nodig power (lijn trackers, motoren, geluid sensoren, infrarood/ultrasone sensoren enz.) verbinden met de bron van de 5V op de Arduino, u gaat hebben van een slechte tijd. De 5V-bron kan niet genoeg stroom voor al deze onderdelen leveren en dus ze zal niet goed functioneren, als helemaal. Ter bestrijding van dit, wij verbonden de trackers van de lijn naar de + 5V van de arduino en de sensoren van het geluid en de afstand op de 12V (8 1.5V batterijen) levering voeden van de motoren. Er kunnen andere variaties van deze opstelling geleverd om ervoor te zorgen dat alle sensoren (en de motoren) voldoende macht om goed te functioneren, maar deze setup werkte goed voor ons.

Na elke sensor aansluiten op een voedingsbron, moet u elke sensor verbinden met de pin van een Arduino, zodat het de waarden van de sensor kan lezen. Zij moeten worden aangesloten op een analoge pin, niet een digitale PWM.

Nu moeten we de arduino hoe om bij te houden van de lijn gegeven van de ingangen van deze drie lijn trackers. Het belangrijkste beginsel van de code is dat als de middelste sensor de lijn ziet, je in goede vorm bent en de auto kan rechtdoor. Vanwege de hoe we de links en rechts sensoren geplaatst, kunnen we bepalen als de auto is veering uit de lijn op basis van het al dan niet de rechter- of linkerzijde sensoren beginnen te detecteren de reflecterende tape-lijn. Door dit wetende, kunnen wij vervolgens vertellen de auto passende correcties om te sturen de auto terug naar de regel toe te passen. Afhankelijk van welke sensor de lijn detecteert, kunt u effectief bepalen welke richting de correctie moet worden toegepast. Bijvoorbeeld, als de juiste sensor de lijn detecteert, de auto is veering off van de lijn naar links, en een juiste correctie moet worden toegepast.

Je moet ook spelen met uw drempelwaarde, die het verschil in sensor lezingen tussen de lijn en de vloer merken. Deze waarde zal variëren afhankelijk van het type en de reflectiviteit van de lijn en de vloer die uw auto rijdt, de afstand van de sensoren uit de grond en de aard van de sensoren die u koopt. Om deze reden moet u prutsen met de code en test de auto om te zien welke drempelwaarde het beste voor u is. In wezen, zal u wilt testen van uw sensoren door te drukken hun Lees waarden in de seriële monitor. Deze debug werd in onze onderstaande code geïmplementeerd.

De onderstaande code is een methode die aangeeft hoe de lijn auto bijhoudt, gebaseerd op de theorie hierboven vermeld. Wilt implementeren lijn volgen in de hoofdlus met behulp van deze methode, moet het slechts eenmaal worden aangesproken.

 <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 centerLine = analogRead(A0); // use these printed outputs in the serial monitor to determine your thresholds <br>Serial.print("Right: "); <br>Serial.print(rightLine); <br>Serial.print(", Center: "); <br>Serial.print(centerLine); <br>Serial.print(", Left: "); <br>Serial.println(leftLine);</p><p>if (rightLine < rlThresh) { <br> Serial.println("Turn left, on right sensor"); <br> turnRight(); <br> delay(t); </p><p>} </p><p>else if (leftLine < rlThresh) {<br></p><p>turnLeft(); <br>Serial.println("Turn right, on left sensor"); <br>delay(t); </p><p>} </p><p>else if (centerLine < centerThresh) { </p><p>goStraight(); Serial.println("Straight"); delay(t); </p><p>} </p><p>}</p> 

De totale code voor de sensoren uitgevoerd worden samen alle weergegeven aan het einde van de instructies.

Omdat de Arduinos slechts één primaire functie in de loop methode behandelen kan, is het niet haalbaar om het luisteren naar de muziek tijdens een poging om de lijn te hebben. Dus moesten we het omzeilen van de reguliere regels van stoelendans. Elke auto is geprogrammeerd om te volgen de lijn 14 seconden na het horen van het oorspronkelijke geluid. Tijdens die 14 seconden, het geluid bleef spelen. Na 14 seconden, zowel het geluid uitgeschakeld en de auto gestopt volgt op de regel en gekeerd om te zoeken naar beschikbare stoelen. Dit gaf de illusie dat de auto's werden reageert op de muziek. Terwijl de auto's om te rijden voor 14 seconden programmeren relatief eenvoudig was, programmering de stoelendans lied om te spelen voor slechts 14 seconden was moeilijker en vereist het gebruik van Java programmering door middel van Eclipse. Hieronder is de code om onze stoelendans song, de Star Wars-thema lied omdat onze game van stoelendans spel werd gespeeld op de 4e mei 2016, spelen voor slechts 14 seconden.

 <p>import objectdraw.*; import java.applet.AudioClip;</p><p>/** * Class: Physics 128 * Term: Spring 2016 * Instructor: Janice Hudgings * * Project: Musical Chairs Collaboration * School: Fremont Academy * Group: Femineers * * * -- Plays the musical chairs song (John Williams' Star Wars Opening Theme for * 14 seconds) * -- Delay of 1 second from start of applet to beginning of song * -- Total run time is 14 seconds * * * Window Size: 250x250 * * Adam Mitchell, Wednesday, 4 May 2016 */ public class MusicalChairsPlayer extends WindowController { private static final int THRESHOLD_DELAY = 1; // the time to delay for private static final int THRESHOLD_PLAY = 14; // the time to run for public void begin() { // Local variables AudioClip music; Boolean playing = false; // whether the music is playing // Load the audio clip music = getAudio("starWars.au"); // Play the music music.play(); playing = true; // Record the current time int tempTime1 = (int) System.currentTimeMillis() / 1000;</p><p>while (playing) {</p><p>if ((int) System.currentTimeMillis() / 1000 - tempTime1 >= (THRESHOLD_DELAY + THRESHOLD_PLAY)) { // Stop the music after 10 seconds, for a total of 14 music.stop(); </p><p>playing = false; </p><p>}</p><p> }</p><p> }</p><p>public void onMouseClick(Location point) {</p><p>// Restart the code <br>this.begin();</p><p>} </p><p>}</p> 

Gerelateerde Artikelen

Autonome Arduino auto met infrarode nabijheidssensor

Autonome Arduino auto met infrarode nabijheidssensor

Dit Instructable laat zien hoe een preloved RC auto te wijzigen zodat het kan worden gecontroleerd door een Arduino. Vervolgens zal de Instructable u tonen hoe te maken van de RC uitvoeren dat een eenvoudige figuur 8 code vanaf daar de Instructable z
Autonome Arduino auto

Autonome Arduino auto

mijn vragen voor de Make-to-Learn jeugd wedstrijd :)Wat heeft u te maken?Dit doel van dit project was te nemen van de algemeen beschikbare elektronische apparatuur en het maken van een goedkope, zelf gecontroleerde voertuig. In eenvoudiger bewoording
RC auto naar autonome Arduino Robot

RC auto naar autonome Arduino Robot

Hebt u ooit gewenst om te bouwen van een eenvoudige autonome Arduino robot? Ik werd geïnspireerd om het bouwen van een fundamentele Arduino robot om te helpen mijn begrip van de Arduino, de Arduino IDE, en de werking van de ultrasone sensoren en moto
Obstakel te vermijden Arduino auto

Obstakel te vermijden Arduino auto

Hallo iedereen ik ben hier delen wat ik maak een obstakels vermijden van arduino auto. Ik gebruikte hier gemakkelijk beschikbaar materiaal, deze robo blijven uitvoeren naar voren totdat en tenzij elk obstakel kwam voor auto laten zien en maak...Stap
Autonome Arduino Tank (A.A.T)

Autonome Arduino Tank (A.A.T)

Hey iedereen, dit is mijn allereerste robot. Ik ben een 15-jarige eerstejaars. Ik heb sinds het 6e leerjaar kochten robots en probeert te bouwen een sindsdien. Ik heb besloten om noemen het A.A.T, want het is een autonome arduino tank, net als de naa
Arduino auto gecontroleerd via Bluetooth

Arduino auto gecontroleerd via Bluetooth

Alles wat die we weten dat Arduino een uitstekende prototyping platform, is voornamelijk omdat het een vriendelijke programmeertaal gebruikt en er zijn een heleboel extra ongelooflijke onderdelen die ons grote ervaringen bieden.We kunnen de Arduino t
Beheersing van Arduino auto via sprong Motion

Beheersing van Arduino auto via sprong Motion

Laatste tijd, heb ik een Arduino-auto, die wordt beheerd via het Web. Dit keer, ik heb dezelfde auto gebruikt maar het wordt bestuurd via Motion sprong.Stap 1: Wat is sprong beweging.U kunt controleren wat "Leap Motion" is door de officiële webs
Sluit de arduino en maken de spreker spelen

Sluit de arduino en maken de spreker spelen

om je Arduino een melodie te spelen moet u thes accessoires.Eén luidspreker van 5 ohmEen Arduino uno boordÉén Push buttomEen 10 kohm weerstand8 ledsEn een heleboel kern dradenStap 1: Sluit de arduino en maken de spreker spelen Dit is hoe ik de arduin
Eenvoudige arduino auto met behulp van HC-06 Bluetooth-Module

Eenvoudige arduino auto met behulp van HC-06 Bluetooth-Module

De gemakkelijkste manier om te bouwen van een Arduino-auto en controle met uw Androïde apparaat.Stap 1: Dingen nodig: Laptop met de Arduino software.Elke Arduino. (Im ' using Leonardo).Twee gelijkstroommotoren met banden stevig vastgemaakt.Een acryl
BOBO Arduino gebaseerde semi-autonome RC auto

BOBO Arduino gebaseerde semi-autonome RC auto

Hallo Instructables!,BOBO, is mijn poging om een arduino gebaseerd, autonome robot-platform. De kleine man is gebaseerd op een arduino mega, hoewel de basis staat zou poging tot op een Arduino Uno of soortgelijk. Hij heeft 4 onafhankelijke motoren be
Arduino Auto drenken de tuin Project

Arduino Auto drenken de tuin Project

Wat is uw kijken boven mijn hele project in haar ' behuizing. Ik heb uiteengezet om een probleem bij het starten van dit project dat twee vouwen was. Een dat het moest mezelf vertrouwd te maken met enkele van de basisprincipes van de Arduino omgeving
Controle op Radio Arduino auto via Web scherm

Controle op Radio Arduino auto via Web scherm

Dit is mijn eerste Arduino prototyping. Ik zou willen maken van een bewegend object, die kan worden gecontroleerd via de radio. De auto bestaat uit Tamiya Kits en XBee.De webpagina voor het beheersen van de auto is geschreven met Node.js en Socket.IO
Arduino auto ontstekingssysteem... De Carduino!

Arduino auto ontstekingssysteem... De Carduino!

Dit zijn de basisingrediënten die u zal moeten opbouwen van een relais gedreven door Arduino.-Grote hobby doos-Arduino chip van uw keuze (R3 afslaan in mijn geval)-Lege PCB-Automotive 14VDC 60A estafette-3 x 4 Matrix toetsenblok (ik weet het afgebeel
Goedkope propeller aangedreven Arduino auto

Goedkope propeller aangedreven Arduino auto

Hallo! :)In dit instructable ik zal je laten zien hoe ik propeller aangedreven bluetooth gecontroleerde auto gemaakt. Het is cool speelgoed die kunt u uit slechts paar delen.Wees voorzichtig met dit, propeller draait ongeveer 2000-3000 rpm, geloof me