Habs jetzt endlich mal geschafft, die Odometrie zu programmieren - und ASURO dreht durch!
Das läuft ungefähr so: Ein Rad läuft vorwärts- wird langsamer - andres rad läuft - wird langsamer - aus - bumm - alle laufen - es surrt - es fängt an zu "puckern" (Wie bei Starwars Epi 1 die Podracer) - Die Räder werden immer schneller - sie wackeln ordentlich - ich mach aus, weil ich Angst habe, dass das Ding sich durch Hyperaktivität aufhängt. Was ist hier los?
Ich hab keine Ahnung, was das soll!Code:int Rmin=1023; int Rmax=0; int Rhell=0; int Rdunkel=0; int RZaehler; int UebergaengeR=0; int RSpeed=100; int Lmin=1023; int Lmax=0; int Lhell=0; int Ldunkel=0; int MittelwertR; int MittelwertL; int LZaehler; int UebergaengeL=0; int LSpeed=100; long Zaehler=0; BackLED(ON,ON); while(1) { MotorDir(FWD,FWD); MotorSpeed(LSpeed,RSpeed); for (Zaehler=0; Zaehler<100;Zaehler++) { unsigned int data[2]; OdometrieData(data); if (data[0] > Lmax) Lmax=data[0]; if (data[0] < Lmin) Lmin=data[0]; if (data[1] > Rmax) Rmax=data[1]; if (data[1] < Rmin) Rmin=data[1]; MittelwertL=(Lmin+Lmax)/2; MittelwertR=(Rmin+Rmax)/2; LongSleep(1); } unsigned int data[2]; OdometrieData(data); if (data[0] < MittelwertL) { Lhell = data[0]; LZaehler = HELL; } else { Ldunkel = data[0]; LZaehler = DUNKEL; } if (data[1] < MittelwertR) { Rhell = data[1]; RZaehler = HELL; } else { Rdunkel = data[1]; RZaehler = DUNKEL; } int i; for (i = 0; i< 100; i++) { OdometrieData(data); if (data[0] < MittelwertL && LZaehler == DUNKEL) UebergaengeL = UebergaengeL + 1; else if (data[0] > MittelwertL && LZaehler == HELL) UebergaengeL = UebergaengeL + 1; if (data[1] < MittelwertR && RZaehler == DUNKEL) UebergaengeR = UebergaengeR + 1; else if (data[1] > MittelwertR && RZaehler == HELL) UebergaengeR = UebergaengeR + 1; } if (UebergaengeR < UebergaengeL) { RSpeed = RSpeed + 1; LSpeed = LSpeed - 1; StatusLED(RED); } else if (UebergaengeR > UebergaengeL) { RSpeed = RSpeed - 1; LSpeed = LSpeed + 1; StatusLED(GREEN); } else if (UebergaengeR == UebergaengeL) StatusLED(YELLOW); }
Tschüß,
Lunarman







Zitieren

Lesezeichen