Skip to main content
Skip to Main Content
Skip to main content
Navigation

Kapitel 4: Vorbereitung auf den Wettbewerb


Lektion 2: Verwenden der Blockwettbewerb-Vorlage

Hallo und herzlich willkommen im VEX-Klassenzimmer. Mein Name ist Lauren, und in dieser Lektion werden wir uns mit der Verwendung der Blocks Competition Template beschäftigen. In der vorherigen Lektion haben wir uns etwas allgemeiner mit der Wettbewerbsvorlage beschäftigt und darüber gesprochen, warum man sie während eines VEX Robotics Wettbewerbs verwenden muss. Es gibt verschiedene Versionen der Wettbewerbsvorlage, je nachdem, welche Programmiersprache Sie verwenden, ob Block- oder Textprogrammierung. Da wir uns in diesem Kurs auf Blöcke konzentrieren, werde ich in diesem Video speziell auf die Blocks Competition Template in VEXcode V5 eingehen.

Bevor wir uns nun in alle Details vertiefen, sprechen wir zunächst über die Materialien. Ich werde hier den Advanced TrainingBot verwenden, um einige Funktionen des Arm- und Klaue-Systems vorzuführen. Ich werde außerdem einen Controller, ein Spielobjekt und VEXcode V5 verwenden, um Ihnen diese Wettbewerbsvorlage zu zeigen. Für dieses Video benötigen Sie keinerlei Materialien. Ich werde Ihnen nun einige Vorführungen geben. Also nochmal: Für diese spezielle Lektion benötigen Sie überhaupt nichts.

Lasst uns über den Zweck dieser Lektion sprechen. Wir werden die verschiedenen Teile der Blocks Competition Template durchgehen, genauer gesagt drei Teile: den Startvorgang, also die Phase vor dem autonomen Fahren, den autonomen Teil und den Teil mit der Fahrersteuerung. Ich werde das anhand des Beispielcodes, den ich hier habe, erläutern und anschließend werden wir ihn testen und die Funktionalität an unserem Roboter mithilfe unseres Controllers überprüfen, um zu sehen, wie die Wettbewerbsvorlage in der Praxis aussieht.

Nun aber genug der Vorrede, stürzen wir uns in unser Projektbeispiel.

[Musik]

Okay, um die Wettbewerbsvorlage anzuzeigen, gehe ich auf Datei, Beispiele öffnen, Vorlagen und dann auf Wettbewerbsvorlage. Ein paar Anmerkungen dazu. Erstens, nochmal, diese drei Abschnitte. Bevor wir uns anhand meines konkreten Beispiels näher damit befassen, möchte ich noch etwas anmerken: Als Erstes müssen wir hier unsere Gerätekonfiguration hinzufügen, bevor wir mit dem Befüllen dieser Felder beginnen können. Also nochmal: Wenn Sie einen 2-Motoren-Antrieb verwenden oder Arm- oder Klauenmotoren oder Ähnliches haben, müssen Sie zuerst sicherstellen, dass Sie diese hinzufügen, damit die Blöcke auf der linken Seite angezeigt werden. Dadurch können Sie diese Abschnitte wieder füllen.

Sobald ich die Wettbewerbsvorlage öffne, muss ich sicherstellen, dass ich meine Gerätekonfiguration hinzufüge. Als Nächstes möchte ich noch erwähnen, dass sich in diesem Abschnitt zur Fahrersteuerung der Forever-Block befindet. Der Grund dafür ist, dass wir im Fahrersteuerungsmodus, wenn wir den Controller benutzen, die meiste Zeit ständig überprüfen wollen, ob Tasten gedrückt oder Joysticks bewegt werden. Deshalb ist der „Forever“-Block standardmäßig enthalten. Falls Sie es aus irgendeinem Grund entfernen möchten, können Sie dies tun. Wenn Sie diesen Stack nicht verwenden und nur die Gerätekonfiguration nutzen, können Sie diese einfach so belassen.

In Ordnung. Schauen wir uns nun jeden dieser drei Abschnitte genauer an und was sie konkret bedeuten, anhand eines von mir erstellten Beispiels.

[Musik]

Zunächst möchte ich darauf hinweisen, dass unsere Wettbewerbsvorlage aus drei Hauptteilen besteht. Die erste ist diejenige, die gestartet wurde oder die vorautonome Phase. Der zweite Teil ist der Abschnitt „Wenn autonom“ oder der autonome Bereich, und der dritte Teil ist der Abschnitt „Wenn Fahrersteuerung“ oder der Fahrersteuerungsbereich. Alle drei dieser Ereignis- oder Hutblöcke setzen unterschiedliche Teile dieser Wettbewerbsvorlage um.

Lasst uns über die einzelnen Abschnitte sprechen. Der vorautonome Teil bzw. der Abschnitt „Wenn gestartet“ wird ausgeführt, sobald das Projekt „Wettbewerbsvorlage“ gestartet wird. Dies eignet sich am besten zum Festlegen von Initialisierungen.

Vielen Dank, dass Sie an dieser Lektion teilgenommen haben. Ich hoffe, Sie fanden es hilfreich und informativ. Bei Fragen können Sie sich gerne an uns wenden. Viel Spaß beim Programmieren und viel Erfolg mit euren VEX-Robotik-Projekten!

Wenn ich also etwas auf dem Bildschirm des Gehirns ausgeben muss, bevor mein autonomer Teil startet, wenn ich ein Gyroskop kalibrieren muss, wenn ich in diesem speziellen Beispiel Daten ausgeben möchte, da ich den Arm und die Klaue verwende, werde ich deren Motoren auf Halten einstellen. Das bedeutet, dass die Motoren in dieser Position bleiben, wenn ich beispielsweise meinen Arm hebe oder meine Klaue öffne, und sich nicht etwa durch die Schwerkraft absenken. Ich lege also sozusagen diese vorautonomen Grundprinzipien für meine Motoren fest. In diesem konkreten Beispiel schauen wir uns an, wie das in der Demonstration aussieht.

Musikalischer Hinweis

Nachdem ich das nun habe, schließe ich mich dem Abschnitt „Wann wir begannen“ an, also dem Abschnitt vor der Autonomen Phase. Als Nächstes folgt unser autonomer Teil. Der autonome Teil des Spiels dauert 15 Sekunden, und dieser spezielle Codeabschnitt wird während des autonomen Teils des Spiels ausgeführt. Sobald die Wettbewerbsvorlage ausgeführt wird, beginnt dieser vorautonome Abschnitt „Beim Start“ auf jeden Fall. Dann wird der 15-sekündige autonome Modus gestartet. Wir haben über das Feldsteuerungssystem gesprochen und darüber, wie dieses regelt, wann alle Roboter starten und stoppen. Wenn dieser spezielle Abschnitt im Spiel ausgeführt werden soll, wird diese Codezeile ausgeführt.

In meinem konkreten Beispiel hier beginnt unser Roboter mit einem Spielobjekt in der Greifklaue. Dann schließt sich der Arm um das Objekt, hebt sich in die Luft, fährt 200 Millimeter nach vorne, senkt den Arm ab und lässt das Spielobjekt fallen. Dies könnte beispielsweise das Erzielen eines Tores zu Beginn des Spiels simulieren. Das ist also der Ablauf während meines autonomen Teils. Der autonome Teil bedeutet wiederum, dass ich keine Fahrersteuerung mit dem Controller-Effekt auf meinen Roboter habe. In diesem Abschnitt läuft alles autonom ab. Alles wird über Code erledigt.

Wenn ich mir diesen dritten Abschnitt hier ansehe, sehe ich meine Fahrersteuerung. Eine Sache, auf die ich hinweisen möchte, ist, dass ich in unserer Gerätekonfiguration sowohl den Antriebsstrang als auch einen Controller konfigurieren kann. Das bedeutet, dass ich meinen Joysticks verschiedene Antriebsstrangkonfigurationen zuweisen und außerdem verschiedene Tasten zur Steuerung verschiedener Motoren verwenden kann. Nehmen wir jedoch an, dass mir die Tasten auf meinem Controller ausgegangen sind oder dass ich andere Dinge steuern möchte. Ich kann diesem "When Driver Control"-Ereignisblock bestimmte Dinge hinzufügen, die ich tun möchte, auf die ich aber in der Gerätekonfiguration keinen Zugriff habe, oder vielleicht möchte ich die Geschwindigkeit meines Antriebsstrangs einstellen oder ähnliches.

Mein konkretes Codebeispiel für den Teil „Fahrersteuerung“ ermöglicht es mir, meine Claw mit einem einzigen Knopf auf meinem Controller zu steuern. Wir werden sehen, wie das aussieht. Wenn ich also den Treibersteuerungsbereich verwende, kann ich gleichzeitig die Gerätekonfiguration mit dem Controller und den Treibersteuerungsbereich nutzen. Oder ich kann das eine oder das andere verwenden. Wenn Sie keinen dieser drei Stacks verwenden – den vorautonomen Stack „Beim Start“, den autonomen Stack oder den Fahrer-Control-Stack –, können Sie diese Felder leer lassen.

Musikalischer Hinweis

In Ordnung. Nachdem das alles gesagt ist, schauen wir uns nun an, wie das Ganze aussieht, wenn ich es tatsächlich auf meinem Roboter ausführe. In Ordnung. Schauen wir uns das mal auf meinem Controller an. Ich kann zu den Programmen navigieren und dort mein Wettbewerbsvorlagenprojekt sehen, das ich mir bereits ins Gedächtnis geladen habe. Und wenn ich mit der Maus darüberfahre, gibt es dort eine Option für den Zeitlauf. Damit wird das Feldsteuerungssystem simuliert, von dem ich vorhin gesprochen habe, also wie alles durch dieses Feldsteuerungssystem gesteuert wird. Wenn also das Wettbewerbsprojekt tatsächlich startet, wird es davon gesteuert, wenn der autonome Teil des Spiels davon gesteuert wird und wenn der Fahrersteuerungsteil davon gesteuert wird, kann ich das mit diesem zeitgesteuerten Lauf auf dem Controller simulieren.

Dankesbrief

Vielen Dank, dass Sie sich die Zeit genommen haben, diesen Prozess mit mir zu besprechen. Ich hoffe, diese Demonstration war hilfreich.

Schlussbotschaft

Melden Sie sich gerne bei uns, wenn Sie Fragen haben oder weitere Erläuterungen benötigen. Viel Spaß beim Programmieren und viel Erfolg mit euren Robotikprojekten!

Wenn ich das auswähle, wird mir hier angezeigt: 15 Sekunden für den autonomen Teil, eine Minute und 45 Sekunden für die Fahrersteuerung. Und wenn ich diesen Knopf noch einmal drücke, startet es tatsächlich. Wenn ich es starte, zählt es von 3 bis 1 herunter, genau wie bei einem Spiel. Und dann geht es los.

Sobald ich auf Start klicke, wird entweder der autonome Teil ausgeführt oder der vorautonome Teil startet in jedem Fall zuerst. Dann startet sofort der autonome Teil. Ich werde es Ihnen also zeigen, sobald der autonome Teil beginnt. Selbst wenn ich den Controller bewege, um den Roboter zu bewegen, bewegt er sich nicht, weil ich ihn während des autonomen Teils nicht mit dem Controller steuern kann.

[Musik]

Schauen wir uns also an, wie dieser spezielle Teil abläuft. Na gut, los geht's. In Ordnung. Ich habe im autonomen Teil noch ein paar Sekunden übrig. Sie können sehen, dass selbst wenn ich meinen Controller bewege, nichts passiert, weil ich meinen Roboter während des autonomen Teils nicht mit dem Controller steuern kann. Sobald ich aber auf die Fahrersteuerung umschalte, kann ich meinen Roboter tatsächlich steuern.

Ich werde also hier fortfahren, denn erinnern Sie sich, als wir im Rahmen des Projekts zum Thema Fahrersteuerung kamen, dass ich diese verschiedenen Teile steuern kann? Ich habe also noch eine Minute und 25 Sekunden. Ich fahre jetzt basierend auf der Fahrerkonfiguration vorwärts. Dies steuert den Antriebsstrang, dies den Arm, dieser Knopf die Klaue. Ein einziger Knopfdruck genügt, um Gegenstände zu greifen. Ich kann hier zwei Knöpfe drücken, um den Arm anzuheben und abzusenken. Ein Knopf zur Steuerung der Klaue. Geschlossen, Offen.

Da dies in der Gerätekonfiguration nicht möglich ist, musste ich diesen Code individuell erstellen. Genau deshalb habe ich dort den Driver Control Event Block verwendet, den Sie in diesem speziellen Stack sehen können. Der Countdown läuft für den Rest meines Fahrkontrollteils weiter. Aber wie Sie dort sehen können, werde ich das unterbinden. Sobald der Fahrerkontrollabschnitt beendet ist, schaltet sich alles ab und das war's mit dem Spiel.

Sie können die drei verschiedenen Teile der Vorlage sehen. Wir gehen also noch einmal den Abschnitt durch, der beim Start des vorautonomen Systems ausgeführt wird, unabhängig davon, in welchem Abschnitt es sich befindet. Wenn wir uns mit autonomem Fahren oder Fahrersteuerung beschäftigen, gehen wir dann zum autonomen Teil über. Ich kann meinen Controller nicht benutzen, wenn das passiert. Sobald das abgeschlossen ist, geht es in den Fahrersteuerungsabschnitt über, in dem ich meinen Roboter mithilfe des Controllers steuern kann. Dieser Vorgang dauert eine Minute und 45 Sekunden und ist dann beendet. Wie ich bereits erwähnt habe, werden mithilfe des Feldsteuerungssystems alle Roboter gleichzeitig gestartet und gestoppt.

[Musik]

In Ordnung. Fassen wir kurz zusammen, was wir in diesem Video behandelt haben. Wir haben uns die Vorlage für den Blocks-Wettbewerb angesehen. Es gibt drei verschiedene Abschnitte. Der Zustand, in dem der autonome Modus gestartet wird, wird auf jeden Fall ausgeführt. Dies dient zum Initialisieren von Variablen, beispielsweise zum Einrichten und Kalibrieren eines Gyroskops, zum Drucken dank des Gehirnbildschirms, zum Festlegen von Motorpositionen wie Halten oder sogar zum Anheben des Arms in eine bestimmte Position. Dies alles geschieht vor dem autonomen Teil des Spiels.

Dann kommen wir zum autonomen Teil, dem autonomen Stack, den wir dort gesehen haben. Dort bewegt sich der Roboter 15 Sekunden lang vollständig durch Code, ohne Interaktion mit dem Controller oder dem Fahrer. Sobald dieser Abschnitt abgeschlossen ist, gehen wir zum Teil „Treibersteuerung“ über, der entweder über die Gerätekonfiguration, die wir zuvor gesehen haben, gesteuert werden kann, indem bestimmte Motoren und Dinge den Joystick-Tasten und dergleichen auf dem Controller zugewiesen werden, oder über diesen speziellen Stack, in dem ich etwas mehr benutzerdefinierten Code für meinen Roboter schreiben kann. Sie können das eine oder das andere oder beides verwenden.

Wie ich bereits erwähnt habe, können Sie die Stacks in den Ereignisblöcken auch leer lassen, wenn Sie keinen dieser drei Abschnitte in Ihrem Programm verwenden.

Vielen Dank fürs Zuschauen und ich hoffe, dies hilft Ihnen, die Wettbewerbsvorlage besser zu verstehen.

Der Grund für die Verwendung dieser Vorlage besteht darin, sicherzustellen, dass während eines Spiels alle Roboter gleichzeitig starten und stoppen. Das liegt daran, dass vier Roboter auf dem Spielfeld sein werden, und wir wollen sicherstellen, dass alle Roboter gleichzeitig starten und stoppen.

Ich hoffe, dass Ihnen all diese Informationen beim Kennenlernen der Wettbewerbsvorlage geholfen haben und Sie sich optimal auf die Teilnahme an einem VEX Robotics Competition-Spiel vorbereiten können. Ich bin so aufgeregt.

Herzlichen Glückwunsch, Sie haben Kapitel Vier abgeschlossen, und wir sehen uns in einem weiteren Video.

Lernziele

Learning Objectives Section
  • Definieren Sie die Hauptelemente der Blockwettbewerbsvorlage in VEXcode V5, einschließlich der Abschnitte zum Zeitpunkt des Starts, zur Autonomie und zur Fahrersteuerung.

Zusammenfassung

Summary Section

Dies ist das zweite Video des Kurses Einführung in vex V5 Kapitel 4. Wenn Sie das erste Video noch nicht gesehen haben, gehen Sie zurück und schauen Sie sich Lektion 1: Mechanik eines VEX-Robotik-Wettbewerbsspiels an.

In Lektion 2 lernen Sie jedes der drei Hauptelemente der Blockwettbewerbsvorlage in VEXcode V5 kennen, indem Sie sich ein Beispiel in Aktion ansehen.

Für Diskussionen und Fragen nehmen Sie an unserem speziellen PD+ Community-Thread für kollektives Lernen und Erkunden teil.

Herzlichen Glückwunsch, Sie haben den Kurs Einführung in vex V5 abgeschlossen!