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.

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

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

-
Mit diesen Messungen kann die Mitte des Ziels auf etwa 200 Millimeter (mm) von der Wand des Spielplatzes bestimmt werden.

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

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.