f2.1 Höhlenlabyrinth
★ ★ ☆
Der Roboter soll selbstständig durch ein Höhlenlabyrinth steuern. Verwende den Ultraschallsensor, um die Umgebung zu vermessen. Der Roboter soll dorthin fahren, wo der größte Abstand gemessen wurde.
Der mBot soll nacheinander die folgenden Schritte in einer endlosen Schleife ausführen:
- Fahre bis Hindernis: Fahre nach vorne, bis der Ultraschallsensor ein Hindernis in weniger als 15 cm Entfernung erkennt
- Scanne die Umgebung mit dem Ultraschallsensor und bestimme, in welchem Winkel der größte Abstand gemessen wird
- Drehe den mBot in diese Richtung
Fahre bis Hindernis
Der folgende Block startet die beiden Motoren, damit der mBot nach vorne fährt und wartet – während der Roboter fährt – bis der Ultraschallsensor eine Entfernung kleiner als 15 cm misst. Dann wird der mBot gestoppt.
Scanne
Dieser Block dreht den Servomotor von rechts nach links und misst die Entfernung in verschiedenen Winkeln mit dem Ultraschallsensor.Zu Beginn wird der Servo ganz nach rechts bewegt (Position 0°) und dann in 30°-Schritten nach links gedreht, bis zum linken Anschlag (Position 180°). Nach einer kurzen Pause wird jeweils die Entfernung gemessen.
Der Block verwendet zwei Variablen:
- Richtung: Der Servo-Drehwinkel in Grad ° mit der (bisher) größten Entfernung
- Max Entfernung: Die (bisher) größe Entfernung in cm
Falls ja, wird der LED-Streifen auf weiße Farbe gesetzt, die Variable Max Entfernung auf den neuen, größeren Wert gesetzt und der aktuelle Winkel wird in der Variable Richtung gespeichert. Finde dafür die richtigen Befehle!
Drehe
Dieser Block dreht den mBot in die Richtung mit der größten gemessenen Entfernung (Variable Richtung). Dabei muss ein wenig gerechnet werden:
Lust auf eine weitere Höhlenlabyrinth-Aufgabe? Dann schaue hier nach.
Python API
In Python kann der Ultraschallsensor mit dem Befehldistance = mbuild.ultrasonic2.get(index = 1)
abgefragt werden. Der Rückgabewert distance ist die gemessene Entfernung in cm.
Der Servomotor an S1 wird mit dem Befehl
mbot2.servo_set(angle, "s1")
auf den Winkel angle Grad (°) gesetzt. Der Wertebereich liegt zwischen 0° und 180°.