Skip to main content

Lektion 2: Fahren Sie zur Nummer '5'

In dieser Lektion fährt der VR-Roboter zur Nummer ‘5‘ und zurück zur Nummer ‘1‘ auf dem Number Grid Map Playground!

Top-down-Bild des Number Grid Map-Spielplatzes. Der VR-Roboter ist in der linken unteren Ecke auf der Nummer 1 zu sehen. In der Mitte der unteren Reihe auf der Zahl 5 ist ein Callout zu sehen.

Beachten Sie, dass sich der VR-Roboter entlang der X-Achse bewegt, wobei die X-Werte steigen, um sich auf dem Zahlenrasterkarten-Spielplatz auf die Zahl "5" zu bewegen.

Zahlenrasterkarten-Spielplatz mit der x-Achse über der Mitte des Spielplatzes. Die Mitte jedes Quadrats wird mit dem X-Achsenwert markiert, beginnend mit -900 auf der linken Seite und um 200 pro Quadrat bis 900 auf der rechten Seite. Ein VR-Roboter ist auf der Nummer 1 in der linken unteren Ecke zu sehen, wobei ein Pfeil auf die Nummer 5 zeigt.

Der VR-Roboter fährt zur Position der Nummer ‘5‘ auf dem Number Grid Map Playground. Bevor der VR-Roboter jedoch zu dieser Nummer navigieren kann, muss dem VR-Roboter mitgeteilt werden, wo sich diese Nummer befindet. Beginnend in der Mitte des Spielplatzes sind die Koordinaten der Zahl ‘5’ (-100, -900).

Linke untere Ecke des Zahlenrasterkarten-Spielplatzes von vor mit der x- und y-Achse überlagert. Ein Pfeil wird von minus 100 auf der x-Achse bis zur Zahl 5 und minus 900 auf der y-Achse bis zur Zahl 5 angezeigt. Der VR-Roboter ist immer noch auf der Nummer 1 mit den Koordinaten negativ 900, negativ 900 unter dem Roboter.

  • Um zu beginnen, muss der VR-Roboter der Zahl "5" gegenüberstehen. Ziehen Sie einen turn_for-Befehl hinein oder geben Sie ihn ein.
# Projektcode in "main" hinzufügen
def main():
    drivetrain.turn_for(RECHTS, 90, GRAD)
  • Ziehen Sie in einer while -Schleife unter dem Befehl turn_for . Ihr Projekt sollte wie folgt aussehen:
# Add project code in "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while condition:
        wait(5, MS)
  • Genau wie die Entfernungssensoreinheit verwendet dieses Projekt den Zustand der Position des Positionssensors mit einem Vergleichsoperator, um durch den Zahlenrasterkartenspielplatz zu navigieren. Stellen Sie die Bedingung für die while-Schleife auf den Positionsbefehl in der X-Achse von weniger als -100 in Millimetern (mm) ein. Ihr Projekt sollte wie folgt aussehen:
# Fügen Sie den Projektcode in "main"
def main() hinzu
    : drivetrain.turn_for (RIGHT, 90, DEGREES)

    while location.position (X, MM) < -100:
        wait(5, MS)
  • Ziehen oder geben Sie den nicht wartenden Laufwerksbefehl in die while -Schleife ein. Ihr Projekt sollte wie folgt aussehen:
# Projektcode in "main" hinzufügen
def main(): drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • Beachten Sie, dass der Operator less than anstelle des Operators greater than verwendet wird, da der VR-Roboter von der linken Seite des Spielplatzes nach rechts fährt. Der VR-Roboter startet bei einem X-Wert von -900 Millimetern (mm). Wenn der VR-Roboter vorwärts fährt, erhöhen sich die X-Werte, und somit fährt der Roboter weiter vorwärts, während der X-Wert kleiner als -100 ist.

Linke untere Ecke des Zahlenrasterkarten-Spielplatzes von vor mit der x- und y-Achse überlagert. Ein Pfeil wird von minus 100 auf der x-Achse bis zur Zahl 5 und minus 900 auf der y-Achse bis zur Zahl 5 angezeigt. Der VR-Roboter ist immer noch auf der Nummer 1 mit den Koordinaten negativ 900, negativ 900 unter dem Roboter.

Zur Kenntnisnahme

Sie müssen auswählen, welcher Vergleichsoperator in Ihrem Projekt verwendet werden soll, abhängig von der Richtung, in die der VR-Roboter entlang der X- oder Y-Achse fahren soll. Wenn der VR-Roboter auf einen größeren Wert zufährt, wird der Operator kleiner als (<) mit einer  while-Schleife verwendet; und wenn der VR-Roboter auf einen kleineren Wert zufährt, wird der Operator größer als (>) mit einer  while-Schleife verwendet.

Dies stimmt mit linken und rechten Bewegungen beim Blick auf den Spielplatz überein. Wenn sich der VR-Roboter von links nach rechts oder von unten nach oben bewegt (größere Werte), wird der weniger als -Bediener zum Fahren verwendet, während die Position kleiner als der Zielwert ist. 

Zwei Draufsichten auf den Spielplatz der Zahlenrasterkarte. Im ersten wird der VR-Roboter auf Nummer 51 mit einem Pfeil angezeigt, der anzeigt, dass sich der Roboter nach rechts zur Nummer 60 bewegen wird. Der obige Text lautet "Fahren, während die Position kleiner ist als". In der zweiten wird der VR-Roboter auf Nummer 6 mit einem Pfeil angezeigt, der anzeigt, dass sich der Roboter bis zur Nummer 96 bewegen wird. Der obige Text lautet "Fahren, während die Position kleiner ist als".

Wenn sich der VR-Roboter von rechts nach links oder von oben nach unten bewegt (kleinere Werte), wird der Größer-als-Bediener zum Fahren verwendet, während die Position größer als der Zielwert ist.

Zwei Draufsichten auf den Spielplatz der Zahlenrasterkarte. Im ersten wird der VR-Roboter auf Nummer 60 mit einem Pfeil angezeigt, der anzeigt, dass sich der Roboter nach links zur Nummer 51 bewegen wird. Der obige Text lautet "Laufwerk, während die Position größer ist als". In der zweiten wird der VR-Roboter auf Nummer 96 mit einem Pfeil angezeigt, der anzeigt, dass sich der Roboter zur Nummer 6 bewegen wird. Der obige Text lautet "Laufwerk, während die Position größer ist als".

Mit den Vergleichsoperatoren fährt der VR-Roboter, während der vom Positionssensor gemeldete Wert größer als (>) oder kleiner als (<) der Schwellenwert ist. In diesem Beispiel navigiert der VR-Roboter auf der X-Achse zu positiven 500 Millimetern (mm). Der VR-Roboter fährt, während die Position auf der X-Achse irgendwo zwischen 0 und positiv 499 liegt. Wenn der Positionssensor meldet, dass die Position 501 oder höher ist, stoppt der VR-Roboter die Fahrt. 

# Projektcode in "main" einfügen
def main():
    monitor_sensor(location.position) drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Beachten Sie, dass der vom Positionssensor gemeldete Wert nicht genau 500 Millimeter (mm) beträgt. Wie der Abstandssensor werden die Vergleichsoperatoren aufgrund der Zeit verwendet, die der VR-Roboter benötigt, um das Projekt zu durchlaufen und Werte zu melden.

  • Ziehen oder geben Sie einen Stoppbefehl außerhalb der while -Schleife ein. Ihr Projekt sollte wie folgt aussehen:
# Projektcode in "main" hinzufügen
def main(): drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
  • Öffnen Sie das Playground-Fenster  , wenn es noch nicht geöffnet ist. Stellen Sie sicher, dass sich der Number Grid Map Playground öffnet, und führen Sie das Projekt aus.
  • Beobachten Sie, wie der VR-Roboter auf dem Number Grid Map Playground zur Nummer „5“ fährt.

Top-down-Bild des Number Grid Map-Spielplatzes. Der VR-Roboter ist unten auf der Nummer 5 zu sehen.

  • In diesem Projekt fährt der VR-Roboter zur Nummer ‘5‘ auf dem Number Grid Map Playground. Die while-Schleife wird verwendet, damit der VR-Roboter weiter vorwärts fährt, während der X-Wert kleiner als der X-Wert der Koordinate ist, auf der sich die angegebene Zahl befindet.
  • Sobald der X-Wert größer als -100 ist, wechselt das Projekt zum nächsten Befehl außerhalb der Schleife, bei dem es sich um einen Stopp-Befehl handelt. Da der X-Wert der Zahl ‘5‘ -100 ist, hört der VR-Roboter auf zu fahren, sobald der X-Wert größer als -100 ist.

Ablauf des Python-Projekts, das gerade ausgeführt wurde. Ein Pfeil zeigt an, dass sich der Roboter zur WHILE-Schleife bewegt, sobald die Rechtskurve um 90 Grad abgeschlossen ist. Ein zyklischer Pfeil befindet sich neben der while-Schleife mit einem Text, der lautet: "x-Wert kleiner als negative 100 ergibt Wahr, VR-Roboter fährt vorwärts." Darunter befindet sich ein roter Pfeil mit dem Text "x-Wert größer als minus 100", der Falsch zurückgibt. VR-Roboter hört auf zu fahren.'

Zur Kenntnisnahme

Beachten Sie, dass der vom Positionssensor gemeldete Wert möglicherweise nicht genau -100 Millimeter (mm) beträgt. Wie der Abstandssensor werden die Vergleichsoperatoren aufgrund der Zeit verwendet, die der VR-Roboter benötigt, um das Projekt zu durchlaufen und Werte zu melden.

Dashboard im Playground-Fenster vergrößert, um anzuzeigen, dass der gemeldete x-Wert des Positionssensors negativ 90 Millimeter ist.

In VEXcode VR Python können Sie einen Vergleichsoperator größer oder gleich (>=) oder kleiner oder gleich (<=) in Ihrem Projekt verwenden, um eine zusätzliche Präzision in Ihren Bewegungen zu erhalten.

# Projektcode in "main"
def main() einfügen: drivetrain.turn_for
    (RIGHT, 90, DEGREES)

    while location.position(X, MM) <= -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Abhängig von der Geschwindigkeit des VR-Roboters und davon, wie schnell das Projekt die Schleife durchläuft, können Sie feststellen, dass der VR-Roboter näher am Schwellenwert anhalten kann, wenn dem Operator oder gleich (<= oder >=) hinzugefügt wird.

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