Explorer: Linie folgen
Die Lerneinheit erklärt, wie der eXperiBot mithilfe eines Sensors einer vorgegebenen Linie selbstständig folgt.

Lerne, wie du deinem eXperiBot sagst, dass er einer Linie folgt.
Musterlösungen
Aufgabe 1
Für diese Aufgabe ist kein Programmcode erforderlich. Der eXperiBot muss lediglich startklar gemacht werden. Das bedeutet:
den eXperiBot vollständig zusammenbauen
eine Verbindung zur App herstellen
eine schwarze Linie auf dem Boden zeichnen oder kleben
Aufgabe 2
Zunächst muss der Multisensor unten vorn am eXperiBot befestigt werden. Die Modul-LED des Multisensors sollte anschließend blau leuchten.
Lösungsdatei zum Download und Import in die eXperiBot Blockly App.
Aufgabe 3
Lösungsdatei zum Download und Import in die eXperiBot Blockly App.
Aufgabe 4
Lösungsdatei zum Download und Import in die eXperiBot Blockly App.
Inhalte der Lerneinheit
Aufgabe 1
Verbinde deinen eXperiBot mit der App.
Gehe so vor:
Schalte deinen eXperiBot ein.
Drücke dann den Button „Verbinden“ oben rechts auf dem Bildschirm. Folge den Anweisungen, um deinen eXperiBot mit der App zu verbinden.



Du hast deinen eXperiBot zusammengebaut und mit der App verbunden – jetzt kann es losgehen!
Zeige, welchen Weg dein eXperiBot fahren soll – gestalte deine eigene Linie!
Nimm einen schwarzen Stift. Male eine gerade Linie auf eine große, helle Pappe. Die Linie soll mindestens 3 cm breit und 50 cm lang sein.
Oder: Nimm schwarzes Klebeband und klebe eine Linie auf den Boden.
Jetzt kann dein eXperiBot starten! Programmiere deinen eXperiBot und zeige, was er kann!

Aufgabe 2
Damit dein eXperiBot wie ein Roboter im Einkaufszentrum arbeiten kann, braucht er Sensoren. Sie helfen ihm, seine Umgebung zu erkennen und richtig darauf zu reagieren.
In der Lerneinheit „Hindernis ausweichen“ hast du den Multisensor schon kennengelernt. Dabei hast du gelernt, wie er ein Objekt erkennt.
So kann dein eXperiBot Hindernisse erkennen.
Das folgende Modul nennt man Multisensor.

Der Multisensor kann aber noch mehr: Er kann auch eine schwarze Linie erkennen.
Der Multisensor deines eXperiBots kann erkennen, ob der Untergrund hell oder dunkel ist.
So kann dein eXperiBot unterscheiden, ob er auf der dunklen Linie fährt oder auf dem hellen Untergrund.
So funktioniert das:
Eine LED im Sensor sendet infrarotes Licht (IR) auf den Boden:
Helle Oberflächen reflektieren viel Licht.
Dunkle Oberflächen reflektieren wenig Licht.
Der IR‑Sensor misst, wie viel infrarotes Licht zurückkommt.
Dadurch erkennt dein eXperiBot zuverlässig die Linie.

Status-LED
Beleuchtungs-LED und Sensoreinheit mit Infrarot –, Farb- und Umgebungslichtsensor
Infrarot-Sensor rechts
Infrarot-Sensor links
Befestige den Multisensor vorn unten am eXperiBot in Fahrtrichtung.

Damit dein eXperiBot der Linie folgen kann, muss der Multisensor immer wieder prüfen: Bin ich noch auf der Linie?
Der Multisensor hat zwei Infrarot-Sensoren (IR-Sensoren):
einen für die linke Seite,
einen für die rechte Seite.
Damit kann dein eXperiBot drei Situationen (a bis c) erkennen:

Überlege dir für jede Situation, in welche Richtung dein eXperiBot fahren soll, um der Linie zu folgen.
Wenn beide Infrarot-Sensoren die Linie erkennen, befindet sich dein eXperiBot vollständig auf der Linie.
Damit kann dein eXperiBot drei Situationen erkennen:
a) Beide IR-Sensoren sehen die dunkle Linie: Dein eXperiBot fährt geradeaus.
b) Nur der linke IR-Sensor sieht die dunkle Linie: Dein eXperiBot muss nach links fahren.
c) Nur der rechte IR-Sensor sieht die dunkle Linie: Dein eXperiBot muss nach rechts fahren.

Damit dein eXperiBot in den Situationen a, b und c richtig reagieren kann, brauchst du aus der Kategorie „Logik“ den „falls – mache“-Block.
Was ist ein „falls – mache“ Block?
Dieser Block führt Anweisungen nur dann aus, wenn eine bestimmte Bedingung wahr ist.
So etwas nennt man eine einseitige Verzweigung.
Mit einer Verzweigung kannst du den Ablauf deines Programms durch Bedingungen steuern.
Eine Bedingung kann nur wahr oder falsch sein. Je nachdem, ob die Bedingung „wahr“ oder „falsch“ ist, führt das Programm bestimmte Anweisungen aus oder eben nicht.
So kann dein eXperiBot passend auf unterschiedliche Situationen reagieren.
Wann brauchst du den „falls – mache“ Block?
Immer dann, wenn dein eXperibot in einer Situation unterschiedlich reagieren soll:
Wenn die Bedingung wahr ist, dann macht dein eXperiBot die Anweisung.
Wenn die Bedingung falsch ist, dann macht dein eXperiBot die Anweisung nicht.
Wie fügst du den „falls – mache“ Block ein?
Ziehe den Block „falls-mache“ aus der Kategorie „Logik“ in dein Programm.

Oben: Bedingung
Innen: Anweisung
Ziehe den Block in den Editor und verbinde ihn mit dem „starte Programm“-Block.

Situation a: Falls beide IR-Sensoren die dunkle Linie erkennen, mache: Motor fahre vorwärts.
Dein eXperiBot fährt nur vorwärts entlang der Linie, wenn beide IR-Sensoren die dunkle Linie erkennen. Dazu müssen sich beide IR-Sensoren auf der dunklen Linie befinden. (Situation a)
Dein eXperiBot soll nur fahren, wenn beide IR-Sensoren die Linie sehen. Damit das funktioniert, brauchst du eine Bedingung, die beide IR-Sensoren prüft. Dafür brauchst du den „und“-Block.
In der Informatik kann man zwei Bedingungen mit dem „UND“-Operator verbinden.
Das nennt man eine logische UND-Verknüpfung.
Das bedeutet: Beide Bedingungen müssen wahr sein, damit die Anweisung im „falls – mache“-Block ausgeführt wird.
Beispiel: Falls der linke IR-Sensor UND der rechte IR-Sensor die dunkle Linie erkennen, mache „Motor fahre vorwärts“.
Ziehe aus der Kategorie „Logik“ den Block „und“ in den „falls – mache“-Block. Setze ihn dort in das Feld für die Bedingung.

Situation a: Falls beide IR-Sensoren die dunkle Linie erkennen, mache: Motor fahre vorwärts.
Ziehe zwei passende Bedingungen aus der Kategorie „Multisensor“ in den „und“-Block.
Die Bedingungen sollen zu Situation a passen: beide IR-Sensoren erkennen die dunkle Linie.
Füge aus der Kategorie „Motor“ die Anweisung „Motor fahre vorwärts“ in den „mache“-Teil ein. So weiß dein eXperiBot, was er machen soll, wenn er die Linie erkennt.
Passe danach die Geschwindigkeit und die Dauer an.
Teste dein Programm. Setze dazu deinen eXperiBot an den Start deiner Linie.
Achte darauf, dass beide IR‑Sensoren des Multisensors am Anfang auf der Linie stehen.

Dein eXperiBot fährt jetzt nur vorwärts, wenn beide IR-Sensoren die Linie erkennen.
Was passiert, wenn dein eXperiBot die Linie nicht erkennt?
Falls der linke oder der rechte Sensor nicht mehr auf der Linie ist, dann muss dein Programm auch die Situationen b und c erkennen.

Damit dein eXperiBot auch auf die Situation b und c richtig reagieren kann, braucht dein Programm weitere Bedingungen.
Du kannst den „falls – mache“-Block erweitern, indem du „sonst falls“-Blöcke einfügst.
Dein Programm prüft die Bedingungen von oben nach unten. Sobald eine Bedingung wahr ist, wird nur diese Anweisung ausgeführt. Danach wird nicht mehr weiter geprüft.

Hilf deinem eXperiBot, der Linie zu folgen!
Schau dir dazu den Code in Situation a an. Dann kannst du auch die Bedingungen für b und c korrekt aufstellen.
Setze anschließend die passenden Blöcke aus der Kategorie „Motor“ ein.
Wenn der linke Sensor hell sieht, muss dein eXperiBot nach rechts fahren. So findet er die Linie wieder.
So könnte dein Programm aussehen:
Wenn dein eXperiBot beliebig lange auf der Linie fahren soll, dann muss diese komplette Sequenz unendlich Mal wiederholt werden.
Ziehe deshalb aus der Kategorie „Schleifen“ den passenden Block in den Editor.
Die Schleife, die eine Sequenz immer wiederholt, kennst du schon aus der Lerneinheit „Hin und Herfahren“. Damit konnte dein eXperiBot ununterbrochen zwischen zwei Stationen hin‑ und herfahren.
Teste dein Programm.

Probiere aus, wie sich dein eXperiBot verhält, wenn du in den Blöcken aus der Kategorie „Motor“ die Werte für
die Zeit,
den Drehwinkel oder
die Geschwindigkeit veränderst.
Teste dein Programm nach jeder Änderung.

Beobachte genau, wie sich dein eXperiBot verhält. Was fällt dir auf?
Welche Werte funktionieren besonders gut?
Dein eXperiBot folgt der Linie.

Aufgabe 3
Momentan wiederholt dein eXperiBot die Befehle zum Folgen der Linie unendlich oft. Das bedeutet: Dein eXperiBot überprüft ständig, ob er sich noch auf der Linie befindet.
Jetzt soll dein eXperiBot anhalten und eine Melodie abspielen, sobald er das Ende der Linie erreicht. Dafür müssen beide IR‑Sensoren den hellen Untergrund erkennen.
Ersetze dafür die „wiederhole unendlich“-Schleife durch eine Schleife, die stoppt, wenn beide IR-Sensoren den hellen Untergrund erkennen.
Dein eXperiBot fährt weiter, solange ein IR-Sensor noch die dunkle Linie sieht.
Erst wenn beide Sensoren keinen dunklen Untergrund mehr erkennen, stoppt dein eXperiBot.
Hast du die richtige Schleife ausgewählt?
Mit dieser Schleife ersetzt du die „wiederhole unendlich“‑Schleife:
Wissensupdate „wiederhole-solange“ Block
Was ist ein „wiederhole‑solange“ Block?
Der „wiederhole‑solange“-Block ist eine Schleife. Sie wiederholt die Anweisungen im Block immer wieder, solange die Bedingung wahr ist.
Bevor die Schleife startet, wird die Bedingung geprüft:
Wenn die Bedingung wahr ist, dann beginnt die Schleife und die Anweisungen werden ausgeführt.
Wenn die Bedingung falsch ist, dann wird die Schleife nicht gestartet.
Darum nennt man diese Schleife in der Informatik eine kopfgesteuerte Bedingungsschleife. Die Bedingung steht sozusagen „am Kopf“ der Schleife und entscheidet, ob sie läuft oder nicht.
Wann brauchst du den „wiederhole‑solange“ Block?
Der Block wird verwendet, wenn etwas so lange wiederholt werden soll, wie eine bestimmte Bedingung wahr ist.
Wie fügst du den „wiederhole-solange“ Block ein?
Ziehe den Block „wiederhole-solange“ aus der Kategorie „Schleifen“ in dein Programm.

Füge die Bedingung ein, die geprüft werden soll.
Setze in den Schleifenblock alle Anweisungen, die dein eXperiBot ausführen soll, solange die Bedingung wahr ist.
Füge eine passende Bedingung in den „wiederhole-solange“-Block ein.
So stoppt dein eXperiBot, sobald er nicht mehr auf der Linie ist. Also wenn beide IR‑Sensoren keinen dunklen Untergrund mehr sehen.
Wenn die Bedingung wahr ist, dann führt der „wiederhole‑solange“-Block alle Anweisungen aus.
Damit die Bedingung wahr ist, muss mindestens einer der beiden IR‑Sensoren die dunkle Linie erkennen.
In der Informatik nutzt du dafür den logischen Operator „oder“.
Mit diesem Block verbindest du zwei Bedingungen miteinander.
Der „oder“-Block gibt wahr zurück, wenn mindestens eine der beiden Bedingungen wahr ist.
Das bedeutet: Es reicht, wenn ein IR Sensor die dunkle Linie erkennt. Dann bleibt die Bedingung wahr und die Schleife läuft weiter.
Wenn die Bedingung im „wiederhole‑solange“-Block falsch wird, dann stoppt die Schleife.
Dann hat dein eXperiBot das Ende der Linie erreicht. Also sehen beide IR‑Sensoren keinen dunklen Untergrund mehr.
Damit du das Stoppen der Schleife gut erkennst, soll dein eXperiBot einen Ton abspielen.
Ergänze nun dein Programm: Füge einen passenden Block ein, der einen Ton abspielt.
Der neue Block zum Abspielen eines Tons gehört nicht in die Schleife.
Der Block wird erst ausgeführt, nachdem die Schleife gestoppt hat.
Teste jetzt dein Programm. Setze deinen eXperiBot an den Anfang der Linie und starte das Programm.

Beobachte, ob dein eXperiBot der Linie folgt und am Ende der Linie stoppt.
Dein eXperiBot stoppt am Ende der Linie und spielt einen Ton ab.
Aufgabe 4
Momentan nutzt du in deinem Programm den Block „wiederhole‑solange“. Dieser Block führt Anweisungen aus, solange die Bedingung wahr ist.
Ändere den Block jetzt zu „wiederhole‑bis“.
Passe nun die Bedingung im Block „wiederhole-bis“ so an, dass dein eXperiBot weiterhin der Linie folgen kann.
Der Block „wiederhole‑bis“ führt Anweisungen aus, bis die Bedingung wahr wird.
Teste dein Programm.

Fährt dein eXperiBot noch genauso gut auf der Linie? Stoppt er am Ende der Linie wie vorher? So sollte es auch funktionieren, wenn du statt „wiederhole‑solange“ nun „wiederhole‑bis“ benutzt.
Falls nicht, überprüfe deine Bedingung.
Wichtig: Der Block „wiederhole‑bis“ wiederholt die Anweisungen, bis die Bedingung wahr wird.
Wenn du „wiederhole‑solange“ nutzt, dann läuft dein Programm weiter, solange die Bedingung wahr ist.
Zum Beispiel, solange ein IR‑Sensor die dunkle Linie erkennt.
Wenn du „wiederhole‑bis“ nutzt, dann läuft dein Programm weiter, bis die Bedingung wahr wird.
Zum Beispiel, bis beide IR‑Sensoren den hellen Untergrund sehen.
Wenn dein eXperiBot der Linie folgt und am Ende der Linie stoppt, hast du „wiederhole‑bis“ Block richtig eingesetzt. Also kannst du für das Programm „Linie folgen“ beide Schleifen nutzen: „wiederhole‑solange“ oder „wiederhole‑bis“.
Zusatzaufgabe 1
Erweitere deine schwarze Linie um ein paar Kurven. Achte darauf, dass die Kurven nicht zu eng sind, damit dein eXperiBot sie gut fahren kann.

Stelle deinen eXperiBot auf die Linie und starte dein Programm.

Beobachte: Bleibt dein eXperiBot auch in den Kurven zuverlässig auf der Linie?
Falls nicht, passe dein Programm oder deine Linie entsprechend an.
Wenn dein eXperiBot in der Kurve von der Linie abkommt:
verringere die Geschwindigkeit,
verkleinere den Drehwinkel bei „Motor drehe nach links“ oder „Motor drehe nach rechts“,
mache die Linie etwas breiter,
zeichne die Kurven nicht zu eng.
Dein eXperiBot folgt einer kurvigen Linie.

Zusatzaufgabe 2
Nutze dein Programm, das deinen eXperiBot der Linie folgen lässt und am Ende der Linie stoppt.
Ergänze dein Programm so, dass dein eXperiBot am Ende der Linie für ein paar Sekunden stoppt und danach auf der Linie wendet.
Jetzt sollen diese Anweisungen ununterbrochen wiederholt werden.
Füge dafür eine passende Schleife in dein Programm ein.
Teste dein Programm.

Beobachte, ob dein eXperiBot am Ende der Linie stoppt, wendet und der Linie wieder folgt. Passe deinen Code an, wenn etwas noch nicht gut funktioniert.
Dein eXperiBot stoppt, wendet und fährt die Linie zurück – immer wieder.
