-
-
Hallo!
Kann sein, dass ich mich falsch ausgedrückt habe.
Meine Frage war, wie man ein Programm entwerfen kann, damit beide Räder mit gleicher Geschwindigkeit laufen. Dazu werden die Gesamtdrehzahlen des linken und des rechten Rades ausgelesen (durch die Odometrie an den jeweils 1. großen Zahnrädern) und in zwei Zählervariablen (jeweils für das linke und rechte Rad) gespeichert. Da das rechte Rad immer mit konstanter Geschwindigkeit läuft, muss sich das linke Rad nach der Geschwindigkeit des rechten richten. Dafür werden die Variablen verglichen, um so den Unterschied festzustellen. Ist die Zahl der Variable des linken Rades größer als die des rechten, muss die Drehzahl des linken Rades verringert werden ansonsten vergrößert werden.
Mir scheint es so, als wenn du die Funktion OdometrieData() nicht ganz richtig verstanden hast, weil in der Anleitung steht, dass data[0] und data[1] einen Wert von minimal 0 (sehr dunkel) bis maximal 1023 (sehr hell) von der Odometriescheibe (die mit dem schwarz-weiß dreiecken im Kreis) rausschmeisst.
Außerdem habe ich einen Fehler bei den Zählervariablen gemacht, weil, wenn sich die Räder drehen, werden die Zählervariablen um 1 erhöht, und wenn man den Roboter lange genug laufen lässt, könnten die Zählervariablen zu groß werden. D.h. dass die Zählervariablen bloß bis zu einem bestimmten Wert gehen dürfen. Dazu darf eigendlich die Zählervariable der Drehzahl des rechten Rades bloß z.B. bis 10 gehen und dann müssen beide Zählervariablen (des linken und des rechten Rades) wieder bei 0 anfangen. So könnte man jetzt immer weiter rumexperimentieren...
Ich experimentier jetzt mal ein bisschen.
MfG julien
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen