Hi,
mein Asuro soll heut lernen wie er Geradeaus fährt. Dafür hab ich erstmal gestestet, wie schnell welches Rad sein muss.(Durch unterschiedliche Reibung)
So jetzt hab ich ein kleines Programm geschrieben:
Das Programm soll so funktionieren:Code:#include "asuro.h" int main(void) { int l=0; int r=0; int sleft=0; int sright=0; unsigned int data[2]; Init(); MotorDir(FWD,FWD); MotorSpeed(150,165); OdometrieData(data); while(1) { if (sleft!=1 && data[0]<700 && l<10) { sleft=1; l++; } if (sleft==1 && data[0]>700 && l<10) { sleft=2; l++; } if (sright!=1 && data[1]<700 && r<10) { sright=1; r++; } if (sright==1 && data[1]>700 && r<10) { sright=2; r++; } else if (r>l) { MotorSpeed(190,165); r=0; l=0; } else if (r<l) { MotorSpeed(150,190); r=0; l=0; } } return 0; }
Immer wenn ein hell/dunkelwechsel ist, zählt das Programm mit. Wenn auf einer Seite 10 Hell/Dunkelübergänge gezählt wurden, soll Asuro nachschauen auf welcher Seite mehr Übergänge da waren--> auf der anderen Seite soll er mehr Gas geben.
Irgendwie hab ich das falsch programmiert, kann mir wer da Tips zur Verbesserung geben?
Mfg Moebius







Zitieren

Lesezeichen