Hallo zusammen,
ich bin ein Newbie in Sachen ASURO. Kann mir jemand helfen? Ich möchte gerne mit meinem ASURO möglichst gerade fahren. Im folgenden Code habe ich versucht die Odometrie zu nutzen. Was mache ich falsch???
Danke.
void geradeaus(int m){
int speedLeft = 255;
int speedRight = 255;
int posLeft = 0;
int posRight = 0;
int flagLeft = FALSE;
int flagRight = FALSE;
int schwelle = 255;
unsigned int data[2];
while (posLeft < m){
OdometrieData(data);
//linkes Rad
if ( (data[0] < schwelle) && (flagLeft == TRUE)) {
flagLeft = FALSE;
}
if ( (data[0] > schwelle) && (flagLeft == FALSE)) {
posLeft ++;
flagLeft = TRUE;
}
//rechtes Rad
if ( (data[1] < schwelle) && (flagRight == TRUE)) {
flagRight = FALSE;
}
if ( (data[1] > schwelle) && (flagRight == FALSE)) {
posRight ++;
flagRight = TRUE;
}
//ggf. links oder recht in bisschen bremsen
if ((posLeft-posRight)>3) {
StatusLED(GREEN);
speedLeft--;
}
else if ((posLeft-posRight)<-3) {
StatusLED(RED);
speedRight--;
}
else {
StatusLED(OFF);
posLeft = posLeft = 0;
speedLeft = speedLeft = 255;
}
MotorSpeed(speedLeft,speedRight);
}
MotorSpeed(0,0);
}
Lesezeichen