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:

tgtvc
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:

qiuz
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:

csdkj
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?