Meine Erfahrungen mit den mBot-Robotern von Makeblock

Sie sind hier: 12. mBot 2 (Neo) > 12.2. übernommene mBot-1- Programme > 12.2.9. Wolf-Ziege-Kohl

12.2.9. Wolf-Ziege-Kohl

1. Steuerung über IR-Fernbedienung

Eigentlich ist die Steuerung über die IR-Fernbedienung beim mBot 1 etwas unübersichtlich.

Dort werden die Objekte über die Tasten

Pfeil links, 1, 4 und 7 bzw.

Pfeil rechts, 3, 6 und 9

gesteuert. Das wollte ich (auch in Vorausschau auf die Steuerung per Joystick) ändern.

Ich habe daher nicht mehr acht Tasten sondern nur noch die vie Pfeiltasten benutzt. Diese bewegen das aktive Objekt (grün gedruckt) in die jeweilige Richtung.

Bei der vertikalen Auswahl des zu bewegenden Objektes wollte ich nicht am oberen bzw. unteren Rand stoppen sondern stattdessen jeweils auf das unterste (oberste) Objekt springen. Für dieses Verhalten liegt für die Abwärtsbewegung folgende Formel nahe: Neu = (Aktiv mod 4) + 1. Durch die Mod-Funktion wird für das neue Objekt erst der Wert Null ermittelt, auf den dann eins addiert wird.

Für die Gegenrichtung habe ich ziemlich lange nachgedacht, bis ich auf die auf den ersten Blick merkwürdige Funktion Neu = (Aktiv + 2) mod 4 + 1 gekommen bin: Wenn Aktiv auf der obersten Position steht,  also den Wert 1 hat, ermittelt sich für das Hochgehen der neue Wert 4, also die unterste Position.

Hier die beiden Blöcke:

Der Block vertikal dient dazu, die Farbe des "alten" Objektes auf Weiß und die Farbe des "neuen" Objektes auf Grün zu stellen.

Die Bewegung des Objektes erfolgt nicht mehr sprunghaft sondern schrittweise.

Programm-Download: mBot2_W_Z_K _IR.mblock (197.9 KB)

2. Steuerung über Joystick

Bei dieser Art der Eingabe wurde ich auf die neue Möglichkeit des Multi-Tasking des mBot 2 gestoßen. Ich war etwas verwundert, dass es keine direkte Abfragemöglichkeit für den Joystick und die beiden Tasten des Cyberpi's gibt. Stattdessen kann und müssen hierfür eigene Blöcke erstellt werden, die parallel zueinander laufen. Auch das Hauptprogramm kann in mehreren Instanzen gestartet werden. Dies habe ich für die Überprüfung auf einen ungültigen Zug und die Überprüfung auf des Programmende realisiert.

Leider ist es wohl nicht möglich, Listenelemente als Sprite zu benutzen. Statt einer Liste mit vier Elementen für die vier Objekte musste ich stattdessen vier einzelne Variable Zeile1 - Zeile4 anlegen. Diese müssen einzeln angesprochen werden: Sichtbar insbesondere in den Blöcken veritkal, horizontal und Ausgabe. Bei Verwendung einer Liste könnten diese wesentlich kompakter sein.

 

Programm-Download: mBot2_W_Z_K.mblock (195.5 KB)

YouTube-Video: https://youtu.be/YrAMQ4dbyo4

 

 

nach oben