Skip to main content

Lektion 2: Fahren Sie zu den nächsten Festplatten

Laufwerk zu den Blue Disks

Im vorherigen Projekt muss der VR-Roboter nach rechts abbiegen, wenn der Front Eye Sensor eine grüne Scheibe erkennt, die den VR-Roboter durch den ersten Schritt im Labyrinth geführt hat. Jetzt werden wir das Projekt weiter ausbauen, so dass der VR-Roboter auf die ersten vier Festplatten auf dem Disk Maze Playground fährt.

Wenn wir uns ansehen, wohin der VR-Roboter nach dem Abbiegen nach rechts an der grünen Scheibe zeigt, können wir sehen, dass der VR-Roboter vorwärts fahren und an jeder blauen Scheibe nach links abbiegen sollte, um zu den nächsten drei blauen Scheiben zu navigieren. Wir können die gleiche Logik der  while-Schleife mit der NICHT-Bedingung verwenden , damit der VR-Roboter weiterhin durch das Labyrinth fährt und nach links abbiegt, wenn er eine blaue Festplatte erkennt.Draufsicht auf den Disk-Labyrinth-Spielplatz. Der Roboter an der ersten grünen Scheibe zeigt nach rechts in Richtung der ersten blauen Scheibe. Schwarze Pfeile zeigen an, wie sich der Roboter bewegen muss. Dies zeigt an, dass der Roboter zur blauen Scheibe fährt, nach links abbiegt, zu einer zweiten blauen Scheibe fährt, nach links abbiegt und an einer dritten blauen Scheibe anhält.

  • Fügen Sie einen weiteren Kommentar unter dem turn_for im bestehenden Projekt hinzu, um die nächsten Verhaltensweisen des VR-Roboters zu beschreiben. Ihr Projekt sollte wie folgt aussehen:
def main():
    # Drive to 1st disk (green), turn right
    while not front_eye.detect(GREEN):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Drive to 2nd disk (blue), turn left
  • Fügen Sie unter dem neuen Kommentar eine weitere while-Schleife mit einer NICHT-Bedingung hinzu. Stellen Sie die Bedingung auf den  Erkennungsbefehl und stellen Sie die Parameter auf "BLAU", da die nächste Festplatte, auf die der VR-Roboter trifft, blau ist.
    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect(BLUE):
        wait(5, MS)
  • Ziehen oder tippen Sie den nicht wartenden Laufwerksbefehl in die while-Schleife. 
    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MS)
  • Ziehen Sie den Befehl turn_for hinein oder geben Sie ihn ein, und legen Sie die Parameter so fest, dass eine 90-Grad-Drehung nach links erfolgt.
    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect(BLUE):
        drivetrain.drive(FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for(LEFT, 90, DEGREES)
  • Führen Sie das Projekt aus, um zu sehen, wie sich der VR-Roboter durch den Disk Maze Playground bewegt.Ansicht von oben nach unten des VR-Roboters auf dem Disk Maze Playground mit einem schwarzen Pfeil, der anzeigt, dass der Roboter direkt gegenüber dem Startort zur grünen Platte fährt, dann rechts abbiegen, vorwärts zur blauen Platte fahren, links abbiegen und dann aufhören zu fahren.
    • Beachten Sie, dass sich der VR-Roboter nach rechts dreht, wenn der Front Eye Sensor eine grüne Scheibe erkennt, und sich nach links dreht, wenn der Front Eye Sensor eine blaue Scheibe erkennt.
  • Bauen Sie dieses Projekt weiter auf, um den VR-Roboter mithilfe des Front Eye Sensors zu zwei weiteren blauen Scheiben auf dem Disk Maze Playground zu steuern. Fügen Sie dem Projekt Befehle hinzu, navigieren Sie den VR-Roboter zu den nächsten beiden Festplatten und stoppen Sie dann. Ihr gesamtes Projekt sollte nun so aussehen:
def main():
    # Drive to 1st disk (green), turn right
    while not front_eye.detect (GREEN):
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (RIGHT, 90, DEGREES)

    # Drive to 2nd disk (blue), turn left
    while not front_eye.detect (BLUE):
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (LEFT, 90, DEGREES)

    # Drive to 3rd disk (blue), turn left
    while not front_eye.detect (BLUE):
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (LEFT, 90, DEGREES)

    # Drive to 4th disk (blue), turn left
    while not front_eye.detect (BLUE):
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (LEFT, 90, DEGREES)

Identifizieren eines Musters in den Bewegungen des VR-Roboters

Das Ziel der erfolgreichen Navigation im Disk Maze mit dem Front Eye Sensor besteht darin, ein konsistentes Muster zu erstellen, bei dem sich der VR-Roboter nach rechts dreht, wenn der Front Eye Sensor eine grüne Scheibe erkennt, und nach links, wenn der Front Eye Sensor eine blaue Scheibe erkennt. Das Erkennen solcher Muster kann Ihnen helfen, Ihre Projekte zu vereinfachen, da sie immer komplexer werden.

Draufsicht auf den Disk-Labyrinth-Spielplatz. Der Roboter befindet sich am Startort. Pfeile zeigen den Weg an, den der Vr-Roboter nehmen wird, indem er das Laufwerk zur ersten grünen Scheibe vorwärts zeigt, nach rechts abbiegt, zur blauen Scheibe fährt, nach links abbiegt, zu einer zweiten blauen Scheibe fährt, nach links abbiegt und an einer dritten blauen Scheibe anhält.

Zur Kenntnisnahme

Beachten Sie, dass es auch in der Reihenfolge der Befehle im Projekt ein Muster gibt. Es gibt eine Reihe von Befehlen (für die blauen Platten), die im Projekt dreimal wiederholt werden. Dieser Codeabschnitt kann mit einer for -Schleife komprimiert werden. Das hier gezeigte Projekt kombiniert diese drei while Schleifen, die sich auf blaue Scheiben beziehen, zu einer einzigen for -Schleife.

def main():
    # Drive to 1st disk (green), turn right
    while not front_eye.detect (GREEN):
        drivetrain.drive (FORWARD)
        wait(5, MSEC)

    drivetrain.turn_for (RIGHT, 90, DEGREES)

    # Drive to the next 3 disk (blue), turn left
    for value in range(3): 
        while not front_eye.detect (BLUE):
            drivetrain.drive (FORWARD)
            wait(5, MSEC)

        drivetrain.turn_for(LEFT, 90, DEGREES)

Die Verwendung einer  for-Schleife kann Ihr Projekt einfacher und lesbarer machen, aber die sich wiederholenden Befehle in einer Schleife enthalten.

  • Öffnen Sie den Disk Maze Playground , wenn er noch nicht geöffnet ist, und führen Sie das Projekt aus.
  • Beobachten Sie, wie der VR-Roboter auf dem Disk Maze Playground zu vier Festplatten navigiert.

    Draufsicht auf den Disk-Labyrinth-Spielplatz. Der Roboter befindet sich am Startort. Pfeile zeigen den Weg an, den der VR-Roboter nehmen wird, indem er das Laufwerk zur ersten grünen Scheibe vorwärts zeigt, nach rechts abbiegt, zur blauen Scheibe fährt, nach links abbiegt, zu einer zweiten blauen Scheibe fährt, nach links abbiegt und an einer dritten blauen Scheibe anhält. Auf der letzten blauen Festplatte befindet sich ein rotes Feld, das die Endposition anzeigt.
  • In diesem Projekt fährt der VR-Roboter vorwärts, bis der Front Eye Sensor die Farbe Grün erkennt.
    • Der VR-Roboter dreht sich um 90 Grad nach rechts und fährt wieder vorwärts, bis die Farbe Blau erkannt wird.
    • Der VR-Roboter dreht sich dann nach links und fährt vorwärts, bis der Vorderaugensensor Blau erkennt. Sobald die Farbe Blau erkannt wird, dreht sich der VR-Roboter wieder nach links.
    • Schließlich fährt der VR-Roboter vorwärts, bis der Front Eye Sensor Blau erkennt, und stoppt dann.
  • Beachten Sie das Muster, dass sich der VR-Roboter nach rechts dreht, wenn der Front Eye Sensor Grün erkennt. Wenn der Front Eye Sensor blau erkennt, dreht sich der VR-Roboter in diesem Projekt nach links.

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