PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR Mega16 für Roboter



Phahn
16.10.2007, 15:40
ich hab seit kurzen mit der Programmierung von Assembler angefangen.
Mein Ziel ist ein umfangreiches Programm für einen Roboter zu schrieben, der 3 Modi erfüllen soll.
-;Fernsteuerung durch Funkmodul
-;Linienverfolgung
-;Ausweichmodus

Die Initialisierungen von I/O Ports, Stack-Pointer, Interrupt, Baudrate und ADC hab ich großteils schon verstanden.

Das ich hier kein vollständiges Programm bekomme ist mir klar, will ich eigentlich auch garnicht weil das meine Aufgabe in Form einer Abiturarbeit ist.
Nur aller Anfang ist schwer und jeder der mir ein paar tipps geben kann würde mir sehr helfen.
Vor allem wie ich am besten das Grundgerüst aufbauen kann würde mir sehr helfen.
Die Unterscheidung der verschiedenen Modi (Mehrzahl von Modus!?) kann ich mir noch nicht vorstellen wie das zu machen ist.

danke im voraus,
mfg. Philip

Dolfo
16.10.2007, 19:01
bin nicht sicher ob ich Dein Anliegen verstanden habe. Eine Möglichkeit für den Grundaufbau Deines Programmes ist folgende Struktur:

1. Abfrage des gewünschten Modus und Sprung zur entsprechenden Hauptroutine

2. Hauptroutinen
2.1. Hautproutine Modi 1
2.2. Hauptroutine Modi 2
2.3. Hauptroutine Modi 3

3. Werkzeuge
3.1. z.B. drehe nach links
3.2. z.B. drehe nach rechts
3.3. ...

Den Sprung zur Modiabfrage kann man z.B. über den IRQ machen.

Ist es das, wonach Du gefragt hast?

Gerko
16.10.2007, 22:18
Hallo Phahn

Ich habe in meinem Maturaprojekt eigentlich all das was du machst auch schon gemacht :)
Wir hatten zusätzlich noch einen Annäherungsmodus (wo sich der roboter das nächste ziel sucht) und einen demonstrationsmodus (der eigentlich nur für den Tag der offenen Tür geschaffen wurde, dabei wird jeder modus ca. eine halbe min durchlaufen)

Wir haben den Roboter so aufgebaut das wir vorne ein Stützrad hatten, und hinten 2 Räder mit motoren. Somit war der Roboter sehr wendig.

einen fehler haben wir allerdings gemacht!
wir verwendeten nur einen ultraschallsensor an der vorderseite und sonst nix was die entfernung misst, also kratzte er immer an der Seite gegen irgendwelche gegenstände.

Das Menü am Roboter haben wir einfach so gestaltet das wir einen Taster hatten, mit dem man immer "weiterblättern" konnte, nach ca. 2 sec. startete dann der entsprächende Modus