DAS PROJEKT
Der Edison Roboter kann Hindernisse erkennen, die vor ihm stehen. Er verwendet dazu elektronische Bauteile, nämlich zwei Infrarot-LEDs (abgekürzt IR-LEDs) und einen Infrarot-Empfänger (IR-Empfänger). Die IR-LEDs senden unsichtbares Infrarotlicht aus. Hindernisse reflektieren dieses Licht und das erkennt der Roboter mit seinem IR-Empfänger.
In diesem Projekt bringen wir Edison bei, wie er Hindernissen ausweicht. Die Ergebnisse dieses Projekts kannst du in dem kurzen Video sehen.
DEINE MISSION
Erstelle mit EdBlocks ein Programm und teste es:
- Der Edison Roboter soll mit langsamer Geschwindigkeit vorwärts fahren, bis er auf ein Hindernis stößt.
- Wenn Edison das Hindernis erkennt, soll er anhalten und einmal piepen.
- Teste dein Programm ein paar Male. Verändere beim Aufstellen den Abstand vom Roboter zum Hindernis und lasse ihn auch mal unverändert. Was fällt dir auf?
Hindernisse sollten mindestens 15 cm hoch und hell (NICHT transparent) sein. Falls dein Edison Hindernisse nicht erkennt, siehe unsere Seite EDISON – MOTOREN/HINDERNISERKENNUNG EINSTELLEN.
Lösungsvorschlag:So haben wir die Hinderniserkennung bei langsamer Fahrt programmiert:
Hinweise zu den Symbolblöcken:
- Die ersten beiden Symbole findest du unter Kategorie “Drive” (Fahren).
- Zuerst stellst du mit Symbol “Set drive speed to …” (Stelle die Fahrgeschwindigkeit auf…) die Fahrgeschwindigkeit ein. Klicke auf den Pfeil nach unten und wähle in der Auswahl “Set drive speed to slow” (Stelle die Fahrgeschwindigkeit auf langsam).
- Stelle das Symbol “Drive forward while on a white surface” (Fahre vorwärts wenn auf einer weißen Oberfläche) mit Klick auf den Pfeil auf “Drive forward” (Fahre vorwärts) um.
- Das Symbol “Wait until an obstacle is detected” (Warte bis ein Hindernis erkannt wird) findest du unter Kategorie “Wait until” (Warten bis). Dieses Symbol schaltet die Hinderniserkennung ein. Nachdem ein Hindernis erkannt wurde, werden die nachfolgenden Aktionen (z.B. ein Piepen) ausgeführt.
- Das Piepen ist eine Ausgabe. Das entsprechende Symbol dazu findest du als “Beep” unter Kategorie “Outputs” (Ausgaben).
- Uns ist aufgefallen, dass der Roboter in unterschiedlichen Abständen zum Hindernis stoppt. Manchmal fährt er sogar ins Hindernis hinein. Die Hinderniserkennung funktioniert nur ungenau.
Behalte den oberen Programmteil und erweitere dein Programm:
- Edison soll ein kleines Stück zurück und dann in einem ungefähr rechten Winkel, das bedeutet in einem Winkel von ca. 90°, nach links fahren. Gleich nach seiner Kurvenfahrt soll der Roboter stoppen.
So haben wir unser Programm erweitert:
Hinweise zu den Symbolblöcken:
- Die Symbole bis zum “Piepen” haben wir oben erklärt.
- Du findest auch die nächsten beiden Symbole unter Kategorie “Drive” (Fahren)
- Die Rückwärtsfahrt stellst du mit Symbol “Drive backward for n seconds” (Fahre rückwärts für n Sekunden) ein. Setze den Wert auf 0.3 Sekunden.
- Für die Linkskurve verwendest du Symbol “Turn left for n seconds” (Drehe nach links für n Sekunden). Wir haben verschiedene Werte ausprobiert und uns für den Wert 0.45 Sekunden entschieden.
Lass uns die Mission abschließen:
- Edison soll das Programm solange durchlaufen, bis die viereckige Stopptaste gedrückt wird. Er wird also allen Hindernissen, denen er begegnet, nach links ausweichen.
Das ist unser fertiges Programm (edison_hindernis.eeb):
Hinweise zu den Symbolblöcken:
Unser Programm war ja schon “fast” fertig. Wir wollen nur, dass Edison das Programm solange wiederholt, bis wir ihn stoppen. Das erreichen wir durch das Klammer-Symbol “Loop forever” (Unendliche Schleife) unterhalb Kategorie “Control” (Kontrollstruktur). Schleifen werden ja verwendet, um Anweisungen zu wiederholen. Hier werden alle Anweisungen innerhalb der Klammer solange wiederholt, bis die Stopptaste des Roboters gedrückt wird.
Das Setzen der Geschwindigkeit erfolgt einmal und muss nicht wiederholt werden. Deshalb haben wir das Symbol vor die Klammer gesetzt.
Was du bei diesem Projekt lernen kannst:
- Edison kann mittels elektronischer Bauteile Hindernisse erkennen. Dazu sendet er mit Infrarot-LEDs Licht aus. Hindernisse reflektieren das Licht und das stellt der Roboter mit seinem Infrarot-Empfänger fest.
- Es gibt in EdBlocks Symbole mit Aktionen, die nur dann ausgeführt werden, wenn eine bestimmte Bedingung erfüllt ist. Programmierer nennen das “bedingte Anweisung“. Wir verwenden hier das Symbol “Wait until an obstacle is detected” (Warte bis ein Hindernis erkannt wird).
- Mit sogenannten “Ausgaben” kann der Roboter etwas zurückmelden. Zum Beispiel kann er piepen, wenn er ein Hindernis erkannt hat. So kannst du beim Programmablauf erkennen, ob Dinge richtig funktionieren.
- In EdBlocks gibt es auch eine einfache Möglichkeit, Anweisungen solange zu wiederholen, bis etwas die Ausführung stoppt. Programmierer nennen das eine “Schleife“. Wir verwenden hier ein Klammer-Symbol. Alle Anweisungen innerhalb der Klammer werden so oft wiederholt, bis die viereckige Stopptaste gedrückt wird.