-
-
Erfahrener Benutzer
Robotik Visionär
Hört sich also nach Hausaufgabe an.
Gerade in ASM hilft es wenig erst mal drauflos zu programieren. Da sollte man erst mal ein genaue Vorstellung davon haben wie das gehen. Also erst mal planen, ggf. auch noch mit Bleistift und papier. Ein Plan für den Programmablauf sollte man schon vorher Aufmalen, vor allem wenn da Problem zu schwer ist um es einfach so runterschreiben zu können.
Das erste Problem wäre die Tastenentprellung. Die einfachste Lösung ist es da die Taste nur alle etwa 2 - 10 ms abzufragen. Das könnte man z.B. per Timer ISR tun. Die Drehung selber sollteman natürlich nicht in der ISR ausführen, denn eine ISR sollte in der Regel kurz sein. Warten auf den Motor ist damit Tabu.
Das Verfahren könnte dann so gehen:
Bei einem Hindernis:
- Dehen um Winkel von 90 Grad oder mehr
- erhöhen des Winkels für die Nächste Drehung um 90 Grad
- nach der Drehung: Timer starten für z.B. 1-2 s (oder etwa 10 cm Weg)
- geradeaus fahren (bis zum nächsten Hinderniss)
Wenn Timer abläuft:
- Winkel für drehung wieder auf 90 Grad zurücksetzen
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen