Tag 5 und Abschluss des Projekts

Am Morgen hatten wir ein Problem. Anfangs wollte unser Roboter einfach nicht losfahren. Als es dann später wieder ging, wich der Roboter teilweise von der Linie ab. Doch zu unserem Glück funktionierte der Roboter später ohne Änderungen wieder einwandfrei. Die Hardware, die wir benutzen ist einfach zu schlecht, um das volle Potential unserer Software hervorzubringen. Auf jeden Fall funktioniert der Roboter manchmal und manchmal gar nicht, wir sind uns aber sicher, dass er mit besserer Hardware perfekt laufen würde. Es gibt Einiges, was man an unserem Roboter noch ändern könnte:

  • Infrarotsensoren, welche nicht nur 5mm über dem Boden funktionieren 
  • Leistungsstärkere Motoren ohne verschiedene Dutys

Die Infrarotsensoren am Boden bringen den Roboter dazu, dass er auf unserer Teststrecke manchmal in den Papierrillen hängen bleibt und unsere Motoren verlängern das Programm durch verschiedene Dutys unnötig.

Alles in allem hat das Projekt viel Spass gemacht und war mal eine Abwechslung zum normalen Schulalltag. Wir haben gute praktische Erfahrungen gemacht und werden durch dieses Projekt sicher einiges mitnehmen können.

Hier noch ein Video unseres fertigen Roboters:

Tag 4

Heute ging es darum, den Roboter zu vervollständigen und ihn auf einer Rennbahn fahren zu lassen. Anfangs hatten wir ein Problem, dass der Roboter einfach nicht losfahren wollte. Doch nach vielem Ausprobieren und Versuchen, das Problem zu beheben, ging es los. Zuerst wollten wir eine Bahn mit einem schwarzen Stift auf weissem Papier zeichnen, doch der IR-Sensor erkannte die Linie leider nicht. Danach hatten wir die Idee, die Strecke mit einem schwarzen Klebeband zu bilden. Dies ging anfangs recht gut, doch es gab öfters Probleme beim Übergang zwischen zwei Klebestreifen. Ausserdem waren die Kurven so nicht ganz abgerundet.

Schlussendlich hatten wir die Eingebung, Linien und Kurven auf Word zu konstruieren und dann auszudrucken. Denn so können wir die Rennbahn zuerst einmal provisorisch aufbauen und sie dann zu verbessern. Durch die vielen Linien und Kurven konnten wir die Bahn beliebig gestalten und auch nach Lust und Laune verändern. Die Kurven sind so auch komplett rund. 

Auf dieser Bahn konnte sich unser Roboter dann auch gut auf der Linie fortbewegen. Nur in den Kurven sehen die Bewegungen nicht ganz sauber aus, doch der Roboter kann auch schwierige Kurven (meistens) fahren.

Ausserdem haben wir heute einen Ultraschall-Sensor eingebaut, damit der Roboter Gegenständen ausweichen kann. Teilweise gibt es noch Probleme, damit der Roboter wieder zurück in die Spur kommt, nachdem er einen Gegenstand umfahren kann. Doch die Kombination von Linienroboter und einem Roboter, welcher Gegenstände umgehen kann, ist gut gelungen.

Die tatsächliche software haben mir schon am Tag 2 geschrieben sie funktioniert wie folgt:

Der Roboter kann mit seinen 3 Sensoren genau 4 Zustände wahrnehmen und zwar. 

0-1-0  , 1-0-0 , 0-0-1 , 0-0-0 Das Programm strebt immer den Zustand 0-1-0 an, den dieser gibt bei dem linken sowie rechten Sensor weiss an und mit dem mittleren Sensor schwarz, dass bedeutet das der Roboter mehr oder weniger gerade auf der Linie ist und somit geradeaus fahren kann. Wenn der Roboter die anderen Zustände annimmt korrigiert er solange, bis der Roboter den Zielzustand(0-1-0) annimmt. Damit der Roboter selbständig die Linie finden kann, selbständig zurück korrigieren kann wenn er die Linie verliert, einen 90 sowie 45 grad Winkel auf der Linie fahren kann werden noch andere Zustände mit verschiedenen Parametern definiert welche schlussendlich den Hauptteil des codes ausmachen. zB. Wenn der Roboter eine Kurve fährt kann es sein das er zu schnell geradeaus fährt und somit aus der Kurve fällt. Der Sensor meldet also 0-0-0 und somit würde der Roboter weiter geradeaus fahren und die Linie verlieren, damit das nicht passiert haben wir jeweils die letzten Zustände gespeichert und parametrisiert. Der Roboter erkennt somit zB. das er gerade aus einer Linkskurve gefallen ist und solange nach links korrigieren muss bis er wieder einen anderen Zustand annimmt. Das war nur einer de unzähligen Bespiele die das Programm vervollständigen. Vor allem die 90 sowie 45 grad Spezialfälle verlangten nach einigen neuen Zuständen.

Tag 3

 Heute haben wir uns daran gesetzt, den Roboter zu optimieren, sodass er ohne Abweichung eine gerade Linie fahren kann. Dies erwies sich als nicht allzu einfach, da der Schwerpunkt der Konstruktion nicht genau mittig liegt. Das grösste Problem dabei war die Powerbank, welche wir in den Roboter eingebaut haben. Denn diese Powerbank war nicht fest angemacht und rutschte so leicht herum. Doch durch eine komplexe Konstruktion konnten wir die Powerbank komplett einbauen, sodass sie fest blieb. Der Roboter fuhr trotzdem immer noch nicht ganz gerade, doch durch Veränderung der Geschwindigkeit jedes Rades konnten wir dieses Problem beheben. Da der Roboter zuvor immer leicht nach rechts abgedriftet ist, liessen wir die beiden Räder links vorne und hinten etwas langsamer fahren. Dazu musste man die Geschwindigkeit mehrmals verändern, bis man den leichten Rechtsdrall so gut wie möglich aufheben konnte.

Jetzt ging es an den IR-Sensor. Hier gibt es drei Modelle, wir haben schlussendlich den Sensor ausgewählt, welcher unserer Meinung nach am Genauesten funktioniert. Das Problem dieses Sensors ist, dass man drei davon braucht und jeder Sensor vier Anschlüsse hat. Zudem gibt es so mehr Kabel. Später haben wir die IR-Sensoren kalibriert und in den Roboter eingebaut. Dazu verwendeten wir eine Form aus dem 3D-Drucker, um so wenig Licht wie möglich zuzulassen. Jetzt ging es daran, die Kurven festzulegen. Hier mussten wir die Geschwindigkeit auf einer Seite verändern, damit der Roboter zur richtigen Zeit abbiegt. Zu unserem Glück gelang dies recht gut. Trotz einem nicht sehr kleinen Zeitaufwand geschah dies ohne grössereProbleme.  

Tag 2

Heute Morgen haben wir damit angefangen unseren Roboter nun wirklich zu bauen, auf Basis des Konstruktes von Tag 1. Unsere auswählten Motoren sind Servo-Motoren, das Problem bei diesen ist nur, dass alle ein verschiedenes Duty haben. Das Duty ist entscheidend, weil man damit die Geschwindigkeit reguliert. Anbringen lassen sie sich allerdings einfach, da man einfach Klemmbausteine daran befestigen kann. Wir haben nun also 4 Motoren befestigt und dann noch ein Fach für die Powerbank gebaut, damit das Gewicht nicht speziell auf ein er Seite lastet. Wie sich noch herausstellen wird, leider nicht konsequent genug. Unsere Motoren haben wir nun angeschlossen und das Duty getestet. Jetzt ging es um unsere Sensoren. Wir hatten bereits 2 Ultraschallsensoren angebracht, einen an der Seite, den anderen vorne. Bei den Infrarotsensoren hatten wir jedoch mehrere zur Auswahl und schwankten zwischen zweien, den „Roten“ und den „Blauen“. Bei den Tests der beiden Sensoren haben wir mehrere Probleme bei den „Roten“ gefunden. Zum einen muss man sie kalibrieren und bei uns funktionieren sie nur in völliger Dunkelheit und praktisch direkt über dem Boden. Einer von uns hat also die Aufgabe bekommen eine “ Abdunklungskammer“ für den Infrarotsensor zu bauen.

Somit hatten wir unabsichtlich unsere Entscheidung bereits getroffen nahmen nun die roten Infrarotsensoren. Wir haben nun noch dafür gesorgt, dass unsere Verkabelung etwas besser aussieht, in dem wir farblich passende Kabel genommen haben und diese dann gebündelt verklebt haben.

Wir haben nun weiter Fahrtests gemacht und unser Roboter ist immer anders gefahren. Wir haben alle möglichen Fehlerquellen überprüft und haben bemerkt, dass unsere Powerbank in der Halterung wackelt und mussten diese nun besser fixieren, aber das haben wir uns zur Aufgabe für den nächsten Tag gemacht.

Tag 1

Vorläufige Basis von unserem Roboter

Heute haben wir mit der Planung unseres Projektes begonnen und erste Module in die Wirklichkeit umgesetzt. Unser geplanter Roboter soll zuverlässig Linien folgen können und selbständig jegliche Art von blockierenden Gegenständen auf der Linie ausweichen und diese Umfahren können. Wir haben uns als erstes mit dem Mikrocontroller vertraut gemacht und versucht mehrere Motoren und mögliche Sensoren parallel zum laufen zubringen. Nachdem die Tests erfolgreich waren fingen wir mit der Konstruktion von der Basis des Roboters an. Gleichzeit schrieben wir ein Programm welches die 4 Motoren synchronisierte.

 

Motortests