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.

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.

[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.

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.

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

-
Bringen Sie einen [Warten bis] -Block unter dem [Laufwerk] -Block an.

-
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].

-
Ziehen Sie einen [Stop driving] -Block ein und fügen Sie ihn dem Projekt hinzu.

- 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.

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.

Verwenden von Schalterblöcken
Dies ist der Schalterblock, der den Befehl [Warten bis] mit dem <Bumper pressed>
Boolescher Reporter. 
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.