Teacher Toolbox
-
Lo scopo di questa attività
Questa attività introdurrà gli studenti all'utilizzo delle istruzioni while e if per 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 e if-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 l'articolo sulla guida in Python.
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-else.s
- Comandi Python VEXcode V5 che verranno utilizzati in questa esplorazione:
- drivetrain.drive_for(AVANTI)
- brain.screen.pressing()
- drivetrain.stop()
- se condizione:
- else:
- mentre True:
- wait(5, SECONDS)
È possibile utilizzare le informazioni della Guida all'interno di VEXcode V5 per conoscere i comandi Python.

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 che spiega le istruzioni if-else. L'articolo è disponibile qui (Google Doc / .docx / .pdf).
Per un elenco degli operatori da utilizzare nelle istruzioni if-else, leggi l'articolo che spiega i booleani. Questo articolo è disponibile qui (Google Doc/.docx/.pdf).
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.
# Begin project code
while True:
drivetrain.drive(FORWARD)
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
wait(5, MSEC)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.
- Denominare il progetto CreatingAStopButton. Scarica ed esegui il progetto sul Clawbot.
- 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 un'istruzione "forever" (mentre True) per guidare e controllare continuamente. Se lo schermo viene premuto (Vero), il Clawbot smette di guidare.
Gli studenti non sono tenuti a capire perché vengono utilizzati i comandi while brain.screen.pressing (): e wait(5, MSEC). Spiegare che questi comandi sono necessari 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, queste istruzioni interrompono il flusso del programma e non consentono al progetto di avviare nuovamente il ciclo 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: comprendere le istruzioni while e wait().
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 è il comando drivetrain.stop ().
Pertanto, il progetto ha bisogno dei comandi while e wait che dicono al robot di rimanere fermo fino a quando non viene rilasciato lo schermo del cervello. Altrimenti, la dichiarazione Forever farebbe ricominciare il progetto.
while brain.screen.pressing():
wait(5, MSEC)I comandi while e wait sono necessari a causa della velocità del flusso del progetto. Se non fossero stati 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 in un' istruzione if-else.
- Inizia salvando CreatingAStopButton come nuovo progetto, StopOrDrive.
- Se hai bisogno di aiuto per salvare un progetto, consulta questi articoli.
- Quindi crea il progetto StopOrDrive mostrato di seguito.
# Begin project code
while True:
if brain.screen.pressing():
drivetrain.stop()
while brain.screen.pressing():
wait(5, MSEC)
else:
drivetrain.drive(FORWARD)
wait(5, MSEC)- Scarica StopOrDrive allo slot 2 sul tuo Clawbot.
- Per assistenza durante il download e l'esecuzione di un progetto, consulta questo articolo.
- 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, consultare questo articolo (Google Doc / .docx / .pdf).
I due progetti vedono il Clawbot comportarsi allo stesso modo. L'unica differenza è l'uso dell' istruzione if-else nel progetto StopOrDrive.
L'utilizzo dell' istruzione if-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 dei comandi 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
draw = Event()
def draw_button():
brain.screen.set_fill_color (Color.RED)
brain.screen.draw_rectangle (0, 0, 480, 240)
wait(1, SECONDS)
draw(draw_button)
while True:
draw.broadcast ()
drivetrain.drive (FORWARD)
if brain.screen.pressing ():
drivetrain.stop ()
while brain.screen.pressing ():
wait(5, MSEC)
else:
drivetrain.drive (FORWARD)
wait(5, MSEC)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).
