Skip to main content

Controller: Panzerantriebserkundung – C++

Lehrer-Toolbox-Symbol Lehrer-Toolbox - Der Zweck dieser Aktivität

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 LeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(), und rightMotorSpeed = Controller1.Axis2.position() anpassen, um die Geschwindigkeit für jeden der Motoren des Clawbots zu steuern und den Controller zu aktivieren, um die Motorfunktionen zu steuern.

Weitere Informationen zu den Anweisungen finden Sie in der Hilfe im Abschnitt C++  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 Endlosschleifenstruktur while True  .

  • 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 auf viele hilfreiche Artikel in der VEX-Wissensdatenbank 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 „Tank Control“

2 oder mehr

Unterrichtsgegenstände, 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 die Syntax zu verstehen. Der Artikel Autovervollständigung beschreibt die Verwendung der Autovervollständigungsfunktion.

VEXcode V5 mit dem Antriebsstrang-Teil eines Befehls, der links eingegeben wurde, 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.

Schritt 1: Beginnen wir mit der Programmierung des Controllers.

  • Öffnen Sie das Beispielprojekt Tank Control .
  • Beispielprojektsymbol eines Panzers über einem Gamecontroller, mit der Beschriftung „Panzersteuerung“ darunter.

    Führen Sie in Ihrem technischen Notizbuch Folgendes durch:

    Sagen Sie voraus, was der Clawbot in diesem Projekt tun soll. Erklären Sie mehr als nur die Tatsache, dass das Projekt den Controller verwendet.
    Wie bewegen die Joysticks den Roboter? Was macht der Clawbot?

    
    	int main() {
    		// Initializing Robot Configuration. DO NOT REMOVE!
    		vexcodeInit();
    		// Begin project code.
    		
    		// Main Controller loop to set motors to controller axis positions
    		while (true) {
    		  LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
    		  RightMotor.setVelocity(Controller1.Axis2.position(), percent);
    		  LeftMotor.spin(forward);
    		  RightMotor.spin(forward);
    	  
    		  wait(5, msec);
    		}
    	  
    		return 0;
    	}
    

 

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.
  • Speichern, herunterladen und ausführen(C++) das Beispielprojekt Tank Control .
  • Für Hilfe schauen Sie sich die Abschnitte der VEX-Bibliothek zu C++ an oder sehen Sie sich das Tutorial in VEXcode V5 an, in dem das Herunterladen und Ausführen eines Projekts erklärt wird.

    Symbolleiste in VEXcode V5 mit Tutorials, rechts, mit einem roten Kästchen hervorgehoben. Von links zeigt die Symbolleiste ein V5-Logo, ein Globussymbol und dann „Datei“, „Bearbeiten“ und „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.

Welche Vorteile bietet die Verwendung der Endlosschleifenstruktur while True?

Hier ist unser Projekt ohne die Endlosschleifenstruktur while True:

int main() {
  // Roboterkonfiguration wird initialisiert. NICHT ENTFERNEN!
  vexcodeInit();
  // Projektcode beginnen.
  // Haupt-Controller-Schleife zum Einstellen der Motoren auf die Controller-Achsenpositionen
  
  LeftMotor.setVelocity(Controller1.Axis3.position(), Prozent);
  RightMotor.setVelocity(Controller1.Axis2.position(), Prozent);
  LeftMotor.spin(vorwärts);
  RightMotor.spin(vorwärts);

}

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.

Schritt 3: 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 im Zickzackmuster angeordneter roter und blauer Tore.

Slaloms sind Strecken, bei denen die Teilnehmer um aufgestellte Flaggen bzw. Markierungen herum navigieren müssen. Skislalom ist eine beliebte Wintersportart und Teil der Olympischen Winterspiele.

Nachdem der Controller nun gepaart und das C++  Projekt heruntergeladen ist, 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.

Schritt 4: Robo-Slalom

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 dabei, den Clawbot geradeaus vorwärts oder rückwärts zu bewegen?

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.