Stap 9: Code
De drijvende code is momenteel vrij eenvoudig, en ik moedig u te werken aan dit uw robot om intelligenter te maken.
void runDriveMode(){ // basic drive loop int distance = getDistanceToWall(); Serial.println(distance); if (distance < 20) { turnRandom(2); moveBackward(); delay(random(1500)); } else if (distance < 50) { turnRandom(2); } else if (distance <80) { turnRandom(1); } else { myWheel.write(WHEEL_CENTER); moveForward(); } delay(200); }
Dus de robot controleert de afstand tot de volgende bezwaar / muur. Als dit minder dan 20cm is zal het gaan in omgekeerde draaien in een willekeurige richting voor een willekeurige hoeveelheid tijd. Als de afstand minder dan 80cm zal beginnen te afwenden en als de afstand groter dan dat is het enkel zal lopen in een rechte lijn.
Geen front draaien wiel.
Als u een robot zonder een voorwiel draaien bouwt dan moet je om de methode runDriveModeWithNoFrontWheel() in plaats van de runDriveMode(); methode. Dit is vergelijkbaar, maar zal veranderen door het bewegen van de wielen bij verschillende snelheden en richtingen. Om eerlijk te zijn moet u deze code als elke robot tweak zal hebben een ander zwaartepunt en zal werken en zet op verschillende snelheden.