02 Abstand messen
Der mBot hat vorne einen Ultraschallsensor. Damit kannst Du den Abstand zu einem Objekt (z.B. Wand, anderer Roboter, Person) messen.Der Sensor muss mit einem Kabel an die mBuild-Buchse des Roboters angeschlossen werden, damit er funktioniert. Es ist egal, ob das Kabel an der linken oder rechten Sensorseite eingesteckt wird.
Wähle dazu die Ultraschall-Erweiterung (Ultrasonic Sensor 2)
Das Programm läuft in einer endlosen Schleife (forever). Alle Befehle innerhalb der Schleife werden wiederholt, bis Du das Programm stoppst. Während der Roboter die Entfernung misst, leuchten kurz die LEDs an der Rückseite blau auf.
Erkundungsfahrzeug
★ ☆ ☆
Mit dem Abstandssensor kann sich der Roboter selbstständig einen Weg durch unbekanntes Gebiet suchen.Schreibe ein Programm, das den Roboter vorwärts fahren lässt, wenn sich vor ihm kein Hindernis befindet. Der Roboter soll drehen, wenn er in 30 cm oder weniger ein Objekt erkennt. Genau wie im Beispiel oben, sollen die LEDs an der Rückseite des Roboters kurz aufleuchten, während der Roboter die Entfernung misst.
Dazu brauchst Du die
die Shield- und die Ultraschall-Erweiterung.
Verwende einen Wenn-Dann-Sonst-Block (If-Then-Else) in deinem Programm und baue ihn in eine Endlosschleife (forever) ein.
Dieser Block funktioniert wie eine Abzweigung: Wenn die Bedingung Abstand > 30 cm wahr ist, dann wird der obere Teil des Blocks ausgeführt, sonst wird der untere Teil durchlaufen.
Baue in die beiden Lücken geeignete Bewegungsblöcke ein. Der mBot hat zwei unterschiedliche Arten von Blöcken, die die Bewegung steuern:
- Blöcke, die das Programm aufhalten, bis der Block fertig ist.
Dadurch kann der Roboter, während er sich bewegt, nichts anderes machen.
- Nicht-blockierende Blöcke, bei denen die Bewegung gestartet wird und das Programm sofort weiter läuft.
Hiermit kannst Du (fast) gleichzeitig andere Dinge tun (z.B. den Ultraschallsensor abfragen). Diese Blöcke sind oft in Endlosschleifen sinnvoll.
Verwende für das Programm des Erkundungsfahrzeugs nur nicht-blockierende Blöcke.
Links und Rechts
★ ☆ ☆
Erweitere dein Programm, so dass der Roboter zufällig nach links oder rechts dreht, wenn er auf ein Hindernis stößt.
Benutze dazu den Random-Operator. Er liefert eine Zufallszahl in einem wählbaren Bereich.