Lehrer-Toolbox - Der Zweck dieser Aktivität
Jetzt, da die Schüler Erfahrung darin haben, den Bildschirm des Gehirns wie eine große Taste zu behandeln, können sie den Bildschirm in zwei Tasten verwandeln. Diese Aktivität führt die Schüler in die Verwendung von verschachtelten if then else -Aussagen ein, um bedingte Aussagen und die zugrunde liegende Logik besser zu verwalten. Die Schüler werden zunächst durch den Bau des Projekts geführt, bei dem die Siebdrucke den Roboter nach links oder rechts drehen. Aber sie werden dann gebeten, die Tasten zu wechseln, so dass das, was den Roboter nach links gedreht hat, ihn jetzt nach rechts dreht und umgekehrt.
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 Artikeln über die Hilfe in C++.
Im Folgenden finden Sie einen Überblick darüber, was Ihre Schüler in dieser Aktivität tun werden:
-
Überprüfung des StopOrDrive-Projekts und des Layouts des Bildschirms des Gehirns in Pixeln.
-
Aufbau eines neuen LeftOrRight-Projekts, während Sie durch die Argumentation der Programmierung geführt werden.
-
Überarbeitung des Projekts, so dass die Schaltflächen auf dem Bildschirm entgegengesetzt funktionieren.
-
Erweitern Sie Ihr Lernen: Teilen Sie den Bildschirm in zwei Tasten auf, die den Roboter beim Drücken nach links oder rechts drehen.
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 |
StopOrDrive-Projekt von der vorherigen Play-Seite |
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 Bildschirm des Gehirns kann mehr als eine Taste haben.
Mit dieser Aktivität können Sie den Roboter so programmieren, dass er vorwärts fährt und sich nach links oder rechts dreht, je nachdem, welche Seite des Bildschirms des Gehirns gedrückt wird.
Die drei zusätzlichen Arten von Anweisungen, die Sie während dieser Aktivität benötigen, sind die folgenden:
- Dretrain.turn(rechts);
- nummer < 50
- Brain.Screen.xPosition();
Sie können die Hilfe-Informationen in VEXcode V5 verwenden, um mehr über die Anweisungen zu erfahren.
Schritt 1: Beginnen wir mit der Überprüfung des StopOrDrive-Projekts.
Beginnen wir mit der Überprüfung des StopOrDrive-Projekts.
Das StopOrDrive-Projekt ließ den Clawbot anhalten, wenn der Bildschirm gedrückt wurde, oder er fuhr vorwärts.
Der gesamte Bildschirm war eine große Schaltfläche, aber in diesem nächsten Projekt möchten wir, dass die Hälfte des Bildschirms eine Schaltfläche und die andere Hälfte die andere ist.
// 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);
}
}
}
Um den Bildschirm in zwei Schaltflächen aufzuteilen, müssen wir mehr über das Layout des Bildschirms verstehen.
- Beachten Sie, dass die Anzahl der Spalten von links nach rechts zunimmt. Die Anzahl der Spalten beträgt 48 und der Bildschirm ist 480 Pixel breit.
- Notieren Sie in Ihrem technischen Notizbuch, dass der x-Wert auf dem Bildschirm gleich der Anzahl der von links nach rechts gemessenen Pixel ist.
- Wie hoch ist der x-Wert der Bildschirmmitte? Für diese Aktivität können Sie sich allein auf die x-Achse konzentrieren, da Sie nur eine linke und rechte Taste benötigen.
Lehrer-Toolbox - Antwort
Der x-Wert in der Mitte des Bildschirms entspricht der Hälfte der Breite des Bildschirms in Pixeln. Der x-Wert des Mittelpunkts beträgt also 240. Die Schüler benötigen diese Nummer, um die Bedingung zu programmieren, ob der Bildschirm links oder rechts gedrückt wird. Stellen Sie also sicher, dass sie alle den richtigen Wert haben.
Mit Blick auf die Zukunft erfordert die Herausforderung der Benutzeroberfläche im Abschnitt Umdenken, dass die Schüler das Gelernte anwenden, um vier Schaltflächen auf dem Bildschirm zu erstellen. Dafür benötigen sie also sowohl den x- als auch den y-Wert.
Lehrertipps
Weitere Hilfe finden Sie in der VEX-Bibliothek für zusätzliche Hilfeartikel.
Schritt 2: Programmierung für zwei Tasten.
- Speichern Sie StopOrDrive als LeftOrRight-Projekt.
- Bauen Sie das Projekt unten auf. Der Clawbot dreht sich nach links oder rechts, wenn der Bildschirm gedrückt wird, je nachdem, auf welcher Seite er gedrückt wird.
// Start project code
int main() {
// Initialisierung der Roboterkonfiguration. NICHT ENTFERNEN!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
} else {
Antrieb.drehen(rechts);
waitUntil(!Brain.Screen.pressing());
}
} else {
Antriebsstrang.antrieb(vorwärts);
}
}
}
- Sehen wir uns an, was dieses Projekt leistet.
Es wird weiterhin überprüft, ob der Bildschirm gedrückt wird. Wenn der Bildschirm nicht gedrückt wird, fährt er vorwärts, aber wenn er es ist, überprüft er, wo der Bildschirm gedrückt wird.
Wenn die Presse auf der linken Seite war (weniger als 240), dreht sie nach links. Ansonsten biegt er nach rechts ab. Wir brauchen keine weitere Bedingung, wenn der x-Wert größer als 240 ist, denn wenn er nicht kleiner als 240 ist (links abbiegen), muss er größer sein (rechts abbiegen). Wir haben nur zwei Knöpfe, um die wir uns Sorgen
machen müssen. Warten Sie, bis die Steueranweisungen nach jedem Zug das Projekt warten lassen, bis der Bildschirm nicht mehr gedrückt wird, bevor Sie fortfahren.
- Jetzt, da das Projekt abgeschlossen ist, laden Sie es herunter und führen Sie es aus, um zu testen, wie es funktioniert.
- Notieren Sie sich in Ihrem technischen Notizbuch, wie die Tasten die Bewegungen des Clawbot steuern.
Lehrertipps
Während des Testens sollten die Schüler erkennen, dass die Benutzeroberfläche, wenn sie hinter dem Clawbot verwendet wird, umgekehrt zu funktionieren scheint. Aus der Sicht des Benutzers wendet sich der Clawbot von der Seite ab, die vom Benutzer gedrückt wird. Das ist keine optimale User Experience.
Schritt 3: Passen Sie das Projekt für eine bessere Benutzererfahrung an.
Wenn Sie die Tasten des Bildschirms hinter dem Clawbot drücken, während er vorwärts fährt, drücken Sie auf der rechten Seite des Bildschirms, um links abzubiegen, und auf der linken Seite des Bildschirms, um rechts abzubiegen. Das ist keine gute User Experience. Eine Benutzererfahrung ist, wie gut ein Benutzer mit einer Benutzeroberfläche interagieren kann, um ein Computersystem zu steuern. Weitere Informationen zu Benutzeroberflächen finden Sie im Abschnitt Anwenden dieses Labors.
In diesem Fall müssen wir die Benutzeroberfläche verbessern, um die Benutzererfahrung zu verbessern.
- Überprüfen Sie das LeftOrRight-Projekt und überarbeiten Sie es so, dass der Roboter, wenn der Benutzer die Tasten hinter dem Clawbot drückt, sich nach rechts dreht, wenn der Benutzer die linke Seite des Bildschirms drückt. Andernfalls biegt der Clawbot nach links ab.
// Start project code
int main() {
// Initialisierung der Roboterkonfiguration. NICHT ENTFERNEN!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
} else {
Antrieb.drehen(rechts);
waitUntil(!Brain.Screen.pressing());
}
} else {
Antriebsstrang.antrieb(vorwärts);
}
}
}
- Planen, testen und wiederholen Sie dieses Projekt in Ihrem technischen Notizbuch, sodass sich der Clawbot durch das Projekt in Richtung der Seite des Bildschirms dreht, die der Benutzer hinter dem Clawbot drückt.
Lehrer-Toolbox
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. Denken Sie daran, den Schülern die Punktzahl zu erklären, bevor sie mit der Arbeit beginnen.
Lehrer-Toolbox - Lösungen
Es gibt zwei Möglichkeiten, das oben gestellte Problem zu lösen. Der erste Weg ist der in die Anleitung geschriebene: Überprüfen Sie das LeftOrRight-Projekt und überarbeiten Sie es so, dass der Roboter, wenn der Benutzer die Tasten hinter dem Clawbot drückt, sich nach rechts dreht, wenn der Benutzer die linke Seite des Bildschirms drückt. Andernfalls biegt der Clawbot nach links ab.
// Start project code
int main() {
// Initialisierung der Roboterkonfiguration. NICHT ENTFERNEN!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
Drivetrain.turn(right);
waitUntil(!Brain.Screen.pressing());
} else {
Antriebsstrang.drehung(links);
waitUntil(!Brain.Screen.pressing());
}
} else {
Antriebsstrang.antrieb(vorwärts);
}
}
}
Die andere Lösung besteht darin, die Bedieneranweisung so zu ändern, dass der Clawbot nach links dreht, wenn der x-Wert größer als 240 ist.
// Start project code
int main() {
// Initialisierung der Roboterkonfiguration. NICHT ENTFERNEN!
vexcodeInit();
while (true) {
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() > 240) {
Drivetrain.turn(left);
waitUntil(!Brain.Screen.pressing());
} else {
Antrieb.drehen(rechts);
waitUntil(!Brain.Screen.pressing());
}
} else {
Antriebsstrang.antrieb(vorwärts);
}
}
}
Diskussion motivieren
Sie mussten Koordinaten aus einer Koordinatenebene verwenden, wenn Sie die bedingte Anweisung programmierten, wenn der x-Wert kleiner als 240 war (linke Seite des Bildschirms). Damit der Bildschirm des Gehirns visuelle Schaltflächen zeichnet, müssten Sie auch Koordinaten verwenden.
Kehren Sie zu Schritt 2 zurück, wo Ihnen die Koordinaten für den Bildschirm des V5-Roboterhirns angezeigt wurden.
F: Was ist der x-Wert am rechten Bildschirmrand?
A: Der x-Wert steigt von 0 am linken Rand auf 480 am rechten Rand.
F: Der Bereich des x-Wertes ist also 480 (0 bis 480). Was ist der Bereich des y-Wertes?
A: Der Bereich des y-Wertes ist 240 (0 bis 240).
F: Wo ist der Ursprung (0, 0) dieser Koordinatenebene?
A: Der Ursprung liegt oben links.
F: Sie befinden sich am oberen Rand des Bildschirms, wenn der y-Wert gleich 0 ist. Warum ist das ungewöhnlich?
A: Normalerweise erhöht sich der y-Wert, wenn Sie sich nach oben bewegen, aber auf dem V5-Bildschirm erhöht sich der y-Wert, wenn Sie sich nach unten bewegen. Aber Sie können sich vorstellen, dass der y-Wert zunimmt, wenn Sie sich vom Ursprung (0, 0) oben links auf dem Bildschirm entfernen.
Erweitern Sie Ihr Lernen
In der Rethink Section's User Interface Challenge werden die Schüler gebeten, ein Projekt zu entwickeln, das vier Schaltflächen auf dem Bildschirm erstellt, um die Klaue und den Arm des Klauenbots zu steuern. Für diese Herausforderung werden sie auch gebeten, diese vier Schaltflächen auf dem Bildschirm anzeigen zu lassen. Dies erweitert Ihr Lernen, wie auf der vorherigen Seite, wird dazu beitragen, sie auf diese Herausforderung vorzubereiten, da die Herausforderung vier Schaltflächen zum Programmieren hat und diese nur zwei.
Bitten Sie die Schüler, dem Programm ein Ereignis hinzuzufügen, damit auf dem Bildschirm zwei sichtbare Schaltflächen angezeigt werden, wenn das Projekt ausgeführt wird. Schlagen Sie vor, dass die Schüler die Hilfe-Funktion in VEXcode V5 verwenden, um Informationen über Ereignisse zu erhalten, insbesondere die Informationen der Zeichnungsrechteck-Anweisung. Weisen Sie die Schüler an, zu überprüfen, wie der Bildschirm des Gehirns in ein Koordinatensystem organisiert ist, das auf der Anzahl der Pixel basiert, wenn er im Zeichnungsrechteckblock verwendet wird. Sie müssen das verstehen, um Parameter innerhalb dieses Blocks festzulegen. Darüber hinaus müssen sie verstehen, wie man Ereignisse überträgt. In diesem Fall handelt es sich bei dem Ereignis um Zeichenschaltflächen.
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 ScreenButtons = event();
void HasScreenButtons () {
Brain.Screen.setFillColor (green);
Brain.Screen.drawRectangle (0, 0, 240, 120);
Brain.Screen.setFillColor (purple);
Brain.Screen.drawRectangle (240, 0, 480, 120);
Brain.Screen.setFillColor (orange);
Brain.Screen.drawRectangle (0, 120, 240, 240);
Brain.Screen.setFillColor (cyan);
Brain.Screen.drawRectangle (240, 120, 480, 240);
wait(1, seconds);
}
int main() {
// Initializing Robot Configuration. NICHT ENTFERNEN!
vexcodeInit();
ScreenButtons(HasScreenButtons);
while (true) {
ScreenButtons.broadcast();
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
if (Brain.Screen.yPosition() < 120) {
ClawMotor.spin(forward);
waitUntil(!Brain.Screen.pressing());
} else {
ClawMotor.spin(reverse);
waitUntil(!Brain.Screen.pressing());
}
} else {
if (Brain.Screen.yPosition() < 120) {
ArmMotor.spin(forward);
waitUntil(!Brain.Screen.pressing());
} else {
ArmMotor.spin(rückwärts);
waitUntil(!Brain.Screen.pressing());
}
}
ClawMotor.stop();
ArmMotor.stop();
}
wait(5, ms);
}
}
Für eine zusätzliche professionell realistische Erfahrung bitten Sie die Schüler, ihre Klassenkameraden um Feedback zu ihrer Zweifarbenauswahl zu bitten.
Machen die gewählten Farben Lust auf die Benutzeroberfläche oder welche Farben würden sie als Benutzer bevorzugen?
Ein Teil der Entwicklung einer großartigen Benutzeroberfläche ist das Sammeln von Daten über die Benutzererfahrung, sogar ästhetische Vorlieben.