Lektion 2: Fahren Sie zum Buchstaben 'A'
Verwenden des Abstandssensors zum Vermeiden von Wänden
Nachdem Sie nun gelernt haben, was Vergleichsoperatoren sind und wie sie in einem Projekt verwendet werden können, wenden Sie dieses Lernen an, um den VR-Roboter auf dem Wall Maze Playground zum Buchstaben "A" zu fahren. Dieses Projekt wird den Abstandssensor verwenden, um durch den Wandlabyrinth-Spielplatz zu navigieren, ohne gegen Wände zu stoßen.
Projekt benennen und speichern
- Starten Sie ein neues Textprojekt und wählen Sie den Wall Maze Playground aus, wenn Sie dazu aufgefordert werden.
- Benennen Sie das Projekt Unit5Lesson2.
-
Ziehen, tippen oder kopieren Sie eine while-Schleife und entfernen Sie den Drivetrain-Befehl, der als Teil der neuen Textprojektvorlage aufgefüllt wird, sodass Ihr Projekt wie folgt aussieht. Beachten Sie, dass der Befehl eine while-Schleife mit einem wait-Befehl ausfüllt. Entfernen Sie nicht den Wartebefehl, um sicherzustellen, dass der VR-Roboter das Projekt korrekt ausführt.
def main(): while Bedingung: wait(5, MS)
-
Ziehen, tippen oder kopieren Sie den nicht wartenden Laufwerksbefehl in die Schleife, sodass Ihr Projekt wie folgt aussieht.
def main(): while Bedingung: drive.drive(FORWARD) wait(5, MS)
- Überprüfen Sie, ob die Einrückung korrekt ist und der Fahrbefehl mit dem Wartebefehl übereinstimmt.
Fügen Sie die Funktion get_distance und den Operator „größer als“ hinzu
- Ziehen oder geben Sie den Befehl get_distance in die „Bedingung“ der while Schleife ein, sodass Ihr Projekt wie folgt aussieht. Geben Sie den Operator größer als und den zweiten Operanden als '50 ein.
-
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MS)
-
Fügen Sie einen Stoppbefehl außerhalb der while-Schleife hinzu, damit Ihr Projekt wie folgt aussieht. Nach der While-Schleife ist ein Stoppbefehl erforderlich, da der VR-Roboter so lange fährt, bis er zum Anhalten angewiesen wird.
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()
- Öffnen Sie das Spielplatzfenster, wenn es noch nicht geöffnet ist. Stellen Sie sicher, dass sich der Wandlabyrinth-Spielplatz öffnet, und führen Sie das Projekt aus.
- Beobachten Sie, wie der VR-Roboter vorwärts fährt, bis der Abstandssensor meldet, dass der Abstand zwischen dem VR-Roboter und der Wand nicht größer als 50 Millimeter (mm) ist.
- Setzen Sie den Spielplatz zurück, um den VR-Roboter zurück in die Ausgangsposition zu bewegen.
Fahren Sie mit dem Projekt fort, um zum Buchstaben "A" zu fahren
Die Verwendung des Operators „größer als (>) mit dem Befehl „get_distance“ als Bedingung der Schleife while weist den VR-Roboter an, vorwärts zu fahren, solange der Abstand zwischen dem VR-Roboter und der Wand größer als 50 Millimeter (mm) ist. Sobald der Abstandssensor einen Abstand vom VR-Roboter zur Wand meldet, der nicht größer als 50 Millimeter ist, stoppt der VR-Roboter die Fahrt. Um mit dem Buchstaben „A“ fortzufahren, muss sich der VR-Roboter drehen, wenn er sich der Wand nähert.
Um zum Buchstaben "A" zu fahren, muss der VR-Roboter zwei Wände erkennen und nach links abbiegen, wenn diese Wände erkannt werden. Dann stoppt der VR-Roboter, wenn er die dritte Wand hinter dem Buchstaben "A" erkennt.
-
Ersetzen Sie den STOP-Befehl durch einen turn_ for-Befehl, damit Ihr Projekt so aussieht. Der Befehl turn_for wird benötigt, da der VR-Roboter nach links abbiegt und weiter in Richtung des Buchstabens „A“ fährt, sobald sich der Abstandssensor im Umkreis von 50 Millimetern (mm) um eine Wand befindet.
- Stellen Sie die Parameter der Kurve auf "LINKS, 90 GRAD".
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)
- Fügen Sie eine weitere while -Schleife mit einem Drive -Befehl unterhalb des turn_for -Befehls hinzu. Legen Sie die Bedingung fest, indem Sie den Befehl get_distance als ersten Operanden, den Operator „größer als und die Konstante „50“ als zweiten Operanden verwenden.
while front_distance.get_distance(MM) > 50: antriebsstrang.antrieb(VORWÄRTS) warten(5, MS)
- Fügen Sie schließlich die folgenden Befehle unter der zweiten while-Schleife hinzu, um den VR-Roboter anzuweisen, die letzte Wand hinter dem Buchstaben "A" zu erkennen und dann die Fahrt einzustellen. Stellen Sie sicher, dass sich der Befehl turn_for und der Stoppbefehl außerhalb ihrer jeweiligen while-Schleifen befinden.
drivetrain.turn_for(LEFT, 90, DEGREES) while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()
- Starten Sie den Wall Maze Playground , wenn er noch nicht geöffnet ist, und führen Sie das Projekt aus.
- Beobachten Sie, wie der VR-Roboter vom Beginn des Wandlabyrinths bis zum Buchstaben „A“ fährt, und halten Sie dann an.
- Beachten Sie, dass der VR-Roboter beim Fahren bis zum Buchstaben „A“ nicht gegen Wände stößt. Wenn der Wert des Abstandssensors meldet, dass der VR-Roboter nicht mehr als 50 Millimeter (mm) von der Wand entfernt ist, wird der VR-Roboter angewiesen, sich im Projekt zu drehen oder anzuhalten.
Wählen Sie die Schaltfläche Weiter um mit dem Rest dieser Lektion fortzufahren.