Dit is mijn robot van het push- en roll gemaakt van een enkele servo, een tilt sensor (VTI SCA610 Inclinometer versnellingsmeter) en een Arduino Uno. De tweede helft van de video geeft enkele details over hoe het werkt.
Hier is Arduino programma:
Duw rollende robot met één servo, tilt-sensor en de Arduino Uno
door Jim Demello 1/12/2015
#include
Servo myservo2;
int vooruit = 1;
int rollCntr = 0;
int val; variabele te lezen van de waarde van de analoge pin
int gyroPin = 5; tiltmeter VTI SCA610 inclinometer chip (gyro?)
int gyroVal = 0;
VOID Setup
{
myservo2.attach(9); hechten servo pin 9
myservo2.writeMicroseconds(1500); centrum servo
delay(15);
Serial.begin(9600);
Serial.println ("programma moet worden gestart...");
}
void loop
{
Val = 90; Servo gecentreerd op 90 graden
gyroVal = analogRead(gyroPin);
gyroVal = kaart (gyroVal, 0, 1023, 0, 180); schaal om het te gebruiken met de servo (waarde tussen 0 en 180)
delay(10);
if(rollCntr > 4) {als (in voorwaartse richting) {vooruit = 0;} / / richting omkeren
anders vooruit = 1;
rollCntr = 0;}
Als (vooruit & & (gyroVal > (val - 5) en gyroVal < (val + 25)))
{myservo2.write(40); delay(500); myservo2.write(90); / / naar voren gaan
rollCntr = rollCntr + 1;
}
if (!. Voorwaarts & & (gyroVal > (val - 25) en gyroVal < (val + 5)))
{myservo2.write(150); delay(500); myservo2.write(90); / / go omgekeerde
rollCntr = rollCntr + 1;
}
Serial.Print ("niveau @:"); Serial.Print(val); Serial.Print ("hoek:"); Serial.Print(gyroVal);
Serial.Print ("vooruit:"); Serial.println(rollCntr);
delay(40); //