zurück

Roboter M2 - V3 (Kassiopeia)

Prolog

Am 8.6.03 sollte die Geburtsstunde meines zweiten AMR sein, doch zu diesem zeitpunkt wusste ich noch lange nicht, welche Auswirkungen dieses Projekt auf die nächsten zwei jahre meiner Schulzeit haben sollte.

Anfangs nur ausgerüsstet mit einem Controller des Typs AT4433, welcher simple Aufgaben wie die Motoransteuerung und Objekterkennung mittels einer Hand voll Sensoren übernehmen sollte, nahm das Projekt immer komplexere Züge an. Die Anfangs verwendeten Servomotoren, welche als Antrieb dienten, wurden durch leistungsstärkere Getriebemotoren ausgetausch, die Anzahl der verwendeten Controller wugs stetig an und somit auch der Verwaltungsaufwand und die Übergabe von Messwerten und Befehlen untereinander wurde zu einem Problem.

Gelöst wurde dieses Problem durch die Entwicklung eines eigenen Kommunikationsprotokolls und eines entsprechenden Netwerks, welches natürlich auch für künftige Erweiterungen gerüstet sein sollte. Die Wahl fiel hierbei auf eine sternförmiges Netzwerk, welches ein serielles Übertragungsprotokoll nutzt. Derzeit sind dem Netzwerk allerdings enge Ggrenzen gesetzt, da keine Point-To-Point Verbindung zwischen Controllern aufgebaut werden kann. Ein angeschlossener Client kann nur mit dem Host kommunizieren und hier Daten ablegen/abfragen.

Nachdem wir in der Schule hinreichend über die neuen Bestimmungen zu unserem Abitur informiert worden waren, stand für mich sofort fest, dass ich eine besondere Lernleistung mithilfe meines Roboters, welcher damals nur den schmucklosen Namen M2 hatte, anfertigen würde.

Ein Jahr später war es dann soweit...

Die Anmeldung für meine bes. Lernleistung unter dem Titel "Steuerung eines mobilen Roboters" (PDF (ca. 261 kB)) war abgegeben. Nun gab es kein Zurück mehr.

Das folgende Jahr bestand nun also darin meinem Roboter lauter schöne Sachen bei zu bringen, welche meinem betreuenden Lehrer und den anderen Prüfern derart die Sprache verschlagen sollten, dass sie mir ohne große Worte eine gute Bewertung geben mussten. Motiviert von diesen Vorstellungen, nahmen die Fähigkeiten von M2 immer mehr zu. Die Geschwindigkeit des Netzwerks wurde von 200 kHz auf 4 MHz angehoben (in der Theorie zumindest). Die GameBoy-Kamera wurde eingebaut und funktioniert (relativ) perfekt. Des Weiteren bekam M2 in diesen Tagen auch dank der tatkräftigen Unterstützung eines Freundes seinen endgültigen Namen: KASSIOPEIA

Der große Tag war da. Ich konnte die halbe Nacht nicht schlafen, aber trotzdem war ich top fit und gut gelaunt. Trotz einiger start schwierigkeiten gingen die 20 Minuten Präsentation relativ schnell und locker rum, da alle anwesenden Lehrer gut gelaunt waren und es ihnen viel Spass machte mit Kassiopeia spielten.

Nach bangen Minuten des Wartens kam dann endlich die erlösende Nachricht... 14 Punkte (da ich ihnen ein wenig zu ruhig war). Nach einigen Freudensprüngen und Gratulatioenen dachet ich mir: "so, nun hast du es geschafft und kannst dich auf deinen Lorbeeren ausruhen".

PUSTEKUCHEN!

Einige Wochen später bekomme ich einen Anruf eines Lehrers, welcher mir klar macht, dass ich beim Abi-Ball geehrt werden würde, weil ich im Fachbereich Informatik als bester Schüler abgeschnitten habe und ich solle doch bitte ein kleines Präsentationsvideo vorbereiten, welches dann dort abgespielt werden würde...

Also machte ich mich zusammen mit einem Freund (zwei Tage vor dem Abi-Ball) ans Werk und was dabei rausgekommen ist kann sich wirklich sehen lassen (Video (ca. 11 MB).

Als schließlich am Abend des Abi-Balles das Video gezeigt wurde, wurden meine Erwartungen bei Weitem übertroffen. Nach der Schlussszene war das Publikum nicht mehr zu bremsen. Selbst der Vertreter der Firma Merck, welche die Buchpreise für diese Ehrungen gestifftet hatte, meinte, dass ich ganze arbeit geleistet hätte und er würde mich bei Bedarf auch sofort an deren Informatik-Abteilung weiterleiten.

detailiertere Beschreibung des Roboters

In der derzeitigen Ausbaustufe besteht der Roboter aus fünf Ebenen, wobei die vierte Ebene derzeit ohne Funktion ist... Diesen Ebenen sind verschiedene Funktionen zugeordnet, welche sich wie Folgt aufteilen:

1. Ebene:

Motorplatine

Die erste Ebene ist die unterste Ebene des Roboters und trägt sowohl Motorsteuerung (bestehend aus einem AT4433 und einem L293d Motortreiber-IC) und Moter, als auch sechs Sensoren (vier IR-Distanzsensoren und zwei Bumper). Des Weiteren wird hier die komplette Stromversorgung des Aufgebeut. Diese besteht aus einem NiMh-Akku (4 Zellen = 4,8V bei 1100mAh), einem 3,3V Spannungswandler (für ein Handy-Display, Kamerabeleuchtung und eine MMC- oder SD-Karte) und einem 5W 12V DC/DC-Wandler (zur Bereitstellung der Motorspannung).

2. Ebene:

Videoplatine

Die zweite Ebene trägt eine GameBoy-Kamera, einen ATMega128 zur Verarbeitung der Kamerabilder (er läuft derzeit mit 16 MHz, ich versuche aber ihn auf bis zu 64 MHz hoch zu takten...), ein Handydisplay (auf der Abbildung nicht vorhanden) zur Darstellung der Kamerabilder und der Verarbeitungsschritte. Um den "ungeheuren" Daten Platz zu bieten befindet sich auch ein externer SRAM auf der Ebene, welcher derzeit mit lediglich 64 Kb ausgestattet ist, allerdings sind noch zwei freie Plätze für zusätzliche Speicherchips frei, um den Speicher auch für größere Bilderansammlungen auszubauen.

Geplant ist auch ein zusätzliches Memory-Board, auf welchem sich ausschließlich Speicherbausteine befinden sollen (rechnerisch währen bis zu 16 MB Speicher möglich...).

3. Ebene:

Netzwerkplatine

Die dritte Ebene ist für die Vernetzung aller Ebenen zuständig. Hierzu wird ein ATMega8515 eingesetzt, welcher 12 "Netzwerkanschlüsse" zur verfügung stellt und es den CLIENTS ermöglicht, Daten (8-bit) an 128 Stellen in seinem RAM abzulegen, so dass diese wiederum von anderen CLIENTS abgefragt werden können. Derzeit ist allerdings keine Point-To-Point Verbindung zwischen Controllern möglich. Auf dieser Ebene befinden sich auch die beiden Oszillatoren, welche die beiden Taktfrequenzen (8 und 16 MHz) zur Verfügung stellen, welche über das Flachbandkabel an jeder Ebene verfügbar sind.

Das Protokoll des Netzwekes ist, um den Verdratungsaufwand zu minimieren, seriell aufgebaut und auf einen 3-Draht-Bus angepasst. Dieser besteht aus einer bidirektionalen Datenleitung, einer Datenanfrageleitung (vird vom CLIENT gesetzt, um dem HOST zu signalisieren, dass er Daten lesen/schreiben will), sowie einer globalen Taktleitung, welche ausschließlich vom HOST gesteuert wird. Letztere ist mit jedem Controller verbunden, wohingegen die ersten beiden Leitungen für jeweils einen Controller reserviert sind.

4. Ebene:

Die vierte Ebene ist derzeit noch ohne konkrete Funktion, da der Verwendete Controller (ATMega8515) scheinbar kaputt ist, da dieser sich nicht programmgemäß verhält (Testprogramm, welches die Netzwerkverbindung prüft und Dummy-Werte im HOST ablegt, läuft nicht korrekt ab und bringt das komplette Netzwerk zum abstürzen... Dieses programm hat bisher auf allen Controllern erfolgreich funktioniert). Sobald ein funktionierender Controller verfügbar ist, soll diese Ebene die Navigation des Roboters mithilfe von Triangulation und US-Barken (US = Ultraschall) ermöglichen.

5. Ebene:

Displayplatine

Die fünfte Ebene trägt ein zweizeiliges Display, auf welchem mithilfe einer kleinen Tastatur (Hoch, Runter, Eingabe), ein kleines Menü bedient werden kann, über welches man grundlegende Funktionen des Roboters steuern kann (Controller in verschiedene Modi setzen) und Datenübertragungen mitverfolgen kann. Dies wird über einen AT4433 gesteuert.

Das Verbindungskabel:

Über das Verbindungskabel werden all die Signale und Spannungen weitergeleitet, die nahezu auf allen Ebenen benötigt werden. Hierzu zählen zum Einen die Betriebsspannungen von +5V, die Hilfsspannung +3,3V (für Handydisplay und MMC-/SD-Karte) und die Masse. Zum Anderen natürlich auch die zwei Taktfrequenzen von 8 bzw. 16 MHz und die Taktleitung des Netzwerks. Diese sind natürlich versetzt angeordnet und jeweils durch eine Masseleitung voneinander getrennt angeordnet, um eventuelle Störsignale der anderen Taktleitungen zu verhindern.

Ursprünglich war auch geplant die Netzwerkverbindungen über dieses Kabel zu verlegen, aber aufgrund der großen Anzahl an Verbindungen ist der Platz auf dem Kabel nicht ausreichend. Des Weitern ist diese Lösung aus ergonomischen Gründen nicht sinnvoll...