Skip to main content

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

Diese Aktivität führt die Teilnehmer in die Verwendung der Anweisungen while und if then , um den Roboter vorwärts fahren zu lassen, es sei denn, der Bildschirm wird gedrückt.

  • Diese Aktivität führt die Teilnehmer in die Bedingungen und Anweisungen ein, mit denen der Roboter vorwärts fährt, es sei denn, der Bildschirm wird gedrückt.

  • Weitere Informationen darüber , ob dann und wenn dann andere Aussagen oder andere in dieser Aktivität verwendete Aussagen, finden Sie in den Hilfe-Informationen in VEXcode V5. Weitere Informationen zu diesem integrierten Hilfetool finden Sie in diesen Artikeln über die Hilfe in C++ .

Lehrer-Toolbox-Symbol Lehrer-Toolbox

Vorschläge zu Unterrichtsstrategien für diesen Abschnitt finden Sie in der Spalte Lieferung im Schrittmacherleitfaden To Do or Not to Do! (Google Doc / .docx / .pdf)

Der Clawbot ist bereit, Entscheidungen zu treffen!

Diese Erkundung gibt Ihnen die Werkzeuge an die Hand, um mit der Erstellung einiger cooler Projekte zu beginnen, die die if then else-Anweisung verwenden.

  • VEXcode V5 C++ -Befehle, die in dieser Erkundung verwendet werden: 
    • Drivetrain.drive(vorwärts);
    • Brain.Screen.pressing()
    • Drivetrain.stop();
    • if (condition){}
    • waitUntil();
    • while (condition){}  
    • warten(1, Sekunden);

Sie können die Hilfe-Informationen in VEXcode V5 verwenden, um mehr über die C++ -Anweisungen zu erfahren.

VEXcode V5 mit einem Laufwerk für Befehl in den Arbeitsbereich auf der linken Seite eingegeben, und die Hilfe-Informationen öffnen sich auf der rechten Seite. Die Hilfe zeigt eine Definition des Befehls und Informationen darüber, wie er verwendet wird.

Stellen Sie sicher, dass Sie die erforderliche Hardware, Ihr technisches Notizbuch und VEXcode V5 bereit haben.

Erforderliches Material:
Menge Benötigtes Material
1

VEX V5 Classroom Starter Kit (mit aktueller Firmware)

1

VEXcode V5 (neueste Version, Windows, macOS)

1

Technisches Notizbuch

1

Clawbot (Antrieb 2-Motor, kein Kreisel) Vorlage

Lehrer-Tipps-Symbol Lehrertipps

Wenn der Schüler VEXcode V5 zum ersten Mal verwendet, kann er während dieser Erkundung jederzeit auf die Tutorials verweisen. Die Tutorials befinden sich in der Symbolleiste.

VEXcode V5-Symbolleiste mit dem Tutorial-Symbol, das in einem roten Feld hervorgehoben ist. Auf der linken Seite zeigt die Symbolleiste das V5-Symbol, ein Globussymbol, Datei und dann Tutorials. Auf der rechten Seite befinden sich zusätzliche Symbole und Funktionen.

Schritt 1: Beginnen wir mit dem Verständnis von bedingten Aussagen 

Bevor Sie mit der Programmierung mit Conditionals beginnen, lesen Sie den vex LIBRARY-ARTIKEL, in dem die If Then Else-Anweisungen erläutert werden. Den Artikel finden Sie hier.

Screenshot aus der VEX-BIBLIOTHEK, der einen Artikel mit dem Titel Using if-else statements in VEXcode V5 zeigt.Eine Liste der in den If Then Else-Anweisungen zu verwendenden Operatoren finden Sie im vex-Bibliotheksartikel, in dem Booleans erläutert werden. Diesen Artikel finden Sie hier.Screenshot aus der VEX-BIBLIOTHEK, der einen Artikel mit dem Titel Using Booleans in VEXcode V5 zeigt.

Schritt 2: Beginnen wir mit der Programmierung mit bedingten Anweisungen.

  • Öffnen Sie das Beispielprojekt Clawbot (Drivetrain 2-motor, No Gyro).

    Beispiel für eine Projektauswahl in VEXcode V5 mit einem roten Kästchen um den Vorlagenfilter oben und dem Clawbot-Antriebsstrang 2 Motor kein Gyro-Projekt, das angibt, welche Vorlage geöffnet werden soll.

     

  • Bauen Sie das Projekt unten auf.
// Start project code
int main() {
  // Initialisierung der Roboterkonfiguration. NICHT ENTFERNEN!
  vexcodeInit();

  while (true) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    }    
  }  
}  

Gehen Sie in Ihrem technischen Notizbuch wie folgt vor:

  • Erklären Sie, was der Clawbot für das Projekt tun soll. Sie müssen mehr erklären als die Tatsache, dass es eine Stopptaste erzeugt. Erklären Sie, welche Anweisungen den Clawbot dazu bringen, was zu tun.
  • Schreiben Sie eine Zusammenfassung mit einem Satz, die erfasst, was das Projekt leistet.
  • Testen Sie, ob Ihre Vorhersage, was der Clawbot für das Projekt tun soll, korrekt ist.

Das Dialogfeld Projektname in der VEXcode V5-Symbolleiste lautet Erstellen einer Stopp-Schaltfläche und zeigt an, dass Steckplatz 1 ausgewählt ist.

  • Speichern und laden Sie das Projekt als CreatingAStopButton auf Slot 1 auf dem Clawbot herunter und führen Sie es dann aus.
  • Hilfe zum Herunterladen eines Projekts finden Sie im Tutorial in VEXcode V5, in dem das Herunterladen und Ausführen eines Projekts (C++) erläutert wird.
  • Überprüfen Sie Ihre Erläuterungen zum Projekt und fügen Sie Notizen hinzu, um sie bei Bedarf zu korrigieren.

Lehrer-Toolbox-Symbol Lehrer-Toolbox - Antworten

Bei diesem Projekt fährt der Roboter kontinuierlich vorwärts, stoppt jedoch, wenn der Bildschirm gedrückt wird. Es tut dies, indem es eine Forever-Anweisung verwendet , um kontinuierlich zu fahren und zu überprüfen. Wenn der Bildschirm gedrückt wird (WAHR), stoppt der Clawbot die Fahrt.Das Projekt Erstellen einer Stoppschaltfläche wird mit Befehlen angezeigt, die mit ihrem Zweck gekennzeichnet sind. Der Befehl if ist rot eingekreist und beschriftet Überprüft, ob die Bedingung wahr ist - der Bildschirm wird gedrückt. Der Befehl Drivetrain Dot Stop ist mit Runs the block if true gekennzeichnet. Das Warten, bis der Befehl gekennzeichnet ist, steuert die Verarbeitungsgeschwindigkeit.

Von den Schülern wird nicht erwartet, dass sie verstehen, warum die waitUntil () -Anweisung verwendet wird. Erklären Sie, dass die waitUntil () Anweisung aufgrund der Geschwindigkeit des Programmablaufs des Roboters notwendig ist. Wenn es nicht da wäre, würden sich die Motoren des Clawbot so verhalten, als würde der Benutzer den Bildschirm immer wieder drücken, während er das Projekt durchläuft. Stattdessen stoppt die waitUntil() Anweisung den Programmablauf und lässt das Projekt die Endlosschleife nicht erneut starten, bis der Benutzer aufhört, den Bildschirm zu drücken.

Die Zeile des Pseudocodes könnte so einfach sein wie: Fahren Sie vorwärts, bis der Bildschirm gedrückt wird.

Die Engineering-Notizbücher der Studierenden können einzeln (Google Doc / .docx / .pdf) oder im Team (Google Doc / .docx / .pdf) gepflegt und bewertet werden. Die vorherigen Links bieten für jeden Ansatz eine andere Rubrik. Wann immer eine Rubrik in die Bildungsplanung aufgenommen wird, ist es empfehlenswert, die Rubrik zu erklären oder den Schülern zumindest Kopien zu geben, bevor die Aktivität beginnt.

Schritt 3: Verstehen der wait until() -Anweisung.

Beachten Sie, dass, wenn der Bildschirm des Gehirns gedrückt wird, sich der Ablauf des Projekts schnell bewegt und das Projekt zur nächsten Anweisung übergeht, die die Anweisung Drivetrain.stop() ist.

Daher benötigt das Projekt eine waitUntil() -Anweisung, die den Roboter anweist, angehalten zu bleiben, bis der Bildschirm des Gehirns freigegeben wird. Andernfalls würde die Forever-Anweisung dazu führen, dass das Projekt erneut beginnt.

waitUntil(!Brain.Screen.pressing());

Die waitUntil() Anweisung ist aufgrund der Geschwindigkeit des Projektflusses notwendig. Wenn es nicht da wäre, würde das Projekt zur nächsten Anweisung übergehen, bevor der Roboter überhaupt Zeit hatte zu reagieren.

Schritt 4: Ändern Sie das Projekt.

Unser nächster Schritt besteht darin, die if then -Anweisung in eine if then else -Anweisung umzuwandeln.

Das Dialogfeld Projektname in der VEXcode V5-Symbolleiste liest Stop oder Drive und zeigt an, dass Steckplatz 1 ausgewählt ist.

  • Speichern Sie zunächst CreatingAStopButton als neues Projekt, StopOrDrive.
  • Wenn Sie Hilfe beim Speichern eines Projekts benötigen, klicken Sie hier für C++.
  • Erstellen Sie dann  das unten gezeigte StopOrDrive-Projekt.
// Start project code
int main() {
  // Initialisierung der Roboterkonfiguration. NICHT ENTFERNEN!
  vexcodeInit();

  while (true) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Antriebsstrang.antrieb(vorwärts);
    }   
  }  
}  
  • Laden Sie StopOrDrive auf Slot 2 auf Ihren Clawbot herunter.

Die Slot-Auswahl in der VEXcode V5-Symbolleiste ist geöffnet und Slot 2 ist ausgewählt und mit einem roten Kästchen markiert. Der Projektname lautet Stop oder Drive.

  • Hilfe zum Herunterladen eines Projekts finden Sie im Tutorial in VEXcode V5, in dem das Herunterladen und Ausführen eines Projekts (C++) erläutert wird.
  • Testen Sie den CreateAStopButton (Slot 1) und testen Sie dann StopOrDrive (Slot 2) und vergleichen Sie sie, um festzustellen, ob es einen Unterschied im Verhalten des Roboters gibt. Notieren Sie alle Unterschiede in Ihrem technischen Notizbuch

Lehrer-Toolbox-Symbol Lehrer-Toolbox - Antwort

In Bezug auf das Verhalten des Roboters sollte es keinen Unterschied zwischen den Projekten CreatingAStopButton und StopOrDrive geben.

Wenn die Schüler weitere Hilfe beim Verständnis von If-Else-Anweisungen benötigen, klicken Sie hier.

Bei beiden Projekten verhält sich der Clawbot gleich. Der einzige Unterschied ist die Verwendung der if then else -Anweisung  im StopOrDrive-Projekt.

Mit der if then else -Anweisung können Sie dem Bildschirm in anstehenden Aktivitäten zusätzliche Schaltflächen hinzufügen.

Erweitern Sie Ihr Lernsymbol Erweitern Sie Ihr Lernen

Im Laufe dieses STEM-Labors werden die Schüler Projekte entwickeln, die es dem Bildschirm des Clawbots ermöglichen, als Benutzeroberfläche zu fungieren. Fordern Sie die Schüler in Vorbereitung darauf auf, herauszufinden, wie sie ein farbiges Rechteck auf dem Bildschirm zeichnen können, das wie eine Schaltfläche funktioniert. Da das Drücken an einer beliebigen Stelle auf dem Bildschirm derzeit die Bedingung ist, sollte die Taste den gesamten Bildschirm einnehmen. Die Schüler sollten das Projekt ein Ereignis übertragen lassen, um die Schaltfläche beim Start zu zeichnen.
Weisen Sie die Schüler an, zuerst zu lernen, wie der Bildschirm des Gehirns in ein Koordinatensystem organisiert ist. Sie müssen dies verstehen, um Parameter innerhalb der Anweisungen festzulegen, die sie verwenden werden. Die verwendeten Koordinaten entsprechen der Anzahl der Pixel und nicht der Anzahl der Spalte oder Zeile. Hier ist das Layout des Bildschirms:

Das Pixelraster des V5-Gehirnbildschirms zeigt 12 nummerierte Zeilen auf der linken Seite, wobei die obere Zeile mit Zeile 1 und die untere Zeile mit Zeile 12 bezeichnet ist. Ganz oben befinden sich 48 nummerierte Spalten, wobei Spalte 1 ganz links und Spalte 48 ganz rechts beschriftet ist. Die gesamten Pixelmaße sind 480px breit und 240px hoch.

Die Schüler sollten diese Änderungen am Projekt planen, testen und verfeinern, während sie es in ihren technischen Notizbüchern dokumentieren. Klicken Sie für die einzelne Engineering-Notizbuch-Rubrik auf einen der folgenden Links (Google Doc / .docx / .pdf) oder klicken Sie für Team-Notizbücher (Google Doc / .docx / .pdf) auf einen der folgenden Links.

Hier ist eine beispielhafte Lösung:

// Begin project code
event draw = event();

void drawButton() {
  Brain.Screen.setFillColor(red);
  Brain.Screen.drawRectangle(0, 0, 480, 240);
  wait(1, seconds);
}

int main() {
  // Initializing Robot Configuration. NICHT ENTFERNEN!
  vexcodeInit();

  draw(drawButton);

  while (true) {
    draw.broadcast();
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Antriebsstrang.antrieb(vorwärts);
    }   
  }  
}  

Wie Sie sehen können, ist die Schaltfläche so gezeichnet, dass sie den gesamten Bildschirm ab dem (0, 0) -Ursprung einnimmt und alle 480 horizontalen (x-Achse) und 240 vertikalen (y-Achse) Pixel ausfüllt.