Skip to main content

Lektion 2: Verwenden von Vergleichsblöcken und Fahren bis in die Nähe

In dieser Lektion erstellen Sie ein Projekt, das den VR-Roboter mithilfe des Abstandssensors mit dem <Less than> Booleschen Reporterblock zum Buchstaben „A“ navigiert. In der Mini-Challenge wendest du diese Fähigkeiten an, um vom Beginn des Mauerlabyrinths bis zur Zahl "1" zu navigieren.

Eine Draufsicht auf das Wandlabyrinth mit dem Buchstaben A goal, der in einem roten Kästchen in der Nähe der Ausgangsposition des VR-Roboters hervorgehoben ist.

Lernergebnisse

  • Identifizieren Sie, dass der <Greater than> Block ein Boolescher Block ist, der meldet, wenn der erste Wert größer als der zweite Wert ist.
  • Identifizieren Sie, dass der <Less than> Block ein Boolescher Block ist, der meldet, wenn der erste Wert kleiner als der zweite Wert ist.
  • Stellen Sie fest, dass die <Greater than> oder <Less than> -Blöcke einen WAHREN oder FALSCHEN Wert in einem [Warten bis] -Block melden.
  • Beschreiben Sie, wie Sie ein Projekt erstellen, bei dem ein VR-Roboter vorwärts fährt, bis der Wert des Abstandssensors unter einem Schwellenwert von 50 Millimetern (mm) liegt.

Projekt benennen und speichern

  • Starten Sie ein neues Projekt in VEXcode VR und benennen Sie das Projekt Unit5Lesson2. Denken Sie daran, dass Sie VEXcode-Blöcke, Switch-Blöcke oder eine Kombination aus beiden Blocktypen für Ihr Projekt verwenden können. 
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 5 Lektion 2 festgelegt.

Verwenden Sie den Abstandssensor, um Wände zu vermeiden

  • Ziehen Sie den Block [Drive] in den Arbeitsbereich.
    VEXcode VR blockiert das Projekt, beginnend mit einem When Started-Block mit einem Drive Forward-Block darunter. Es gibt ein rotes Kästchen, das den Drive-Forward-Block hervorhebt.
  • Bringen Sie einen [Warten bis] -Block unter dem [Laufwerk] -Block an.
    Das gleiche VEXcode VR blockiert das Projekt wie zuvor, aber jetzt mit einem Warten bis -Block am unteren Rand, der mit einem roten Kästchen markiert ist. Das vollständige Projekt lautet When Started, Drive Forward and Wait Until. Der Parameter des Blocks Warten bis ist leer.

Dieses Projekt wird den Abstandssensor verwenden, um durch den Wandlabyrinth-Spielplatz zu navigieren, ohne gegen Wände zu stoßen. In diesem Projekt verwenden Sie den Block (Abstand von) innerhalb des <Less than> Booleschen Blocks.

Die <Less than>, <Greater than>, und <Equal to> sind Vergleichsblöcke - sie vergleichen Werte. Sie sind auch Boolesche Reporterblöcke, die einen WAHREN Wert melden, wenn die Vergleichsbedingung erfüllt ist, und FALSCH, wenn die Bedingung NICHT erfüllt ist.

  • <Less than> meldet WAHR, wenn der erste Wert kleiner als der zweite Wert ist, und FALSCH, wenn der erste Wert größer oder gleich dem zweiten Wert ist.
    VEXcode VR Less Than Boolescher Block mit dem Wert '25 less than 50'.
  • <Greater than> meldet WAHR, wenn der erste Wert größer als der zweite Wert ist, und FALSCH, wenn der erste Wert kleiner oder gleich dem zweiten Wert ist.
    VEXcode VR Größer als Boolescher Block mit dem Wert '100 größer als 50'.
  • <Equal to> berichtet TRUE, wenn die beiden Werte genau gleich sind, und FALSE, wenn sie es nicht sind.
    VEXcode VR ist gleich dem booleschen Block und lautet "50 gleich 50".

Vergleichsblöcke können Dezimalzahlen, ganze Zahlen oder numerische Blöcke akzeptieren. Sie akzeptieren auch runde Reporterblöcke, wie den Block (Entfernung von). Der Block (Abstand von) kann bei Verwendung des Abstandssensors in einem Projekt mit einem Vergleichsblock versehen werden.

In diesem Beispiel wird der Block TRUE melden, wenn der Abstand zu einem Objekt und dem Abstandssensor auf einem VR-Roboter weniger als 50 Millimeter (mm) beträgt.

VEXcode VR Less Than Boolescher Block mit einem Abstand vom Block im Inneren, der "Front Distance in Millimetern less than 50" (Vorderer Abstand in Millimetern weniger als 50) lautet.

  • Ziehen Sie den <Less than> Booleschen Block in den Block [Warten bis].
  • Platzieren Sie den runden (Abstand von) Block innerhalb des Booleschen Reporterblocks
    VEXcode VR Blocks Projekt, das die vorherigen Schritte zusammenfasst. Das gesamte Projekt liest jetzt When Started, Drive Forward und Wait Until Front Distance in Millimetern ist weniger als 50. Ein rotes Feld hebt den Booleschen Block Weniger als hervor.
  • Der Block [Warten bis] hält den VR-Roboter vorwärts, bis die Bedingung erfüllt ist und der gemeldete Abstand weniger als 50 Millimeter (mm) beträgt. Dann fährt das Projekt mit dem nächsten Block im Stapel fort, dem Block [Stop driving].
    Ein Diagramm, das den Ablauf der Logik im Projekt VEXcode VR Blocks visualisiert. Das Projekt beginnt mit dem Vorwärtsfahren und hält diesen Befehl, bis der Abstand des vorderen Abstandssensors in Millimetern weniger als 50 beträgt. Danach beendet ein Stop-Driving-Block den Drive-Forward-Befehl.
  • Nach dem [Warten bis] -Block ist ein [Stop driving] -Block erforderlich, da der VR-Roboter so lange weiterfährt, bis er zum Anhalten angewiesen wird. Fügen Sie dem Projekt einen [Stop driving] -Block hinzu.
    Der VEXcode VR blockiert das Projekt von zuvor mit einem Stop-Driving-Block, der nach dem Wait Until-Block hinzugefügt wurde. Das gesamte Projekt liest sich nun so: When Started Drive Forward and Wait Until Front Distance in millimeters is less than 50, after which Stop Driving.
  • 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 Abstandssensor meldet, dass er weniger als 50 Millimeter (mm) von der Wand entfernt ist.
    Eine Draufsicht auf das Wandlabyrinth mit dem Buchstaben A goal in der Nähe der Ausgangsposition des VR-Roboters. Der VR-Roboter hat sich nun durch das Blockprojekt weiterentwickelt.
  • Wenn Sie den <Less than> Block mit dem (Abstand von) -Block innerhalb des [Warten bis] -Blocks verwenden, wird der VR-Roboter angewiesen, zu warten, bis er weniger als 50 Millimeter (mm) von der Wand entfernt ist, bevor er anhält.
  • Setzen Sie den Spielplatz zurück, um den VR-Roboter zurück in die Ausgangsposition zu bewegen.

Verwenden von Schalterblöcken

In dieser Lektion haben Sie die <Greater than> <Less than>, und <Equal to> Booleschen Blöcke kennengelernt. Die folgende Abbildung zeigt die Booleschen Vergleichsblöcke wechseln. Damit ein Boolescher Switch-Block wie vorgesehen funktioniert, müssen die Switch-Python-Funktionen mit der richtigen Rechtschreibung und Interpunktion eingegeben werden. 

Beachten Sie, dass <Equal to> der Switch-Block zwei Gleichheitszeichen (==) verwendet. Dies liegt daran, dass in Python ein Gleichheitszeichen (=) eine Zuweisung eines Wertes darstellt (z. B. x = 10), während zwei Gleichheitszeichen (==) überprüfen, ob zwei Werte gleich sind. Achten Sie darauf, zwei Gleichheitszeichen zu verwenden, wenn Sie den <Equal to> Schalterblock verwenden. 
A comparison of three VEXcode VR boolean blocks and their corresponding switch blocks. The Less Than block is written in Python as '25 < 50', the Greater Than block is written in Python as '100 > 50', and the Equal To block is written in Python as '50 == 50'. A red box highlights the double equal signs in the last example, demonstrating how to compare two values as equal in Python.

Sie haben auch ein Beispielprojekt gesehen, bei dem der VR-Roboter vorwärts fährt, bis der gemeldete Abstand weniger als 50 Millimeter (mm) von einem Objekt beträgt. Dann stoppt der VR-Roboter. Das Projekt auf der rechten Seite zeigt die entsprechenden Python-Befehle innerhalb eines Switch-Blocks. Der Befehl, obwohl nicht front_distance.get_distance (MM) < 50, weist den Roboter an zu überprüfen, ob die gemeldete Entfernung weniger als 50 mm von einem Objekt entfernt ist.

Die nächste eingerückte Codezeile, wait (5, MS), pausiert den Code für 5 Millisekunden. Der Befehl, der überprüft, ob die gemeldete Entfernung von einem Objekt weniger als 50 mm beträgt, wartet 5 MS, bevor der Zustand erneut überprüft wird. 

Ein Vergleich unseres VEXcode VR-Projekts, wobei der Wait Until-Block auf der rechten Seite in einen Switch-Block umgewandelt wurde. Der neue Switch-Block liest in Python 'while not front_distance.get_distance (MM) < 50: wait(5, msec)'.

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