
| Was ist PPS ? |
PPS ist die Abkürzung für Projekte, Praktika und Seminare. Diese werden von den Studenten der Abteilung D-Elek der ETH Zürich im Grundstudium besucht.
Im Rahmen dieses PPS, das von den verschiedenen Instituten angeboten wird, können sich die Studierenden verschiedenste Fertigkeiten im Bereich der Elektronik
aneignen. Sei es nun ein Projekt zu planen, eine Arbeit zu schreiben oder eine Präsentation auszuarbeiten. In diesem Unterrichtsblock wird vor allem selbstständiges
Arbeiten, sowie die Teamarbeit der Studierenden gefördert. Im PPS "Lego Mindstorms", das vom Institut für technische Informatik und Kommunikationsnetze angeboten wird, konstruieren wir aus Lego einen Roboter, der gegen einen Menschen 4-Gewinnt spielt. |
Was ist Lego Mindstorms ?
|
Inzwischen hat wohl schon jeder etwas von Lego Mindstorms gehört, dem programmierbaren Legobaustein, der, obwohl erst seit Ende 1999 in Europa erhältlich, bereits über eine riesige Fangemeinde verfügt. Dies beweisen die zahlreichen Homepages zum Thema "Lego Mindstorms". Der RCX-Baustein, so nennt sich der kleine Computer, verfügt über ein eigenes Betriebssystem. Dieses lässt sich sowohl mit einer speziell für Kinder entwickelten, als auch einer C-ähnlichen Programmiersprache (für anspruchsvollere Anwendungen wie z.B. ein 4-Gewinnt) vom PC aus programmieren. Mit den verschiedenen Sensoren (Lichtsensor, Berührungssensor, Drehsensor, Temperatursensor, Zeitgebersensor, Countdownsensor, Zählersensor) und Motoren kann man den Roboter steuern. All diese Bauteile sind beliebig mit den bisherigen Legobausteinen kombinierbar. So entstehen laufend neue, immer verrücktere Maschinen und Gefährte. Gerade durch die Tatsache, dass der Möglichkeiten von Lego Mindstorms fast keine Grenzen gesetzt sind, wird es immer häufiger auch von Schulen und Universitäten für Projekte verwendet. |
| Unsere Projektaufgabe |
Unsere anfängliche Projektaufgabe war, einen Roboter zu konstruieren, der das Spiel TicTacToe
beherrschen sollte. Die von unserem Kursleiter Eckart Zitzler definierte Ausgangslage fand jedoch nicht bei allen hellen Anklang, was zu einer neuen Idee führte: Wir bauen einen Roboter, der das interessantere und umfangreichere Spiel '4 Gewinnt' implementiert hat. Dabei soll ein fahrbarer Roboter und ein realer Spieler vor einem normalen Spielbrett sich das Duell liefern. Der Computer analysiert das Spielgeschehen, berechnet seine optimalsten Züge. und erkennt einen Zug des vitalen Gegners. Soweit die neu gesetzte Projektaufgabe. |
| Die Gruppenaufteilung und deren Aufgaben |
Um unser Projekt erfolgreich durchführen zu können, haben wir uns in 4 Gruppen aufgsplittet:
Die Kreativen erstellen eine WebSite zwecks Online-Information und stellen ein Internet-Forum zur Verfügung der Projektteilnehmer, um die Kommunikation zwischen den einzelnen Gruppen zu fördern. Die Superhirne beschäftigen sich mit der Software im Bereich der Spielstrategie und implementieren damit das 'Gehirn' unseres Roboters. Die Hacker beschäftigen sich mit der Zugerkennung und implementieren die Schnittstellen. Schlussendlich sind die Tüftler die Kostrukteure des eigentlichen Lego-Roboters. Dazu gehört der fahrbare Wagen, ein Greifarm oder ein Förderband und ein Trichter, um die Steine am richtigen Ort fallen zu lassen. |
| Der Projektstart |
Es galt nun, die ersten Gedanken und Pläne zu schmieden, wie das ganze aussehen sollte.
Da gab es die kühnsten Ideen, wie zum Beispiel eine Online-Internetanbindung mit LiveCam,
was nicht unmöglich, jedoch den Rahmen dieser Veranstaltung gesprengt hätte.
So tauschten die einzelnen Gruppen ihre Vorstellungen über das Projekt gegenseitig aus und dies führte zum nächsten Schritt,
und zwar zum Zeitplan. Es wurden 5 Wochen für ein standhaftes Konzept festgelegt, in dem zum Beispiel die gruppenübergreifenden Schnittstellen definiert werden sollten. Anschliessend wurden 4 Wochen für die Konstruktion und die Implementierung der Software eingeräumt. Bis zur Deadline der Abschlusspräsentation blieben also noch 3 Wochen, welche für Debugging, Tests und Änderungen reserviert waren. |
| Das Konzept |
Wir machten uns nun Gedanken über die physische und das funktionale Erscheinen unseres
Roboters. Die Tüftler überlegten sich verschiedene Konstruktionsarten, wobei man sich
dann darauf einigte, dass ein Wagen mit einem Greifer die Aufgabe lösen sollte.
Da der RCX-Roboter zu wenig genau fährt, müssen Tastsensoren die Positionierung übernehmen. Dies war die Aufgabe der Hacker, welche sich fortan mit diesem Thema arg beschäftigten. Auch haben sie ein Konzept ausgearbeitet, das das Herunterfallen der Steine mittels Lichtschranken festgestellt werden kann. Ein fertiges 4 Gewinnt-Spielfeld wurde gekauft. |
Die Realisierung eines Prototypen
|
In Anbetracht dessen, dass ein fertiges Spielfeld benutzt werden sollte, setzte auch voraus,
dass sich der RCX-Wagen horizontal bewegen würde und die Steine irgendwie in die Spielfeldschlitzen
fallen würden. Dabei präsentierten die Tüftler zwei Varianten: Das RCX sollte auch auf Schienen fahren, da es ohne diese zu ungenau fuhr. Die Hacker entwickelten eine 'Steinerkennung' mit 7 analogen Lichtschranken, welche mit einem D/A-Wandler ein digitales Signal dem Computer zurückgeben konnte. Die Tüftler entwickelten verschiedene Prototyp-Module. Ein Greifarm und ein Förderband entstanden daraus. Diese zeigten sich jedoch nicht so geeignet für die Ausführung des Computerzuges. So entstand als Auswerfmechanismus ein grosses Magazin, wo die Steine des Computers aufbewahrt werden. Für den Auswurf wurde ein patentiertes Modell mit Zahnräder und geheimer Konstruktion gebastelt, welches dann auf einem Wagen hin und her bewegt werden konnte. Dies sah dann schon sehr zuversichtlich aus, was auch die Genauigkeit und Treffsicherheit des Roboters anbelangte. Schliesslich sind die Öffnungen des Spielbrettes relativ klein. In Zusammenarbeit mit den Tüftlern, haben die Hacker eine funktionstüchtige Zugerkennung fertiggestellt und der Prototyp war vollständig. In dieser Zeit hatten die Hirne ein funktionstüchtiges Programm in Visual-Basic erstellt. Dieses enthielt den eigentlichen Algorithmus des Spieles, also Spielsuche, Spielregeln, Ablauf des RCX, usw. |
Die Testphase
![]()
|
Und nun kam die Vereinigung der geleisteten Arbeit der einzelnen Gruppen. Dank einer langen
Konzeptphase, bei der viel diskutiert und getüftelt wurde, aber auch klare Schnittstellen
definiert wurden, klappte ein erster Testversuch schon nach wenigen Minuten. Hier kamen dann nach und nach die verschiedenen Bugs zum Vorschein, welche wir innerhalb von drei Wochen zu beseitigen hatten. Dazu kamen noch ein paar "Goodies", welche wir für die Präsentation einbauen wollten. So sollte zum Beispiel eine Melodie erklingen, wenn jemand gewinnt. Auch sollte das Spielfeld auf dem Computermonitor grafisch dargestellt werden. Zu den Bugs: |
| Die Präsentation |
Nun, es gab doch noch einige Bugs zu beseitigen. Der Magazinauswurf wurde verbessert,
damit er nicht mehr klemmte, das RCX wurde mit einem Gummibändel ausgerüstet, damit der
Tastsensor besser funktionierte, die Software wurde weiter debuggt...![]() Bis am Freitag war dann alles so weit so gut. Das Projekt schien erfolgreich zu enden, das 4 Gewinnt liess sich recht gut und zuverlässig spielen. Als am Montag eine Stunde vor der Präsentation die allerletzten Bugs aus der Welt geschaffen wurden, funktionierte gar nichts mehr! Der Computer spuckte Fehlermeldungen aus, plötzlich stürzte alles ab ... Durch eifriges und gestresstes "engineering" gelang es uns jedoch, den Roboter für die Präsentation fit zu machen und es wurde doch noch eine geglückte Vorstellung. |
Zuletzt geändert: 28.6.2000