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
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.
Stellen Sie sicher, dass Sie die erforderliche Hardware, Ihr technisches Notizbuch und VEXcode V5 bereit haben.
| 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 |
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.

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.
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.
Schritt 2: Beginnen wir mit der Programmierung mit bedingten Anweisungen.
-
Öffnen Sie das Beispielprojekt Clawbot (Drivetrain 2-motor, No Gyro).

- 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.
- 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
-
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.
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.
- 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.
- 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
-
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 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:

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.