Skip to main content

Lezione 2: Drive to Green then Blue Disks

Drive to Green then Blue Disks

  • Il progetto precedente prevede che il robot VR svolti a destra quando il sensore oculare anteriore rileva un disco verde. Ora, costruisci un progetto in cui il robot VR si sposta su quattro dischi nel Disk Maze Playground.
  • L'obiettivo è creare un modello coerente in cui il robot VR gira a destra quando il sensore oculare anteriore rileva un disco verde e a sinistra quando il sensore oculare anteriore rileva un disco blu.

    Una vista dall'alto verso il basso del parco giochi del Labirinto di dischi, con una freccia che mostra il percorso previsto del robot VR. Il robot dovrebbe avanzare dalla piattaforma di partenza per raggiungere il primo disco verde e girare a destra prima di girare a sinistra in corrispondenza di due dischi blu.
  • Aggiungere il seguente blocco al progetto esistente per indicare al robot VR di avanzare dopo aver svoltato a destra.

    VEXcode VR blocca il progetto precedente, con l'aggiunta di blocchi Comment e Drive Forward. L'intero progetto ora legge All'inizio seguito da un commento che legge "unità sul primo disco (verde), quindi girare a destra". Quindi, guida in avanti,  attendi che l'occhio anteriore rilevi il verde, quindi gira a destra per 90 gradi. Il prossimo è un blocco di commenti che dice 'drive to next disk (blue), then turn left'. Infine, vai avanti.
  • Aggiungere un altro [Attendere fino a] con il <Color sensing> blocco impostato su "blu", poiché il disco successivo che il robot VR incontrerà è blu.

    VEXcode VR blocca il progetto precedente, con un blocco Wait Until aggiunto dopo l'ultimo blocco Drive Forward. L'intero progetto ora legge All'inizio seguito da un commento che legge "unità sul primo disco (verde), quindi girare a destra". Quindi, guida in avanti,  attendi che l'occhio anteriore rilevi il verde, quindi gira a destra per 90 gradi. Il prossimo è un blocco di commenti che dice 'drive to next disk (blue), then turn left'. Infine, guida in avanti e attendi che l'occhio anteriore rilevi il blu.
  • Aggiungere un blocco [Turn for] e impostare il parametro su "left".

    VEXcode VR blocca il progetto precedente, con un blocco Gira a sinistra per 90 gradi aggiunto dopo l'ultimo blocco Attendi fino a. L'intero progetto ora legge All'inizio seguito da un commento che legge "unità sul primo disco (verde), quindi girare a destra". Quindi, guida in avanti,  attendi che l'occhio anteriore rilevi il verde, quindi gira a destra per 90 gradi. Il prossimo è un blocco di commenti che dice 'drive to next disk (blue), then turn left'. Prossima guida in avanti e attendere che l'occhio anteriore rilevi il blu prima di girare a sinistra per 90 gradi.
  • Esegui il progetto per vedere come il robot VR si muove attraverso il Disk Maze Playground.

    Una vista dall'alto verso il basso del parco giochi del Labirinto di dischi, con una freccia che mostra il percorso previsto del robot VR. Il robot dovrebbe avanzare dalla piattaforma di partenza per raggiungere il primo disco verde e girare a destra prima di girare a sinistra al primo disco blu.
  • Si noti che il robot VR gira a destra quando il sensore oculare anteriore rileva un disco verde e gira a sinistra quando il sensore oculare anteriore rileva un disco blu.
  • Continuare a costruire questo progetto per guidare il robot VR su altri due dischi nel parco giochi del labirinto del disco utilizzando il sensore dell'occhio anteriore. Aggiungere i seguenti blocchi per navigare dal robot VR ai due dischi successivi, quindi fermarsi:

    VEXcode VR blocca lo snippet da aggiungere alla fine del nostro progetto per raggiungere il terzo e il quarto disco blu. Per guidare fino al terzo disco Drive Forward, attendere che l'occhio anteriore rilevi il blu e girare a sinistra di 90 gradi. Accanto all'unità sul quarto disco, Drive Forward, Wait Until Front Eye rileva il blu e quindi gira a sinistra per 90 gradi. Infine, smetti di guidare.
    Lo snippet dei blocchi VEXcode per raggiungere il terzo e il quarto disco viene ora aggiunto alla fine del nostro progetto. L'intero progetto ora raggiunge quattro dischi, prima un disco verde e poi tre dischi blu. Utilizzare la seguente sezione di codice per ogni disco: Drive Forward, Waits Until Front Eye rileva il colore del disco, quindi girare a destra di 90 gradi se verde e a sinistra di 90 gradi se blu. Ripetendo quella sezione di tre blocchi per quattro volte possiamo raggiungere quattro dischi, prima un disco verde girando a destra e poi tre blu girando a sinistra. Dopo questi 12 blocchi e ulteriori commenti che contrassegnano ciascuna sezione, smettere di guidare.
  • Si noti che c'è uno schema. C'è una serie di blocchi che vengono ripetuti tre volte nel progetto. Questa sezione di codice può essere condensata utilizzando un blocco [Repeat].

    Ora utilizzeremo un blocco Repeat per semplificare e abbreviare il nostro codice. Un riquadro rosso evidenzia le tre sezioni utilizzate per raggiungere i dischi blu, poiché questo è lo stesso codice tre volte che possiamo aggiungerlo a un blocco di ripetizione impostato per ripetere 3 volte. Ora, il progetto legge All'avvio, guida in avanti e attendi che l'occhio anteriore rilevi il verde prima di girare a destra per 90 gradi. Quindi, ripetere il codice per raggiungere un disco blu tre volte: Drive Forward, Wait Until Front Eye rileva il blu e quindi gira a sinistra per 90 gradi. Dopo aver chiuso il ciclo di ripetizione, interrompere la guida.
  • Aprire il Disk Maze Playground se non è già aperto ed eseguire il progetto.
  • Guarda il robot VR navigare su quattro dischi nel Disk Maze Playground.

    La vista dall'alto verso il basso del parco giochi Disk Maze di prima, con una freccia che mostra il percorso previsto del robot VR. Il robot dovrebbe avanzare dalla piattaforma di partenza per raggiungere il primo disco verde e girare a destra prima di girare a sinistra in corrispondenza di due dischi blu e fermarsi al terzo. Una casella rossa indica che il robot si ferma sul terzo disco blu.
  • In questo progetto, il robot VR avanza fino a quando il sensore oculare anteriore rileva il colore verde.
    • Il robot VR gira a destra di 90 gradi e avanza di nuovo fino a quando non viene rilevato il colore blu.
    • Il robot VR gira quindi a sinistra e avanza fino a quando il sensore oculare anteriore rileva il blu. Una volta rilevato il colore blu, il robot VR gira di nuovo a sinistra.
    • Infine, il robot VR avanza fino a quando il sensore oculare anteriore rileva il blu, quindi si ferma.
  • Si noti il modello che quando il sensore dell'occhio anteriore rileva il verde, il robot VR gira a destra. Quando il sensore dell'occhio anteriore rileva il blu, il robot VR gira a sinistra in questo progetto.

Utilizzo di blocchi di interruttori

Finora, hai creato un progetto per guidare sul disco verde e poi sui tre dischi blu.

L'immagine seguente mostra l'intero progetto utilizzando i blocchi VEXcode, con i comportamenti ripetuti utilizzati per guidare verso i tre dischi blu in rosso.

Il progetto dei blocchi VEXcode VR su cui stiamo lavorando, con il blocco Ripeti tre volte evidenziato in rosso. Il progetto legge All'avvio, guida in avanti e attendi che l'occhio anteriore rilevi il verde prima di girare a destra per 90 gradi. Quindi, ripetere il codice per raggiungere un disco blu tre volte utilizzando un blocco di ripetizione: Drive Forward, Wait Until Front Eye rileva il blu e quindi gira a sinistra per 90 gradi. Dopo aver chiuso il ciclo di ripetizione, interrompere la guida.

Il progetto seguente mostra questi stessi blocchi VEXcode convertiti in più blocchi Switch.

progetto del centro

Quest' ultimo progetto mostra gli stessi comandi del blocco Switch convertiti in comandi Python all'interno di un blocco Switch.

Il progetto VEXcode VR blocca per raggiungere i primi quattro dischi, ma con l'intero loop Repeat convertito in blocchi di switch Python. L'intero progetto recita All'avvio, guidare in avanti e attendere che l'occhio anteriore rilevi il verde prima di girare a destra per 90 gradi. Il blocco di switch successivo contiene il seguente codice Python: 'for repeat_count in range(3): drivetrain.drive (FORWARD) while not front_eye.detect (BLUE): wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)'. Ora, al di fuori del blocco interruttori, finalmente Stop Driving.

Il for repeat_count in range(3): è il comando Python che dice al robot che le prossime righe di codice rientrate devono essere ripetute tre volte. Si noti che è necessario includere i due punti (:) dopo il ciclo for. 

Le righe di codice successive sono i comportamenti che verranno ripetuti. Si noti che questi comportamenti sono rientrati con un valore predefinito di 4 spazi. 

Inoltre, si noti che la condizione include il comando wait (5, MSEC). In VEXcode VR, un comando wait viene sempre aggiunto con il ciclo for. Lo scopo del comando wait è garantire che VEXcode VR possa eseguire correttamente il progetto come previsto, grazie alla natura basata sul Web della piattaforma VEXcode VR. Il comando wait non dovrebbe mai essere eliminato quando si utilizza un ciclo for, altrimenti il progetto potrebbe non funzionare come previsto. 

La riga wait (5, MSEC) è rientrata sotto il comando while not front_eye.detect(BLUE) perché il sensore dell'occhio frontale controllerà il colore blu, con una pausa di 5 MSEC tra ogni controllo.

Selezionare il pulsante Avanti per continuare con il resto della lezione.