Geradeausfahrt programmieren
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:
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;
}
Das Programm soll so funktionieren:
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