Stap 5: GOduino III object vermijden robot
Ik ben een grote fan van het gebruik van DVD gevallen zoals de robot platformen. Deze robot is werd ook geassembleerd in minder dan een uur. Ik had al het platform klaar uit een vorige robot, dus alles wat ik moest doen is de GOduino III en de sensor in een korte breadboard ingevoegd.
Ik gebruikte de Pololu micro metal gear motor en de HC-SR04 ultrasone afstandssensor. Er zijn vele voorbeelden van de code voor de HC-SR04 sensor en een Arduino-bibliotheek die goed werkt.
Dit is de code die wordt gebruikt in de demo video:
GOduino III-object vermijden met behulp van de HC-SR04 afstandssensor
Deze code is in het publieke domein
#include < Goduino.h >
#include < Ultrasonic.h >
Selecteer pinnen voor HC-SR04 afstandssensor
#define TRIGGER_PIN 12
#define ECHO_PIN 13
#define DISRANCE_TO_OBJECT 1300 / / dit is de optimale waarde voor object detectie met behulp van trial & error
Ultrasonic ultrasone (TRIGGER_PIN, ECHO_PIN); HC-SR04 afstand sensor object
Goduino myrobot; GUduino III motor object
int mspeed = 50; waarde van de beginsnelheid van beide motoren
VOID Setup
{
Serial.begin(9600);
myrobot.motorSpeed (50, 50); Stel de beginsnelheid voor beide motoren
}
void loop
{
Serial.println("---");
zweven cmMsec = 0, inMsec = 0;
lange microsec = 0, avgDis = 0;
for (int i = 0; Ik < 10; i ++) {/ / gemiddeld 10 lezingen uit de afstandssensor
Microsec = ultrasonic.timing();
Serial.Print ("microsec:");
Serial.println(Microsec);
avgDis += microsec;
}
avgDis = avgDis / 10;
Serial.Print ("avgDis:");
Serial.println(avgDis);
Als (avgDis > DISRANCE_TO_OBJECT) {/ / als geen object binnen bereik
myrobot.motorForward(1); vooruit
myrobot.motorForward(2);
}
anders / / maar als object gedetecteerd binnen bereik
{
myrobot.motorStop(1); Stop
myrobot.motorStop(2); Stop
delay(500); wachten
myrobot.motorBack(1); Terug
myrobot.motorBack(2); Terug
delay(1000); wachten
myrobot.motorBack(1); beurt
myrobot.motorForward(2);
delay(500); wachten
myrobot.motorForward(1); Vervolgens vooruit
myrobot.motorForward(2);
}
}