Labyrint Problemlösaren Robot, med artificiell intelligens med Arduino (3 / 10 steg)

Steg 3: Installera och testa den nya sensorer



Den nya matrisen nu 7 sensorer, är monterad på ett sätt att de 5 original som uteslutande används för PID control (och upptäckt av"full", förklarade senare) och den nya 2 vänstern som ska användas för vänster och höger korsningen upptäckt bara.

Som en snabb genomgång, låt oss komma ihåg hur den 5 original "digital" sensorer fungera:

Om en sensor är centrerad avseende den svarta linjen, kommer att bara att särskilda sensorn producera en hög. Av andra sidan, bör avståndet mellan sensorer beräknas för att tillåta att 2 sensorer kan täcka den fulla bredden av den svarta linjen samtidigt, också producera en hög signal på båda sensorerna.

Hur de 2 nya "analog" sensorerna fungera:

Om en av sensorerna är centrerad avseende den svarta linjen, produktionen kommer att vara en analog värde, vanligtvis producerar en utgång på Arduino ADC bellow "100" (kom ihåg att ADC ger en utgång från 0 till 1023). Med ljusare ytor, produktionsvärde blir högre (jag testade 500 600 över vitt papper, till exempel). Detta värde måste testas på olika situationer av ljus och ytan material att definiera den korrekta tröskelvärde för konstanten som ska användas i ditt fall (se bilden här).

Titta på Arduino koden, var och en av sensorerna kommer att definieras med ett visst namn (anser att den ursprungliga linjen följa sensorn mer till vänster måste tilldelas med en etikett "0"):

CONST int lineFollowSensor0 = 12; Med hjälp av Digital ingång

CONST int lineFollowSensor1 = 18; Med Analog Pin A4 som Digital ingång

CONST int lineFollowSensor2 = 17; Med Analog Pin A3 som Digital ingång

CONST int lineFollowSensor3 = 16. Med Analog Pin A2 som Digital ingång

CONST int lineFollowSensor4 = 19. Med Analog Pin A5 som Digital ingång

CONST int farRightSensorPin = 0; Analoga Pin A0

CONST int farLeftSensorPin = 1; Analoga Pin A1

För att komma ihåg, är möjligt 5 ursprungliga sensor matrisen utgång när du följer en linje:

  • 1 1 1 1 1
  • 0 0 0 0 0
  • 0 0 0 0 1
  • 0 0 0 1 1
  • 0 0 0 1 0
  • 0 0 1 1 0
  • 0 0 1 0 0
  • 0 1 1 0 0
  • 0 1 0 0 0
  • 1 1 0 0 0
  • 1 0 0 0 0

Med tillägg av de 2 nya är deras möjliga utgångar:

  • Längst till vänster Sensor: Analog utgång högre eller lägre än en TRÖSKEL
  • Längst till höger Sensor: Analog utgång högre eller lägre än en TRÖSKEL

Lagring för att värdena för varje sensor skapas en array variabel för de ursprungliga 5 digitala sensorerna:

int LFSensor [5] = {0, 0, 0, 0, 0};

Och två heltal variabler för 2 nya analoga sensorer:

int farRightSensor = 0;
int farLeftSensor = 0;

Varje position i matrisen och variabler uppdateras ständigt med produktionen av var och en av sensorerna:

LFSensor [0] = digitalRead(lineFollowSensor0);

LFSensor [1] = digitalRead(lineFollowSensor1);

LFSensor [2] = digitalRead(lineFollowSensor2);

LFSensor [3] = digitalRead(lineFollowSensor3);

LFSensor [4] = digitalRead(lineFollowSensor4);

farRightSensor = analogRead(farRightSensorPin);

farLeftSensor = analogRead(farLeftSensorPin);

Att ha 5 sensorer, tillåter som såg i efterföljare linje Robot-projektet för en "fel variabel" som hjälper till att styra robotens läge över linjen. Också, en variabel som kallas "mode" används för definition om roboten följer en linje över en kontinuerlig linje, en korsning eller ingen linje alls.

Denna "mode" variabel används också med "långt vänster/höger" sensorer. För representation, låt oss betrakta långt vänster och höger sensorerna med 3 möjliga statusvärden: H (högre än TRÖSKELVÄRDET), L (mindre än TRÖSKELVÄRDET) och X (irrelevant). För digital output, kommer den vanliga 0, 1 och vi kommer också att införa X:

  • X 1 1 1 1 1 X == > läge = CONT_LINE; fel = 0;
  • H 0 X X X X L == > läge = RIGHT_TURN; fel = 0; (se exemplet på bilden ovan)
  • L X X X X 0 H == > läge = LEFT_TURN; fel = 0;
  • X 0 0 0 0 0 X == > läge = NO_LINE; fel = 0;
  • H 0 0 0 0 1 H == > läge = FOLLOWING_LINE; fel = 4;
  • H 0 0 0 1 1 H == > läge = FOLLOWING_LINE; fel = 3;
  • H 0 0 0 1 0 H == > läge = FOLLOWING_LINE; fel = 2;
  • H 0 0 1 1 0 H == > läge = FOLLOWING_LINE; fel = 1;
  • H 0 0 1 0 0 H == > läge = FOLLOWING_LINE; fel = 0;
  • H 0 1 1 0 0 H == > läge = FOLLOWING_LINE; fel = -1;
  • H 0 1 0 0 0 H == > läge = FOLLOWING_LINE; fel = -2
  • H 1 1 0 0 0 H == > läge = FOLLOWING_LINE; fel = -3;
  • H 1 0 0 0 0 H == > läge = FOLLOWING_LINE; fel = -4;

Så, genomföra ovanstående logiken i funktionen:

void readLFSsensors()

Returnerar de variabler "mode" och "fel" som kommer att användas på programmets logik.

Det är viktigt att testa logiken av sensorerna innan Följ med projektet. Funktionen nedan ingår i koden och kan användas för att testa:

void testSensorLogic(void)
{

Serial.Print (farLeftSensor);

Serial.Print ("< == vänster RIGH == >");

Serial.Print (farRightSensor);

Serial.Print ("läge:");

Serial.Print (läge);

Serial.Print ("fel:");

Serial.println (fel);

}


Se Steg
Relaterade Ämnen

Labyrint Problemlösaren med Arduino och ArduMoto(Micromouse) V:1.2

Här '' Instructables'' syftar till att hjälpa någon maker, entusiast att göra sin egen labyrint Problemlösaren (Micromouse). Förekomsten av Micromouses har dateras tillbaka till 1950-talet och tävlingar hålls sedan dess. Även dessa tävlingar kan kräv...

Arduino talande Robot baserad artificiell intelligens

Detta projekt kommer att göra vår talande robot med artificiell intelligens-baserade Arduino.Än i våra tidigare projekt gjort vi vår robot vi checkade in telefonens röstkommando.Du kan se det här.Detta projekt att utveckla vår robot, röstkommandon ko...

Grundläggande raden efter Robot med Arduino

09/07/2015Det har varit några år eftersom vi Ursprungligen postat denna grundläggande linje följande Robot med Arduino handledning, och det verkar så många människor tyckte att det bra att vi ska skicka en uppdatering som löper nuvarande Arduino bibl...

Roboten labyrint Problemlösaren

Denna handledning hjälper dig skapa en Arduino baserad robot som kan lösa grundläggande linje labyrinter som inte har slutna slingor.Hur det fungerar:Roboten är programmerad att köra över de svarta linjerna av labyrinten och använda optiska sensorer...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Hur man gör en mobiltelefon och dator kontrolleras 3D tryckta Robot med Arduino - IoBot.

Om du letar efter ett sätt att kontrollera en Arduino baserade enheter, kommer att denna anvisning Visa dig hur man gör det genom att bygga enkla robot.IoBot kan styras med mobil och dator ansökan via LAN eller USB-kabel. Programmet körs på Android,...

Hinder att undvika Robot med arduino

HINDER - ATT UNDVIKA ROBOTEtt hinder att undvika ROBOT är en som kan undvika ett hinder med hjälp av ultraljud sensor och gå i sin egen väg. Med en skärbräda bifogas roboten kan du spela roliga inom en kort tid. En sådan är vad vi ska diskutera här....

2WD röst kontrollerat Robot med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man bygger en 2WD röststyrd robot. Även om jag kontrollera endast DC motorer om du vill flytta roboten, samma tillvägagångssätt kan användas till röststyrning stegmotorer och servomotorer, så om du planerar att b...

Realtid ansikte spårning Robot med Arduino och Matlab

Realtid ansiktsspårning avser uppgiften att lokalisera ansikten i en videoström och spårning hittas eller igenkända ansikten. Numera finns det många verkliga tillämpningar av ansiktsavkänning och andra tekniker för bildbehandling. Det finns många alg...

Kontrollera en Roomba robot med Arduino och Android

(Om du gillar detta Instructable, glöm inte att rösta på den - ovan: högra hörnet flaggan. Det tävlar på AUTOMATION tävling. Tack så mycket! ;-)Som en av robotteknik tävling 2016 vinnarna här på Instructables fick jag som pris en iRobot Roomba Create...

Avlägsen kontrollerade robot med Arduino och T.V. remote

Denna fjärrkontroll bil kan flyttas runt med praktiskt taget alla slags remote såsom TV, AC etc.Det använder sig av det faktum att fjärrkontrollen avger IR(infrared).Den här egenskapen är gjord använda av med hjälp av en IR-mottagare, vilket är en my...

Gör en Robot med Arduino för nybörjare

Steg 1: Material som behövs Tamiya spår och rullar in församling ($7,95 på Pololu)Tamiya 70168 dubbla växellåda Kit ($9,25 på Pololu)L298N dubbla H Bridge ($3,65 på Amazon och kan vara mycket lägre på ebay)4AA batterihållare (används från trasig elek...

SainSmart InstaBots upprätt Rover (själv balansera Robot med Arduino)

Upprätt Rover är en självbalanserande robot som ritades av SainSmart. De verkligen gjort det enkelt. Som ni ser, finns det bara 8 ledningar på robot och 8 ledningar på handkontrollen. Så låt oss ta reda på hur det fungerar!DELAR I RUTAN3 x Potentiome...

Gest kontroll car(robot) med Arduino och Android(bluetooth)

Hej folk,Här är ett intressant projekt för alla er kreativa hjärnor ute. Vi ska bygga en android-telefon kontrollerade RC bil.Inget kunde vara mer fascinerande än avlägsen kontrollerade bilar. Denna använder en Bluetooth för kommunikation och acceler...

Extremt enkel linje efter Robot med Arduino

I detta Instructable ska vi bygga en enkel allmän linje efter arduinobot. Det kommer att finnas ett stort utrymme för kreativitet i detta Instructable.Roboten, i denna tutorial, drivs av 4 AA-batterier och är kunna följa svart eltejp av en vit yta.St...

Gör en självbalanserande Robot med Arduino UNO

Själv balansera Robot är mycket intressant. Många vänner runt omkring oss försökte göra en, men de encounted en hel del chanllenges bland annat bristen på strukturerna som lätt-till-montering, de lämpliga elektroniska kretsarna och program. Så jag be...

Billig Robot med Arduino

jag ville lära mig elektronik, Arduino programmering, och lödning så jag tänkte att jag skulle plocka en av Randys projekt och kopiera den.Jag slutade med en annan motor konfiguration. Min front motor pekar ner och vänder lite kvartalet växel som vän...

Hur du använder verktyget Problemlösaren i Excel

syftet med denna guide är att introducera människor till datorprogrammet Microsoft Excel. Vi kommer särskilt att fokusera på Problemlösaren verktyg aspekten av programmet och hur användare kan använda det till sin fördel. Denna guide kommer att täcka...

Hur man har kul med Arduino (och bli en nörd i processen)

vill du tjäna din geek-kort - pronto? Låter komma igång! Denna guide börjar du på sökvägen till den mörka sidan med hjälp av öppen källkod Arduino utveckling och prototyping plattformen. Det kommer att introducera dig till mikrokontroller, komma igån...