Edison Robotik: Lektion 9
Arbeitsblatt 9.1 - Lichtalarm
In dieser Lektion erstellst du ein Programm, mit
dem dein Edison-Roboter einen Alarm ausgibt, wenn die Lichter im
Raum eingeschaltet werden.
Verwendung von Edisons Lichtsensoren in Programmen
Dein Edison-Roboter verfügt über zwei Lichtsensoren, einen links
und einen rechts, die sichtbares Licht erfassen können. Mit
diesen Sensoren können wir Edison so programmieren, dass er auf
Licht reagiert.
In einem Programm können diese Sensoren die
erfasste Lichtmenge lesen und diese als digitalen Wert
zurückgeben.
Schau dir folgendes Programm an:
Dieses
Programm verwendet die Funktion Ed.ReadLeftLightLevel () in Zeile 13.
Diese Funktion weist das Programm an, die Lichtstärke des linken
Lichtsensors von Edison zu lesen und einen Wert zwischen 0 und 1023
zurückzugeben.
Da die Funktion Ed.ReadLeftLightLevel () einen Wert
zurückgibt, können wir diesen Wert berechnen. Die erste Schleife in
diesem Programm verwendet Mathematik, um zu bestimmen, was zu tun ist.
Diese erste Schleife fordert dich auf, zu übergeben (mit anderen Worten,
nichts zu tun), während der von der Funktion Ed.ReadLeftLightLevel ()
zurückgegebene Wert kleiner als (<) 100 ist.
Wenn der zurückgegebene
Wert größer als (>) 100 ist, verlässt das Programm die erste Schleife
und geht zur nächsten Schleife über, die kontinuierlich einen Alarm
auslöst.
Du bist dran:
Schreibe
das Programm und lade es auf deinen Edison-Roboter herunter. Platziere
den Edison-Roboter im Dunkeln, bevor du die Wiedergabetaste drückst.
Sobald du das Licht ausgeschaltest oder Edisons linken Lichtsensor
blockiert hast, drücke die Wiedergabetaste. Wenn die Lichter
eingeschaltet werden oder was auch immer den linken Lichtsensor von
Edison blockiert, wird der Roboter den Alarm auslösen.
1. Stelle
dir eine reale Situation vor, in der diese Art von Alarm nützlich wäre.
Beschreibe die Situation und wie der Alarm verwendet werden könnte.
2. Welche Änderungen müssen am Programm vorgenommen werden, um einen
dunklen Alarm auszulösen?
Arbeitsblatt 9.2 - Automatische Beleuchtung
In dieser Lektion schreibst du ein Programm, mit dem
dein Edison-Roboter die beiden LED-Leuchten einschaltet, wenn es dunkel
wird.
Schau dir folgendes Programm an:
In diesem
Programm verwenden wir das Symbol "Kleiner als" (<), um den Pfad zu
bestimmen, den das Programm nehmen wird.
Wenn der von der Funktion
Ed.ReadLeftLightLevel () zurückgegebene Wert kleiner als 100 ist, wird
die Funktion activateBothLights () mit dem Eingabeparameter von Ed.ON
aufgerufen. Andernfalls wechselt das Programm zum 'else'-Teil der
if-Anweisung, der auch die activateBothLights () -Funktion aufruft,
jedoch mit dem Eingabeparameter von Ed.OFF.
Du bist dran:
Schreibe das Programm
und lade es auf deinen Edison-Roboter herunter. Du musst für Edison
einige Tunnel erstellen, durch die das Licht blockiert wird, damit
Edisons Frontlichter aufleuchten.
Führe das Programm mit Edison aus,
um zu sehen, wie es funktioniert.
Versuche dann, mit dem Wert (100)
in der if-Anweisung in Zeile 15 zu experimentieren, um festzustellen,
was passiert, wenn du das Programm mit einer größeren oder kleineren
Zahl ausführst.
1. Was passiert, wenn du den Wert in der
if-Anweisung höher setzst?
2. Was passiert, wenn du den Wert
in der if-Anweisung verringerst?
Versuch es!
Wird es einen Unterschied machen, wenn du die
Funktion ReadRightLightLevel () anstelle der Funktion ReadLeftLightLevel
() verwendest? Ändere dein Programm mit dieser Änderung und teste es, um
zu sehen.
Arbeitsblatt 9.3 - Lichtverfolgung
In dieser Lektion
schreibst du ein Programm, damit dein Edison-Roboter dem Licht einer
Taschenlampe folgt.
Schau dir folgendes Programm an:
Dieses
Programm vergleicht den Lichtpegel zwischen dem rechten Lichtsensor und
dem linken Lichtsensor, um den Programmfluss zu bestimmen.
Das
Vorhandensein der Taschenlampe links oder rechts vom Roboter bewirkt,
dass der Roboter eine höhere Lichtstärke auf dieser Seite des Roboters
liest. Die Logik dieses Programms besagt, dass der Roboter nach links in
Richtung der höheren Lichtquelle fährt, wenn der rechte Lichtpegel minus
dem linken Lichtpegel kleiner als Null ist, ansonsten fährt der Roboter
nach rechts.
Du bist dran:
Aufgabe 1: Verfolge das Programm
Im Arbeitsblatt 5.2 hast
duerfahren, wie du ein Programm nachzeichnest. Wenn ein Programm viele
Berechnungen und verschiedene mögliche Werte enthält, kann es nützlich
sein, das Programm zu verfolgen. Auf diese Weise kannst du die
verschiedenen Werte verstehen, die auftreten können, und das zugehörige
Verhalten vorhersagen.
1. Fülle die folgende Protokollierungstabelle
für dieses Programm aus. Das erwartete Verhalten sollte entweder
"Vorwärts fahren" oder "Rechts fahren" sein
|
rechtes Licht |
linkes Licht |
erwartetes Verhalten |
Lampe rechts |
200 |
100 |
|
Lampe links |
100 |
200 |
|
keine Lampe |
100 |
100 |
|
Aufgabe 2: Schreibe das Programm und führe es aus
Schreibe das
Programm und lade es auf deinen Edison-Roboter herunter. Nachdem du die
Wiedergabetaste gedrückt hast, richte eine Taschenlampe auf
Edison. Der Roboter fährt auf das Licht zu. Verwende die Taschenlampe,
um zu steuern, wohin Edison fährt.
2. Was passiert, wenn du in
diesem Programm das Symbol "Kleiner als" (<) in ein Symbol "Größer als"
(>) änderst?
Was denkst du?
Das obige Lichtfolgeprogramm
zeigt ein Roboterverhalten, das dem einer Motte sehr ähnlich ist, die in
einer warmen Nacht von einer Straßenlaterne angezogen wird.
Ist eine
Motte, die von Licht angezogen wird, intelligent? Was ist mit einem
Roboter mit dem gleichen Verhalten?
Warum ist ein Insekt, das vom
Licht angezogen wird, lebendig, aber kein Roboter?