DAS PROJEKT
Wie der Edison Roboter eine schwarze Linie erkennt, haben wir im Projekt “EINER LINIE FOLGEN” erklärt. Wir werden jetzt diese Erkennung dafür einsetzen, dass der Roboter eine dunkle Linie nicht überquert.
DEINE MISSION
Erstelle mit EdBlocks ein Programm und teste es:
- Der Edison Roboter soll mit langsamer Geschwindigkeit vorwärts fahren, bis er eine schwarze Linie erreicht.
- Wenn Edison die schwarze Linie erkennt, soll er anhalten.
- Bereite die Testfahrten mit einer der folgenden Möglichkeiten vor:
– entweder lade dir unser Dokument Edison Barcodes TOP 5 herunter und drucke die erste Seite aus (enthält eine Teststrecke).
– oder setze eine Edison-Aktivitätsmatte (siehe Edison-Aktivitätsmatte als PDF-Datei) ein.
– oder klebe einen geschlossenen Kreis oder ein Oval mit schwarzem Klebeband auf eine helle Unterlage. - Setze Edison mitten in den Kreis/Oval und starte dein Programm.
Falls du unsicher bist, wie du Programme erstellst und auf Edison lädst, siehe unser Video auf der Seite EDISON – PROGRAMMIEREN MIT EDBLOCKS.
Lösungsvorschlag:So fahren wir mit langsamer Fahrt an eine schwarze Linie und stoppen:
Hinweise zu den Symbolblöcken:
- Du findest beide Symbole 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).
- Mit Symbol “Drive forward while on a white surface” (Fahre vorwärts wenn auf einer weißen Oberfläche) stellst du eine Bedingung auf. Der Roboter fährt nur vorwärts, wenn die Oberfläche hell ist. Bei einer dunklen Oberfläche, z.B. ein schwarzer Strich, stoppt die Fahrt.
Jetzt erweitere dein Programm:
- Edison soll mit langsamer Geschwindigkeit vorwärts fahren, bis er eine schwarze Linie erreicht. Diesen Programmteil hast du oben schon erledigt.
- Wenn Edison die schwarze Linie erkennt, soll er eine halbe Sekunde (0.5) rückwärts fahren.
- Danach soll er eine Rechtskurve fahren (0.6 Sekunden). Der Roboter macht so eine Drehung über 90°.
- Wenn dein Programm funktioniert, stelle die Fahrgeschwindigkeit auf “schnell”. Was ändert sich mit der Fahrgeschwindigkeit?
So sieht unser erweitertes Programm aus:
Hinweise zu den Symbolblöcken:
- Die beiden ersten Symbole 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.5 Sekunden.
- Für die Rechtskurve verwendest du Symbol “Turn right for n seconds” (Drehe nach rechts für n Sekunden) und stellst den Wert 0.6 Sekunden ein.
- Wenn die Fahrgeschwindigkeit auf “schnell” eingestellt ist, werden bei gleicher Zeit die zurückgelegten Fahrstrecken länger. Auch die Rechtskurve wird länger, so dass sich der Roboter fast umdreht. Auf der kleinen Teststrecke im DIN A4-Format müssen so entweder die Zeitwerte oder die Geschwindigkeit angepasst werden.
Lass uns die Mission abschließen:
- Stelle die Fahrgeschwindigkeit des Edison wieder auf “langsam”.
- Edison soll das Programm insgesamt viermal durchlaufen. Also er soll viermal langsam vorwärts fahren bis zu einer schwarzen Linie, dann rückwärts fahren (0.5 Sekunden) und eine Rechtskurve fahren (0.6 Sekunden).
- Es gibt Roboter zu kaufen, die so ähnlich fahren. Weißt du, welche Roboter wir meinen?
Die Kurvenfahrt des Edison ist für die kleine Teststrecke auf DIN A4 nur bedingt geeignet. Edison kann während der Kurvenfahrt (dann ist die Linienerkennung nicht aktiv) die Teststrecke verlassen und fährt danach weiter. Vorsicht bei Tischen!
Lösungsvorschlag:Das ist unser Programm (edison_grenzen.eeb):
Hinweise zu den Symbolblöcken:
Zuerst stellen wir die Fahrgeschwindigkeit auf langsam.
Danach wollen wir die Aktionen Vorwärtsfahrt, Rückwärtsfahrt und Rechtskurve genau in der Reihenfolge insgesamt viermal durchlaufen. Du kannst Befehle mehrmals hintereinander schreiben, um sie zu wiederholen. Einfacher und übersichtlicher ist es, hier einen Befehl zu geben, der lautet: “mache alles viermal”. Wir verwenden das Klammer-Symbol “Loop for n times” (Schleife für n-mal) unterhalb Kategorie “Control” (Kontrollstruktur). Schleifen werden in der Programmierung verwendet, um Anweisungen zu wiederholen. Trage den Wert 4 für 4 Wiederholungen ein. Jetzt werden alle Anweisungen, die innerhalb der Klammer sind, viermal wiederholt.
Rasenmähroboter fahren auf dem Rasen ähnlich, wie unser Edison innerhalb der Teststrecke. Häufig ist rings um den Rasen ein Draht vergraben, der so funktioniert, wie hier unsere schwarze Linie.
Was du bei diesem Projekt lernen kannst:
- Die Erkennung von hellem und dunklem Untergrund können wir dazu nutzen, um Grenzen zu setzen. In diesem Projekt werden schwarze Linien nicht überquert.
- Es gibt in EdBlocks Aktionen, die nur dann ausgeführt werden, wenn eine bestimmte Bedingung erfüllt ist. Programmierer nennen das eine “bedingte Anweisung“. Wir verwenden hier das Symbol “Drive forward while on a white surface” (Fahre vorwärts wenn auf einer weißen Oberfläche).
- In EdBlocks gibt es auch eine einfache Möglichkeit, Anweisungen in einer bestimmten Anzahl zu wiederholen. Programmierer nennen das eine “Schleife“. Wir verwenden hier ein Klammer-Symbol mit einem Zahlenwert. Alle Anweisungen innerhalb der Klammer werden so oft wiederholt, wie der Zahlenwert angibt.
- Wenn Fahrmanöver wie Vorwärtsfahrt oder Kurvenfahrt mit einem Zeitwert festgelegt werden, entscheidet die Fahrgeschwindigkeit (langsam, normal, schnell), welche Wegstrecken innerhalb der Zeit zurückgelegt werden.
Bei Autos im Straßenverkehr ist es auch so. Fährt ein Auto mit der Geschwindigkeit von 100 km/h, dann legt es pro Sekunde 27,8 Meter zurück (100 km/h : 3600 s/h). Fährt ein Auto nur mit der halben Geschwindigkeit von 50 km/h, dann legt es auch nur die halbe Strecke, nämlich 13,9 Meter pro Sekunde zurück.
- Das ein Roboter zwischen Grenzen wie beim “Ping Pong” hin und her fährt, ist häufig bei Rasenmährobotern programmiert. Dazu wird rings um den Rasen ein Draht vergraben, den der Roboter nicht überfährt. Stattdessen setzt der Mähroboter zurück, dreht sich und fährt in einem anderen Winkel über den Rasen zurück.