Unser Projekt hat während unserer empirischen Forschung die hier beschriebenen Stadien durchlaufen. Im Folgenden werden alle Entwicklungschritte im Detail erläutert. Alle sechs Programme können in einer EV3-Datei im Downloadbereich unten heruntergeladen werden
Kommentar:
Bei unserm erstern Versuch mit dem Minestorms EV3, haben wir einfache grüne und Organge Blöcke anneinander gesetzt, welche die Motoren für eine gewisse Zeitspanne drehen lassen und anschliessend stoppen. Zusätzlich haben wir zwei Soundblöcke eingebaut, welchen den Roberter zum Sprechen bringen. Dieses Programm zeigt auf eine spielerische Weise die Möglichkeiten der Programmierumgebung auf.
Programm:
Das Programm besteht aus einem orangen Startblock, welcher das Programm automatisch starten lässt. Anschliessend folgt ein grüner Motorblock, durch welchen das Fahrzeug mit einer Geschwindigkeit von 50, 1 Sekunde geradeausfährt. Danach legt es einen Stop von einer Sekunde ein und begrüsst den Zuschauer mit einem freundlichen "Hello". Nach der Begrüssung dreht sich der Roboter ca. 90° nach links und stoppt. Das Anhalten kommentiert er mit einem "Stop".
Video:
Kommentar:
Erster Versuch, dem Roboter bezubringen der Linie zu folgen. Dazu überprüft der Roboter, ob unter dem Farbsensor helle oder dunkle Farbwerte gemessen werden. Erkennt der Farbsensor einen hellen Farbwert, so korrigiert er die Fahrtrichtung nach rechts. Misst der Farbsensor eine dunkle Farbe so, korrigiert er die Fahrtrichtung nach links. Dies wiederholt er immer wieder, um der Linie zu folgen.
Programm:
Das Programm beginnt mit einem orangen Startblock. In der Schlaufe befindet sich ein Schalter. Dieser entscheidet ob die Ungleichung erfühlt ist oder nicht. Die Ungleichung besteht aus dem gemessenen Farbwert, einem "Kleiner als Zeichen (<)" und dem Grenzwert von 20. Der Grenzwert von 20 ist zwischen den Reflektionswerten von schwarzer und weisser Farbe (Schwarz = Reflektionswert von ca. 80 / Weiss = Reflektionswert von ca. 10). Lego verwendet dabei keine naturwissenschaftliche Masseinheit. Die Erfahrung hat dabei 20 als guten Grenzwert ergeben.
Ist nun der gemessene Wert kleiner als 20, so ist die Schalter-Bedingung erfüllt und der Roboter korrigiert nach rechts (oberer Programmweg). Ist der gemessene Wert grösser als 20, so ist die Schalter-Bedingung nicht erfüllt und der Roboter korrigiert nach links (unterer Programmweg). Die Schlaufe lässt den Roboter das Vorgehen unendlich oft wiederholen.
Video:
Kommentar:
In einem nächsten Schritt haben wir versucht den "Line Follower" zu verbessern, dazu haben wir im Programm die Möglichkeit geschaffen geradeaus zu fahren. Um diese Möglichkeit im Programm zu ergänzen, haben wir einen zweiten Schalter eingebaut, welcher bei einem mittleren Farbwert (45) zwischen schwarz und weiss (Schwarz = Reflektionswert von ca. 80 / Weiss = Reflektionswert von ca. 10). den Roboter geradeaus fahren lässt.
Programm:
Das Programm basiert grössten Teils auf dem einfachen "Line Follower", einzig wurde ein zweiter oranger Schlater eingfügt, welcher als dritte Fahroption geradeaus mit Geschwindigkeit 25 ermöglicht. In einem ersten Schritt entscheidet das Programm nun ob der "Line Follower" nach rechts fahren muss (Farbwert kleiner 10). Ist dies nicht der Fall überprüft der Roboter ob der geradeaus fahren soll (Farbwert kleiner 45). Ist auch dies nicht zutreffend, muss er nach links korrigieren, somit werden alle drei Richtungen abgedeckt. Dieser Prozess wird durch die Schlaufe ständig wiederholt
Video:
Kommentar:
Um nun den "Line Follower" weiter zu perfektionieren, wollten wir nicht mehr mit Schaltern arbeiten. Die Schalter können zwar zwischen verschieden Szenarien unterscheiden, dieser Unterscheidprozess dauert jedoch etwas zu lange und der Roboter fährt dadurch einen Zickzack-Kurs. Um dem entgegen zu wirken wollten wir die Farbwerte vom Farbsensor direkt verarbeiten lassen. Dadruch hängt die Fahrtrichtung direkt vom gemessenen Farbwert ab. Um nun aus dem Farbwert, welcher Werte zwischen 0 und 100 (Input) annehmen kann, einen Fahrrichtung zu erhalten, müssen die Werte mit einer Formel verarbeitet werden. Die Formel muss anschliessend aus den Eingabewerten des Farbsensors die künftige Fahrtrichtung bestimmen. Die Fahrtrichtung sollte aus Werten zwischen -50 und +50 (Output) bestehen. Die Variable c ist bei unserem Beispiel auf 1 gesetzt und hat keinen Einfluss auf die Fahrtrichtung. Bei schwierigen Lichtverhältnissen kann sie jedoch angepasst werden um die Präzision zu verbessern, da grössere Werte einen stärkere Korrektur verursachen.
Programm:
Das Programm beginnt wiederum mit einem orangen Startblock und befindet sich in einer Schlaufe. In der Schlaufe misst ein gelber Sensorblock die Farbwerte. Diese werden über die gelbe Verbindung in den roten Rechnungsblock übertragen. Im Rechnungsblock wird mit der Formel (a-b)*c die Fahrrichtung errechnet. Die errechneten Werte werden über die zweite gelbe Verbindung in den grünen Motorblock übermittelt. Dieser versteht die Werte als Fahrrichtung. Da die Schlaufe diesen Vorgang sehr häufig wiederholt, folgt der Roboter nun sehr genau der Linie.
Video:
Kommentar:
In einem fünften Schritt haben wir nun versucht dem "Line Follower" eine weitere Funktion zu verleihen. Da wir mit unserem "Line Follower" später Pakete zustellen möchten, brauchten wir eine Ladefläche, welche sich selber entladen kann. Die Ladefläche wird nun in dieser ersten Version immer entladen, wenn der Roboter einen roten Farbwert (Farbwert 5 = Rot) misst.
Programm:
Das Programm basiert zum grösten teil auf dem proportionalen "Line Follower" aus schritt vier. Nun verlässt er aber die orange Schlaufe, soblad der die Farbe rot erkennt. Anschliessend stoppt er die beiden Fahrmotoren (A+D) und teilt uns akustisch mit, dass er die Farbe rot (red) erkannt hat. Dies ist eine Hilfestellung, damit wir erkennen können, wo sich der Roboter gerade im Programm befindet. In einem nächsten Schritt bewegt er den Motor C und 45° nach unten, damit die Ladefläche kippt. Danach wartet er 2 Sekunden in dieser Position, bevor er die Fläche wieder zurückbewegt. Hierbei haben wir nur mit den einfachen grünen Motorblöcken und einem organgen Zeitblock gearbeitet.
Video:
Kommentar:
In einem sechsten Schritt haben wir das Programm aus Schritt fünf auf drei verschiedene Fahrwege angepasst. Jeder Fahrweg verfügt über eine eigenes "Stockwerk" im Programm und einer zugehörigen Linienfarbe (Linien: schwarz, grün und blau).
In jedem "Stockwerk" gibt es mehrer "Line-Follower"- und ein Ladeflächen-Programm. Zusätzlich haben wir für jedes "Stockwerk" respektive für jeden Fahrweg vorgegeben, bei welcher Farbe der "Line-Follower" abbiegen oder gerade aus fahren soll.
So können wir nun dem "Line-Follower" vorgeben welchen Fahrweg er anfahren soll und anschliessend fährt der Roboter autonom die richtige Strecke und entlädt sich beim roten Punkt. Nach dem Entladen fährt der Roboter automatisch zum Ausgangspunkt zurück. Jedesmal wenn der Ausgangspunkt erreicht wird, springt es zurück an den Start und läst uns ohne Neustart einen neuen Fahrweg wählen.
Programm:
Beim Programm kann zu Beginn mittels Drucksensor zwischen den drei Fahrwegen ausgewählt werden. Dabei ein spricht einmal Drücken dem schwarzen Fahrweg, zweimal Drücken dem blauen Fahrweg und nie drücken dem grünen Fahrweg.
Jeder Fahrweg enthät anschliessend mehrere "Line-Follower" und die passenden Informationen übers richtige Abbiegen. Nach dem Entladeprozess springt das Programm wieder in eine allgemeine Schlaufe bis der Roboter zurück am Ausgangspunkt angelangt ist. Dort kann mittes Drucksensor erneut und ohne zusätztlichen Aufwand ein neuer Fahrweg bestimmt werden.
Bilderkarusell des Programms:
Video: