Skip to main content

Lektion 3: Verwenden von [Wenn dann] -Blöcken

In der Disk Maze Challenge überprüft der VR-Roboter den Zustand des Front Eye Sensors, um zu sehen, welche Farbe gemeldet wird. Jede der Farben entspricht einem anderen Verhalten, das der VR-Roboter ausführen sollte.

VEXcode VR If Then C-Block mit einem booleschen Parameter von 'Vorderes Auge erkennt rot?'.
  • Starten Sie ein neues Projekt und nennen Sie es Unit7Lesson3.

    VEXcode VR Toolbar mit der Schaltfläche "Projektname", die in einem roten Feld links neben der Schaltfläche "Playground auswählen" hervorgehoben ist. Der Projektname ist auf Einheit 7 Lektion 3 festgelegt.
  • Ziehen Sie einen [If then] -Block in den Arbeitsbereich und hängen Sie ihn an den [When started] -Block an.

    VEXcode VR blockiert das Programm mit einem When Started-Block und einem leeren If Then C-Block.

    Zur Kenntnisnahme

    Der [If then] -Block ist ein C-Block, der Boolesche Reporter-Blöcke als Eingabe akzeptiert. Unter Verwendung der Muster, die beim Lösen des Disk Labyrinths in Lektion 2 beobachtet wurden, kann ein Projekt erstellt werden, bei dem der VR-Roboter eine Entscheidung trifft, ob die Bedingung als WAHR oder FALSCH gemeldet wird.

    VEXcode VR If Then C-Block mit einem roten Kästchen, das den booleschen Parameterraum hervorhebt.

    Der Block [Wenn dann] wird einmal in einem Projekt ausgeführt. In diesem Beispiel meldet der Front Eye Sensor TRUE, wenn ein grünes Objekt erkannt wird, und führt den Befehl innerhalb des C-Blocks aus - biegen Sie um 90 Grad nach rechts ab. Wenn kein grünes Objekt erkannt wird, wechselt das Projekt zum nächsten Befehl im Stapel.

    VEXcode VR blockiert ein Projekt, das nach rechts abbiegt, wenn das vordere Auge die Farbe Grün erkennt. Das Projekt lautet: Wenn das vordere Auge Grün erkennt, biegen Sie zu Beginn um 90 Grad nach rechts ab. Außerhalb der if-Anweisung befindet sich ein Stop-Driving-Block.

    Verwenden von Schalterblöcken 


    Die folgende Abbildung zeigt die Blockanweisung Switch [If then] für das Beispielprojekt dieser Lektion. 

    Das gleiche VEXcode VR blockiert das Projekt, aber mit Schalterblöcken, die nach rechts abbiegen, wenn das vordere Auge die Farbe Grün erkennt. Das Projekt beginnt mit einem When started-Block und wird von einer Switch-C-Block-Version eines If Then-Blocks gefolgt. Der Python-Code lautet 'if front_eye.detect (GREEN): drivetrain.turn_for(RIGHT, 90, DEGREES)'. Außerhalb der if-Anweisung befindet sich ein Stop-Driving-Block.

    Das folgende Projekt enthält die gleichen Befehle, die in einen Switch-Block umgewandelt wurden.  

    Die erste Codezeile, wenn front_eye.detect (GRÜN): ist die bedingte Schleife, die überprüft, ob der Front Eye Sensor die Farbe grün erkennt. Beachten Sie, dass am Ende dieser Zeile ein Doppelpunkt (:) stehen sollte. 

    Die zweite Codezeile, drivetrain.turn_for (RECHTS , 90, GRAD) weist den Roboter an, sich um 90 Grad nach rechts zu drehen, wenn der Front Eye Sensor die Farbe Grün erkennt. Diese Linie wird bei einer Standardeinstellung von 4 Leerzeichen eingerückt , da dies das spezifische Verhalten ist, das durchgeführt wird, wenn der Front Eye Sensor grün erkennt. 

    Das gleiche VEXcode VR blockiert das Projekt, aber mit Schalterblöcken, die nach rechts abbiegen, wenn das vordere Auge die Farbe Grün erkennt. Das Projekt beginnt mit einem When started-Block und wird von einer Switch-C-Block-Version eines If Then-Blocks gefolgt. Der Python-Code lautet 'if front_eye.detect (GREEN): drivetrain.turn_for(RIGHT, 90, DEGREES)'. Außerhalb der if-Anweisung befindet sich ein Stop-Driving-Block.

  • Ziehen Sie einen <Color sensing> Block in den Arbeitsbereich in den hexagonalen Eingang des Blocks [Wenn dann].

    VEXcode VR blockiert ein Projekt, das eine if-Anweisung verwendet, um die Farbe einer Festplatte zu erkennen. Es beginnt mit einem "Wenn gestartet" -Block und dann einem Kommentarblock, der lautet: "Wenn das vordere Auge grün erkennt, dann biegen Sie rechts ab". Schließlich gibt es einen leeren If Then-Block mit einem booleschen Parameter eines Farberfassungsblocks, der lautet: "Vorderes Auge erkennt Rot?".
  • Ändern Sie den Parameter des <Color sensing> Blocks auf "Grün".

    VEXcode VR blockiert ein Projekt, das eine if-Anweisung verwendet, um eine grüne Festplatte zu erkennen. Es beginnt mit einem "Wenn gestartet" -Block und dann einem Kommentarblock, der lautet: "Wenn das vordere Auge grün erkennt, dann biegen Sie rechts ab". Schließlich gibt es einen leeren If Then-Block mit einem booleschen Parameter eines Farberfassungsblocks, der lautet: "Vorderes Auge erkennt Grün?". Das Farb-Dropdown-Menü ist geöffnet, um die Farbe von rot auf grün zu ändern.
  • Wenn der Front Eye Sensor eine grüne Scheibe erkennt, muss sich der VR-Roboter um 90 Grad nach rechts drehen, um mit der Lösung des Scheibenlabyrinths zu beginnen. Ziehen Sie einen [Turn for] -Block in den [If then] -Block.

    VEXcode VR blockiert ein Projekt, das eine if-Anweisung verwendet, um eine grüne Festplatte zu erfassen und dann nach rechts abzubiegen. Es beginnt mit einem "Wenn gestartet" -Block und dann einem Kommentarblock, der lautet: "Wenn das vordere Auge grün erkennt, dann biegen Sie rechts ab". Schließlich gibt es einen Wenn-Dann-Block mit einem booleschen Parameter eines Farberkennungsblocks, der lautet "Vorderes Auge erkennt Grün?" und einen 90-Grad-Block rechts abbiegen innerhalb des Wenn-Containers, der ausgelöst wird, wenn der boolesche Wert wahr ist.
  • Führen Sie die gleichen Schritte aus, um einen weiteren [Wenn dann] -Block für alle drei Farben im Disk Labyrinth (grün, blau und rot) hinzuzufügen. Jede Farbe ist mit einem anderen Verhalten verbunden. Die Blöcke innerhalb des [If then] -Blocks müssen diesem beabsichtigten Verhalten entsprechen. Fügen Sie dem Projekt die folgenden Blöcke hinzu. Wenn der VR-Roboter die Farbe "Blau" erkennt, dreht sich der VR-Roboter um 90 Grad nach links.

    Die gleiche VEXcode VR blockiert das Projekt von vor, aber mit einer hinzugefügten if-Anweisung, um nach links abzubiegen, wenn eine blaue Festplatte vorhanden ist. Es beginnt mit einem When Started-Block und dann gibt es einen If Then-Block mit einem booleschen Parameter eines Color Sensing-Blocks, der lautet "Front Eye detects green?" und einen Turn right for 90 degrees-Block innerhalb des If-Containers. Schließlich gibt es dasselbe, wenn Block und Blockstapel drehen, aber geändert werden, um um 90 Grad nach links zu drehen, wenn die Farbe Blau erkannt wird.
  • Wenn der VR-Roboter das Ende des Labyrinths erreicht, erkennt der VR-Roboter die Farbe "Rot".

    VR-Roboter im VR Disk Maze Spielplatz wird der Roboter angehalten und blickt auf eine rote Scheibe.
  • Um den VR-Roboter zu stoppen, muss ein weiterer [Wenn dann] -Block mit Anweisungen hinzugefügt werden, was zu tun ist, wenn der VR-Roboter "rot" erkennt. Fügen Sie dem Projekt die folgenden Blöcke hinzu.

    Die gleiche VEXcode VR blockiert das Projekt von vor, aber mit einer zusätzlichen if-Anweisung, um das Fahren zu stoppen, wenn es eine rote Festplatte gibt. Es beginnt mit einem When Started-Block und dann gibt es einen If Then-Block mit einem booleschen Parameter eines Color Sensing-Blocks, der lautet "Front Eye detects green?" und einen Turn right for 90 degrees-Block innerhalb des If-Containers. Als nächstes gibt es das gleiche, wenn Block und Blockstapel drehen, aber geändert werden, um für 90 Grad nach links zu drehen, wenn die Farbe Blau erkannt wird. Schließlich gilt das Gleiche, wenn Block- und Wendeblockstapel verwendet werden, aber zu Stop Driving geändert werden, wenn die Farbe Rot erkannt wird.
  • Der VR-Roboter kann auch eine Entscheidung treffen, wenn er keine Farbe sieht, indem er den Wert "keine" verwendet. Am Startpunkt des Disk Maze erkennt der VR-Roboter keine Farben.

    Die VR-Spielplatzansicht mit geöffnetem Armaturenbrett und einem roten Kästchen, das die Erfassungswerte des Roboters für das vordere Auge hervorhebt. Der aktuelle 'Objekt' -Wert ist false und der aktuelle 'Farbe' -Wert ist none.
  • Da der Front Eye Sensor zu Beginn des Disk Labyrinths keine Farbe erkennt, muss der VR-Roboter vorwärts fahren, bis er die grüne Platte erkennt. Ein weiterer [If then] -Block kann hinzugefügt werden, um den VR-Roboter anzuweisen, was zu tun ist, wenn keine Farbe erkannt wird.

    VEXcode VR Color Sensing Block, der lautet: "Vorderes Auge erkennt keine?". Es öffnet sich ein Dropdown-Menü, um zu zeigen, wie der Benutzer die Zielfarbe auf keine ändern kann.
  • Fügen Sie dem Projekt die folgenden Blöcke hinzu. Wenn der VR-Roboter keine Farbe erkennt, fährt der VR-Roboter vorwärts.

    Die gleiche VEXcode VR blockiert das Projekt von vor, aber mit einer zusätzlichen if-Anweisung, um vorwärts zu fahren, wenn keine Festplatte erkannt wird. Es beginnt mit einem When Started-Block und dann gibt es einen If Then-Block mit einem booleschen Parameter eines Color Sensing-Blocks, der lautet "Front Eye detects green?" und einen Turn right for 90 degrees-Block innerhalb des If-Containers. Als nächstes gibt es das gleiche, wenn Block und Blockstapel drehen, aber geändert werden, um für 90 Grad nach links zu drehen, wenn die Farbe Blau erkannt wird. Als Nächstes das gleiche, wenn Block- und Wendeblockstapel verwendet wird, aber zu Stop Driving geändert wird, wenn die Farbe Rot erkannt wird. Schließlich gilt dasselbe, wenn Block- und Wendeblockstapel verwendet werden, aber in Vorwärts fahren geändert werden, wenn keine Farbe erkannt wird.
  • Der VR-Roboter verfügt nun über Anweisungen für jede Farbe, die vom Augensensor erkannt wird.
    • Vorderaugensensor erkennt "grün?"
      • Um 90 Grad nach rechts drehen
    • Vorderer Augensensor erkennt "blau?"
      • Um 90 Grad nach links drehen
    • Vorderaugensensor erkennt "rot?"
      • Hör auf zu fahren
    • Vorderaugensensor erkennt "keine?"
      • Vorwärts fahren
  • Öffnen Sie den Disk Maze Playground und führen Sie das Projekt aus.

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