Skip to main content

Controller: Panzerantriebserkundung – Python

Lehrer-Toolbox-Symbol 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:

  1. Entdecken Sie das Beispielprojekt „Tank Control“.
  2. Verstehen Sie die Verwendung der Endlosschleife der Struktur while True .
  3. Schließe die Robo-Slalom-Herausforderung ab!

Symbol „Tipps für Lehrer“ 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.

Benötigte Materialien:
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

Symbol „Tipps für Lehrer“ 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

VEXcode V5 mit dem Anfang eines Drivetrain-Befehls, der links eingegeben wird, und rechts wird eine scrollbare Liste mit Autovervollständigungsoptionen für diesen Befehl angezeigt.

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. 

VEXcode V5 wird mit geöffneter Toolbox ganz links und geöffneter Hilfe für den Drive-Befehl ganz rechts angezeigt. Die Hilfe zeigt die Definition des Befehls und Informationen zu seiner Verwendung.

Schritt 1: Beginnen wir mit der Programmierung des Controllers.

  • Wählen Sie „Datei“ und „Beispiele öffnen“.
  • VEXcode V5-Symbolleiste mit geöffnetem Menü „Datei“ und „Geöffnete Beispiele“ in einem roten Feld hervorgehoben. „Beispiele öffnen“ ist der vierte Menüpunkt unter „Neues Blockprojekt“, „Neues Textprojekt“ und „Öffnen“.
  • Blättern Sie durch die verschiedenen Beispiel Projekte. Wählen Sie das Beispielprojekt Tank Control aus.

Beispielprojekte in VEXcode V5 mit einem roten Kästchen um den Sensorfilter oben und dem Beispielprojektsymbol „Tank Control“ unten rechts.

  • Ö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:

  1. 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.
  2. Wie bewegen die Joysticks den Roboter? Was macht der Clawbot?

Lehrer-Toolbox-Symbol Lehrer-Toolbox - Antworten

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

Im Dialogfeld „Projektname“ in VEXcode V5 wird „Tank Control“ angezeigt und es wird angezeigt, dass Steckplatz 1 ausgewählt ist.

  • Weitere Hilfeinformationen finden Sie im Anleitungsvideo in VEXcode V5, in dem das Herunterladen und Ausführen eines Projekts erklärt wird.

Symbolleiste in VEXcode V5 mit einem roten Kästchen um das Tutorial-Symbol. Die Symbolleiste zeigt von links nach rechts das V5-Logo, ein Globussymbol, „Datei“ und dann „Tutorials“.

  • Ü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-Symbol 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-Symbol 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-Symbol 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.

Ein Snowboarder rast einen schneebedeckten Hang hinunter und navigiert durch eine Reihe von roten und blauen Toren, die im Zickzackmuster angeordnet sind.

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.

Eine Abbildung eines Slalomkurses auf Schnee mit einer „Start“-Beschriftung oben und einer Ziellinie unten. Dazwischen schlängelt sich ein gepunkteter Zickzack-Pfad zwischen abwechselnd blauen und roten Flaggen.

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?
     

Symbol „Diskussion motivieren“ 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.