Controller: Panzerantriebserkundung – Python
Lehrer-Toolbox
-
Der Zweck dieses Abschnitts
Durch die Verwendung des Beispielprojekts „Tank Control“ können die Schüler den Clawbot mithilfe des Controllers steuern. Die Schüler müssen die Parameter in den Anweisungen left_motor.set_velocity(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position() und right_motor_speed = controller_1.axis2.position() anpassen, um die Geschwindigkeit jedes Motors des Clawbots zu steuern und dem Controller die Steuerung der Motorfunktionen zu ermöglichen.
Weitere Informationen zu den Anweisungen finden Sie im Hilfebereich Python in VEXcode V5.
Nachfolgend finden Sie einen Überblick über die Aufgaben der Schülerinnen und Schüler in dieser Aktivität:
- Entdecken Sie das Beispielprojekt „Tank Control“.
- Verstehen Sie die Verwendung der Endlosschleife der Struktur while True .
- Schließe die Robo-Slalom-Herausforderung ab!
Tipps für Lehrer
Wenn die Studierenden VEXcode V5 zum ersten Mal verwenden, können sie in der VEX-Bibliothek auf viele hilfreiche Artikel zugreifen.
| Menge | Benötigte Materialien |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (mit aktueller Firmware) |
| 1 |
VEXcode V5 (neueste Version, Windows, macOS) |
| 1 |
Technisches Notizbuch |
| 1 |
Beispielprojekt Tanksteuerung |
| 2 oder mehr |
Gegenstände aus dem Klassenzimmer, die als Hindernisse verwendet werden können |
Lehrertipps
-
Autovervollständigung verwenden
Die Autovervollständigung ist eine Funktion in VEXcode V5, die den Rest des von Ihnen eingegebenen Befehls vorhersagt. Ermutigen Sie die Schüler, bei ihrer Arbeit mit VEXcode V5 die Autovervollständigungsfunktion zu verwenden, um sich mit der Python-Syntax vertraut zu machen. Möglicherweise bemerken Sie eine Autovervollständigungsfunktion, wenn Sie mit der Eingabe der Anweisung beginnen. Wählen Sie mit den Tasten „Auf“ und „Ab“ den gewünschten Namen aus und drücken Sie dann die Tabulatortaste oder die Eingabetaste (Return) auf Ihrer Tastatur, um die Auswahl zu treffen. Weitere Informationen zu dieser Funktion finden Sie im Python-Artikel.

Diese Aktivität vermittelt Ihnen die Werkzeuge zum Programmieren Ihres Controllers.
- VEXcode V5 Python-Anweisungen, die bei dieser Untersuchung verwendet werden:
- linker_motor.geschwindigkeit_einstellen()
- rechter_motor.geschwindigkeit_einstellen()
- linker_motor.spin()
- rechter_Motor.spin()
- controller_1.axis2.position()
- controller_1.axis3.position()
- während True:
- warte(5, SEKUNDEN)
Weitere Informationen zu den Anweisungen finden Sie in den Abschnitten Python Hilfe in VEXcode V5.

Schritt 1: Beginnen wir mit der Programmierung des Controllers.
- Wählen Sie „Datei“ und „Beispiele öffnen“.

- Blättern Sie durch die verschiedenen Beispiel Projekte. Wählen Sie das Beispielprojekt Tank Control aus.
- Öffnen Sie das Beispielprojekt „Tank Control“. Das Beispielprojekt konfiguriert Antriebsstrang und Steuerung. Der Codeausschnitt sieht wie folgt aus:
# Library imports
from vex import *
# Begin project code
# Main Controller loop to set motors to controller axis postiions
while True:
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
wait(5, MSEC)
Gehen Sie in Ihrem technischen Notizbuch wie folgt vor:
- Sagen Sie voraus, was der Clawbot im Rahmen des Projekts tun wird. Erklären Sie mehr als nur die Tatsache, dass das Projekt den Controller nutzt.
- Wie bewegen die Joysticks den Roboter? Was macht der Clawbot?
Lehrer-Toolbox
-
Antworten
- Dieses Projekt nutzt die Endlosschleifenstruktur while True um kontinuierlich zu prüfen, wo sich die Positionen des linken und rechten Joysticks befinden. Wenn der linke (oder rechte) Joystick nach oben gedrückt wird, wird die Geschwindigkeit dadurch bestimmt, wie weit der Joystick nach vorne gedrückt wird.
- Je weiter der Joystick nach vorne gedrückt wird, desto höher ist die Geschwindigkeit und desto schneller bewegen sich die Motoren. Dasselbe Prinzip funktioniert auch beim Zurückdrücken des Joysticks. Je weiter der Joystick nach hinten gedrückt wird, desto schneller bewegen sich die Motoren rückwärts.
- Geben Sie dem Projekt den Namen TankControl. Speichern, herunterladen und führen Sie das Python TankControl-Projekt aus.
- Weitere Hilfeinformationen finden Sie im Anleitungsvideo in VEXcode V5, in dem das Herunterladen und Ausführen eines Projekts erklärt wird.
- Überprüfen Sie Ihre Erklärungen zum Projekt in Ihrem technischen Notizbuch und fügen Sie bei Bedarf Korrekturnotizen hinzu.
Schritt 2: Controller: Tanksteuerung
Lehrer-Toolbox
-
Die while True Endlosschleifenstrukturen
In diesem Schritt wird die Bedeutung der Endlosschleifenstruktur while True erläutert. Sie sollten die Informationen als Klasse durchgehen. Sie können das Verhalten mit Ihrem Clawbot und Controller modellieren oder, wenn die Zeit es erlaubt, die Schüler das Programm ohne die Endlosschleifenstruktur while True ausführen lassen.
Wenn die Schüler weitere Hilfe zum Verständnis der Endlosschleife while True benötigen, klicken Sie hier.
Welche Vorteile bietet die Verwendung der Endlosschleifenstruktur while True?
Hier ist unser Projekt ohne die Endlosschleifenstruktur while True:
# Library imports
from vex import *
# Begin project code
# Main Controller loop to set motors to controller axis postiions
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
Was würde Ihrer Meinung nach passieren, wenn dieses Programm ausgeführt würde? Besprechen Sie es in der Gruppe. Notieren Sie Ihre Vorhersage im technischen Notizbuch.
Lehrer-Toolbox
-
Die Struktur verstehen
Ohne die Endlosschleife while True wird der Geschwindigkeitswert für jeden Motor festgelegt, sobald das Projekt ausgeführt wird, und dieser Wert bleibt konstant, bis das Projekt gestoppt wird. Mit anderen Worten: Wenn Sie das Projekt ausführen, ohne einen der Joysticks zu bewegen, bleibt die Geschwindigkeit beider Motoren auf 0, selbst wenn Sie den Joystick bewegen, da die Standardposition des Joysticks auf seiner Achse 0 ist.
Nehmen wir analog dazu an, dass Sie den linken Joystick entlang der Achse 3 so weit wie möglich nach oben bewegen und ihn dort halten. Wenn Sie das obige Projekt ausführen, bewegt sich der linke Motor mit voller Geschwindigkeit und behält diese Geschwindigkeit bei, auch wenn Sie den Joystick entlang Achse 3 nach unten bewegen. Dies liegt daran, dass Clawbot seine erste Anweisung vom Controller erhält, sobald das Projekt ausgeführt wird. Ohne eine Schleife kann dieser Anfangswert jedoch nicht aktualisiert werden.
Die Endlosschleife while True weist den Clawbot an, die Geschwindigkeit ständig zu aktualisieren und für die Dauer des Projekts zu laufen. Mit anderen Worten ermöglicht Ihnen die Endlosschleife while True in diesem Projekt, die Geschwindigkeit jedes Motors zu ändern, indem Sie entweder den Joystick entlang der Achse 2 oder 3 bewegen. Der Clawbot reagiert entsprechend, bis Sie das Projekt stoppen oder den Clawbot ausschalten.
# Library imports
from vex import *
# Begin project code
# Main Controller loop to set motors to controller axis postiions
while True:
left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.spin(FORWARD)
wait(5, MSEC)
Navigieren Sie einen Slalomkurs!
Lehrer-Toolbox
-
Einrichten der Aktivität
Teilen Sie die Schüler in kleine Gruppen von zwei oder vier Schülern ein. Ein Schüler sollte zum Fahrer bestimmt werden – die Person, die den Controller zum Manövrieren des Clawbots verwendet.
Lassen Sie die Schüler diesen Slalom absolvieren, indem sie den Clawbot mit dem Controller an der Außenseite jeder „Flagge“ entlang bewegen. Der Weg des Clawbots muss verhindern, dass er eine Flagge berührt, und ihm das Überqueren der Ziellinie ermöglichen. Als Fahnen können beliebige Unterrichtsmaterialien/Gegenstände dienen, die Sie zur Hand haben (Radiergummi, Klebebandrolle, Taschentuchbox) und können vor dem Betrieb des Clawbots angebracht werden.
Wenn die Zeit es erlaubt, lassen Sie die Schüler die Rollen tauschen, um anderen die Möglichkeit zu geben, den Clawbot zu fahren. Sie könnten daraus sogar einen Wettbewerb innerhalb oder zwischen Gruppen machen, indem Sie sehen, wie schnell jeder Fahrer den Slalom bewältigen kann.
Slaloms sind Strecken, bei denen die Teilnehmer um aufgestellte Flaggen bzw. Markierungen herum navigieren müssen. Skislalom ist ein beliebter Wintersport und Teil der Olympischen Winterspiele.
Nachdem der Controller nun gekoppelt und das Python -Projekt heruntergeladen wurde, können Sie Ihren Clawbot mit dem Controller bewegen!
- Holen Sie vom Lehrer die vier Klassengegenstände ab, die Sie als Flaggen in Ihrem Slalom verwenden werden.
- Arbeiten Sie zusammen, um die Flaggen an Ort und Stelle zu setzen, damit der Fahrer den Clawbot gemäß dem Slalomdiagramm navigieren kann.
- Laden Sie das Beispielprojekt „Tank Control“ herunter. Wenn Sie Fragen zum Herunterladen eines Projekts haben, sehen Sie sich das Tutorial „Herunterladen und Ausführen eines Projekts“ an.
Bewegen Sie Ihren Clawbot mit dem Controller an der Außenseite jeder „Flagge“ entlang. Der Weg des Roboters muss so verlaufen, dass er keine Flagge berührt, und er muss die Ziellinie überqueren können.
- Führen Sie das Projekt aus und fahren Sie den Clawbot mit beiden Joysticks vorwärts und rückwärts und drehen Sie ihn nach links und rechts.
- Stoppen Sie die Zeit, die der Clawbot braucht, um den Kurs zu absolvieren. Dokumentieren Sie die Zeiten im Technikbuch.
- Wie schnell schaffen Sie es, Clawbot durch den Slalomparcours zu bringen?
Diskussion anregen
-
Über die Aktivität nachdenken
F: Hat der Clawbot wie erwartet auf den Controller reagiert?
A: Die Antworten können unterschiedlich ausfallen, das Ziel dieser Frage besteht jedoch darin, kognitives Denken zu fördern. Die Schüler begannen damit, Verhaltensweisen vorherzusagen, bevor sie diese testeten, ihre Ergebnisse dokumentierten und reflektierten.
F: Was ist die größte Herausforderung beim geraden Vorwärts- oder Rückwärtsbewegen des Clawbot?
A: Die Antworten können zwar unterschiedlich ausfallen, aber eine gemeinsame Antwort sollte sein, dass sich beide Joysticks synchron bewegen müssen, um sicherzustellen, dass sich die Motoren des Clawbots in die gleiche Richtung und mit der gleichen Geschwindigkeit bewegen.
F: Wie können Sie durch die Verwendung der Endlosschleife while True den Controller kontinuierlich zum Bewegen des Clawbots verwenden?
A: Ohne die while True Endlosschleife würde der Clawbot die in den Anweisungen im Projekt festgelegten Verhaltensweisen nur einmal ausführen. Die Endlosschleife while True weist den Clawbot an, die Geschwindigkeit ständig zu aktualisieren und für die Dauer des Projekts zu laufen. Mit anderen Worten ermöglicht Ihnen die Endlosschleife while True , den Controller zu verwenden, um den Clawbot unbegrenzt oder bis die Batterie leer ist zu bewegen.