Teacher Toolbox
-
Lo scopo di questa attività
Questa attività introdurrà gli studenti all'utilizzo delle istruzioni while e if then far avanzare il robot a meno che non venga premuto lo schermo.
-
Questa attività introdurrà gli studenti ai condizionali e alle istruzioni che fanno avanzare il robot a meno che non venga premuto lo schermo.
-
Per ulteriori informazioni sulle istruzioni if then e if then else o altre utilizzate in questa attività, visitare le informazioni di aiuto all'interno di VEXcode V5. Per ulteriori informazioni su questo strumento di aiuto integrato, consulta questi articoli sulla guida in C++ .
Cassetta degli attrezzi per insegnanti
Per suggerimenti sulle strategie di insegnamento per questa sezione, consulta la colonna Consegna della Guida alla stimolazione da fare o da non fare! (Google Doc / .docx / .pdf)
Il Clawbot è pronto a prendere decisioni!
Questa esplorazione ti fornirà gli strumenti per poter iniziare a creare alcuni progetti interessanti che utilizzano l'istruzione if then else.
- Comandi VEXcode V5 C++ che verranno utilizzati in questa esplorazione:
- Drivetrain.drive(avanti);
- Brain.Screen.pressing()
- Drivetrain.stop();
- se (condizione){}
- waitUntil();
- mentre (condizione){}
- wait(1, secondi);
È possibile utilizzare le informazioni della Guida all'interno di VEXcode V5 per conoscere le istruzioni C++.
Assicurati di avere l'hardware necessario, il tuo taccuino tecnico e VEXcode V5 pronto.
| Quantità | Materiali necessari |
|---|---|
| 1 |
Starter Kit VEX V5 Classroom (con firmware aggiornato) |
| 1 |
VEXcode V5 (ultima versione, Windows, macOS) |
| 1 |
Taccuino tecnico |
| 1 |
Modello Clawbot (Drivetrain 2-motor, No Gyro) |
Suggerimenti per l'insegnante
Se è la prima volta che lo studente utilizza VEXcode V5, può fare riferimento ai Tutorial in qualsiasi momento durante questa esplorazione. I Tutorial si trovano nella barra degli strumenti.

Passaggio 1: Iniziamo con una comprensione delle dichiarazioni condizionali
Prima di iniziare a programmare con i condizionali, leggi l'articolo della biblioteca VEX che spiega le affermazioni If Then Else. L'articolo è disponibile qui.
Per un elenco degli operatori da utilizzare nelle istruzioni If Then Else, leggere l'articolo della libreria VEX che spiega i booleani. Questo articolo è disponibile qui.
Passaggio 2: Iniziamo a programmare con le dichiarazioni condizionali.
-
Aprire il progetto di esempio del modello Clawbot (Drivetrain 2-motor, No Gyro).

- Costruisci il progetto qui sotto.
// Inizio codice progetto
int main() {
// Inizializzazione configurazione robot. NON RIMUOVERE!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
}
} Esegui quanto segue nel tuo quaderno di ingegneria:
- Spiega cosa fa il Clawbot nel progetto. Dovrai spiegare più del fatto che crea un pulsante di arresto. Spiegare quali istruzioni fanno fare cosa al Clawbot.
- Scrivi un riepilogo di una frase che catturi ciò che fa il progetto.
- Verifica se la tua previsione di ciò che fa il progetto Clawbot è corretta.
- Salvare e scaricare il progetto come CreatingAStopButton nello slot 1 sul Clawbot, quindi eseguirlo.
- Per assistenza durante il download di un progetto, consulta il tutorial in VEXcode V5 che spiega come scaricare ed eseguire un progetto (C++).
- Controlla le tue spiegazioni del progetto e aggiungi note per correggerle secondo necessità.
Teacher Toolbox
-
Risposte
Questo progetto prevede che il robot guidi continuamente in avanti, ma si fermi se si preme lo schermo. Lo fa utilizzando una dichiarazione Forever per guidare e controllare continuamente. Se lo schermo viene premuto (VERO), il Clawbot smette di guidare.
Gli studenti non sono tenuti a capire perché viene utilizzata l'istruzione waitUntil (). Spiegare che l' istruzione waitUntil () è necessaria a causa della velocità del flusso del programma del robot. Se non fosse lì, i motori del Clawbot si comporterebbero come se l'utente stesse premendo lo schermo più e più volte mentre scorre il progetto. Invece, l' istruzione waitUntil() interrompe il flusso del programma e non consente al progetto di avviare nuovamente il ciclo Forever fino a quando l'utente non smette di premere lo schermo.
La riga dello pseudocodice potrebbe essere semplice come: Andare avanti fino a quando lo schermo non viene premuto.
I quaderni di ingegneria degli studenti possono essere mantenuti e valutati individualmente (Google Doc / .docx / .pdf) o in team (Google Doc / .docx / .pdf). I link precedenti forniscono una pagella diversa per ogni approccio. Ogni volta che una rubrica è inclusa nella pianificazione educativa, è buona pratica spiegare la rubrica o almeno dare copie agli studenti prima dell'inizio dell'attività.
Passaggio 3: Comprensione dell' istruzione wait until().
Si noti che se si preme lo schermo del cervello, il flusso del progetto si sposta rapidamente e il progetto passerà all'istruzione successiva, che è l' istruzioneDrivetrain.stop ().
Pertanto, il progetto ha bisogno di un' istruzione waitUntil() che dica al robot di rimanere fermo fino a quando non viene rilasciato lo schermo del cervello. Altrimenti, la dichiarazione Forever farebbe ricominciare il progetto.
waitUntil(!Brain.Screen.pressing());L' istruzione waitUntil() è necessaria a causa della velocità del flusso del progetto. Se non fosse stato lì, il progetto sarebbe passato all'istruzione successiva prima che il robot avesse mai avuto il tempo di rispondere.
Passaggio 4: modifica il progetto.
Il nostro prossimo passo è cambiare l' istruzione if then in un'istruzione if then else.
- Inizia salvando CreatingAStopButton come nuovo progetto, StopOrDrive.
- Se hai bisogno di aiuto per salvare un progetto, fai clic qui per C++.
- Quindi crea il progetto StopOrDrive mostrato di seguito.
// Inizio codice progetto
int main() {
// Inizializzazione configurazione robot. NON RIMUOVERE!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
else {
Drivetrain.drive(avanti);
}
}
} - Scarica StopOrDrive allo slot 2 sul tuo Clawbot.
- Per assistenza durante il download di un progetto, consulta il tutorial in VEXcode V5 che spiega come scaricare ed eseguire un progetto (C++).
- Prova CreatingAStopButton (Slot 1) e poi prova StopOrDrive (Slot 2) e confrontali per vedere se ci sono differenze nel comportamento del robot. Annota eventuali differenze nel tuo quaderno di ingegneria
Cassetta degli attrezzi per insegnanti
-
Risposta
Per quanto riguarda il comportamento del robot, non dovrebbe esserci differenza tra i progetti CreatingAStopButton e StopOrDrive.
Se gli studenti hanno bisogno di ulteriore assistenza per comprendere le dichiarazioni If-Else, clicca qui.
I due progetti vedono il Clawbot comportarsi allo stesso modo. L'unica differenza è l'uso dell'istruzione if then else nel progetto StopOrDrive.
L'utilizzo dell' istruzione if then else ti consentirà di aggiungere pulsanti aggiuntivi alla schermata nelle attività imminenti.
Estendi il tuo apprendimento
Man mano che questo STEM Lab procede, gli studenti svilupperanno progetti che consentono allo schermo di Clawbot di funzionare come interfaccia utente. In preparazione a ciò, sfida gli studenti a capire come disegnare un rettangolo colorato sullo schermo che funzioni come un pulsante. Poiché premere in qualsiasi punto dello schermo è attualmente la condizione, il pulsante dovrebbe occupare l'intero schermo. Gli studenti dovrebbero fare in modo che il progetto trasmetta un evento per disegnare il pulsante quando viene avviato.
Chiedi agli studenti di imparare prima come lo schermo del cervello è organizzato in un sistema di coordinate. Dovranno capirlo per impostare i parametri all'interno delle istruzioni che utilizzeranno. Le coordinate utilizzate corrispondono al numero di pixel non al numero della colonna o della riga. Ecco il layout dello schermo:

Gli studenti devono pianificare, testare e perfezionare queste modifiche al progetto documentandolo all'interno dei loro quaderni di ingegneria. Per la rubrica del notebook di ingegneria individuale, fare clic su uno dei seguenti collegamenti (Google Doc / .docx / .pdf) o fare clic su uno dei seguenti collegamenti per i notebook del team (Google Doc / .docx / .pdf).
Ecco una soluzione di esempio:
// 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. NON RIMUOVERE!
vexcodeInit();
draw(drawButton);
while (true) {
draw.broadcast();
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
waitUntil(!Brain.Screen.pressing());
}
else {
Drivetrain.drive(avanti);
}
}
} Come puoi vedere, il pulsante è disegnato per occupare l'intero schermo a partire dall'origine (0, 0) e riempiendo tutti i 480 pixel orizzontali (asse x) e i 240 pixel verticali (asse y).