DES WPU-KURSES - Wernher von Braun Schule
DES WPU-KURSES - Wernher von Braun Schule
DES WPU-KURSES - Wernher von Braun Schule
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
PROJEKTABSCHLUSSBERICHT<br />
<strong>DES</strong> <strong>WPU</strong>-<strong>KURSES</strong><br />
„ROBOTER PLANEN, KONSTRUIEREN UND PROGRAMMIEREN“<br />
an der <strong>Wernher</strong>-<strong>von</strong>-<strong>Braun</strong>-<strong>Schule</strong> (Neuhof)<br />
NXT-Räumroboter „Winterstar“<br />
The Rotations (Teamnr. 2)<br />
Neuhof, den 18.05. 2010
Inhaltsverzeichnis<br />
1 DAS TEAM ............................................................................................................................... 2<br />
2 EINLEITUNG ............................................................................................................................ 3<br />
3 PROJEKTPLANUNG ............................................................................................................... 3<br />
4 PROJEKTABLAUF .................................................................................................................. 4<br />
5 PROJEKTERGEBNIS ............................................................................................................ 22<br />
5.1 Roboterwelt ....................................................................................................................... 22<br />
5.2 Roboterkonstruktion .......................................................................................................... 23<br />
5.3 Programmierung ............................................................................................................... 26<br />
6 REFLEXION ........................................................................................................................... 29<br />
6.1 Reflexion der Problemstellung .......................................................................................... 29<br />
6.2 Reflexion des Projektmanagements und der Teamarbeit .................................................. 29<br />
6.3 Reflexion des Projektziels ................................................................................................. 30<br />
7 ENTLASTUNG PROJEKTTEAM ........................................................................................... 32<br />
8 ANHÄNGE ............................................................................................................................. 33<br />
9 QUELLENVERZEICHNIS ...................................................................................................... 33<br />
Seite 1
1 DAS TEAM<br />
David Wehner<br />
Teamleiter<br />
Protokollant<br />
Programmierung<br />
Carsten Betz<br />
Programmierung<br />
Jan Staubach<br />
Konstruktion<br />
Jakob Brehler<br />
Konstruktion<br />
Seite 2
2 EINLEITUNG<br />
Da sich unsere Gruppe zuvor mit dem Rotationssensor beschäftigt hatte, stand natürlich fest, dass unser Projekt<br />
auf diesem Sensor basieren sollte. Bei den vorausgegangenen Versuchsreihen stellte sich heraus, dass<br />
der Rotationssensor besonders dafür geeignet war, den Roboter geradeaus fahren und in einem genau festgelegten<br />
Winkel drehen zu lassen. Wir überlegten uns also ein Projekt, bei dem der Roboter genau dies machen<br />
sollte. Ein Räumroboter, der in einem rechteckigen Raum operiert, schien dafür geeignet. Schließlich<br />
muss der Roboter beim Durchfahren des Raums genau geradeausfahren und sich genau drehen können, um<br />
sich orientieren zu können.<br />
Ein Räumroboter, der beim Durchfahren eines rechteckigen Raumes Teile aufnimmt und diese dann in eine<br />
Art Ablagecontainer befördert, weckte das Interesse aller Gruppenmitglieder. Aus dieser Idee wurde das Minimalziel,<br />
da in der Realität eine Art Aufräumroboter durchaus das Kaufinteresse einer größeren Kundengruppe<br />
wecken könnte. Die für das Minimalziel nötigen Kenntnisse für die Programmierung waren bereits beim<br />
Durchführen der Versuchsreihen und dem vorherigen Informatikunterricht erworben worden. Aus Sicht der<br />
Programmierer war das Minimalziel also überschaubar.<br />
Auch die Roboterkonstrukteure Jakob und Jan fühlten sich in der Lage, einen geeigneten Roboter zu bauen.<br />
Hierzu planten sie, eine völlig eine neue Konstruktion zu errichten. Die Fähigkeiten dafür hatten sie bereits<br />
beim Durchführen der Versuchsreihen unter Beweis gestellt, da sie hier schon den TriBot an verschiedensten<br />
Stellen erfolgreich modifizierten, was den Roboter zum Beispiel im Punkt Stabilität sehr verbesserte.<br />
Als erweiterte Herausforderung setzten wir uns das Ziel, dass der Roboter die Teile, die er beim Durchfahren<br />
des Raumes aufnimmt, anhand <strong>von</strong> bestimmten Eigenschaften wie zum Beispiel der Farbe zuordnen kann.<br />
Es wurde prognostiziert, dass die Erfüllung des Maximalziels nochmals besonders die Kompetenzen der Programmierer<br />
Carsten und David erfordert, da zum Beispiel dafür der Umgang mit einem weiteren Sensor (vermutlich<br />
dem Farbsensor) vorausgesetzt wird.<br />
3 PROJEKTPLANUNG<br />
Am Anfang des Projekts wurden zunächst ein Gruppenführer und ein Protokollant bestimmt. Für beide Tätigkeiten<br />
erklärte sich David gerne bereit. Dieser hatte nun die Aufgabe, die Aufgaben in der Gruppe zu verteilen,<br />
die Tagesberichte und schließlich den Projektabschlussbericht zu schreiben.<br />
Die Zuständigkeiten in der Gruppe wurden ebenfalls am Anfang des Projekts geklärt. Hierbei wurde die Gruppe<br />
in zwei Trupps aus je zwei Gruppenmitgliedern eingeteilt. Der erste Trupp wurde <strong>von</strong> Carsten und David<br />
gebildet. Beide machten es sich zur Aufgabe, die nötigen Programmcodes für den Roboter zu schreiben.<br />
Seite 3
Der zweite Trupp bestand aus Jakob und Jan. Diese bekamen die Aufgabe, den Roboter nach den Anforderungen<br />
des zu erfüllenden Ziels zu konstruieren. Natürlich wurde festgelegt, dass beide Trupps „Hand in<br />
Hand” zusammenarbeiten.<br />
Damit jeder wusste, was genau zu tun war, wurden in Gruppengesprächen, bei dem jedes Gruppenmitglied<br />
beteiligt war, festgelegt, welche Anforderungen an den jeweiligen Trupp gestellt werden. Hierbei wurde auch<br />
über neue Ideen und Konzepte diskutiert und teilweise sogar abgestimmt.<br />
4 PROJEKTABLAUF<br />
Dienstag, 19.01.10<br />
An diesem Tag haben wir den Sensor ausgewählt, mit dem wir uns in den<br />
nächsten Wochen beschäftigen werden. Es handelt, sich dabei um den<br />
Rotationssensor. Außerdem wurden organisatorische Dinge innerhalb der<br />
Gruppe geklärt. Außerdem wurden der Gruppenleiter und der Protokollant<br />
bestimmt. Für beide Angelegenheiten erklärte sich David bereit.<br />
Als Ziel für die nächsten Unterrichtsstunden setzten wir uns, Informationen<br />
über den Rotationssensor zu sammeln und Überlegungen über eine Versuchsreihe<br />
mit dem Sensor anzustellen.<br />
Freitag, 22.01.10<br />
Dienstag, 26.01.10<br />
Die Informatikstunde konnte auf Grund eines innerschulischen Volleyballturniers<br />
nicht stattfinden.<br />
Das primäre Ziel an diesem Tag bestand darin, dass sich alle Gruppenmitglieder<br />
über den Rotationssensor der NXT-Motoren informieren. Hierbei<br />
nutzten wir die betreffende Lektion des NXC-Tutorials, die uns Herr Dietrich<br />
zur Verfügung gestellt hatte. Jan demontierte währenddessen den vor dem<br />
neuen Unterrichtsprojekt gebauten Roboter, damit uns alle Teile umstandslos<br />
zur Verfügung standen. Außerdem wurden schon erste Überlegungen<br />
über einen Versuch mit dem Rotationssensor angestellt. Die Grundidee<br />
war, den Robotermotor mithilfe eines Stiftes verschieden große Winkel<br />
exakt auf ein Blatt Papier zeichnen zu lassen. Mithilfe dieses Versuchs<br />
sollte es möglich sein herauszubekommen, wie genau man mit dem Rotationssensor<br />
arbeiten kann.<br />
Für Überlegungen über den tatsächlichen Versuchsaufbau und die Versuchsdurchführung<br />
reichte die Zeit allerdings nicht aus. Dies setzten wir<br />
Seite 4
uns aber für die nächste Stunde zum Ziel. Außerdem sollte Jakob, der an<br />
diesem Tag erkrankt war, über den Fortlauf des Projekts unterrichtet werden.<br />
Freitag, 29.01.10<br />
Dienstag, 02.02.10<br />
Freitag, 05.02.10<br />
Dienstag, 09.02.10<br />
Die Informatikstunde konnte auf Grund der Zeugnisvergabe für das erste<br />
Halbjahr nicht stattfinden.<br />
Die Informatikstunde konnte auf Grund eines Studientages nicht stattfinden.<br />
Zu Beginn der Stunde gab uns Herr Dietrich zwei verschiedene Fragestellungen<br />
zum Rotationssensor. Heute versuchen, wir den Abschnitt in unserem<br />
vorgegebenen Tutorial "Mehr über Motoren" herauszusuchen, der uns<br />
bei der Beantwortung der ersten Frage "Wie hoch ist die erzielte Motorengenauigkeit<br />
bei einer vorgegebenen Anzahl <strong>von</strong> Umdrehungen" helfen<br />
soll. Hierbei konnten wir schon einiges über die Programmierung und die<br />
Genauigkeit des Rotationssensors herausfinden. In der nächsten Stunde<br />
wollen wir einige Versuche durchführen, um die Genauigkeit des Rotationssensors<br />
zu überprüfen. Auch genauere Ideen zu diesen Versuchen werden<br />
wir uns in der nächsten Stunde einfallen lassen.<br />
Heute wollten Carsten und David einen Versuch mit dem Rotationssensor<br />
durchführen. Ziel war es, den Roboter eine bestimmte Wegstrecke (in diesem<br />
Fall 2 m) fahren zu lassen. Nach der Ermittlung des Reifenumfangs<br />
konnten wir die benötigte Umdrehungszahl und den exakten Drehwinkel<br />
berechnen. Die errechneten Daten fügten wir dann in den Programmcode<br />
ein, den wir schließlich in den Roboter einspeisten. Hierbei trat das Problem<br />
auf, dass der Roboter die doppelte Wegstrecke abfuhr, obwohl die vorherige<br />
Rechnung auch nach mehreren Kontrollen korrekt erschien. Wir nahmen<br />
uns vor, den Grund für das Problem in der nächsten Stunde zu ermitteln.<br />
Währenddessen machten Jan und Jakob den Roboter fahrtüchtig, damit wir<br />
den Versuch ordnungsgemäß durchführen konnten. Auch installierten sie<br />
vorsorglich zwei Berührungssensoren, die uns eventuell bei späteren Versuchen<br />
nützen könnten. Allerdings konnte beim Bau des Roboters ein Problem<br />
bis zum Ende der Stunde nicht gelöst werden. Die Stabilität des Heckfahrwerks<br />
war unzureichend. Diesem Problem wollten sie sich aber in der<br />
Seite 5
nächsten Stunde widmen.<br />
Freitag, 12.02.10<br />
An diesem Tag hatten Carsten und David vor, das Problem mit der doppelten<br />
Fahrstrecke des Roboters zu Iösen. Doch schon nach kurzer Zeit fanden<br />
wir heraus, dass uns ein Fehler bei der Ermittlung des Radumfangs<br />
unterlaufen war. Zusätzlich fanden wir heraus, dass der genaue Umfang<br />
bereits auf jedem Rad verzeichnet ist. Nach dem Einsetzen des neuen Wertes<br />
in die Rechnung stimmte die Lösung. Das Problem war damit gelöst.<br />
Für die nächste Stunde nahmen wir uns vor, den Versuch auch in schriftlicher<br />
Form abzuschließen.<br />
Jakob und Jan verstärkten inzwischen das Heck und die bereits installierten<br />
Berührungssensoren des Roboters. Für die nächste Stunde nahmen sich<br />
beide vor, weitere Schwachstellen am Roboter zu suchen und diese zu<br />
beseitigen.<br />
Dienstag, 16.02.10<br />
Heute haben Carsten und David den Versuch, den die Gruppe in den letzten<br />
Stunden bearbeitet hatte, verschriftlicht.<br />
Danach überlegten wir uns weitere Fragen, mit denen wir uns in den nächsten<br />
Stunden beschäftigen werden. Die nächsten Frage, mit der wir uns<br />
näher befassen werden, lautet: "Hat die Reibung, die bei der Fahrt auf dem<br />
Boden entsteht, Auswirkungen auf die Genauigkeit des Motors"<br />
Derweil modifizierten Jan und Jakob nochmals das Heckfahrwerk. Dadurch<br />
konnte der Roboter auch kleinere Hindernisse überwinden. Zuvor blieb das<br />
Heckfahrwerk bei Hindernissen wie einer Kante auf dem Boden meistens<br />
hängen, sodass der Roboter sich festfuhr. Für die nächste Stunde planten<br />
sie, Carsten und David bei ihren Arbeiten mit dem neuen Projekt zu unterstützen.<br />
Freitag, 19.02.10<br />
Am heutigen Tag haben David und Jan die schriftliche Form unserer Versuchsreihe,<br />
der wir uns in den letzten Stunden gewidmet hatten, noch etwas<br />
ergänzt. Durch die endgültige Fertigstellung des Dokuments konnten<br />
wir unsere erste Versuchsreihe abschließen. Für die nächsten Stunden<br />
nahmen wir uns nun vor, eine weitere Versuchsreihe aufzustellen. Die Frage<br />
dazu sollte lauten: "Hat die Reibung, die bei der Fahrt auf dem Boden<br />
Seite 6
entsteht, Auswirkungen auf die Genauigkeit des Motors" Jakob traf bereits<br />
Vorbereitungen für die nächste Versuchsreihe. Er stellte sicher, dass die<br />
dafür eventuell nötige Demontierung eines Motors möglichst einfach sein i<br />
sollte.<br />
Carsten konnte heute auf Grund einer Sportverletzung am Schulunterricht<br />
nicht teilnehmen. In der nächsten Stunde wird er die Gruppe wieder tatkräftig<br />
bei der Arbeit unterstützen.<br />
Dienstag, 23.02.10<br />
Freitag, 26.02.10<br />
Dienstag, 02.03.10<br />
In der heutigen Stunde besprachen wir nochmals kurz unser Dokument<br />
über den ersten Versuch, sodass wir es nun drucken und in der Mappe<br />
abheften können. Danach überlegten wir uns für unseren zweiten Versuch<br />
die genauere Durchführung. Einerseits soll der Roboter seine Reifen dreimal<br />
in der Luft drehen, andererseits soll er am Boden stehen und dabei<br />
direkt an einer Wand die Reifen antreiben. Dadurch wollen wir herausfinden,<br />
ob die Reibung des Bodens irgendeine Auswirkung auf die Arbeit des<br />
Rotationssensors hat. Unseren Plan über die Durchführung der Versuchsreihe<br />
halten wir schriftlich fest. In der nächsten Stunde möchten wir den<br />
Versuch durchführen.<br />
Heute haben Carsten und David die Versuchsreihe durchgeführt und angefangen,<br />
diese zu verschriftlichen. Jakob und Jan assistierten uns hierbei.<br />
Für die nächste Stunde haben wir geplant, die schriftliche Form unserer<br />
zweiten Versuchsreihe abzuschließen. Außerdem wollen wir uns schon die<br />
ersten Gedanken über unser Projekt mit dem Roboter machen.<br />
Heute haben Carsten und David die schriftliche Form unseres zweiten Versuches<br />
beendet. Hierbei fügten wir noch den Programmcode ein und<br />
schrieben eine Antwort auf die Frage: "Hat die Reibung, die bei der Fahrt<br />
auf dem Boden entsteht, Auswirkungen auf die Genauigkeit des Motors<br />
Als nächstes wollen wir unsere vorläufig letzte Versuchsreihe bearbeiten,<br />
die die Frage "Wie genau kann sich der Roboter um einen bestimmten<br />
Winkel (z. B. 90 Grad) drehen" behandelt. Hierzu stellten wir bereits erste<br />
Überlegungen an. Konkretere Ideen werden im nächsten Tagesbericht folgen.<br />
Auf jeden Fall stand fest, dass wir das Programm für das exakte Be-<br />
Seite 7
fahren einer bestimmten Kurve sicherlich noch öfter wie zum Beispiel für<br />
unser späteres Projekt brauchen würden. In der nächsten Stunde werden<br />
wir unsere Ideen über die Durchführung unserer dritten Versuchsreihe konkretisieren.<br />
Jakob und Jan haben derweil nach einem Projekt gesucht, das wir nach<br />
den Osterferien bearbeiten werden. Eine Idee war zum Beispiel eine Putzmaschine,<br />
bei der der Rotationssensor dabei helfen kann, den Roboter<br />
genau geradeaus fahren zu lassen. In den nächsten Stunden werden die<br />
beiden weitere Ideen für unser Projekt sammeln.<br />
Während der Stunde gab es einige Komplikationen mit dem Roboter. Bei<br />
seiner Inbetriebnahme traten technische Probleme auf. Durch ein Versehen<br />
aktivierte Jan den sogenannten SAMBA-Modus über das Bricx-Command-<br />
Center. Dies hatte zur Folge, dass der Bildschirm des NXT-Bausteins ausfiel<br />
und weder auf Tastendruck noch auf Eingaben durch den Computer<br />
ansprach. Zusammen mit Herrn Dietrich konnte das Problem aber relativ<br />
schnell behoben werden, indem das Betriebsprogramm des NXT-Bausteins<br />
durch ein Tool <strong>von</strong> John Hansen, dem Verfasser und Verfechter <strong>von</strong> NXC,<br />
ersetzt wurde.<br />
Freitag, 05.03.10<br />
Heute haben sich Carsten und David mit dem Versuch, der die Frage "Wie<br />
genau kann sich der Roboter um einen bestimmten Winkel (z. B. 90 Grad)<br />
drehen" behandelt, beschäftigt. Dazu maßen wir den Radstand unseres<br />
Roboters, der in einem fiktiven Kreis den Radius darstellt. Durch den Radius<br />
können wir also nun den Umfang dieses Kreises berechnen. Der Roboter<br />
soll hierbei nur einen Reifen antreiben und ein Viertel des Umfangs abfahren.<br />
Dadurch dürfte er sich um exakt 90 Grad drehen. Dies wollen wir in<br />
der nächsten Stunde ausprobieren. Zusätzlich erklärte uns Herr Dietrich,<br />
dass ein Roboter die vorgegebene Anzahl Radumdrehungen nicht ganz<br />
genau umsetzen kann. Dies konnten wir mithilfe des Bricx-Command-<br />
Centers feststellen. Der Roboter drehte die Räder immer um ein paar Grad<br />
zu viel. Ein Grund dafür könnte zum Beispiel sein, dass die Räder sich auf<br />
Grund des Trägheitsprinzips noch weiterdrehen, obwohl der NXT-Baustein<br />
die Motoren bereits gestoppt hat.<br />
Seite 8
Jakob und Jan suchten während der Stunde im Internet weite Ideen für<br />
unser Projekt. Es fiel ihnen allerdings sehr schwer, geeignete Ideen zu finden,<br />
da sie ausschließlich Projekte fanden, die Anzahl und Art der uns zur<br />
Verfügung stehenden LEGO-Teile bei weitem übersteigen. Trotzdem werden<br />
sie in der nächsten Stunde weiter nach Ideen für das Projekt suchen.<br />
Dienstag, 09.03.10<br />
Heute haben Carsten und David den dritten Versuch fortgeführt. Wir notierten<br />
unsere Ideen und rechneten aus, um wie viel Grad sich der Reifen des<br />
Roboters drehen muss, damit sich der Roboter um genau 90 Grad dreht.<br />
Wir versuchten, die ermittelten Daten in den Programmcode einzufügen.<br />
Beim Abspielen des Programms trat allerdings ein unerwartetes Problem<br />
auf. Wie in den anderen Versuchen zuvor wollten wir auch hier die Funktion<br />
"RotateMotorEx" anwenden. Allerdings fanden wir heraus, dass diese Funktion<br />
nur für das Ansteuern <strong>von</strong> zwei Motoren geeignet ist. Wir müssen also<br />
nun eine andere Funktion finden. Dies wollen wir in der nächsten Stunde<br />
herausfinden.<br />
Jakob und Jan suchten derweil nach weiteren Ideen für unser Projekt. Auch<br />
heute fiel es ihnen auf Grund mangelnder LEGO-Teile schwer, geeignete<br />
Ideen für das Projekt zu finden. Zumindest konnten weitere Ideen für den<br />
Projektvorschlag "Putzroboter" gesammelt werden. Allerdings entschieden<br />
wir uns, noch weiter nach Ideen zu suchen. Dies nahmen sich Jan und<br />
Jakob für die nächste Stunde vor.<br />
Freitag, 12.03.10<br />
Am heutigen Tag erklärte Herr Dietrich zunächst allen Gruppen, dass bis zu<br />
den Osterferien eine Projektidee feststehen solle. Hierzu wies er uns auf<br />
den richtigen Aufbau des Projektes und dessen Management hin. Wir bekamen<br />
also nun den Auftrag, innerhalb der nächsten zwei Wochen einen<br />
Projektauftrag anzufertigen. Den Beginn der Anfertigung eines Projektauftrages<br />
schoben wir heute erst einmal auf, da unsere beiden Gruppenmitglieder<br />
Jakob und Jan erkrankt waren und deshalb an der Informatikstunde<br />
nicht teilnehmen konnten und auch noch keine feste Idee für das Projekt<br />
feststand. Außerdem benötigte unsere Versuchsreihe noch etwas Arbeit.<br />
Deshalb widmeten wir uns wieder dem dritten Versuch. Während Carsten<br />
Seite 9
versuchte, eine geeignete Funktion für den Programmcode des Roboters<br />
herauszusuchen, beschäftigte sich David mit den vorher berechneten Werten<br />
und überprüfte diese auf Fehler. Tatsächlich fand er eine Unregelmäßigkeit,<br />
die er in der nächsten Stunde beheben will.<br />
Carsten sah die Funktion "RotateMotor" als geeignet an. Zusammen mit<br />
David wird er den Versuch in der nächsten Stunde fortführen.<br />
Dienstag, 16.03.10<br />
Heute haben Carsten und David das Ergebnis unserer dritten Versuchsreihe<br />
korrigiert. Die vorher errechnete Lösung bezweckte, dass sich der Roboter<br />
um weniger als 90 Grad dreht. Dies entsprach allerdings nicht unseren<br />
Vorstellungen. Nach dem Überprüfen der Rechnung bemerkten beide, dass<br />
sie den Radstand des Roboters als Durchmesser des fiktiven Kreises verwendet<br />
hatten. Richtig war es allerdings, den Radstand als Radius des<br />
Kreises zu benutzen. Nach dem Einsetzen des neuen Wertes in die Rechnung<br />
und dem Erstellen eines neuen Programmcodes drehte sich der Roboter<br />
um exakt 90 Grad. Damit hatten wir unser Ziel erreicht. Dies war vermutlich<br />
auf Grund <strong>von</strong> Zeitmangel unsere letzte Versuchsreihe. Allerdings<br />
konnten Carsten und David die schriftliche Form der dritten Versuchsreihe<br />
nicht abschließen, was sie sich allerdings für die nächste Stunde vornahmen.<br />
Jan und Jakob fertigten heute einige Skizzen zu unserem Projekt an. Wir<br />
einigten uns heute tatsächlich auf einen Kehr- oder Reinigungsroboter.<br />
Beide überlegten sich den genaueren Aufbau des Roboters. Außerdem<br />
stand die Frage, ob es sich bei dem Reinigungsaufsatz um einen Besen<br />
oder einen Räumschild handeln sollte, im Raum. Wir einigten uns zunächst<br />
auf den Räumschild. Allerdings könnte sich dies natürlich im Laufe des<br />
Projekts noch ändern. Zudem besprachen wir auch mit Herrn Dietrich unsere<br />
Idee. Er gab uns zusätzliche Vorschläge für das Projekt. Zum Beispiel<br />
solle der Roboter fähig sein, den aufgesammelten "Abfall" in eine Art Container<br />
zu befördern. Diese Idee werden wir uns im Hinterkopf behalten.<br />
Jakob und Jan nahmen sich für die nächste Stunde vor, den Projektantrag<br />
ordentlich auszufüllen und den Roboter vollständig zu demontieren.<br />
Seite 10
Freitag, 19.03.10<br />
Heute haben Carsten und David die schriftliche Form unserer dritten Versuchsreihe<br />
komplett verschriftlicht. Das Dokument ist in der nächsten Stunde<br />
in unserer Projektmappe zu finden. Damit haben wir die Versuchsreihen<br />
abgeschlossen und damit den Grundstein für unser kommendes Projekt<br />
gelegt. Jan hat heute den Roboter fachgerecht demontiert und die Teile in<br />
den Legobaukasten einsortiert. Dadurch stellte er einen reibungslosen späteren<br />
Wiederaufbau des Roboters sicher.<br />
Jakob füllte währenddessen den Projektantrag aus. Hierbei überlegte er<br />
sich sowohl den Namen des Teams und den Namen des Roboters. Die<br />
genauen Ziele des Projektes, also Minimal- und Maximalziel, konnte er<br />
noch nicht notieren, da dies weitere Überlegungen benötigt. Diese Überlegungen<br />
wird die Gruppe in der nächsten Stunde sowohl zusammen als<br />
auch einzeln anstellen.<br />
Dienstag, 23.03.10<br />
Am heutigen Tag hat die gesamte Gruppe über das Minimal- und das Maximalziel<br />
unseres Projektes diskutiert. Wir konnten uns relativ schnell einigen.<br />
Außerdem konnte uns Herr Dietrich nochmals über die Projektziele<br />
beraten und uns dadurch bei deren Findung helfen. Zusätzlich besprachen<br />
wir mit Team 4 unsere Projekte, da auch bei diesem Team die Idee bestand,<br />
einen Räumroboter zu bauen. Allerdings stellten wir sehr zeitnah<br />
fest, dass die Details der Roboter doch im Wesentlichen unterscheiden.<br />
Anschließend füllten Carsten und David den Projektantrag aus. Zusätzlich<br />
verschriftlichten sie den Antrag nochmals auf dem Computer, da der Platz<br />
auf dem Formular nur sehr begrenzt war.<br />
Jan und Jakob bauten das Grundgerüst des neuen Roboters. Dabei bedachten<br />
sie schon den Einbau eines Greifarms für unser Projekt.<br />
Nach den Ferien werden wir mit dem Projekt beginnen.<br />
Dienstag, 13.04.10<br />
Heute besprach die gesamte Gruppe nochmals das Minimalziel des Projektantrags.<br />
Dabei wurden die Aufgaben für die nächsten Stunden vergeben.<br />
Jakob und Jan wurden beauftragt, den Roboter für die Anforderungen<br />
des Projekts vorzubereiten, während Carsten und David einen geeigneten<br />
Programmcode für den Roboter schreiben sollen.<br />
Seite 11
Da Herr Dietrich uns heute nicht unterrichten konnte, wurde er <strong>von</strong> Herrn<br />
Heurich vertreten. Wir stellten fest, dass dieser ebenfalls ein sehr hohes<br />
Wissen im Bereich der Programmierung <strong>von</strong> Robotern besaß. Daher besprachen<br />
wir mit Herrn Heurich ebenfalls unser Projekt. Dabei konnte er<br />
uns einige Tipps geben. Allerdings wies er uns auch darauf hin, dass wir<br />
uns, um unser Maximalziel erfüllen zu können, wohlmöglich auch mit dem<br />
Kompasssensor vertraut machen müssen. Darüber wollten sich Carsten<br />
und David in der nächsten Stunde Gedanken machen. Für die zukünftigen<br />
Stunden bot uns Herr Heurich bei eventuellen Rückfragen dankenswerterweise<br />
auch seine Hilfe an.<br />
Freitag, 16.04.10<br />
An diesem Tag unterhielt sich die gesamte Gruppe über einige Schwerpunkte,<br />
die mit dem Projekt in Verbindung stehen. Zum Beispiel wurde darüber<br />
diskutiert, ob ein Räumschild für den Roboter wirklich geeignet ist. Da<br />
Carsten und David als Programmierer angaben, dass der Roboter ein Stück<br />
rückwärtsfahren muss, suchte die Gruppe eine Alternative zu dem Räumschild,<br />
da dieses die eingesammelten Teile beim Rückwärtsfahren verlieren<br />
würde. Wir dachten über einen Auffangbehälter nach, der durch eine<br />
durchgehend rotierende Bürste mit aufgefangenen Teilen bestückt wird.<br />
Diese Bürste könnte dann mit unserem dritten Motor angetrieben werden.<br />
Wir überlegten auch, wie wir dem Problem, dass der Roboter beim Zurücklegen<br />
seines Weges durch den zu säubernden Raum <strong>von</strong> seiner Bahn abkommen<br />
kann, gegenübertreten sollen.<br />
Da die Ideen nun ausgetauscht waren und sich geeinigt wurde, bekamen<br />
Jakob und Jan nun den Auftrag, in der nächsten Stunde mit den Bau eines<br />
Roboterprototyps zu beginnen. David und Carsten werden das nächste Mal<br />
erstmals mit den Programmcodes beginnen.<br />
Dienstag, 20.04.10<br />
Nach einer kurzen Teambesprechung begannen Jan und Jakob mit dem<br />
Bau eines Roboterprototyps. Ihr Auftrag war es, das Grundgerüst des Roboters<br />
fertigzustellen. Nachdem sie das erledigt hatten, konnten sie den<br />
Bau der Antriebsachse für den rotierenden Besen fortsetzen. Jan brachte<br />
die Idee ein, die Übersetzung für die Antriebsachse durch einen Kettenan-<br />
Seite 12
trieb zu bewirken. Allerdings wurde darüber diskutiert, ob ein Kettenantrieb<br />
die Anforderungen an den Roboter erfüllen würde, da dieser Antrieb einige<br />
Fehler in der Stabilität aufwies. Am Ende der Stunde konnte sich die gesamte<br />
Gruppe auf die Kompromisslösung einigen, dass der Kettenantrieb<br />
zunächst bestehen bleibt, aber beim Aufweisen <strong>von</strong> weiteren Fehlern durch<br />
ein besseres System ersetzt wird. Für die nächste Stunde wurde geplant,<br />
dass Jan und Jakob den Bau des Roboters fortsetzen. David versprach<br />
ihnen, bis zur nächsten Stunde geeignete LEGO-Teile aus privaten Beständen<br />
mitzubringen, da das Projekt besondere Teile, die nicht im LEGO-<br />
Baukasten der <strong>Schule</strong> enthalten sind, benötigt.<br />
David und Carsten fingen heute an, den Programmcode unseres Minimalziels<br />
für den Roboter zu schreiben. Leider konnten sie die geschriebenen<br />
Codes am Roboter noch nicht testen, da dieser für uns noch nicht verfügbar<br />
war. Beim Programmieren nutzten uns bereits vorher geschriebene Programme<br />
wie zum Beispiel die 90°-Kurve. Der Programmcode konnte heute<br />
allerdings noch nicht fertiggestellt werden, da wir für die Ermittlung der Daten<br />
für die 180°-Drehung, die der Roboter beim Fahren gegen die Wand<br />
durchführen muss, den Radstand des neuen Roboters noch abmessen<br />
müssen. Stattdessen überlegten sich Carsten und David in Absprache mit<br />
Jan und Jakob, welche Spezial-LEGO-Teile für den Roboter noch gebraucht<br />
werden. David erklärte sich bereit, die gewünschten Teile aus eigenen<br />
Beständen bis zur nächsten Stunde zu beschaffen.<br />
In der nächsten Stunde werden Carsten und David weiter am Programmcode<br />
arbeiten.<br />
Freitag, 23.04.10<br />
Heute erwartete uns Herr Dietrich mit neuen Dokumenten, die für ein Gelingen<br />
des Projekts Voraussetzung sind. Es handelte sich hierbei um die Projektabschlussberichte,<br />
die am Ende des Projekts angefertigt werden müssen.<br />
Auch stellte uns Herr Dietrich die Abschlussberichte früherer Informatikgruppen<br />
zur Verfügung, um zu demonstrieren, welche Anforderungen er<br />
an uns stellt. Also entschieden wir uns spontan, diese Unterlagen durchzusehen.<br />
Während Jan und Jakob damit beschäftigt waren, die Projektabschlussberichte<br />
vorangegangener Gruppen zu sichten, informierten sich<br />
Seite 13
Carsten und David mit dem Dokument "Hinweise zum Projektabschlussbericht",<br />
das uns Herr Dietrich ebenfalls zur Verfügung stellte, über die wichtigsten<br />
Aspekte in einem Projektabschlussbericht. Außerdem baute Jakob<br />
den Antrieb für den rotierenden Besen nochmals um, da der mangelhafte<br />
Kettenantrieb heute doch als unzureichend bewertet wurde. Mit einer neuen<br />
Konstruktion ohne Kette bietet das gesamte System nun ein hohes Maß an<br />
Stabilität. Wir schlossen heute den Gebrauch des Kettenantriebs an anderer<br />
Stelle nicht aus.<br />
Nachdem Carsten und David mit der Sichtung der Dokumente fertig waren,<br />
kontrollierten sie den bis dahin programmierten Code des Roboters. Dabei<br />
fiel ihnen auf, dass sie eine falsche Schleife für das Programm benutzt hatten.<br />
Sie machten es sich für die nächste Stunde zur Aufgabe, den Programmcode<br />
weiter auszubauen. Jan und Jakob bekamen für die nächste<br />
Stunde die Aufgabe, den Bau des Roboters fortzusetzen.<br />
Dienstag, 27.04.10<br />
Heute kam leider die gesamte Klasse etwas zu spät zum Informatikunterricht,<br />
da uns die vorherige Lehrerin zu spät entlassen hatte. Wir begannen<br />
also sofort mit unserer Arbeit.<br />
Carsten und David nahmen nun für die 180° Drehung die nötigen Werte<br />
vom Roboter ab und setzten diese in die zuvor erstellte Gleichung ein. Auf<br />
eine Lösung kamen die beiden allerdings auf Grund des Zeitmangels noch<br />
nicht. Mit der Findung der Lösung werden sie aber in der nächsten Stunde<br />
sofort fortfahren.<br />
Jakob und Jan bauten heute die Antriebswelle für den rotierenden Besen<br />
weiter. Die Kraft musste umgelenkt werden. Dies erzielten sie durch eine<br />
Kardanwelle. Allerdings trat hierbei das Problem auf, dass die Kardanwelle<br />
bei hoher Belastungzu vibrieren anfing. In der nächsten Stunde werden sie<br />
also versuchen, das Antriebssystem zu verstärken.<br />
Freitag, 30.04.10<br />
Heute haben Carsten und David weiter an der Gleichung gearbeitet. Ihr<br />
anfängliches Ergebnis wies Fehler auf. Bis zum Ende der Stunde konnten<br />
sie den Fehler allerdings nicht berichtigen. Deshalb werden sie die Gleichung<br />
in der nächsten Stunde berichtigen und weiter ausarbeiten. Das Er-<br />
Seite 14
gebnis werden sie in den Programmcode einfügen und damit weiterarbeiten.<br />
Jan und Jakob bauten heute zwei LEGO-Radladerschaufeln, die David aus<br />
eigenen Beständen mitgebracht hatte, an den Roboter. Die Schaufeln sollen<br />
in Zukunft die aufgesammelten Teile auffangen.<br />
Danach diskutierten sie, ob der rotierende Besen tatsächlich für das Projekt<br />
geeignet wäre. Es war fraglich, ob das System mit dem Besen wirklich mit<br />
den verfügbaren Teilen umsetzbar wäre. Die gesamte Gruppe überlegte<br />
sich ein neues Konzept. Die neue Idee war es, in die Schaufeln des Roboters<br />
jeweils einen Dauermagneten zu fixieren. Diese Dauermagneten sollen<br />
dann kleine Kugeln aus Stahlwolle aufnehmen. Die Kugeln bleiben dann<br />
auf Grund der Magnetkraft an den Magneten hängen. Jan und Jakob werden<br />
in der nächsten Stunde mit dem Bau des Roboters fortfahren. Genauere<br />
Informationen dazu werden im nächsten Tagesbericht notiert.<br />
Dienstag, 04.05.10 Heute haben Carsten und David mit einer Gleichung die Daten für die 180°-<br />
Drehung erstellt. Diese fügten sie dann in den Programmcode für den Roboter<br />
ein. Danach wurde der Code noch einmal überprüft.<br />
Jan und Jakob überlegten heute, ob die Antriebswelle des Roboters, die<br />
eigentlich für den rotierenden Besen gedacht war, dessen Konzept in der<br />
letzten Stunde verworfen wurde, dafür verwendet werden kann, die Schaufeln<br />
des Roboters anzuheben und wieder herabzulassen. Dafür entwickelten<br />
sie ein Konzept, das aus einer Art Seilzug bestand. Zusammen mit<br />
Carsten und David, die ein Programm zum Test für das Konzept entwickelten,<br />
probierten sie den Seilzug aus. Er wies allerdings einige Fehler auf.<br />
Das Konzept wurde wieder verworfen.<br />
In einem Gruppengespräch erinnerte David des Bauteam, welche Teile am<br />
Roboter noch installiert werden müssen, da Carsten und David einen fertigen<br />
Roboter brauchen, um den Programmcode testen und wenn nötig verbessern<br />
zu können. Deshalb planten Jakob und Jan, den Roboter in der<br />
nächsten Stunde weiterzubauen.<br />
Freitag, 07.05.10<br />
Heute hat sich David mit Jan und Jakob zusammengesetzt, um mögliche<br />
Seite 15
Missverständnisse in den Bauplänen zu beseitigen. Dabei wurde besonders<br />
auf die Konstruktion, die dem Roboter hilft, während der Fahrt durch den<br />
Raum immer auf gerader Spur zu bleiben, eingegangen. Bestückt mit den<br />
neuen Informationen fingen Jan und Jakob mit dem Bau der besagten Konstruktion<br />
an. Außerdem behielten sie dabei den Bau der Konstruktion für<br />
das Hochziehen und Ablassen der Schaufel im Hinterkopf.<br />
Heute hat David nochmals den Programmcode überprüft und eine Endlosschleife<br />
eingefügt. Der Programmcode dürfte nun fertig für einen ersten<br />
Testlauf sein. Dies besprach David ebenfalls mit Jan und Jakob. Sie gaben<br />
sich mit einem Testlauf in der nächsten Stunde einverstanden, da der Roboterprototyp<br />
ebenfalls bald fertiggestellt sei.<br />
David befasste sich heute außerdem mit der Dokumentation der Projektarbeit.<br />
Er informierte sich nochmals über die <strong>von</strong> Herrn Dietrich bereitgestellten<br />
Dateien, um zu erfahren, welche Anforderungen gestellt werden.<br />
In der nächsten Stunde wird die Gruppe einen ersten Testlauf mit dem Roboter<br />
und dem Programmcode durchführen. Beide Teams (Programmteam<br />
und Bauteam) werden mit Hilfe der Testergebnisse Fehler am Roboter bzw.<br />
am Programmcode berichtigen.<br />
Carsten war heute krank.<br />
Dienstag, 11.05.10<br />
Heute haben sich Carsten und David um den Projektabschlussbericht gekümmert.<br />
Dabei haben sie zunächst ein Gruppenlogo entworfen und dieses<br />
dann in das Deckblatt eingefügt. Das Deckblatt konnte dadurch fertiggestellt<br />
werden. Außerdem fingen sie mit dem Inhaltsverzeichnis an und verliehen<br />
dem Dokument eine Grundstruktur.<br />
Jan und Jakob setzten heute den Bau des Roboters fort. Es ging darum,<br />
eine Konstruktion für das Anheben und Ablassen der Roboterschaufel zu<br />
bauen. Das Problem lösten sie mit einem ausgeklügelten Ketten- und Zahnradantrieb.<br />
Die Kraftübersetzung, die die beiden während der Stunde bauten,<br />
wies viel Stabilität auf.Bei einem Test konnte der Roboter ein relativ<br />
großes Gewicht (etwa 200 Gramm) problemlos anheben. Der Plan für diese<br />
Doppelstunde sah eigentlich vor, dass in der zweiten Hälfte ein Versuch mit<br />
Seite 16
dem Programmcode und dem Roboter durchgeführt wird. Allerdings konnte<br />
das Bauteam den Zeitplan leider nicht einhalten. Der Roboter konnte <strong>von</strong><br />
ihnen nur teilweise fertiggestellt werden. Die Gruppe verlegte deshalb den<br />
ersten Testlauf des Roboters auf die nächste Stunde.<br />
Freitag, 14.05.10<br />
Dienstag, 18.05.10<br />
Auf Grund eines Feiertags entfiel für uns der heutige Unterricht und damit<br />
auch die Informatikstunde.<br />
Am heutigen Tag war geplant, einen Testlauf mit dem Roboter und dem<br />
Programmcode durchzuführen. Allerdings fiel schon beim ersten Abspielen<br />
des Programms auf, dass der Synchronisationsmodus nicht richtig funktionierte.<br />
Auch nachdem wir den Programmcode mehrmals überprüft hatten,<br />
konnten wir keinen Fehler finden. Beim Abspielen des Programms konnte<br />
man das eine Rad des Roboters blockieren, während sich das andere ungehindert<br />
weiterdrehte. Somit konnten wir nicht sicherstellen, dass der Roboter<br />
beim Abfahren des Programms wirklich genau geradeaus fährt. Wir<br />
entschieden, Herrn Dietrich bei der Fehlersuche hinzuzuziehen. Leider fand<br />
dieser zunächst keine Zeit für uns. Daher setzten wir spontan die Erstellung<br />
des Projektabschlussberichts fort.<br />
Als uns Herr Dietrich endlich mit dem Programmcode half, konnte er den<br />
Fehler finden. Nun funktionierte zwar der Synchronisationsmodus, trotzdem<br />
fuhr der Roboter nicht genau geradeaus. Die Gruppe plante, das Problem in<br />
der nächsten Stunde zu lösen.<br />
Freitag, 22.05.10<br />
Heute wollten Carsten und David den Grund finden, warum der Roboter<br />
trotz Synchronisation der Motoren nicht genau geradeausfährt. Dazu überprüften<br />
sie nochmals den Programmcode. Hier konnten sie allerdings wieder<br />
keinen Fehler finden. Schließlich suchten sie zusammen mit Herrn Dietrich<br />
den Fehler. Er wies darauf hin, dass der Fehler wohlmöglich an der<br />
Konstruktion des Roboters bzw. des NXT-Motors liegen könnte. Es fiel<br />
nämlich auf, dass ein Motor ziemlich unruhig rotierte. Ein weiterer möglicher<br />
Grund für das ungenaue Fahren des Roboters könnte auch sein, dass die<br />
Firmware, die auf dem NXT-Baustein installiert ist, den Programmcode<br />
nicht genau umsetzen kann. Bei den Testreihen mit dem Rotationssensor<br />
Seite 17
vor dem Projekt war aus Versehen der sogenannte Samba-Mode aktiviert<br />
worden. Hierbei musste die Firmware des Roboters neu installiert werden.<br />
Vermutlich handelte es sich hierbei um eine andere Version der Firmware,<br />
die nun die gegebenen Daten nicht genau verwerten kann. In der nächsten<br />
Stunde werden Carsten und David versuchen, die originale Version der<br />
Firmware im Internet zu finden und diese auf dem NXT-Baustein zu installieren.<br />
Jakob und Jan haben heute die LEGO-Teile im Baukasten sortiert<br />
und teilweise eine Inventur durchgeführt.<br />
In der nächsten Stunde werden sie sich mit der Konstruktion des Roboters<br />
auseinandersetzen, um einen möglichen Fehler, der den Roboter beim<br />
Geradeausfahren negativ beeinflusst, zu finden.<br />
Dienstag, 25.05.10<br />
Eigentlich war heute für Carsten und David geplant, dass sie eine neue<br />
Firmware für den NXT-Baustein suchen, damit der Programmcode endlich<br />
korrekt vom Roboter verarbeitet wird. Dies verwarfen sie heute zunächst,<br />
da sie bei einigen Überlegungen den Programmcode betreffend ein Problem<br />
feststellten. Nach der bis dahin aktuellen Version des Programmcodes<br />
hätte sich der Roboter beim Berühren einer Wand immer in dieselbe Richtung<br />
gedreht. Dies hätte dann zur Folge gehabt, dass der Roboter nur eine<br />
kleine Strecke des vorgegebenen Raums abgefahren hätte, anstatt nach<br />
jeder Wandberührung die Drehrichtung zu ändern und sich dadurch im<br />
Raum immer weiter fortzubewegen. Um dieses Problem zu lösen, recherchierten<br />
Carsten und David mit Hilfe des zur Verfügung gestellten Tutorials<br />
zunächst allein, wie dieses Problem zu lösen galt. Es fiel ihnen allerdings<br />
relativ schnell auf, dass es sich hierbei um eine sehr komplexe Aufgabe<br />
handelte. Deshalb bezogen sie Herrn Dietrich in ihre Überlegungen mit ein.<br />
Als er über das Problem aufgeklärt war, konnte er uns gleich einige Tipps<br />
liefern. Zum Beispiel war das Deklarieren einer Variablen im Programmcode<br />
notwendig, was Carsten und David anschließend umgehend vollzogen.<br />
Trotzdem fehlte ihnen auf Grund der Schwierigkeit des Problems der<br />
weitere Ansatz. Bis zum Stundenende konnte das Problem noch nicht vollständig<br />
gelöst werden.<br />
Deshalb werden Carsten und David vermutlich in der nächsten Stunde<br />
Seite 18
ebenfalls die Hilfe <strong>von</strong> Herrn Dietrich benötigen, um den Programmcode<br />
weiterzuentwickeln. Jan und Jakob versuchten heute, Schwachstellen am<br />
Robotermotor, der in der letzten Stunde ungewöhnliche Vibrationen erzeugte,<br />
zu finden. Es fiel ihnen allerdings auf, dass der Fehler hierbei nicht an<br />
der Konstruktion bzw. dem Aufbau des Roboters lag, sondern ausschließlich<br />
an dem Motor selbst entstand. Sie vermuteten, dass dieses Problem<br />
durch eine Materialermüdung innerhalb des Motors durch den vielen Gebrauch<br />
entstanden sein könnte. Bei einigen Tests bemerkten sie aber, dass<br />
die Auswirkungen auf die Fahreigenschaften des Roboters durch die eigenartige<br />
Vibration des Motors eher gering ausfallen. Genauso wie Carsten<br />
und David vermuteten sie, dass der Synchronisationsmodus, dessen Fehlfunktion<br />
ja bereits in der letzten Stunde entdeckt wurde, durch die falsche<br />
NXT-Firmware entsteht.<br />
In der nächsten Stunde werden Jakob und Jan eine Fehlersuche am Roboter<br />
betreiben, um Schwachstellen an der Konstruktion zu verbessern und so<br />
einen reibungslosen Ablauf der Tests mit dem Programmcode zu gewährleisten.<br />
Freitag, 28.05.10<br />
Am Anfang der heutigen Stunde fertigte die Gruppe jeweils ein Einzelfoto<br />
jedes Gruppenmitglieds an. Die Bilder der Kamera, die David zur Verfügung<br />
stellte, werden nun in Kürze in den Projektabschlussbericht eingefügt.<br />
Anschließend wendeten sich Carsten und David ihrer eigentlichen Aufgabe<br />
für heute zu. Es galt immer noch herauszufinden, wie der Programmcode<br />
verändert werden muss, damit sich der Roboter beim Berühren einer Wand<br />
in die jeweils richtige Richtung dreht. Die Tatsache, dass sie mit einer Variablen<br />
arbeiten mussten, hatten sie schon in der letzten Stunde herausgefunden.<br />
Allerdings wussten sie nicht genau, an welchen Stellen im Programmcode<br />
sie die Variablen einfügen sollten. Jonas Gömpel, ein sehr<br />
erfahrenes Mitglied des Informatikkurses, wurde zu den Überlegungen hinzugezogen.<br />
Er konnte dankenswerterweise einige sehr hilfreiche Tipps im<br />
Bezug auf die Arbeit mit Variablen liefern. Hiermit konnte der Programmcode<br />
endlich richtiggestellt werden. In der nächsten Stunde werden Carsten<br />
und David den Programmcode weiter ausbauen.<br />
Seite 19
Jan und Jakob mussten heute zunächst einen neuen Akku für den Roboter<br />
auftreiben. Was normal kein Problem darstellt, gestaltete sich heute schwierig,<br />
da kein Ersatzakku mehr zur Verfügung stand. Nach Absprache mit<br />
einer anderen Gruppe konnte allerdings kurzzeitig ein Akku ausgeliehen<br />
werden, um den neuen Programmcode zu testen. Danach fingen sie an, die<br />
am Anfang der Stunde gemachten Bilder auf die richtige Größe zuzuschneiden.<br />
Sie gaben die zugeschnittenen Bilder weiter an David, der diese<br />
weiterverarbeiten wird.<br />
In der nächsten Stunde werden Jakob und Jan eine Fehlersuche am Roboter<br />
betreiben. Dieses Vorhaben, welches heute schon hätte stattfinden sollen,<br />
wurde auf Grund des leeren Akkus und der Photographien auf die<br />
nächste Stunde verschoben.<br />
Dienstag, 01.06.10<br />
Carsten und David beschäftigten sich heute nochmals mit dem Problem,<br />
dass der Roboter immer noch nicht fähig ist, genau geradeauszufahren.<br />
Hierzu suchten sie nochmals einen Fehler im Programmcode. Sie fügten<br />
sämtliche Synchronisationsmodi in den Code ein, um zu testen, ob vielleicht<br />
hier der Fehler lag. Nach intensiver Überprüfung stellten sie allerdings fest,<br />
dass sich definitiv kein Fehler im Programmcode befand. Sie zogen Herrn<br />
Dietrich zu den Überlegungen hinzu. Dieser wies darauf hin, dass das Problem<br />
in der Konstruktion läge. Er gab an, dass der Grund für das instabile<br />
Fahren des Roboters seine Asymmetrie sei.<br />
Jakob und Jan wurden beauftragt, dies zu überprüfen. Währenddessen<br />
führten Carsten und David die Arbeit mit dem Programmcode fort. Am Ende<br />
der Stunde beendeten sie ihre Tätigkeit und planten, diese in der nächsten<br />
Stunde wiederaufzunehmen. Jan und Jakob begannen mit einer Fehlersuche<br />
an der Konstruktion des Roboters, nachdem diese <strong>von</strong> Herrn Dietrich<br />
angezweifelt wurde. Herr Dietrich meinte, dass der Roboter schief fahren<br />
würde, da die Gewichtsverteilung auf den Rädern zu sehr variiere. Sie<br />
brachten Gegengewichte an und spielten den Programmcode nochmals ab.<br />
Sie stellten keinen Unterschied fest. Dann wurde vermutet, dass der Fehler<br />
seinen Ursprung in der Art der Räder hat. Deshalb wurde diese durch Räder,<br />
die eine geringe Auflagefläche besitzen, ersetzt. Auch dies änderte<br />
Seite 20
nichts an der Situation. Schließlich wurden die Vibrationen des Roboters<br />
überprüft. Anscheinend lag hier der Ursprung des Problems. Die Roboterräder<br />
schienen sehr zu vibrieren. Bei anderen Gruppen trat das Problem<br />
nicht auf. Jakob und Jan fingen also damit an, die Motoren auszutauschen.<br />
Damit werden sie in der nächsten Stunde fortfahren.<br />
Freitag, 04.06.10<br />
Dienstag, 08.06.10<br />
Auf Grund eines Feiertags entfiel für uns der heutige Unterricht und damit<br />
auch die Informatikstunde.<br />
Am heutigen Tag haben sich Carsten und David nochmals dem Programmcode<br />
gewidmet. Sie mussten den Befehl "RotateMotorEx" nochmals ändern,<br />
da der Roboter diesen heute eigenartigerweise nicht umsetzen konnte.<br />
Beide entschieden sich für den Befehl "RotateMotor". Diese Funktion<br />
wurde schließlich einwandfrei ausgeführt. Heute fügten sie ebenfalls das<br />
Anheben und Ablassen der Radladerschaufel in den Code mit ein. Danach<br />
hatten sie vor, die einzelnen Befehle im Programmcode zu beschriften und<br />
zu kommentieren. Anschließend überlegten sie, wie das Programm fortgeführt<br />
werden könnte. Es leuchtete ihnen ein, dass der Roboter irgendwie<br />
erkennen musste, dass sein Weg zu Ende ist und dass er seine Arbeit deshalb<br />
beenden soll. Sie kamen auf die Idee, einen Lichtsensor dafür zu verwenden.<br />
Sie fügten die nötigen Befehle in den Programmcode ein. Nachdem<br />
Jakob und Jan den Lichtsensor am Roboter installiert hatten, konnten<br />
sie den Programmcode testen. Den richtigen Lichtwert konnten sie aus<br />
Zeitgründen nur ausprobieren und keine genauen Messungen durchführen.<br />
Allerdings war der richtige Wert relativ schnell gefunden. Auch die Kursmitglieder<br />
Jonas und Pascal bestätigten den Wert als richtig. Auf diese Weise<br />
konnte die Gruppe einen weiteren Erfolg erzielen. Durch die Einbindung<br />
des Lichtsensors in den Programmcode konnte das Minimalziel soweit fertiggestellt<br />
werden, da der Roboter sich nun durch den Raum tasten kann,<br />
dabei "Müll" aufsammeln kann und das Ende seiner Wegstrecke erkennt.<br />
Das Ende der Wegstrecke wird durch einen silbernen Aluminiumstreifen<br />
markiert, der das Licht des Lichtsensors sehr gut reflektiert.<br />
Da in der nächsten Stunde am Freitag die Abgabe des Projektabschlussbe-<br />
Seite 21
ichts erfolgen sollte, versprach David, nochmals den Programmcode zu<br />
überprüfen und die verschiedenen Funktionen zu kommentieren.<br />
Jakob und Jan montierten zu Anfang der ersten Hälfte Doppelstunde neue<br />
Reifen am Roboter, wechselten den Akku des NXT-Bausteins und bauten<br />
eine neue, leistungsfähigere Vorrichtung am Berührungssensor, die diesen<br />
noch empfindlicher machte. Anschließend bekamen sie <strong>von</strong> David den Auftrag,<br />
einen Lichtsensor am Roboter zu installieren. Nachdem sie dies erledigt<br />
hatten, wurden sie nach dem Einverständnis <strong>von</strong> Herrn Dietrich und<br />
David entlassen, um <strong>Schule</strong>ntlassformalitäten abzuwickeln.<br />
Donnerstag, 10.06.10<br />
Freitag, 11.06.10<br />
Am Nachmittag dieses Donnerstags legte David eine Sonderschicht ein, da<br />
er als Protokollant noch einiges mit dem Projektabschlussbericht zu tun<br />
hatte. Dazu machte er Bilder des Roboters, um diese in den Bericht einzufügen.<br />
Ebenfalls nahm er einige Messwerte, wie Länge, Breite, Höhe und<br />
Gewicht vom Roboter ab, vom Roboter ab und fügte diese in den Projektabschlussbericht<br />
ein. Zusätzlich überprüfte er nochmals den Programmcode<br />
und kommentierte und beschriftete noch einige der Funktionen im<br />
Code. Schließlich setzte er das Schreiben des Projektabschlussberichts<br />
fort, um eine pünktliche Abgabe in der nächsten Informatikstunde zu garantieren.<br />
An diesem Tag wurde der Projektabschlussbericht an Herrn Dietrich zur<br />
Bewertung übergeben. Die gesamte Gruppe konnte das Projekt dadurch<br />
abschließen.<br />
5 PROJEKTERGEBNIS<br />
5.1 Roboterwelt<br />
Der Roboter bewegt sich durch einen rechteckigen Raum mit senkrechten Wänden. Die genaue Breite und<br />
Länge des Raumes ist variabel. Nur die Wände müssen eine Mindesthöhe <strong>von</strong> circa 250 mm haben, damit der<br />
Roboter einwandfrei arbeiten kann. Die Art der Bodenfläche ist auch bis zu einem bestimmten Grad variabel.<br />
Durch die geländegängige Bereifung des Roboters kann dieser nicht nur auf glattem Untergrund arbeiten,<br />
sondern auch auf fein gewebten Teppichen. Der Programmcode setzt allerdings voraus, dass der Boden nicht<br />
Seite 22
esonders hell ist. Der Roboter startet in einer Ecke des Raumes und bewegt sich parallel zur Wand. Beim<br />
Berühren der gegenüberliegenden Wand dreht sich der Roboter um 180 Grad, um die nächste Bahn abzufahren.<br />
Mit den am Roboter installierten Schaufeln wird der im Weg liegende „Müll” also <strong>von</strong> der gesamten Bodenfläche<br />
des Raumes beseitigt. Am Ende der Fahrtstrecke befindet sich eine Markierung aus einem Aluminiumstreifen,<br />
der sich am Boden befindet. Der Aluminiumstreifen reflektiert das Licht des am Roboter installierten<br />
Lichtsensors. So kann der Roboter feststellen, wann er seine Aktion stoppen soll.<br />
5.2 Roboterkonstruktion<br />
Der Roboter wurde <strong>von</strong> Jakob und Jan <strong>von</strong> Grund auf neu gebaut und ohne eine vorgegebene Anleitung konstruiert.<br />
Der gesamte Aufbau sitzt auf den zwei NXT-Motoren, welche wiederum die Antriebsräder des Roboters<br />
antreiben. Die Antriebsräder liegen nicht flach auf dem Boden auf, sondern sind etwas abgerundet. Diese<br />
Eigenschaft eignet sich sehr gut für den Roboter, da die abgerundete Reifenform einen geringen Rollwiderstand<br />
garantiert. Für einen guten Gripp sorgt das tiefe Reifenprofil. Dies hat den Vorteil, dass der Untergrund,<br />
auf dem der Roboter eingesetzt wird, sehr variabel ist.<br />
Seite 23
Direkt über den Motoren befindet sich der NXT-Baustein, der senkrecht und mit dem Bildschirm nach vorne in<br />
das Gestell eingebaut ist. Diese Bauweise verhindert, dass der Roboter zu lang oder zu breit wird. Am Kopf<br />
des NXT-Bausteins befindet sich der höchste Punkt des Roboters. Hier misst er eine Höhe <strong>von</strong> 200mm.<br />
Um seine Aufgabe, nämlich Gegenstände einsammeln, erfüllen zu können, wurden am Roboter ganz vorne<br />
zwei Schaufeln eines LEGO-Radladers aus eigenen Beständen montiert. Die Schaufeln haben eine Gesamtbreite<br />
<strong>von</strong> 160mm und bilden die breiteste Stelle am Roboter. Mit ihnen werden die Gegenstände aufgesammelt<br />
und aufbewahrt. Leider ließ die Anzahl der Teile in den LEGO-Baukästen nicht zu, einen rotierenden<br />
Besen zu bauen, der die Teile, die sich vor dem Roboter befinden, in die Schaufeln kehrt. Daher wurde entschieden,<br />
dass in den Schaufeln Dauermagneten installiert werden, die dann metallene Teile aufsammeln.<br />
Diese haften sich an die Magneten. Der Roboter kann die Schaufeln mit Hilfe der Kraft des dritten NXT-Motors<br />
anheben und ablassen. Dieser Motor ist am Heck des Roboters installiert. Dafür, dass die Kraft des Motors<br />
vom Heck des Roboters bis zu seinem Bug kommt, sorgt ein ausgeklügeltes System. Eine Antriebswelle, die<br />
in der Mitte der Konstruktion sogar durch zwei Kardanwellen umgelenkt wird, treibt ein Zahnradsystem an, das<br />
wiederum die Kraft an eine Seilwinde weitergibt. Das Windenseil ist mit den Schaufeln verbunden. Die gute<br />
Übersetzung des Zahnradsystems sorgt dafür, dass die Schaufeln des Roboters selbst dann angehoben werden<br />
können, wenn diese schwer beladen sind. Bei einem Test erwies sich, dass so ein Gewicht <strong>von</strong> mindestens<br />
250 Gramm problemlos angehoben werden kann. Hierbei beantwortet sich auch die Frage, warum der<br />
Antriebsmotor für die Schaufeln am Heck des Roboters sitzt und deshalb eine solch komplizierte Kraftübertragung<br />
notwendig geworden ist. Der Motor dient nämlich hierbei als Gegengewicht für das eventuelle schwere<br />
Gewicht der Schaufeln. Um sich orientieren zu können, wurde an der Front des Roboters ein Berührungssensor<br />
installiert. Dadurch weiß der Roboter, wann er gegen eine Wand gefahren ist und deshalb eine Drehung<br />
um 180 Grad <strong>von</strong> Nöten ist. Der Berührungssensor wurde über den Roboterschaufeln installiert. An ihm ist<br />
eine Art Gabel installiert, damit der Sensor noch empfindlicher auf einen Kontakt reagieren kann. Außerdem<br />
sitzt der Sensor mit Gabel weit vor den Roboterschaufeln, damit diese beim Berühren der Wand nicht im Weg<br />
stehen. Die Gabel ist der vorderste Punkt des Roboters. Der hinterste Punkt ist der Antriebsmotor für das Anheben<br />
und Ablassen der Schaufeln. Daraus ergibt sich die Gesamtlänge des Roboters mit 350mm.<br />
Kurz vor dem Ende des Projekts wurde noch ein Lichtsensor am Roboter angebracht. Dieser befindet sich vor<br />
dem rechten Antriebsrad und hat einen ungefähren Abstand <strong>von</strong> 10mm zum Boden. Auch das Problem mit<br />
den meist überlangen Kabeln, die den NXT-Baustein mit den Motoren und den Sensoren verbinden, wurde<br />
einfach gelöst. Der größte Teil der Kabel wurde zwischen dem NXT-Baustein und dem Unterboden des Roboters<br />
verstaut. Die restlichen Kabel wurden entlang der Roboterkonstruktion befestigt. Dies hat zur Folge, dass<br />
es keine abstehenden und störenden Kabel gibt, die den Roboter bei seiner Arbeit behindern.<br />
Seite 24
Seite 25
5.3 Programmierung<br />
Die Grundidee für den Programmcode war schnell klar. Der Roboter sollte die gesamte Fläche des Raumes<br />
abfahren. Beim Berühren einer Wand mittels Berührungssensor sollte sich dieser drehen und die nächste<br />
Bahn abfahren. Dabei war es wichtig, dass der Roboter exakt geradeaus fährt, um nicht „auf die schiefe Bahn<br />
zu geraten”. Da sich Carsten und David ja zuvor mit dem Rotationssensor beschäftigt hatten, konnten sie die<br />
Funktion „OnFwdSync” verwenden. Hierbei wird der sogenannte Synchronisationsmodus aktiviert, der die<br />
Bewegungen der beiden Radantriebmotoren synchronisiert. Dadurch wird sichergestellt, dass der Roboter<br />
exakt geradeaus fährt. Diese Funktion wurde in einer Schleife eingebaut, die dann aktiviert ist, wenn der Berührungssensor<br />
an der Front des Roboters nicht anschlägt.<br />
Als nächstes wurde sich folgender Frage gewidmet: Was passiert, wenn der Berührungssensor des Roboters<br />
beim Berühren einer Wand anschlägt Die Herausforderung hierbei war, dass der Roboter nach jeder Wandberührung<br />
die Drehrichtung wechseln musste. Hier wurde klar, dass mit einer Variablen gearbeitet werden<br />
muss. Die Variable x wurde festgelegt. Beim Start des Programms gilt x=0. Es wurde festgelegt, dass sich der<br />
Roboter nach der ersten Wandberührung nach rechts dreht. Dies wurde in einer Schleife festgelegt, die nur<br />
dann aktiviert ist, wenn der Berührungssensor anschlägt und x=0 ist. Nach der ersten Drehung gilt x=1. In<br />
einer zweiten Schleife, die nur dann aktiviert ist, wenn der Berührungssensor anschlägt und x=1 ist, wird der<br />
Roboter angewiesen, sich nach links zu drehen. Am Ende dieser Schleife gilt wieder x=0. Daraus folgt, dass<br />
der Roboter nach jeder Berührung mit der Wand die Drehrichtung wechselt.<br />
Wenn der Roboter gegen die Wand fährt, gibt es einen genauen Ablaufplan, den der NXT-Baustein beachten<br />
muss. Zuerst fährt der Roboter ein Stück zurück, damit dieser bei seiner darauffolgenden Aktion ein freies<br />
Bewegungsfeld besitzt. Nach dem Rückwärtsfahren dreht sich der Roboter um exakt 90 Grad in die jeweilige<br />
Richtung. Dies geschieht mithilfe der Funktion „RotateMotor”, bei der man einen oder mehrere Motoren anweisen<br />
kann, sich in einem angegebenen Winkel zu drehen. Der genaue Wert konnte anhand des Radstandes<br />
und des Radradumfangs berechnet werden. Den genauen Rechenweg, der hier anzuwenden war, konnten wir<br />
bereits während der Durchführung der Versuchsreihen herausfinden (Siehe: 2.3. Versuch 3 – 90°-Drehung).<br />
Nach der ersten Drehung fährt der Roboter ein Stück geradeaus, um die nächste Fahrspur zu erreichen. Danach<br />
folgt wieder eine Drehung um 90 Grad in dieselbe Richtung wie zuvor. Schließlich hat sich der Roboter<br />
um 180 Grad gedreht und steht in der neuen Fahrspur. Nun kann er wieder die Fahrspur wie gewohnt abfahren.<br />
Der gesamte Vorgang, nämlich das Geradeausfahren und die Drehungen nach der Wandberührung, ist mit<br />
einer Schleife umschrieben, die nur dann aktiviert ist, wenn der am Roboter installierte Lichtsensor feststellt,<br />
dass der Lichtwert des vom Boden reflektierten Lichts kleiner oder gleich 50 ist. Dies bedeutet, dass sich der<br />
Seite 26
Roboter auf einem eher dunklen Untergrund befinden muss. Es gibt eine weitere Schleife, die aktiviert wird,<br />
wenn der Lichtwert größer als 50 beträgt. Wenn dies der Fall ist, dann weiß der Roboter, dass er seine Arbeit<br />
beenden kann. Daraufhin werden die Motoren der Antriebsräder gestoppt und die Räumschaufeln werden<br />
wieder angehoben. Damit ist die Arbeit des Roboters zu Ende.<br />
Der gesamte Vorgang ist mit einer Endlosschleife umschrieben, damit das Programm automatisch wiederholt<br />
wird.<br />
int x; //Festlegung' der Variable x.<br />
task main()<br />
{<br />
//Definition der Variable x.<br />
x=0;<br />
//Festlegung des Berührungssensors auf Eingang I.<br />
SetSensorTouch (S1);<br />
//Festlegung des Lichtsensors auf Eingang 2.<br />
SetSensorLight (S2);<br />
//Räumschaufeln befinden sich bei<br />
//Programmstart noch im angehobenen Zustand<br />
// und werden hierbei abgelassen.<br />
RotateMotor (OUT_A, 90, 2000) ;<br />
Wait (1500);<br />
//Schleife wird nur dann aktiviert, wenn der<br />
//gemessene Lichtwert kleiner oder gleich 50 beträgt.<br />
while (SENSOR_2
}<br />
Wait(100);<br />
//Roboter dreht sich zum 2. Mal (rechts).<br />
RotateMotor (OUT_B, 75, 410);<br />
Wait (500);<br />
//Ab hier gilt x=l. Ab der nächsten Wandberührung wird die<br />
//untere Schleife aktiviert.<br />
x = x+1;<br />
}<br />
//Der Berührungssensor hat angeschlagen<br />
//und es gilt x=l. Also wird dieser if-Zweig aktiviert.<br />
else if (SENSOR_1==1 && x==1)<br />
{<br />
//Roboter fährt kurz rückwärts.<br />
RotateMotor (OUT_BC, 75, -100);<br />
Wait (500);<br />
//Roboter dreht sich zum 1. Mal (links).<br />
//410 sind die 410°, berechnet aus der 90°-<br />
//Drehungsfunktion.<br />
RotateMotor (OUT_C, 75, 410);<br />
Wait (500) ;<br />
//Roboter fährt kurz geradeaus.<br />
RotateMotor (OUT_BC, 75, 100) ;<br />
Wait(100);<br />
//Roboter dreht sich zum 2. Mal (rechts).<br />
RotateMotor (OUT_C, 75, 410) ;<br />
Wait (500);<br />
//Ab hier gilt wieder x=O. Ab der nächsten Wandberührung wird<br />
//wieder der obere if-Zweig aktiviert.<br />
x = x-1;<br />
}<br />
//Schleife wird nur dann aktiviert, wenn der<br />
//gemessene Lichtwert größer als 50 beträgt.<br />
//Hierbei passiert der Roboter<br />
//den Aluminiumstreifen, wobei der Roboter<br />
//seine Arbeit beenden soli.<br />
while(SENSOR_2 > 50)<br />
{<br />
//Die Radantriebsmotoren werden abgeschaltet.<br />
Off (OUT_BC);<br />
//Die Räumschaufeln werden wieder angehoben.<br />
RotateMotor (OUT_A, 90, -2000);<br />
Wait (2500);<br />
}<br />
}<br />
//Der Roboter hat seine Arbeit nun vollständig beendet.<br />
Seite 28
6 REFLEXION<br />
6.1 Reflexion der Problemstellung<br />
Bezogen auf die Konstruktion des Roboters bestand die Herausforderung zunächst darin, ein völlig neues<br />
Konzept für den Bau zu entwickeln. Hierbei male sich - keinem Bauplan oder sonstiger Aufzeichnung orientiert.<br />
Nachdem Jakob und Jan ein-Konzept nach den Anforderungen des Projektziels entwickelt hatten, mussten<br />
sie den Roboter bauen. Auch dies stellte sich als große Herausforderung dar. Besonders mussten sie<br />
immer wieder feststellen, dass die Stabilität ihrer Konstruktion einige Mängel aufwies, die sie daraufhin aufwändig<br />
beheben mussten. Der Grund dafür war, dass sie den Roboter besonders leicht bauen wollten und<br />
deshalb einige Teile einsparten. Im Nachhinein bewerten Jan und Jakob diese Idee als unvorteilhaft, da eine<br />
stabile Konstruktion Grundlage für ein effektives Arbeiten mit dem Roboter ist. Bezogen auf die Programmierung<br />
des Quellcodes war es eine besondere Herausforderung für Carsten und David, dass das Wissen, das<br />
sie für das Schreiben des Programmcodes benötigten, sehr vielfältig war. Sie mussten sich nicht nur über den<br />
Inhalt aller vergangenen Tutorials im Klaren sein, sondern auch noch weitere Informationsgewinnung betreiben.<br />
Sie stellten beim Schreiben des Programmcodes besonders fest, dass der Überblick über den gesamten<br />
Programmcode sehr schwierig wurde, je ausgereifter er wurde. Deshalb ist es unbedingt notwendig, am besten<br />
jede einzelne Funktion im Code zu kommentieren und zu beschriften.<br />
6.2 Reflexion des Projektmanagements und der Teamarbeit<br />
Die eigentliche Planung des Projekts verlief sehr gut. Am Anfang wurde einige Stunden lang in der gesamten<br />
Gruppe darüber gesprochen und diskutiert, welche Anforderungen das Projektziel an jede einzelne Person<br />
stellt. Der sehr gründliche Informationsaustausch zu Beginn des Projekts erwies sich während der Arbeit als<br />
sehr hilfreich, da durchgehend jedes Gruppenmitglied wusste, was es zu tun hatte. Die Aufteilung der Gruppe<br />
in zwei Hälften erwies sich ebenfalls als sehr nützlich. Auf diese Weise konnten sich die beiden Trupps, also<br />
die Programmierer und die Konstrukteure, genau auf ihren Teil der Arbeit konzentrieren. Dies garantierte ein<br />
sehr effektives Arbeiten an den einzelnen Arbeitsbereichen. Dies bestätige sich vor allem am Ende der Projektarbeit.<br />
Sowohl der Programmcode als auch die Roboterkonstruktion fanden bei allen Gruppenmitgliedern<br />
großen Zuspruch. Das wurde auch dadurch begründet, dass immer eine reibungslose Kommunikation zwischen<br />
den beiden Trupps schon ab dem Beginn der Projektarbeit im Vordergrund stand. Dadurch, dass immer<br />
eine rege Verbindung zwischen ihnen stand, wurde nicht getrennt, sondern immer zusammen dem gemeinsamen<br />
Projektziel entgegengearbeitet.<br />
Am Anfang jeder Stunde fand ein kleines Briefing innerhalb der gesamten Gruppe statt. Hier wurden die Aufgaben<br />
für die jeweiligen Unterrichtsstunden verteilt. Dadurch hatte jeder genau einen Plan, was er zu tun hat-<br />
Seite 29
te. Wenn die Aufgaben schon früher erledigt wurden, als veranschlagt worden war, wurden sofort neue Aufträge<br />
verteilt. Es blieb also keine Zeit ungenutzt. Auch dies garantierte die Effektivität der Arbeit der einzelnen<br />
Gruppenmitglieder.<br />
Besondere Leistungen erbrachte vor allem der Teamleiter und Protokollant David. Mit hoher Zuverlässigkeit<br />
schrieb er nach jeder Informatikstunde einen durchaus ausführlichen Tagesbericht. Hier konnte man die Tätigkeiten<br />
der Gruppe in jeder Stunde detailliert nachlesen und sich einen genauen Eindruck über ihre Arbeit machen.<br />
Außerdem verfasste David bereitwillig den kompletten Projektabschlussbericht. Auch hier investierte er<br />
viele Arbeitsstunden, um die Ergebnisse seiner Projektgruppe anschaulich, detailliert und überzeugend zu<br />
präsentieren.<br />
6.3 Reflexion des Projektziels<br />
Besonders im Vordergrund der Gruppe stand die Erfüllung des Minimalziels. Vor allem am Programmcode<br />
lässt sich erkennen, dass der Grundgedanke des Minimalziels erfüllt wurde. Allerdings reichte die gegebene<br />
Zeit nicht mehr aus, um das Maximalziel erfüllen bzw. teilweise erfüllen zu können. Eigentlich wurde veranschlagt,<br />
dass in dem gegebenen Zeitrahmen die Arbeit am Maximalziel zumindest begonnen werden konnte.<br />
Die gesamte Gruppe wurde allerdings <strong>von</strong> einigen Problemen belastet, deren Ausmaße sie vorher nicht erahnen<br />
konnten.<br />
Zum einen ist das Problem zu nennen, dass der Synchronisationsmodus am Roboter nie wirklich funktionierte.<br />
Obwohl der Code und die Konstruktion des Roboters korrekt waren, fuhr der Roboter nicht genau geradeaus.<br />
Anscheinend lag der Fehler hierbei in den NXT-Motoren oder in der Firmware, mit der der NXT-Baustein arbeitete.<br />
Die Korrektur des Problems überstieg allerdings unsere Fachkenntnisse. Auch Herr Dietrich konnte uns<br />
in diesem Punkt nicht viel weiterhelfen, weshalb der Fehler nach einiger Zeit ignoriert wurde. Allerdings wurde<br />
dadurch die Arbeit der Programmierer Carsten und David behindert. Um den Programmcode testen zu können,<br />
brauchten sie einen korrekt funktionierenden Roboter. Da dies aber nicht der Fall war, konnten sie oftmals<br />
ihren Quellcode nicht angemessen in der Praxis testen und konnten eine Fehlersuche und Fortsetzung<br />
des Programmcodes oft nur theoretisch durchführen, was einen hohen Aufwand im Gegensatz zum Praxistest<br />
bedeutete.<br />
Ein weiteres Problem während der Projektarbeit waren die Fehlfunktionen an den Laptops, die eine Grundlage<br />
für die Programmierung der Quellcodes waren. Es kam mehrmals vor, dass ein Computervirus aus dem<br />
Schulserver die Software des Laptops heimsuchte und diese lahmlegte. Oft zeigten die Computer auf Grund<br />
schwacher Hardware keinerlei Rückmeldung, sodass ein Neustart <strong>von</strong> Nöten war. Zudem waren praktisch in<br />
jeder Stunde die USB-Hübe des Laptops überlastet. Solche Probleme bereiteten viel Ärger und die Behebung<br />
Seite 30
enötigte insgesamt gesehen sehr viel Zeit, die die Gruppe mit der eigentlichen Arbeit am Projekt hätte verbringen<br />
können.<br />
Auch den Konstrukteuren Jakob und Jan widerfuhr im Laufe des Projekts ein Problem. Obwohl sie die LEGO-<br />
Teile äußerst sparsam verbauten, gingen ihnen diese mit der Zeit aus. Also wurde es notwendig, die Teile <strong>von</strong><br />
anderen Gruppen, die oftmals ebenfalls einen Mangel an Teilen angaben, auszuleihen. Die Suche nach passenden<br />
Teilen war also oft erfolglos. Deshalb mussten immer wieder neue Konzepte ausgedacht werden, was<br />
ebenfalls einen großen Zeitaufwand bedeutete.<br />
Die gesamten Zeiteinbußen sind der Grund dafür, dass das Vorhaben, das Maximalziel wenigstens zu beginnen,<br />
nicht eingehalten werden konnte.<br />
Trotzdem war das Projekt ein voller Erfolg. Hierbei konnte man nicht nur sein Fachwissen um einiges erweitern.<br />
Auch brachte es viel Freude, wenn man einen der vielen kleinen Schritte auf dem Weg zum Projektziel<br />
überwunden hatte. Die Teilerfolge ermutigten immer wieder, mit der Arbeit mit noch mehr Engagement fortzufahren.<br />
Eine ebenfalls wichtige Erfahrung war es, eine Projektarbeit am Beispiel eines richtigen Projekts<br />
durchzuführen. Dabei lernte man, dass die Arbeit im Team gut funktionieren und eine gute Kommunikation<br />
vorhanden sein muss, damit das Ergebnis am Ende positiv ausfällt.<br />
Seite 31
7 ENTLASTUNG PROJEKTTEAM<br />
Datum, Unterschrift (Projektleiter)<br />
Datum, Unterschrift (Teammitglieder)<br />
Datum, Unterschrift (Projektauftraggeber)<br />
Seite 32
8 ANHÄNGE<br />
• Projektauftrag<br />
• Projektstrukturplan (PSP)<br />
• Projektablaufplan (PAP)<br />
• Sitzungsprotokolle<br />
• Arbeitsprotokolle der einzelnen Teammitglieder<br />
• Aktennotizen<br />
• weitere relevante Dokumente<br />
9 QUELLENVERZEICHNIS<br />
Seite 33