Min Arduino linje efter Robot! -Med Pololu kvart-6A IR reflektans Sensor Array

använde jag en Arduino Duemillanove med ATMega 328. Framdrivning sker med två Parallax Futaba kontinuerlig Rotation servon. Min sensor är Pololu kvart-6A IR reflektans Sensor Array, och den drivs alla av 4 uppladdningsbara NiMH Duracell AA batterier :)

Det kan följa en mörk ut, på en ljus bakgrund. I detta fall använt jag svart tejp på en whiteboard. Det först kalibrerar sig i 5 sekunder. Du flytta den över linjen några gånger så den vänjer sig skillnaden i reflektans. Efter kalibrering börjar det gå framåt. Jag använde en algoritm för att bestämma dess fel av fodra. Om det genom den algoritm som det är på ett extremt fel, kommer att det vända för en längre tid. På samma sätt om roboten bestämmer det är bara en bråkdel av en tum av fodra, blir det bara för en bråkdel av en sekund. Detta minskar över kompensation och gör linjen efter lite smidigare och mer tillförlitliga.

Detta är koden jag använde, jag började det från början och La MegaServo biblioteket. Jag vet att det finns ett bibliotek för Pololu IR-sensor arrayer, men jag stött på problem så jag beslöt att börja från början med sensor läsa också. Jag använder den analoga versionen av Pololu sensor array, i motsats till RC-versionen, som matar ut en digital signal. Min sensorer utgång en Analog spänning utifrån reflektansen av ytan. Till exempel om du tillhandahåller 5V till sensorer på Vcc, och du får en mörk yta, att sensorn matas en närmare en spänning på 5V. Omvänt, om sensorn stöter en mycket reflekterande, (vita yta) det kommer ut närmare till 0V. Jag kan läsa dessa 6 analoga utgångar från min 6 sensorer genom 6 analoga i/o-stiften på min Arduino.
Dessutom min STOP algoritm använder kapslade om uttalanden att kontrollera 3 gånger om roboten verkligen slutet, innan den stannar i 10 sekunder, blinkar ljuset. Detta förhindrar ett oavsiktligt stopp i mitten av banan på grund av felaktiga värden eller buggar. Under kalibreringen beräknas jag ett genomsnitt värderar av reflektansen som jag använder senare till hjälp med navigering och beslutsfattande. Jag har även tryckt lite data för att skärmen följetong för teständamål.

Här är min kod:

// ==========================================================
Känn dig fri att ändra och använda den här koden, men ge mig kredit.
Författare: Austin Duff - 24 juni, 2009
// ==========================================================
#include < PololuQTRSensors.h >
#include < Servo.h >
#include < MegaServo.h >
#define NBR_SERVOS 3
#define FIRST_SERVO_PIN 2

Servo vänster;
Servo höger;
Servo torn;

MegaServo servon [NBR_SERVOS];

int pingPin = 7.
int mid = 0;
int mn = 0;
int mx = 0;

void setup()
{

Servon [0] .attach (2, 800, 2200); Tower
Servon [1] .attach (9, 800, 2200); vänster
Servon [2] .attach (10, 800, 2200); höger
Serial.BEGIN(9600);
Servos[0].write(65);
digitalWrite 13, låg.

Servos[2].write(90);
Servos[1].write(90);

för (int jag = 0; jag < 5000; i ++)
{
digitalWrite 13, hög.

int val = 0;
för (int j = 0; j < = 5; j ++)
{
Val = analogRead(j);
om (val > = mx)
MX = val;
om (val < = mn)
mn = val;
}
Delay(1);
}

mitten av = ((mx + mn)/2);
digitalWrite 13, låg.

Servos[2].write(90);
Servos[1].write(90);
}
void loop()
{

int s0 = 0;
int s1 = 0;
int s2 = 0;
int s3 = 0;
int s4 = 0;
int s5 = 0;

S0 = analogRead(0);
S1 = analogRead(1);
S2 = analogRead(2);
S3 = analogRead(3);
S4 = analogRead(4);
S5 = analogRead(5);

Serial.Print ("Mid:");
Serial.Print(MID);
Serial.Print("");
Serial.Print(S0);
Serial.Print("");
Serial.Print(S1);
Serial.Print("");
Serial.Print(S2);
Serial.Print("");
Serial.Print(S3);
Serial.Print("");
Serial.Print(S4);
Serial.Print("");
Serial.Print(S5);
Serial.Print("");
Serial.println();

Servos[2].write(180);
Servos[1].write(0);

Delay(10);

IF(((S0+S1+S2)/3) > (((s3+s4+s5)/3) 250)) & & (! () (S0 > Mid) & &(s5 > mid)))
{
Servos[2].write(180);
Servos[1].write(90);
Serial.Print ("höger");
Delay(ABS(((S5+S4+S3)/3)-((S0+S1+S2)/3))/2));
}
IF(((S0+S1+S2)/3) < (((s3+s4+s5)/3)-250)) & & (! () (S0 > Mid) & &(s5 > mid)))
{
Servos[2].write(90);
Servos[1].write(0);
Serial.Print ("vänster");
Delay(ABS(((S5+S4+S3)/3)-((S0+S1+S2)/3))/2));
}
om ((s0 > mid) & &(s5 > mid))
{
Servos[2].write(90);
Servos[1].write(90);
Serial.Print ("STOP");
om ((s0 > mid) & &(s5 > mid))
{
Servos[2].write(90);
Servos[1].write(90);
Serial.Print ("STOP");
om ((s0 > mid) & &(s5 > mid))
{
Servos[2].write(90);
Servos[1].write(90);
Serial.Print ("STOP");
för (int k = 0; k < 50; k ++)
{
digitalWrite 13, hög.
Delay(100);
digitalWrite 13, låg.
Delay(100);
}
Delay(5000);
}
}
}

}

Relaterade Ämnen

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...

Linje efter robot med PID algoritm

linje följande robot utformad med Solidworks och genomförs med arduino, ardumoto för kontroll av hjulen och en sensor bar med 8 IR-sensorer. Frågor om den här raden efter snälla lämna en kommentar eller meddelande mig....

En enkel linje efter robot med transistorer

en cool robot och det är billigtDenna robot använder transistorer som mikrokontroller. Nu låt oss komma igångSteg 1: Välkommen Hai,my name is Amal P.kDetta är en stor robot. Det är mycket billigt. Denna robot använder transistorer som mikrokontroller...

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...

BOE Bot/Arduino raden efter robot

detta är en ganska enkel guide om hur man bygger en linje efter robot. den använder ljus, ljusa anhörigen motstånd (LDRs), en arduino och en boe-bot chassi (någon robot chassi med 2 kontinuerlig rotation servon fungerar). det läser sensorerna och vän...

Hur man gör en linje efter Robot

Hej Instructables,Denna min första gången att göra en robot. I detta instructable jag kommer att visa dig hur man gör en linje efter robot. Observera att detta instructable för nybörjare som bara vill göra en robot för skojs lärande det. Det kommer i...

Mini Arduino Multi funktion styrenhet med LCD-skärm

detta Instructable bygger på mini Arduino miljö monitor och mini Arduino EEGEN monitor Instructables.Det kan du styra upp till 4 reläer med tid, temperatur och/eller ljus, ditt sinne, eller vilken sensor du vill använda.Exemplen är prototyper, jag gå...

Världens enklaste linje efter Robot

Här i detta instructable jag ska visa dig hur man gör Världens enklaste linje efter robot. Enklaste flera delar används och komplexiteten i kretsen.De flesta linjerna efter robotar på internet använder komplexa kretsar med mikrokontroller och op förs...

Bob Arduino linje-efter roboten

För detta projekt, kommer vi att bygga en enkel linje-följande Arduino robot. Detta projekt kommer att vara inriktad mot nybörjare men de med en högre kompetensnivå inom elektronik och kodning kan prova på detta projekt. Du kommer att gick genom dett...

Arduino ljus efter Robot

ÖversiktDetta instructable kommer att använda tre photoresistors (ljus beroende motstånd) och en Arduino att förflyttningar av en robot. Någon gemensam robot chassi kan användas för robot. Ljussensorer kommer att monteras på vänster sida, höger sida...

Väggen efter Robot med 555 Timer

Redigera:Denna robot är också i Robot tävlingen för ålderskategorin 12-18.Frammåt:I detta instructable jag kommer skriva ut grundläggande idéer som jag brukade göra en vägg efter robot utan någon mikrokontroller. Roboten i dessa instruktioner använde...

Mycket enkelt att skapa Arduino bluetooth spion robot med Android RemoteControl app

i detta projekt kommer du att se hur enkel blandning av olika tekniker och tredje part apps gör det möjligt för att skapa en ganska komplex leksak.Roboten gör två saker:1. Arduino baserade spion robot flyttar enligt kommandon levereras från Android R...

Arduino ljus efter Robot och undvika

Detta är en smiple som följer eller undvika ljus.Jag gjorde denna simulering Proteus 8.3 pro.Komponenter som krävs:-1) Arduino uno.2) 3 LDR.3) 2 dc redskap motorer.4) en Servo.5) tre 1 k motstånd.6) en H-Bridge l290D7) en på & Off knapp [för förändra...

Enkel linje efter robot

enkla roboten är baserad på LM393 dubbla spänning komparatorFunktionen av kretsen är att matcha med det ljuskänsliga motståndet, och att tillhandahålla en lämplig referens spänning för LM393 chip.På grund av olika svarta och vita reflektansen, kommer...

Lätt Arduino ljus efter Robot

Detta är en handledning om hur man gör en ljus följande robot använder Arduino, det har förenklats så att nybörjare kan försöka detta projekt också. Detta projekt tar du bara på mest av en timme. Jag hoppas du njuter.Steg 1: material Arduino Uno: htt...

Min Arduino Ping Display Robot

målHej alla.Jag hoppas att dela en liten robot att jag precis har avslutat byggnad.Det finns många Ping båt, kanske med en tutorials och bildskärm mindre utan anspråk, kommer att illustrera vad jag kunde göra.Jag gav mig själv målet att förverkliga e...

Enkel linje efter robot för nybörjare

Rad efterföljare är en maskin som kan följa en väg. Sökvägen kan synas som en ändring på en vit yta (eller vice versa) eller det kan vara osynlig som ett magnetfält-wikipedia.KOMPONENTER:1. dc motorer-2 (du kan välja någon rpm enligt din önskan)2. ro...

Linje följande Robot med grundläggande PD (proportionell-derivat) kontroll

Detta Instructable kommer att visa hur PD (Proporational-derivat) kontrollen i en enkel rad efterföljare. I exemplet används rad efterföljare utvecklats i grundläggande linje efterföljare Instructable:Följande komponenter kommer att användas:1. troll...

ActoBitty raden efter Robot

Lär hur man bygger en linje efter robot med hjälp av ActoBitty och en Arduino. Nedan är en lista av hårdvara för att slutföra denna bygga.Maskinvara som krävs1 x Actobitty 2 hjul Robot Kit (https://www.servocity.com/html/actobitty_2_wheel_robot_kit.h...