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
Lesezeichen