Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03143.jsonl.gz/731

Bisher haben wir den EXPLOR3R exakte Werte und Farben wie Weiss, Schwarz, Rot oder Gelb erkennen lassen und damit gesteuert. Nur schon zwischen Weiss und Schwarz gibt es hunderte von Graustufen. Damit können die Programme viel feiner reagieren und den Roboter steuern.
Schwellenwert festlegen
Wir bewegen den Roboter mit dem Farbsensor langsam von der Linie (schwarz) weg auf’s weisse Blatt und beobachten die Messwerte. Diese verändern sich stetig zwischen 5% und 65%.
Wenn der Sensor-Lichtstrahl (gelber Kreis) einen Teil Linie und einen Teil weisses Blatt sieht, wird der Messwert eine Mischung aus schwarz und weiss. Also gleich, wie wenn er eine graue Fläche sehen würde.
Mit diesen genaueren Messwerten können wir den Linienverfolgungsroboter verbessern.
Mrtz und Hnz berechnen den Schwellenwert mit folgender Formel:
Schwarz + Weiss 5 + 65 Schwellenwert = --------------- = -------- = 35 2 2
Wir erstellen ein neues Programm «LinieFolgen2» und kopieren das früher erstellte Programm «LinieFolgen» hinein. Das spart einiges an Arbeit. Den Schalterblock stellen wir um auf den Modus Farbsensor > Vergleichen > Stärke des reflektieren Lichts.
Wie war das nochmals mit dem reflektieren Lichts? Dabei wird gemessen, wieviel Licht von einer Oberfläche zurück gespiegelt wird. Schwarz spiegelt wenig, darum wirkt es dunkel. Weiss spiegelt stärker und wirkt darum hell.
Wir können nun auf verschiedene Arten vergleichen:
- Wert 0 im Schalter: gleich = dem Schwellenwert
- Wert 1 im Schalter: ungleich ≠
- Wert 2 im Schalter: grösser >
- Wert 3 im Schalter: grösser oder gleich >=
- Wert 4 im Schalter: kleiner <
- Wert 5 im Schalter: kleiner gleich <=
Da Mrtz diese Vergleiche schon kennt, muss ich da gar nicht mehr viel erklären. Ein paar Beispiele haben wir trotzdem angeschaut.
Das Programm reagiert nun auf diesen Schwellenwert: Nach rechts drehen, wenn der Sensor dunkel sieht. Das bedeutet, der gelesene Sensorwert ist kleiner als der Schwellwert. Die Einstellung ist also: < 35
Wir lassen den EXPLOR3R auf unserer nochmals zusammen gebauten Teststrecke der Linie folgen und stellen fest, dass die Bewegungen weniger ruckartig sind.
Linie noch sanfter folgen
Wir können den Roboter aber noch geschmeidiger fahren lassen, in dem wir weitere Schwellenwerte berechnen und die Steuerung weiter verfeinern. Zum Beispiel muss der EXPLOR3R keine scharfe Kurve fahren, wenn er nahe an der schwarzen Linie ist.
Wir berechnen die weiteren Schwellenwerte und erhalten diese drei Werte:
- 20
- 34
- 48
Das Programm soll wie in der Grafik beschrieben ablaufen
Mrtz erstellt daraus sein Flussdiagramm. Diese Form einer Beschreibung ist näher an der Programmierung, als die Grafik im Buch. Wir können im Flussdiagramm zum Beispiel Schalter erkennen.
Wir erstellen «LinieFolgen3» und kopieren alle Blöcke aus «LinieFolgen2» dort hin. Mit weiteren Schaltern und teilweise kleineren Bewegungen verfeinern wir unser Programm und lassen den EXPLOR3R wieder auf die Teststrecke los.
Diese Rundfahrt unseres EXPLOR3Rs sieht nun sehr professionell aus und wir sind mit dem Resultat zufrieden. Gut zu erkennen sind die grösseren Lenkbewegungen in den Kurven, wenn der EXPLOR3R weiter weg von der schwarzen Linie ist.
Modus: Stärke des Umgebungslichts
In diesem Modus kann der Farbsensor die Lichtstärke in einem Zimmer oder von einer Lichtquelle (Lampe) messen. Mit so einer Messung kann zum Beispiel festgestellt werden, ob das Licht im Zimmer ein- oder ausgeschaltet ist.
Um damit zu experimentieren, müssen wir den Farbsensor ummontieren. Nun zeigt er schräg in die Höhe und kann das Licht im Zimmer messen. Und das probieren wir aus. In der Anschlussansicht des EV3 wählen wir COL-AMBIENT für die Messwerte des Umgebungslichts.
- 0% sehr dunkel
- 100% sehr hell
So spielen wir ein bisschen herum: Wir halten die Hand drauf oder drehen den EXPLOR3R zum Fenster hin. Dabei lesen wir immer wieder die Messwerte ab. Im Umgebungslicht-Modus strahlt der Sensor ein blaues Licht aus. Während der Messung wird es jedoch kurz ausgeschaltet.
Morse-Programm
Jetzt erstellen wir ein Programm, mit dem wir den Roboter mit Lichtsignalen in einem dunklen Raum steuern können. Wir programmieren den Roboter nach rechts zu fahren, wenn er Licht für mehr als zwei Sekunden empfängt, und nach links, wenn das Signal kürzer ist. So können wir den Roboter mit dem Lichtschalter im Zimmer stueern. Es handelt sich dabei um eine einfach Form von Morse-Code. Die Pfadfinder unter uns müssen das nicht mehr genauer erklärt bekommen. Den anderen hilft Wikipedia.
Zuerst wartet der Roboter in einem Warteblock, bis ein Licht leuchtet. Nachdem ein weiterer Warteblock zwei Sekunden abgewartet hat, verwendet das Programm einen Schalterblock, um zu entscheiden, ob das Licht noch brennt. Wenn ja, steuert es den Roboter nach rechts, ansonsten nach links.
Damit wir den Unterscheid zwischen «Licht ist an» und «Licht ist aus» im Programm fest stellen zu können, müssen wir wieder einen Schwellenwert berechnen. Dazu verdunkeln wir das Zimmer und messen die beiden Werte für eingeschaltetes und ausgeschaltetes Licht. Die Formel ist dann einfach berechnet:
Licht an + Licht aus 11 + 4 Schwellenwert = --------------------- = ------ = 11 2 2
Das Programm zu erstellen stellt uns vor keine grossen Herausforderungen und der Roboter reagiert brav auf das Licht. Das Schwierigste ist, den Lichtschalter im richtigen Moment zu betätigen und das Licht nach zwei Sekunden auch wieder auszuschalten.
Selbst entdecken: Kabelfernsteuerung
Kannst Du den Roboter nach links fahren lassen, wenn du den Berührungssensor drückst, und nach rechts, wenn du den Finger auf den Farbsensor legst? Löse beide Sensoren aus ihren Befestigungen, sodass du sie in der Hand halten kann. Schliesse sie dann mit den längsten vorhandenen Kabeln an den EV3-Stein an. Wie bringst du den Farbsensor dazu, deinen Finger zu erkennen?
Hinweis: Wie ist die Stärke des reflektierten Lichts, wenn du deinen Finger auf den Sensor legst?
Diese Aufgabe war nicht schwer: Eine Endlos-Schleife, zwei Schalter und zwei Standardsteuerungen. Schon reagiert der EXPLOR3R auf unsere Kabelfernsteuerung.
Selbst entdecken: Hindernisse auf der Linie
Kannst Du den Roboter auf der Teststrecke fahren und wenden lassen, wenn er auf ein Hindernis trifft? Schliesse den Berührungssensor wieder an den Roboter an und baue den Farbsensor links davon ein. Es wird nur eine Noppe verbunden, aber das reicht aus.
Hinweis: Ändere den Schleifenblock im Linienverfolgungsprogramm so, dass er wiederholt wird, bis der Berührungssensor gedrückt wird. Dann soll der Roboter wenden, die Linie wiederfinden und ihr in der anderen Richtung folgen.
Wir kopieren das Programm «LinieFolgen3» und erstellen daraus das neue Programm «HindernisseAufDerLinie». Die Schleife, die endlos die schwarze Linie sucht, verändern wir so, dass sie beendet wird, wenn der Berührungssensor ausgelöst wird. Dann fahren wir etwas zurück, wenden den Roboter und fahren weiter. Soweit hat das auch gut geklappt. Nur die Drehnung des Roboters zurück auf die schwarze Linie klappte nicht jedes Mal. So folgte unser Roboter nach einem Hinderniss öfter den dunklen Spalten im Holzboden, statt die schwarze Linie zu finden.
Heute haben wir Formeln und Schwellenwerte kennen gelernt, die Programme sanfter reagieren lassen. Und wir haben Kabel- und Lichtschaltersteuerungen programmiert und so den Roboter selbstständig oder ferngesteuert fahren lassen. Ab und zu hat ein Programm nicht richtig reagiert, weil die Sensoren am EV3 an einem anderen Anschluss eingesteckt waren, als wir im Programm eingestellt haben.