Programmieren von zwei Tasten
Lehrer-Toolbox - Der Zweck dieser Aktivität
Auf der vorherigen Seite programmierte der Schüler den Arm mit der Brain-Up-Taste so, dass er sich dreht. Diese Seite baut auf dem vorherigen Projekt auf, um auch den Arm mit der Brain-Down-Schaltfläche so zu programmieren, dass er herunterfährt.
Diese Aktivität führt die Teilnehmer in die Programmierung mit [If then
else] -Blöcken sowie mit Sensor- und Bedienerblöcken ein, damit der Roboter
überprüfen kann, ob die Brain-Up- oder Down-Tasten gedrückt werden. Wenn die
Brain-Up-Taste gedrückt wird, hebt sich der Arm des Klauenbots. Wenn die
Brain-Down-Taste gedrückt wird, senkt sich der Arm des Klauenbots. Dies baut auf der
vorherigen Aktivität auf und bildet auch die Grundlage für die
Benutzeroberflächenherausforderung im Abschnitt Umdenken.
Für die User Interface
Challenge müssen die Schüler ihren Clawbot programmieren, um den Arm anzuheben, den Arm
abzusenken, die Klaue zu öffnen und die Klaue zu schließen. Verwenden Sie dazu die
Tasten am IQ Robot Brain.
Weitere Informationen zu den Blöcken [If
then], [If then else], <Brain
(>Gehirn) oder [Spin] finden Sie in den
Hilfe-Informationen in VEXcode IQ. Weitere Informationen zu diesem integrierten
Hilfetool finden Sie hier.
Im Folgenden finden Sie einen Überblick darüber,
was Ihre Schüler in dieser Aktivität tun werden:
- Verwenden Sie das vorhandene ArmUp2, um das bereitgestellte ArmUpDown-Projekt zu erstellen und vorherzusagen, was das Projekt tun wird.
- Zeigen Sie ein Flussdiagramm an, um den Ablauf der Blöcke im Projekt zu erklären.
- Verfeinern Sie ihre Erklärungen zu den Funktionen des ArmUpDown-Projekts.
- Sehen Sie sich das Tutorial-Video If Then Else Blocks an.
- Bearbeiten Sie ihr Projekt mithilfe von [If then else] -Blöcken.
- Stopp und Diskussion: Die Schüler reflektieren ihre Vorhersagen darüber, was der Clawbot im Projekt im Vergleich zu ihren tatsächlichen Beobachtungen tun wird.
- Programmieren Sie die Klaue mit der gleichen Projektskizze aus der Programmierung des Arms.
Menge | Benötigtes Material |
---|---|
1 |
VEX IQ Super Kit |
1 |
VEXcode IQ |
1 |
Technisches Notizbuch |
1 |
Clawbot-Vorlage (Antriebsstrang) |
Der Clawbot-Arm ist bereit, sich auf und ab zu bewegen!
Diese Aktivität gibt Ihnen die
Werkzeuge an die Hand, um Ihren Roboter mit bedingten Verhaltensweisen zu
programmieren.
Der [If then else] -Block ist der Hauptfokus innerhalb der Aktivität,
aber auch andere Sensing-, Control- und Operator-Blöcke werden verwendet.
Sie können die Hilfe-Informationen in VEXcode IQ verwenden, um mehr über die Blöcke zu erfahren. Eine Anleitung zur Verwendung der Hilfefunktion finden Sie im Tutorial Verwenden der Hilfe.
Schritt 1: Programmieren, um den Arm nach unten zu bewegen.
Auf der vorherigen Seite hast du den Arm des Clawbots so programmiert, dass er sich dreht, wenn die Brain-Up-Taste gedrückt wurde. Aber was ist mit dem Absenken des Arms? Schauen wir uns zunächst das vorherige ArmUp2-Projekt noch einmal an.
Wäre es möglich, denselben [Wenn dann] -Block zum Hochdrehen des Arms zu verwenden, um auch den Arm herunterzudrehen? Probieren wir es aus! Erstellen Sie das folgende Projekt, indem Sie Ihr bereits vorhandenes ArmUp2-Projekt bearbeiten.
-
Speichern Sie das Projekt als ArmUpDown. Wenn die Schüler Hilfe beim Speichern des Projekts benötigen, lesen Sie das Tutorial Benennen und Speichern.
- Überprüfen Sie, ob sich der Projektname ArmUpDown jetzt im Fenster in der Mitte der Symbolleiste befindet.
- Sagen Sie voraus, was der Clawbot für das Projekt in Ihrem technischen Notizbuch tun wird. Erläutern Sie sowohl das Verhalten des Benutzers als auch das des Klauenbots.
- Testen Sie, ob Ihre Vorhersage, was der Clawbot für das Projekt tun soll, korrekt ist.
- Laden Sie das Projekt auf Slot 3 auf dem Clawbot herunter und führen Sie es dann aus.
- Hilfe zum Herunterladen und Ausführen eines Projekts finden Sie im Tutorial in
VEXcode IQ, in dem das Herunterladen und Ausführen eines Projekts erläutert
wird.
- Überprüfen Sie Ihre Erläuterungen zum Projekt und fügen Sie Notizen hinzu, um sie bei Bedarf zu korrigieren.
Lehrertipps
Wenn der Schüler zum ersten Mal VEXcode IQ verwendet, kann er auch die Tutorials in der Symbolleiste sehen, um andere grundlegende Fähigkeiten zu erlernen.
Lehrer-Toolbox
Das Projekt, das die Schüler oben aufbauen, wird funktionieren. Wenn die Brain-Up-Taste gedrückt wird, dreht sich der Arm nach oben und wenn die Brain-Down-Taste gedrückt wird, dreht sich der Arm nach unten. Obwohl das Projekt so funktioniert, wie es ist, ist es nicht optimal geschrieben. Es könnte einen Fall geben, in dem beide Bedingungen gleichzeitig zutreffen können. Beachten Sie auch, dass sich der Arm weiter dreht, da der Zustand der Brain-Up-Taste zuerst gedrückt wird, wenn die Brain-Up-Taste gedrückt gehalten wird und dann auch die Brain-Down-Taste gedrückt wird. Diese Aktion wird nicht aufhören, bis die Brain-Up-Taste losgelassen wird. Daher wird das Projekt im nächsten Schritt so umgeschrieben, dass es einen [Wenn sonst] -Block enthält, um diese potenziellen Probleme zu vermeiden.
Lehrer-Toolbox - Stoppen und diskutieren
Nachdem die Schüler das Projekt getestet haben, fragen Sie sie, wie ihre Vorhersagen im Vergleich zu ihren Beobachtungen aussehen. Erleichtern Sie die Diskussion, indem Sie die folgenden Fragen stellen:
-
War Ihre Vorhersage die gleiche wie Ihre Beobachtung?
-
Was scheint sich im Projekt zu ereignen?
-
Werden die Bedingungen für das Drücken der Auf- und Ab-Tasten nur einmal überprüft?
-
Glauben Sie, dass das Projekt neu organisiert werden könnte, um effizienter zu laufen?
Schritt 2: Den Projektablauf verstehen.
Im vorherigen Schritt hat das Projekt den Arm angehoben und abgesenkt. Da der Zustand der Brain-Up-Taste jedoch zuerst gedrückt wird, wenn die Brain-Up-Taste gedrückt gehalten wird und dann auch die Brain-Down-Taste gedrückt wird, dreht sich der Arm weiter, da diese Aktion nicht aufhört, bis die Brain-Up-Taste losgelassen wird. Sehen Sie sich das folgende Flussdiagramm an, das den Projektablauf erläutert.
Somit kann das Projekt die [If then] -Blöcke durch [If then else] -Blöcke ersetzen, so dass jederzeit nur eine Instanz wahr sein kann.
Sehen Sie sich das folgende Tutorial-Video zu [If then else] -Blöcken an:
Sehen Sie sich zunächst das If-Then-Else-Tutorial-Video in VEXcode IQ an.
Die Verwendung von [If then else] -Blöcken beseitigt auch die Notwendigkeit der [Wait until]
-Blöcke, da sich der Arm weiter dreht, bis die Brain-Up-Taste losgelassen wird. Dies
geschieht, weil der "else" -Teil des [If then else] nie erreicht wird, bis der Zustand
der Brain-Up-Taste falsch ist (freigegeben wird).
Mit dem Block [Forever] kann
die erste Bedingung kontinuierlich überprüft werden.
Lassen Sie uns das Ändern des Projekts untersuchen, indem wir [If then else] -Blöcke
hinzufügen. Der Armmotor dreht sich nun weiter, bis die Brain-Up-Taste nicht mehr gedrückt
(losgelassen) wird. Aufgrund des [Forever] -Blocks wird diese Bedingung weiterhin
überprüft, bis sie falsch ist.
Sobald der Zustand der Brain-Up-Taste falsch ist, wird
das Projekt mit dem nächsten Block fortgesetzt, der den Zustand überprüft, wenn die
Brain-Down-Taste gedrückt wird. Wenn der Zustand der Brain-Down-Taste, die gedrückt wird,
wahr ist, dann dreht sich der Arm hoch. Wiederum wird diese Bedingung aufgrund des
[Forever] -Blocks weiter überprüft, bis sie falsch ist.
Sobald der Zustand der
Brain-Up-Taste falsch ist, fährt das Projekt mit dem nächsten Block fort, dem Block
[Motor anhalten]. Daher stoppt der Löffelstielmotor nur, wenn beide Bedingungen falsch sind
(keine der beiden Tasten wird gedrückt).
Diskussion motivieren
F: Wie ist der Fortschritt des Projektablaufs, wenn der Zustand der
Brain-Up-Taste FALSCH ist (freigegeben)?
A: Wenn die Bedingung falsch ist, überprüft der Projektablauf
weiterhin den Zustand der Brain-Down-Taste, die gedrückt wird.
F: Was ist der Zweck der [Wenn dann sonst] -Blöcke im obigen
Projekt?
A: Durch die Verwendung der Blöcke [If then else] kann jeweils nur
eine Instanz wahr sein. Daher können die Brain-Up-Taste und die Brain-Down-Tasten nicht
gleichzeitig mit den Blöcken [Wenn sonst] wahr sein, da die zweite Bedingung der
Brain-Down-Taste, die gedrückt wird, nicht einmal eine Option wäre, es sei denn, die
erste Bedingung der Brain-Up-Taste, die gedrückt wird, war falsch. Der andere Zweck ist
die Verbesserung der Programmiereffizienz.
F: Wie ist der Fortschritt des Projektablaufs, wenn beide
Bedingungen der Aufwärts- und Abwärts-Tasten falsch sind?
A: Wenn beide Bedingungen falsch sind, wird der Projektablauf bis
zum Block [Motor anhalten] fortgesetzt, bevor er für immer an die Spitze des
Stapels zurückkehrt.
Schritt 3: Programmieren mit [If then else] -Blöcken.
Lassen Sie uns die Blöcke [Wenn sonst] verwenden:
-
Fügen Sie Ihrem ArmUpDown-Projekt die Blöcke [If then else] hinzu, damit Ihr Projekt wie folgt aussieht:
-
Speichern Sie das Projekt als ArmUpDown2. Wenn die Schüler Hilfe beim Speichern des Projekts benötigen, lesen Sie das Tutorial Benennen und Speichern.
- Laden Sie das Projekt auf Slot 4 auf dem Clawbot herunter und führen Sie es dann aus.
- Hilfe zum Herunterladen und Ausführen eines Projekts finden Sie im Tutorial in VEXcode
IQ, in dem das Herunterladen und Ausführen eines Projekts erläutert wird.
- Testen Sie, ob sich der Arm jetzt dreht, wenn die Brain-Up-Taste gedrückt wird, und drehen Sie sich nach unten, wenn die Brain-Down-Taste gedrückt wird.
- Stellen Sie sicher, dass der Löffelstielmotor stoppt, wenn die Brain-Up- und Down-Tasten nicht gedrückt (losgelassen) werden.
- Schreiben Sie Ihre Beobachtungen darüber, wie sich der Clawbot vor und nach dem Hinzufügen der if then else-Blöcke zu Ihrem Projekt verhalten hat, in Ihr technisches Notizbuch.
Lehrer-Toolbox - Stoppen und diskutieren
Nachdem die Schüler das Projekt vor und nach dem Hinzufügen des Blocks [Wenn dann sonst] getestet haben, besprechen Sie mit den Schülern, wie sich der Arm dadurch weiter drehen kann, bis die Brain-Up-Taste losgelassen wird. Bitten Sie die Schüler, ihre Beobachtungen aus ihren technischen Notizbüchern mitzuteilen. Erleichtern Sie eine Diskussion, indem Sie die folgenden Fragen stellen:
-
Sehen Sie, dass sich der Clawbot zwischen der Verwendung der [Wenn dann sonst] -Blöcke anders verhält als nur zwischen den [Wenn dann] -Blöcken?
-
Warum ist Programm-Effizienz Ihrer Meinung nach wichtig?
-
Wird der Zustand der Brain-Up-Schaltfläche nur einmal im Projekt überprüft?
Die Engineering-Notizbücher der Studierenden können einzeln (Google / .docx / .pdf) oder im Team (Google / .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.
Lehrer-Toolbox
Die Schüler sehen möglicherweise keinen großen Unterschied darin, wie sich ihr Clawbot zwischen der Verwendung der Blöcke [Wenn dann] und den Blöcken [Wenn dann] verhält. Wenn die Schüler physisch keinen großen Unterschied sehen können, erleichtern Sie eine Diskussion über die Effizienz der Programmierung und darüber, wie die Vereinfachung eines Projekts dazu führen kann, weniger Blöcke zu verwenden. Die Verwendung von weniger Blöcken in einem Projekt kann die Anzahl potenzieller Fehler reduzieren.
Schritt 4: Programmieren der Klaue.
Im vorherigen Schritt wurde das Projekt optimiert, um effizienter zu laufen, indem [If then
else] -Blöcke verwendet wurden. Im vorherigen Beispiel wurde der Arm mit den
Schaltflächen Brain Up und Down manipuliert.
Mit genau der gleichen Projektskizze
kann die Klaue auch manipuliert werden.
-
Überprüfen Sie das ArmUpDown2-Projekt und ändern Sie die [Spin] -Blöcke in ClawMotor anstelle von ArmMotor, indem Sie das Dropdown-Menü verwenden.
Stellen Sie sicher, dass der Brain-Up-Button die Klaue "öffnet" und dass der Brain-Down-Button die Klaue "schließt", indem Sie die Dropdown-Menüs verwenden. -
Speichern Sie das Projekt als ClawUpDown. Wenn die Schüler Hilfe beim Speichern des Projekts benötigen, lesen Sie das Tutorial Benennen und Speichern.
- Laden Sie das Projekt auf Slot 1 auf dem Clawbot herunter und führen Sie es dann aus.
- Hilfe zum Herunterladen und Ausführen eines Projekts finden Sie im Tutorial in VEXcode
IQ, in dem das Herunterladen und Ausführen eines Projekts erläutert wird.
- Testen Sie, ob sich die Klaue jetzt öffnet, wenn die Brain-Up-Taste gedrückt wird, und sich schließt, wenn die Brain-Down-Taste gedrückt wird.
- Stellen Sie sicher, dass der Klauenmotor stoppt, wenn die Brain-Up- und Down-Tasten nicht gedrückt (losgelassen) werden.
- Schreiben Sie Ihre Beobachtungen darüber, wie sich der Clawbot vor und nach dem Hinzufügen der if then else-Blöcke zu Ihrem Projekt verhalten hat, in Ihr technisches Notizbuch.
Lehrer-Toolbox
Jetzt, da die Schüler die Fähigkeiten haben, den Arm und die Klaue mit Tasten zu
manipulieren, bitten Sie die Schüler, ein Brainstorming durchzuführen, wie sie alle vier
Aktionen im selben Projekt ausführen können (Arm hoch, Arm runter, Klaue offen und Klaue
geschlossen).
Die Schüler verwenden einen anderen [if then else] -Block im Abschnitt zum
Umdenken, damit ihr Roboter alle vier Aktionen ausführen kann.
Erweitern Sie Ihr Lernen - Setzen Sie den Motorstoppblock
Wenn die Schüler ihren Roboter so programmieren, dass er den Arm hebt und senkt, könnte
das Gewicht der Klaue dazu führen, dass der Arm nach unten driftet.
In diesem Fall
kann der Block [Motorstopp einstellen] verwendet werden, damit der Arm nicht
aufgrund der Schwerkraft und des Gewichts der Klaue herunterfällt. Dieser Block kann zu
Beginn des Projekts verwendet werden und wird für den Rest des Projekts auf alle
zukünftigen Motorblöcke angewendet.
Der eingestellte Motorstoppblock hat drei Einstellungen:
- Durch die Bremse kommt der Motor sofort zum Stillstand.
- Coast lässt den Motor allmählich zum Stillstand kommen.
- Halten bewirkt, dass der Motor sofort zum Stillstand kommt und in seine gestoppte Position zurückkehrt, wenn er bewegt wird.