Skip to main content

Lektion 3: Verwenden von Sensoren und des Elektromagneten, um eine Festplatte im Ziel zu platzieren

Hinzufügen des Abstandssensors zum Projekt

In Lektion 2 fuhr der VR-Roboter rückwärts zurück zum Startpunkt, um die Festplatte abzulegen. Dazu musste der Benutzer die genaue Entfernung berechnen, die der VR-Roboter zurücklegen musste. Dies ist möglicherweise nicht immer möglich. Stattdessen kann der VR-Roboter gemeldete Sensorwerte verwenden, um Scheiben mit gleichbleibender Präzision aufzunehmen und abzulegen. 

In dieser Lektion wird der Abstandssensor verwendet, um zu bestimmen, wo der VR-Roboter aufhören soll zu fahren, wenn er zum Ziel zurückkehrt. Dieser Sensor meldet die Distanz von der Vorderseite des VR-Roboters zum nächstgelegenen Objekt mithilfe des Befehls get_distance Um den VR-Roboter mithilfe des Distanzsensors zurück zum Ziel zu steuern, muss Folgendes geschehen: 

  • Der VR-Roboter muss sich um 180 Grad drehen, damit der Distanzsensor das Ziel zeigt. Mit dem Befehl turn_to_heading kann sichergestellt werden, dass der VR-Roboter in die richtige Richtung dreht.
  • Der VR-Roboter verwendet den Abstandssensor mit der Rückwand des Spielplatzes, um zu bestimmen, wo die Festplatte abgelegt werden soll. 
  • Der VR-Roboter fährt zum Ziel. 
Eine perspektivische Ansicht des VR-Roboters auf dem Disk Mover Playground an der Stelle der ersten blauen Platte, wobei die Platte am Elektromagneten befestigt ist. Das blaue Tor befindet sich hinter dem Roboter.

Zur Kenntnisnahme

Der Befehl turn_to_heading dreht den VR-Roboter mithilfe des Gyrosensors in eine bestimmte Richtung. Die Richtung, in die sich der VR-Roboter drehen wird (links oder rechts), wird basierend auf dem aktuellen Kurs des Gyro-Sensors bestimmt. Wechseln Sie zur Überschrift VEXcode VR Python-Befehl, lesen Sie den Unterstrich für die Umdrehung des Antriebsstrangs, um die Überschrift mit 90 und Grad in Klammern zu unterstreichen.

Der Befehl turn_to_heading wird verwendet, um den VR-Roboter unabhängig von seiner Position in eine bestimmte Richtung zu lenken. Wenn Sie eine Festplatte aufnehmen oder fallen lassen, kann der VR-Roboter vom Kurs abkommen. Die Verwendung des Befehls turn_to_heading stellt sicher, dass sich der VR-Roboter in die absolute Position dreht und nicht in eine Position relativ zur vorherigen Richtung.

Eine Draufsicht auf den VR-Roboter in der Mitte eines Kreises, der die Überschriften des Roboters veranschaulicht. In der 12-Uhr-Position, ausgerichtet mit der Vorderseite des Roboters, ist 0 Grad. Der Kurs verläuft im Uhrzeigersinn um den Kreis, mit 90 Grad in der 3-Uhr-Position, 180 Grad in der 6-Uhr-Position und 270 Grad in der 9-Uhr-Position.

Bauen Sie das Projekt weiter auf 

  • Arbeiten Sie weiter im  Projekt Unit8Lesson3.
  • Fügen Sie nach dem dritten Kommentar einen Befehl turn_to_heading hinzu. Setzen Sie den Parameter auf 180 Grad, sodass das Projekt nun wie folgt aussieht: 

    def main():
        #1. Fahren Sie auf die erste Festplatte,
        während nicht down_eye.near_object (
            ): drivetrain.drive (FORWARD)
            wait(5, MSEC
        )drivetrain.stop ()
    
        # 2. Nimm den ersten Scheibenmagneten auf
        .Errege (BOOST)
    
        # 3. Fahren Sie zum Ziel
        Antriebsstrang.Turn_to_heading(180, GRAD)
    
        # 4. Legen Sie die Festplatte in das Ziel
  • Nun, da der VR-Roboter auf das Ziel ausgerichtet ist, muss der VR-Roboter zurück zum Ziel fahren. Fügen Sie unter dem Befehl turn_to_heading eine Schleife while hinzu, sodass der dritte Abschnitt des Projekts folgendermaßen aussieht: 

    	# 3. Fahren Sie zum Ziel
        Antriebsstrang.turn_to_heading(180, GRAD),
        während Bedingung:
            warten(5, MS)
  • Um zum Ziel zurückzukehren, verwendet der VR-Roboter Daten vom Abstandssensor, um festzustellen, wann sich der VR-Roboter innerhalb des Ziels befindet. Wie in der vorherigen Lektion besprochen, misst jedes Rasterquadrat auf dem Disk Mover Playground 200 Millimeter (mm) mal 200 Millimeter (mm).Eine Nahansicht der unteren linken Ecke des Spielplatzes, die zeigt, dass jedes Quadrat des 10 mal 10 Rasters auf dem Boden des Spielplatzes 200 mm mal 200 mm misst.
  • Mit diesen Messungen kann die Mitte des Ziels auf etwa 200 Millimeter (mm) von der Wand des Spielplatzes bestimmt werden.

    Eine Nahansicht der unteren linken Ecke des Disk Mover Playground. Der VR-Roboter hat eine blaue Scheibe, die am Elektromagneten befestigt ist und dem blauen Tor zugewandt ist. Ein Maß von der Rückwand des Spielplatzes bis zur Mitte des blauen Tores ist mit 200 Millimeter beschriftet.
  • Der VR-Roboter sollte fahren, während der Abstandssensor meldet, dass der VR-Roboter mehr als 200 Millimeter (mm) von der Wand des Spielplatzes entfernt ist. Setzen Sie die Bedingung der Schleife while auf den Befehl get_distance mit dem Parameter Millimeter (mm). Fügen Sie dann den Vergleichsoperator zu größer als (>) 200 hinzu. Der dritte Abschnitt des Projekts sollte nun so aussehen: 

    	# 3. Fahren Sie zum Ziel
        Antriebsstrang.drehen_zu_Kopf(180, GRAD)
        während front_distance.get_distance(MM) > 200:
            warten(5, MS)
  • Fügen Sie  einen Laufwerksbefehl in diese while-Schleife ein, sodass der dritte Abschnitt des Projekts wie folgt aussieht. Dadurch wird der VR-Roboter angewiesen, vorwärts zu fahren, während der Abstandssensor eine Entfernung von mehr als 200 Millimetern (mm) meldet.

    	# 3. Fahren Sie zum Ziel
        Antriebsstrang.drehen_zu_Kopf(180, GRAD),
        währendfront_distance.get_distance (MM) > 200:
            Antriebsstrang.antreiben(VORWÄRTS)
            warten(5, MS)
  • Sobald der VR-Roboter das Ziel erreicht hat (200 mm von der Wand entfernt), muss der VR-Roboter aufhören zu fahren. Fügen Sie einen  Stoppbefehl außerhalb der while-Schleife hinzu, sodass der dritte Abschnitt des Projekts wie folgt aussieht:

    	# 3. Fahren Sie zum Ziel
        Antriebsstrang.umdrehen_zu_Kopf(180, GRAD)
        während front_distance.get_distance(MM) > 200:
            Antriebsstrang.antreiben(VORWÄRTS)
            warten(5, MS)
        Antriebsstrang.stop()
  • Jetzt, da der VR-Roboter im Ziel angehalten ist, kann er die Festplatte fallen lassen. Fügen Sie einen Energize-Befehl unter dem vierten Kommentar hinzu und setzen Sie den Parameter auf "DROP". Der vierte Abschnitt des Projekts sollte nun so aussehen:

    	# 4. Legen Sie die Scheibe in den
        Zielmagneten.energize(DROP)
  • Der VR-Roboter muss eine kurze Strecke rückwärts fahren, um zu vermeiden, dass er umkippt oder mit Scheiben kollidiert. Eine Kollision mit einer Festplatte könnte den VR-Roboter möglicherweise vom Kurs abbringen. Der VR-Roboter muss sich dann so drehen, dass er wieder den Scheiben zugewandt ist. Fügen Sie die folgenden Befehle nach dem letzten Energetisierungsbefehl wie gezeigt hinzu, um den VR-Roboter anzuweisen, 100 Millimeter (mm) rückwärts zu fahren und sich wieder in eine Richtung von 0 Grad zu drehen. Stellen Sie sicher, dass die Befehle in Ihrem Projekt richtig eingerückt sind.

    	# 4. Legen Sie die Scheibe in den Zielmagneten. Erregen Sie (DROP) ANTRIEBSSTRANG
        . Antrieb
    
    	_für (REVERSE, 100, MM) Antriebsstrang. Drehen Sie
        _in_Richtung (0, GRAD)
  • Öffnen Sie den Disk Mover Playground , wenn er noch nicht geöffnet ist, und führen Sie das Projekt aus.
  • Der VR-Roboter fährt vorwärts, nimmt die erste Scheibe auf und dreht sich dann in einer Richtung von 180 Grad zum Ziel. Der VR-Roboter verwendet dann die Werte des Abstandssensors, um zu bestimmen, wann er aufhören soll zu fahren und die Festplatte fallen zu lassen.

    Eine Seitenansicht des blauen Ziels des Disk Mover Playground, wobei die erste blaue Festplatte in das Ziel fällt, und der VR-Roboter wird gedreht und an der Vorderseite des Ziels positioniert, um die nächste Festplatte einzusammeln.

Projektablauf zum Ablegen der ersten Festplatte im Ziel

Beachten Sie, wie die while-Schleife mit dem Abstandssensor in diesem Teil des Projekts funktioniert.

  • Der VR-Roboter fährt vorwärts, während der Abstandssensor mehr als 200 Millimeter von der Wand entfernt ist.
  • Wenn der Abstandssensor erkennt, dass die Wand des Spielplatzes weniger als 200 Millimeter (mm) entfernt ist, wechselt das Projekt zum nächsten Befehl außerhalb der  while-Schleife und der VR-Roboter stoppt die Fahrt.
  • Das Projekt wird fortgesetzt, um den  Elektromagneten zu aktivieren, um die Festplatte im Ziel fallen zu lassen.
  • Dann dreht sich der VR-Roboter um und dreht sich um 180 Grad, um für die nächste Festplatte bereit zu sein.

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