Der Formel EV3 kann auch selbstständig herum fahren und Hindernissen ausweichen. Dazu müssen wir aber erst den Infrarotsensor besser kennen lernen.
Der Infrarotsensor
Mit dem Infrarotsensor nimmt der Roboter seine Umgebung war. Mit Infrarotlicht misst der Sensor den Abstand zu Objekten. Zusätzlich dient er als Empfänger für Signale der Infrarot-Fernsteuerung.
Der Infrarot-Sensor kennt verschiedene Modi:
- Nähemodus, um den Abstand zu einem Objekt zu messen
- Fernsteuerungsmodus, um Signale der gedrückten Knöpfe auf der Infrarot-Fernsteuerung zu empfangen
- Signal-Nähe, um den Abstand zur Infrarot-Fernsteuerung zu messen
- Signal-Richtung, um die Position der Infrarot-Fernsteuerung zu messen

Das Infrarotlicht des Sensors soll mit einer Digitalkamera sichtbar sein. Wir haben das mit einem iPhone getestet, konnten aber nichts erkennen.
Nähemodus
In diesem Modus können wir den Abstand zu einem Objekt messen. Der Abstand wird nicht in Zentimeter, sondern in Prozent von 0% (sehr nah) bis 100% (weit weg) angezeigt.
Wir testen das direkt auf dem EV3-Stein. Dazu wählen wir in der Anschlussansicht den Eingang 4. An diesem ist der Infrarotsensor angeschlossen. Eventuell müssen wir noch auf IR-PROX (Infrarot Proximity = Infrarot Näherungssensor) umschalten.
Der Sensor misst die zurückgeworfene (reflektierte, gespiegelte) Lichtmenge. Je näher das Objekt ist, desto mehr Licht wird reflektiert. Dabei kommt es aber auf die Oberfläche des Objektes an. Manche Oberflächen reflektieren Licht besser als andere. So scheinen sie näher am Sensor zu sein.
Wir testen das mit einem weissen und einem schwarzen Papier und können den Unterschied gut erkennen.
Hindernissen ausweichen
Der Sensor kann die genaue Distanz nicht messen, aber trotzdem Hindernisse erkennen:
- Sensorwert 100%: Nichts zu erkennen, kein Hindernis im Weg
- Sensorwert 30%: der Roboter nähert sich einer Wand oder einem anderen Hindernis
Wir wollen das in einem Programm ausprobieren:
- Roboter fährt geradeaus
- Sensor erkennt Entfernungswert unter 70%
- steuert links
- Roboter fährt rückwärts
- zentriert Räder
- fährt weiter geradeaus
Kannst Du das Flussdiagramm dazu zeichnen, Mrtz?
Ja, Mrtz kann

Formel EV3: Selbstständig fahren
Mit dem Infrarotsensor können wir Hindernisse erkennen und ihnen ausweichen und erstellen aus dem Flussdiagramm das Programm «SelberFahren». Dabei haben wir ein Problem mit den selbst erstellten Blöcken, welche wir für die Fernsteuerung programmiert haben. Hnz hat diese Blöcke in der Gross- und Kleinschreibung angepasst, damit alle in gleicher Art angeschrieben sind. Doch damit kann die Mindstorms-Programmiersoftware nicht umgehen. Deshalb haben wir schnell einen neuen Block «Reset2» erstellt, der aber das gleiche macht, wie «Reset».

Sensoren kombinieren
Wir können in Programmen mehrere Sensoren miteinander kombinieren und müssen uns nicht auf einen einzelnen Sensor beschränken. Dazu ein Beispiel:
- Infrarotsensor sieht kleine Objekte nicht immer
- der Berührungssensor kann kleine Objekte aber gut erkennen
- der Berührungssensor reagiert aber wiederum nicht auf weiche Objekte wie Vorhänge
- diese kann aber der Infrarotsensor gut erkennen
In Programmen können Sensormessungen mit einem Schalterblock in einem Schalterblock verwendet werden. Wir werden das später in einem Programm anwenden.
Fernsteuerungsmodus
Den Fernsteuerungsmodus haben wir schon kennen gelernt und für die Fernsteuerung des Formel EV3 verwendet.
Modus Signal-Nähe
Der Sensor kann nicht nur erkennen, ob eine Taste der Infrarot-Fernsteuerung gedrückt wird, sondern auch die Signalstärke und Signalrichtung, wo das Infrarot-Licht her kommt.
Dabei ermittelt der Sensor wieder eine relative Distanz:
- 1%: Sender ist sehr nah am Sensor
- 100% Sender ist weit weg
Die besten Ergebnisse erhalten wir, wenn der Sender auf gleicher Höhe wie der Empfänger oder nur wenig höher ist. Ebenfalls wichtig ist, dass die «Augen» des Senders auf den Roboter gerichtet sind.
Um das zu testen geht der Knopf oben am besten.

Ein grünes Licht leuchtet auf dem IR-Sender, wenn der Knopf gedrückt wird und erlischt, wenn der Knopf erneut gedrückt wird. So muss der Knopf nicht die ganze Zeit gedrückt werden.
Modus Signal-Richtung
In diesem Modus kann der Sensor die Richtung des Senders erkennen. Die Messwerte liegen dabei zwischen -25 und 25 und sind sehr grob. Es reicht aber, um zu erkennen, ob der Sender sich links (negative Werte) oder rechts (positive Werte) befindet. Der Sensor kann den IR-Sender in allen Richtungen erkennen, auch wenn er sich hinter dem Sensor befindet. Im grünen Bereich ist die Messung am genausten.

Bei einem Richtungswert von 0 ist der Sender genau vor oder hinter dem Roboter oder kein Signal wird empfangen. Die Information, ob der Sender links oder rechts ist, reicht, um einen Roboter auf den Sender zufahren zu lassen.
- Sender links => nach links fahren (Wert < 0)
- Sender rechts => nach rechts fahren
So kann der Sender als Beacon (Signalfeuer) verwendet werden und der Roboter darauf zu fahren. Dabei muss der IR-Sender dauernd senden (mit dem Knopf oben einschalten).
Sendermodi kombinieren
Wenn mehrere Modi des Infrarotsensors im gleichen Programm verwendet werden, führt das zu Verzögerungen, da der Sensor von einem Modus auf den anderen umschalten muss. Nur die Modi Signal-Nähe und Signal-Richtung kann der Sensor ohne Pause umschalten.
Selbst entdecken: Unfallerkennung
Als Du das automatische Fahrprogramm ausgeführt hast, hast Du sicher bemerkt, dass der Infrarotsensor gut in der Erkennung von Wänden und anderen grossen Objekten ist, kleine Objekte wie ein Stuhlbein aber nicht immer sieht. Kannst Du den Roboter Hindernisse auf andere Weise umfahren lassen? Nutze Ungeregelter-Motor-Blöcke, um zu fahren, und die Drehsensoren der Heckmotoren, um einen plötzlichen Abfall der Drehgeschwindigkeit zu erkennen. Lasse den Roboter rückwärts und in eine andere Richtung fahren, wenn er entweder ein Objekt mit dem Infrarotsensor erkennt oder in eines hineinfährt.
Wir schauen in unserem Programm nicht auf den plötzlichen Abfall der Drehgeschwindigkeit, sondern nutzen einen Berührungssensor in der Front.

Damit wir dieses Programm testen können, müssen wir in den Formel EV3 einen Berührungssensor in die Frontflügel einbauen. Die Front des Formel EV3 ist recht eng und der Sensor recht gross. Das macht es schwierig, diesen neuen Frontflügel mit Sensor zu konstruieren und einzubauen. Für viele Lösungen fehlen uns dann auch die passenden Lego-Verbinder. Wir lassen den Formel EV3 erstmal, wie er ist.
Selbst konstruieren: Schneller fahren
Kannst Du den Entwurf des Formel-EV3-Rennwagens verbessern, so dass er schneller fährt? Verwende 36z und 12z-Zahnräder, um die Hinterräder um den Faktor 3 zu beschleunigen.

Um die Zahnräder und das Getriebe einbauen zu können, müssen wir das gesamte Hinterteil umbauen. Jetzt hat der Roboter auch seinen Namen «Formel EV3» verdient. Mit dem Getriebe ist er sehr schnell und flitzt durch die Gegend.
Wir haben jetzt alle Sensoren von Lego-Mindstorms kennen gelernt. Diese Sensoren machen die Roboter sehr mächtig und vielseitig. So sind die Möglichkeiten, LEGO-Roboter zu bauen und zu programmieren beinahe grenzenlos.