Skip to main content

Lektion 3: Projektablauf mit mehreren While Loops

Nachdem Sie nun ein Textprojekt erstellt haben, um den VR-Roboter zum Buchstaben „A“ auf dem Wall Maze Playground zu navigieren, erweitern Sie Ihre Fähigkeiten mit Bedingungswerten und Sensorwerten. In dieser Lektion navigieren Sie den VR-Roboter zur Nummer ‘2‘ im Wall Maze Playground und erkunden dann, warum zusätzliche Befehle benötigt werden, um bis zum Buchstaben ‘B‘ zu fahren. In der Mini-Challenge wendest du diese Fähigkeiten an, um vom Beginn des Mauerlabyrinths bis zur Zahl „3“ zu navigieren.

Eine Draufsicht auf den Spielplatz Wall Maze mit dem VR-Roboter, beginnend mit dem grünen Pfeil in der unteren Mitte des Spielplatzes. Die Zahl 2 ist in einem roten Kästchen hervorgehoben und befindet sich in der Mitte des unteren linken Quadranten des Labyrinths, weiter links hinter dem Buchstaben A. Die Zahl 2 in einer Ecke, die von drei sie umgebenden Wänden gebildet wird.

Lernergebnisse

  • Beschreiben Sie den Programmablauf in einem Projekt, bei dem ein VR-Roboter vorwärts fährt, bis der Stoßstangensensor gedrückt wird.

Projekt umbenennen

  • Wenn das Projekt der vorherigen Lektion noch nicht geladen ist, laden Sie das Unit4Lesson2-Projekt.
  • Benennen Sie das Projekt Unit4Lesson3 um.Die VEXcode VR-Symbolleiste zeigt Unit 4 Lektion 3 als Projektnamen. Der Projektname wird durch ein rotes Kästchen hervorgehoben.

     

 

Ablauf des Projekts, um zum Buchstaben "A" zu fahren

In der vorherigen Lektion fuhr der VR-Roboter zum Buchstaben „A“ auf dem Wall Maze Playground. Lassen Sie uns den Projektablauf aufschlüsseln, während wir uns darauf vorbereiten, zu einem neuen Ort im Mauerlabyrinth zu navigieren.

Eine Ansicht von oben auf den Wandlabyrinth-Spielplatz mit dem VR-Roboter am Startort in der Mitte des Spielplatzes. Der Buchstabe A befindet sich direkt links vom Roboter, getrennt durch eine kurze Wand.
  • Um den Projektablauf für die Fahrt zum Buchstaben "A" auf dem Wall Maze Playground besser zu verstehen, ändern Sie zunächst Ihr vorheriges Projekt oder erstellen Sie ein neues Projekt, das zu diesem Basisprojekt passt.

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(LEFT, 90, DEGREES)
    
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Wenn ein Projekt eine  While-Schleife mit einer NICHT-Bedingung verwendet, folgt der Programmablauf des Projekts immer noch der gleichen Top-to-Bottom-Sequenz. Die  while-Schleife ermöglicht es dem Programmablauf, an einem bestimmten Punkt zu "pausieren", während eine Bedingung erfüllt ist. Der  NOT-Operator ermöglicht es dem Projekt, in der Schleife zu bleiben, bis der Zustand als falsch gemeldet wird. Dann fließt das Projekt zum nächsten Befehl außerhalb der Schleife. Eine boolesche Bedingung, wie der linke Stoßfänger, der gedrückt wird, meldet einen True- oder False-Wert. In diesem Code zum Fahren des VR-Roboters zum Buchstaben "A" fährt der VR-Roboter vorwärts, bis der boolesche Zustand des linken Stoßfängers, der gedrückt wird, True ist.
    Der Projektablauf des Projekts, um zum Buchstaben 'A' zu fahren, würde wie folgt aussehen:Ein Projektablaufdiagramm, das den Ablauf des obigen Projekts beschreibt, um zum Buchstaben A zu navigieren, der links angezeigt wird. Nach rechts zeigen Pfeile an, wie das Projekt abläuft. Erstens veranschaulicht ein roter zyklischer Pfeil, dass, während der Stoßfänger nicht gedrückt wird, der Zustand der While-Schleife falsch zurückkehrt, so dass der Roboter vorwärts fährt. Ein grüner Abwärtspfeil veranschaulicht als nächstes, dass der Zustand wahr ist, wenn der Stoßfänger gedrückt wird, sodass das Projekt aus dieser Schleife ausbricht und sich der Roboter um 90 Grad nach links dreht. Diese Sequenz wird für jede Schleife im Projekt wiederholt.

Das Verhalten des VR-Roboters zeigt, wie jede Schleife ausgeführt wird. Zusammen mit der Bewegung des VR-Roboters können wir deutlich sehen, wohin der VR-Roboter gefahren ist, nachdem die Schleife im Projekt ausgeführt wurde.Auf der linken Seite zeigt Python-Code, der drei aufeinanderfolgende Schleifen enthält, die den Roboter jeweils anweisen, vorwärts zu fahren, bis die linke Stoßstange gedrückt wird. Sobald der Stoßfänger in jeder Schlaufe gedrückt wird, führt der Roboter eine bestimmte Aktion aus.  In der ersten Schleife fährt der Roboter vorwärts, bis der Stoßfänger gedrückt wird, und dreht sich dann um 90 Grad nach links. Das Bild rechts zeigt die Position des Roboters in einem Labyrinth nach dieser Aktion, markiert durch einen gelben Kreis.  In der zweiten Schleife fährt der Roboter wieder vorwärts, bis der Stoßfänger gedrückt wird und dreht sich dann um 90 Grad nach links. Das zweite Bild zeigt die aktualisierte Position des Roboters im Labyrinth nach dieser Umdrehung.  In der dritten und letzten Schleife fährt der Roboter vorwärts, bis der Stoßfänger gedrückt wird. Wenn die Stoßstange gedrückt wird, stoppt der Roboter die Bewegung. Das letzte Bild zeigt die Stoppposition des Roboters innerhalb des Labyrinths, die wiederum durch einen gelben Kreis hervorgehoben wird.

 

Fahren Sie zur Zahl '2'

In dieser Lektion wird das Projekt bearbeitet, um den VR-Roboter auf die Nummer ‘2‘ auf dem Wall Maze Playground fahren zu lassen!

Eine Draufsicht auf den Spielplatz Wall Maze mit dem VR-Roboter, beginnend mit dem grünen Pfeil in der unteren Mitte des Spielplatzes. Die Zahl 2 ist in einem roten Kästchen hervorgehoben und befindet sich in der Mitte des unteren linken Quadranten des Labyrinths, weiter links hinter dem Buchstaben A. Die Zahl 2 in einer Ecke, die von drei sie umgebenden Wänden gebildet wird.
  • Im Projekt aus Lektion 2 dreht sich der VR-Roboter nach links, um zum Buchstaben „A“ zu fahren. Um zur Zahl ‘2‘ zu navigieren, muss der VR-Roboter stattdessen nach rechts abbiegen, vorwärts fahren und dann nach links abbiegen.

    Eine Ansicht von oben auf den Wall Maze Playground, auf dem der VR-Roboter über der A-Markierung zur linken Wand hin positioniert ist. Ein roter Pfeil zeigt nach A, und drei grüne Pfeile zeigen den beabsichtigten Weg zu Nummer 2. Die grünen Pfeile zeigen nach oben in Richtung der Wand gegenüber A, dann nach links in Richtung der nächsten Wand links von Nummer 2, dann nach unten in die Ecke, die Nummer 2 hält.
  • Ändern Sie die Richtung des zweiten Befehls turn_for von links nach rechts. Ihr Projekt sollte nun so aussehen:

    def main():
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(RIGHT, 90, DEGREES)
    
    	while not left_bumper.pressed():
    		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 zur Zahl „2“ fährt, aber an einer Wand stehen bleibt. Daher muss der VR-Roboter nach links abbiegen, sobald er gegen die Wand drückt, anstatt anzuhalten.

    Eine Draufsicht auf den Spielplatz Wall Maze mit dem VR-Roboter, der der Wand gegenüber dem Buchstaben A nach oben zeigt.
  • Wählen Sie die Schaltfläche "Reset", um den Spielplatz zurückzusetzen und den VR-Roboter zurück in die Ausgangsposition zu bewegen.Der Wall Maze Playground zeigt die gesamte Spielplatzoberfläche. Die Reset-Taste unten links in der Spielplatzoberfläche ist mit einem roten Kästchen hervorgehoben.

     

  • Bearbeiten Sie den Code, indem Sie den Stoppbefehl entfernen und ihn durch die folgenden Befehle ersetzen, um den VR-Roboter auf die Nummer ‘2‘ zu fahren.

    def main():
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (RIGHT, 90, DEGREES)
    
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    	
    	while not left_bumper.pressed ():
    		drivetrain.drive (FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for (LEFT, 90, DEGREES)
    
    	while not left_bumper.pressed ():
    		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 zur Nummer ‘2’ auf dem Wall Maze Playground fährt!

    Ein Blick von oben auf den Spielplatz Wall Maze. Der VR-Roboter wird nun über den 2 Markierungen positioniert, wobei er der Bodenwand zugewandt ist und mit seiner Vorderseite gegen die Wand gedrückt wird.
  • Wählen Sie die Schaltfläche "Reset", um den Spielplatz zurückzusetzen und den VR-Roboter zurück in die Ausgangsposition zu bewegen.

Wählen Sie die Schaltfläche Weiter um mit dem Rest dieser Lektion fortzufahren.