ArduBot (5 / 8 steg)

Steg 5: sensorer



Parallax och arduino gemenskapen har gott om exempel koder om hur du kör PIR och PING sensorer används i denna robot. Så det borde bara vara en fråga om tilldela och oberoende fungerar för varje sensor så att vi kan kalla för dem när vi vill.
Här är ett par funktioner som jag definierade för PING-sensor:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

osignerade långa varaktighet, tum, cm, dir; längd mäter tiden mellan pingar
lång minsafe = 15. minsta säkerhetsavstånd framför robot
int antal; används för att identifiera när roboten är i ett hörn

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
osignerade långa PING() {//triggers ping sensorn en gång och returnerar värdet
pinMode (pingPin, produktionen); Göra Pingpin att mata
digitalWrite (pingPin, låg); Skicka en låg puls
delayMicroseconds(2); vänta två mikrosekunder
digitalWrite (pingPin, hög); Skicka en hög puls
delayMicroseconds(5); vänta i 5 sekunder för mikro
digitalWrite (pingPin, låg); Skicka en låg puls
pinMode(pingPin,INPUT); Växla Pingpin att mata in
längd = pulseIn (pingPin, hög); lyssna efter echo

/ * Konvertera mikro sekunder till Inches
*/

tum = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.Print (cm);
Serial.Print ("CM");
Serial.println ();

returnera cm;

}

lång microsecondsToInches(long microseconds) {
återvända mikrosekunder / 74 / 2;
}
lång microsecondsToCentimeters(long microseconds) {
återvända mikrosekunder / 29 / 2;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
osignerade långa leftping () {//records avstånd till vänster om roboten och returnerar det till mitten
int kvar; används för att registrera avståndet mätt med PING)
(VÄNSTER);
fördröjning (420);
STOPPA ();
Delay(10);

Serial.Print ("vänster:");
vänster = PING ();
fördröjning (420);

(RÄTT);
fördröjning (420);
STOPPA ();
returnera vänster;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
osignerade långa rightping () {//records avstånd till höger om roboten och returnerar det till mitten
int rätt;
(RÄTT);
fördröjning (420);
STOPPA ();
fördröjning (10).

Serial.Print ("rätten:");
höger = PING ();
fördröjning (420);

(VÄNSTER);
fördröjning (420);
STOP();
returnera rätt;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

osignerade långa forwardping () {//essentiallhy PING
int mitten;
STOPPA ();
fördröjning (10).
Serial.Print ("mellersta:");
mittersta = PING ();
returnera mellersta;

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

osignerade långa Välj () {//used att välja mellan våra två ping-funktioner
leftping();
forwardping();
rightping();
IF(leftping > rightping)
om (leftping > forwardping)
(VÄNSTER);
fördröjning (420);
STOP();
dir = forwardping ();
om (rightping > leftping)
om (rightping > forwardping) {
(RÄTT);
fördröjning (420);
STOP();
dir = forwardping ();
} annat
STOPPA ();
dir = forwardping ();

}
/////////////////////////////////////////////////////////////////////////////////////////////////////

Se Steg
Relaterade Ämnen

Experimental robotic platform

Hej! Mitt namn är Andrew, och jag är datavetenskap student.Jag började arbeta på denna robot för både roligt och som en del av mitt examensarbete.Det hela började när jag köpte en robot kit från en plats som kallas Conrad: länkDet verkade som en bra...

En Arduino infraröd kontrolleras och hinder skatteundandragande Robot

Hej alla,Detta Instructables är uppdelad i två faser, vilket gör den lämplig för både nybörjare och mellanliggande robot designers.Den första fasen omfattar användningen av arduino nano ombord endast som registeransvarige. Med detta ska vi bygga en r...