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

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

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 l'icona Tutorial evidenziata in un riquadro rosso. Da sinistra la barra degli strumenti mostra l'icona V5, un'icona a forma di globo, File, quindi Esercitazioni. A destra 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 della biblioteca VEX che spiega le affermazioni If Then Else. L'articolo è disponibile qui.

Screenshot dalla libreria VEX, che mostra un articolo intitolato Using if-else statements in VEXcode V5.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.Screenshot dalla VEX Library, che mostra un articolo intitolato Using Booleans in VEXcode V5.

Passaggio 2: Iniziamo a programmare con le dichiarazioni condizionali.

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

    Esempio di selezione del progetto in VEXcode V5 con una casella rossa attorno al filtro Modelli nella parte superiore e il motore di trasmissione Clawbot 2 senza progetto giroscopico, che indica quale modello aprire.

     

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

La finestra di dialogo Nome progetto nella barra degli strumenti VEXcode V5 legge Creazione di un pulsante di arresto e mostra che è selezionato lo slot 1.

  • 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à.

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 una dichiarazione Forever per guidare e controllare continuamente. Se lo schermo viene premuto (VERO), il Clawbot smette di guidare.Il progetto Creazione di un pulsante di arresto viene mostrato con i comandi etichettati con il loro scopo. Il comando if è cerchiato in rosso ed etichettato Controlla se la condizione è True - la schermata è premuta. Il comando di arresto del punto Drivetrain è etichettato Esegue il blocco se vero. Il comando di attesa fino all'etichetta controlla la velocità di elaborazione.

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.

La finestra di dialogo del nome del progetto nella barra degli strumenti VEXcode V5 legge Stop o Drive e mostra che è selezionato lo slot 1.

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

La selezione dello slot nella barra degli strumenti VEXcode V5 è aperta e lo slot 2 è selezionato ed evidenziato con un riquadro rosso. Il nome del progetto è Stop o Drive.

  • 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

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

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 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:

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