Skip to main content

Lektion 2: Verwenden des Blocks [Warten bis]

In dieser Lektion erstellen Sie ein Projekt mit dem Stoßstangensensor und dem Block [Warten bis]. In der Mini-Challenge wendest du diese Fähigkeiten an, um vom Beginn des Mauerlabyrinths bis zum Buchstaben „A“ zu navigieren.

Seitenansicht des Wandlabyrinth-Spielplatzes mit dem VR-Roboter direkt vor einer Wand, was zeigt, dass die Wände dreidimensional sind und der Roboter mit ihnen kollidieren kann.

Lernergebnisse

  • Stellen Sie fest, dass nicht wartende Blöcke den Stapel fortsetzen, auch wenn das Verhalten des Blocks noch nicht abgeschlossen ist.
  • Stellen Sie fest, dass ein wartender Block den Stapel anhält, bis das Verhalten dieses Blocks abgeschlossen ist.
  • Stellen Sie fest, dass die Hervorhebung der Ausführung des Projekts Warteblöcke im Vergleich zu Nicht-Warteblöcken visualisiert.
  • Stellen Sie fest, dass der Block [Warten bis] ein Kontrollblock ist, der boolesche Werte akzeptiert.
  • Stellen Sie fest, dass der Block [Warten bis] wiederholt eine boolesche Bedingung überprüft und nicht zum nächsten Block wechselt, bis die Bedingung TRUE meldet.
  • Stellen Sie sicher, dass der Block [Warten bis] mit einem nicht wartenden Block (z. B. Drive) verwendet wird, um den Sensorzustand zu überprüfen.
  • Stellen Sie sicher, dass der <Pressing bumper> Block einen WAHREN oder FALSCHEN Wert in einem [Warten bis] -Block meldet.
  • Identifizieren Sie, wie die Blöcke [Drive for] und [Turn for] spezielle Blöcke sind, die entweder warten oder nicht warten können.
  • Beschreiben Sie, wie Sie ein Projekt erstellen, bei dem ein VR-Roboter vorwärts fährt, bis der Stoßstangensensor gedrückt wird.

Projekt benennen und speichern

  • Starten Sie ein neues Projekt in VEXcode VR und benennen Sie das Projekt Unit4Lesson2.
Das Feld Projektname in der Mitte der VEXcode VR-Symbolleiste, das mit einem roten Feld hervorgehoben ist, befindet sich links neben der Schaltfläche Playground auswählen.

[Warten bis] Blockaden

Der Block [Warten bis] ist ein Steuerblock, der boolesche Bedingungen akzeptiert. [Warten bis] Blöcke überprüfen wiederholt einen booleschen Zustand und steuern den Projektablauf. Ein Projekt wird nicht zum nächsten Block im Stapel verschoben, bis die Bedingung im Block [Warten bis] als WAHR gemeldet wird. Die Blöcke [Warten bis] werden in Verbindung mit nicht wartenden Blöcken wie [Fahren] oder [Wenden] verwendet.

Zur Kenntnisnahme

Nicht wartende und wartende Blöcke bestimmen, wann der nächste Block ein Verhalten beginnt. Wartende Blöcke, wie [Drive for] und [Turn for], vervollständigen ihr Verhalten, bevor sie zum nächsten Block im Stapel übergehen. Nicht wartende Blöcke wie [Drive] und [Turn] bewegen sich weiter zum nächsten Block im Stapel, auch wenn das Verhalten des nicht wartenden Blocks nicht vollständig ist.

Bestimmte Blöcke wie [Drive for] und [Turn for] können wartende oder nicht wartende Blöcke sein. Wenn Sie den Pfeil auf dem Block auswählen, wird aus dem wartenden Block ein nicht wartender Block.

Ein Antrieb für den Block ist mit dem Pfeil rechts vom Block geschlossen und geöffnet dargestellt. Oben liest ein Antrieb für Block Drive forward für 200mm. Auf der Unterseite wird derselbe Block verlängert, um 200 mm vorwärts zu fahren und nicht zu warten.

Verwenden von Schalterblöcken

Der Switch-Nichtwarteblock fügt am Ende des Blocks einen -Parameter „wait=False“ hinzu. "wait=False" ist der Python-Befehl, der den Block anweist, nicht zu warten und weiter zu den nächsten Blöcken im Stapel zu wechseln.

Der entsprechende Schalterblock wird mit dem Laufwerk für den Befehl als wartender und nicht wartender Befehl angezeigt. Oben liest der Python-Befehl im Switch-Block drive_for (FORWARD, 200, MM). Unten wird der gleiche Befehl erweitert, um den Antriebsstrang Dot Drive _ for zu lesen (VORWÄRTS, 200, MM, warten = falsch).

  • Ziehen Sie den Block [Drive] non-waiting in den Arbeitsbereich.

    Ein neues VEXcode VR-Projekt mit einem "When started" -Block mit einem angehängten Antriebsblock, der auf "Forward" gesetzt ist.
  • Bringen Sie einen [Warten bis] -Block unter dem [Laufwerk] -Block an.

    Das gleiche Projekt mit einer Wartezeit, bis der Block am unteren Rand des Stapels hinzugefügt wurde. Der Parameter des Wartens, bis der Block leer ist.
  • Der Block [Warten bis] akzeptiert boolesche Bedingungen. Dieses Projekt wird den Stoßfängersensor verwenden, um durch den Wandlabyrinth-Spielplatz zu fahren. Ziehen Sie den <Pressing bumper> Booleschen Block in den Block [Warten bis].

    Das gleiche Projekt mit einem gedrückten Bumper-Block, der dem Parameter des Blocks Warten bis hinzugefügt wurde. Das Projekt liest jetzt Wenn gestartet, fahren Sie vorwärts, warten Sie, bis die linke Stoßstange gedrückt wird.
  • Ziehen Sie einen [Stop driving] -Block ein und fügen Sie ihn dem Projekt hinzu.

    Das gleiche Projekt mit einem Stopp-Antriebsblock, der unter dem Warten bis zum Block hinzugefügt wurde. Das Projekt liest jetzt Wenn gestartet, fahren Sie vorwärts, warten Sie, bis die linke Stoßstange gedrückt wird, und hören Sie dann auf zu fahren.
  • Starten Sie den Wall Maze Playground , wenn er noch nicht geöffnet ist, und führen Sie das Projekt aus.
  • Beobachten Sie den VR-Roboter vom Beginn des Wandlabyrinths an und halten Sie an, wenn der Stoßstangensensor von der Wand gedrückt wird.
  • Der [Drive] -Block ermöglicht es dem VR-Roboter, weiter vorwärts zu fahren, während er den Zustand des Stoßfängersensors mit dem <Pressing bumper> Block überprüft. Sobald die <Pressing bumper> Berichte WAHR sind, fährt der VR-Roboter zum nächsten Block im Stapel und stoppt die Fahrt.

    Das VEXcode VR-Projekt aus dieser Lektion wurde getrennt, um den Projektablauf zu zeigen. Auf den Block Wenn gestartet folgt der Block Vorwärtsfahrt. Ein goldener Pfeil zeigt vom Block Drive Forward am Block Wait until left Bumper Pressed nach unten. Rechts neben dem Block befinden sich 2 gekrümmte rote Pfeile, die eine kreisförmige Bewegung anzeigen, und die Wörter "nicht gedrückt (falsch)" zeigen, was passiert, wenn der Roboter vorwärts fährt und der Stoßstangenschalter nicht gedrückt wird. Unterhalb des Blocks "Warten bis"" zeigt ein grüner Pfeil nach unten auf den Stopp-Fahrblock mit den "gedrückten Worten (true), dass sich das Projekt zum Stopp-Fahrblock bewegt, wenn der Stoßstangenschalter gedrückt wird.

    Zur Kenntnisnahme

    Um einer Visualisierung von wartenden und nicht wartenden Blöcken zu folgen, beobachten Sie die Hervorhebungsfunktion der Codeausführung in VEXcode VR. Zu Beginn dieses Projekts erscheint das grüne Highlight um den Block [Warten bis], bis die Bedingung erfüllt ist. Dies liegt daran, dass der Block [Warten bis] ein wartender Block ist. Das grüne Hervorheben wird angezeigt, um die nicht wartenden Blöcke zu überspringen, da diese Befehle schnell ausgeführt werden.

    VEXcode VR-Projekt aus dieser Lektion mit einem roten Callout-Feld um den Block "Warten bis", das anzeigt, dass es sich um einen Warteblock handelt.

     

    Verwenden von Schalterblöcken 

    Dies ist der Schalterblock, der den Befehl [Warten bis] mit dem <Bumper pressed>  Boolescher Reporter.

    VEXcode VR-Projekt wie oben, aber mit dem Block Warten bis durch einen Switch-Block ersetzt. Der Python-Befehl im Switch-Block liest, während nicht left_bumper.pressed (): in der ersten Zeile. Dann eingerückt unter den Python-Block liest warten (5, ms).

    while not left_bumper.pressed(): ist der Python-Befehl, der überprüft, ob der linke Stoßfänger gerade gedrückt wird.

    wait (5, MS) ist ein Python-Befehl, der die Ausführung der Überprüfung für 5 Millisekunden (MS) anhält, so dass das Projekt überprüft, ob der linke Stoßfänger alle 5 MS gedrückt wird oder nicht. Diese Codezeile wird unter der ersten Codezeile eingerückt, da dieser Befehl das Verhalten ist, das wiederholt wird, bis die Bedingung (in diesem Fall der linke Stoßfänger gedrückt) erfüllt ist.

    In VEXcode VR wird immer ein wait-Befehl mit einer bedingten Schleife hinzugefügt. Der Zweck des Wait-Befehls besteht darin, sicherzustellen, dass VEXcode VR das Projekt aufgrund der webbasierten Natur der VEXcode VR-Plattform ordnungsgemäß ausführen kann. Der Wait-Befehl sollte niemals gelöscht werden, wenn eine bedingte Schleife verwendet wird, da Ihr Projekt möglicherweise nicht wie beabsichtigt ausgeführt wird.

    Sobald die linke Stoßstange gedrückt wird, stoppt der Roboter die Fahrt.

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