Skip to main content

Icona della cassetta degli attrezzi del docente 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.

Icona della cassetta degli attrezzi del docente 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.

VEXcode V5 con un'unità per il comando digitata nell'area di lavoro a sinistra e le informazioni della Guida aperte a destra. La Guida mostra una definizione del comando e informazioni su come viene utilizzato.

Assicurati di avere l'hardware necessario, il tuo taccuino tecnico e VEXcode V5 pronto.

Materiali necessari:
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)

Icona Suggerimenti per l'insegnante 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.

Barra degli strumenti VEXcode V5 con tutorial evidenziati in una casella rossa. La barra degli strumenti mostra, da sinistra a destra, il logo V5, l'icona di un globo, il file e i tutorial. A destra dei Tutorial ci sono icone e funzionalità aggiuntive.

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).
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
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).

Screenshot dell'articolo collegato intitolato Using Booleans in VEXcode V5 Python.

Passaggio 2: Iniziamo a programmare con le dichiarazioni condizionali.

  • Aprire il progetto di esempio del modello Clawbot (Drivetrain 2-motor, No Gyro).

    Esempio di progetti in VEXcode V5 con il filtro Modelli e l'icona del motore Clawbot Drivetrain 2 senza giroscopio evidenziata con una casella rossa che indica quale progetto aprire.

     

  • 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.
    La finestra di dialogo del nome del progetto nella barra degli strumenti VEXcode V5 legge Creazione di un pulsante di arresto e mostra che è selezionato lo slot 1.
  • Controlla le tue spiegazioni del progetto e aggiungi note per correggerle secondo necessità.

Icona della cassetta degli attrezzi del docente 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.La funzione dei comandi nel progetto Stop o Drive sono etichettati. L'istruzione if è etichettata come Controlla se la condizione è Vera - controlla se la schermata è premuta. I blocchi rientrati sotto di esso sono etichettati Se la condizione è Vera, esegue il blocco di codici. Il comando di pressione dello schermo mentre il cervello è etichettato controlla la velocità di elaborazione.

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 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.La finestra di dialogo Nome progetto nella barra degli strumenti VEXcode V5 legge Stop o Drive e mostra che è selezionato lo slot 1.
  • 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.

La finestra di selezione dello slot è aperta nella barra degli strumenti VEXcode V5 e lo slot 2 è selezionato ed evidenziato con una casella rossa.

  • 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

Icona della cassetta degli attrezzi del docente 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.

Icona Estendi il tuo apprendimento 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:La griglia dei pixel della schermata V5 Brain mostra 12 righe numerate lungo il lato sinistro, con la riga superiore etichettata come Riga 1 e la riga inferiore etichettata come Riga 12. Nella parte superiore ci sono 48 colonne numerate, con la colonna 1 etichettata all'estrema sinistra e la colonna 48 etichettata all'estrema destra. Le misure totali dei pixel sono 480 px di larghezza per 240 px di altezza.

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