Skip to main content

Lezione 3: Guida verso il numero "31"

In questa lezione, il robot VR guiderà al numero "31" e poi di nuovo al numero "1" nel parco giochi della mappa della griglia dei numeri!

Una vista dall'alto verso il basso del parco giochi Number Grid Map, con il numero 31 evidenziato da un riquadro rosso. Il robot VR inizia dal numero 1 e il numero 31 quadrato è tre spazi sopra di esso.

Si noti che il robot VR viaggerà lungo l'asse Y per spostarsi sul numero "31" nel parco giochi della mappa della griglia numerica.

Una vista dall'alto verso il basso del parco giochi Number Grid Map, con lo spazio numero 31 evidenziato da una casella nera. Una linea indica le misurazioni lungo l'asse Y, con il primo spazio che è di -900 millimetri sull'asse Y e il successivo di -700 che continua a contare di 200 ogni volta. Lo spazio numero 31 si trova in una posizione Y di -300 millimetri.

Il robot VR guiderà fino alla posizione del numero "31" nel parco giochi della mappa della griglia numerica. Tuttavia, prima che il robot VR possa raggiungere quel numero, al robot VR deve essere detto dove si trova quel numero. Le coordinate del numero ‘31’ sono (-900, -300).

Una vista dall'alto verso il basso del parco giochi della mappa della griglia dei numeri, con due indicatori dell'asse che indicano la posizione dello spazio del numero 31. Il Robot VR parte da -900 X e -900 Y, mentre il numero 31 spazio è a -900 X e -300 Y.
  • Trascinare il blocco [Drive] non in attesa nell'area di lavoro.

    Un nuovo progetto VEXcode VR blocca il progetto che inizia con un blocco When Started seguito da un blocco Drive Forward.
  • Collegare un blocco [Wait until] sotto il blocco [Drive].

    Una continuazione del progetto dei blocchi VEXcode VR, ora con un blocco Wait Until aggiunto dopo il blocco Drive Forward. L'intero progetto ora legge All'avvio, Guida in avanti e Aspetta fino a quando. Il blocco Wait Until ha un parametro booleano vuoto.
  • Trascinare il blocco reporter <Greater than> booleano nel blocco [Wait until].

    Una continuazione del progetto dei blocchi VEXcode VR, ora con un blocco Maggiore di inserito nel blocco Attendi fino a. L'intero progetto ora legge All'avvio, vai avanti seguito da un blocco Attendi fino con un blocco Maggiore di che dice "vuoto è maggiore di 50".
  • Si noti che il <Greater than> blocco viene utilizzato al posto del <Less than> blocco perché il robot VR sta salendo dal fondo del parco giochi. Il robot VR parte da un valore Y di -900 millimetri (mm). Man mano che il robot VR avanza, i valori Y aumentano.

    La stessa vista dall'alto verso il basso del parco giochi della mappa della griglia dei numeri con due indicatori dell'asse che segnano la posizione dello spazio del numero 31 rispetto al precedente. Il Robot VR parte da -900 X e -900 Y, mentre il numero 31 spazio è a -900 X e -300 Y.
  • Trascinare il blocco (Posizione del robot) nel <Greater than> blocco.

    Una continuazione del progetto dei blocchi VEXcode VR, ora con una posizione del blocco Robot inserita nel blocco Maggiore di. L'intero progetto ora legge All'avvio, avanzare e attendere che la posizione X del robot in millimetri sia maggiore di 50.
  • Impostare il parametro del blocco (Posizione del robot) su "Y" e il parametro del <Greater than> blocco su -300.

    Una continuazione del progetto dei blocchi VEXcode VR, ora con la posizione dell'asse del blocco Robot cambiato da X a Y e il secondo parametro del blocco Maggiore di cambiato da 50 a -300. L'intero progetto ora legge All'avvio, avanzare e attendere che la posizione Y del robot in millimetri sia maggiore di -300.
  • Trascina un blocco [Stop driving] e aggiungilo al progetto.

    Una continuazione del progetto dei blocchi VEXcode VR, ora con un blocco Stop Driving aggiunto sotto il blocco Wait Until. L'intero progetto ora legge All'avvio, avanzare e attendere che la posizione Y del robot in millimetri sia maggiore di -300. Infine, smetti di guidare.
  • Avviare il Number Grid Map Playground se non è già aperto ed eseguire il progetto.
  • Guarda il robot VR guidare al numero "31" nel parco giochi della mappa della griglia numerica.

    Una vista dall'alto verso il basso del parco giochi Number Grid Map con il robot VR appoggiato sullo spazio del numero 31.
  • In questo progetto, il robot VR si sposta sul numero "31" nel parco giochi della mappa della griglia numerica. Poiché i valori Y stanno aumentando man mano che il robot VR raggiunge il numero "31", il progetto utilizza un <Greater than> blocco.
  • Il Robot VR si fermerà una volta che il suo valore Y è maggiore del valore Y della coordinata su cui si trova il numero indicato. Poiché il valore Y del numero "31" è -300, il robot VR smetterà di guidare una volta che il valore Y è maggiore di -300.
Un diagramma che visualizza il flusso della logica nel progetto VEXcode VR Blocks. Il progetto inizia con un blocco all'avvio e quindi inizia a guidare in avanti e mantiene tale comando fino a quando la posizione della posizione Y del sensore del robot in millimetri è maggiore di -300, dopodiché un blocco Stop Driving termina il comando Drive Forward.

Utilizzo di blocchi di interruttori 

In questa lezione, hai imparato come utilizzare il blocco VEXcode [Attendi fino a] con una condizione booleana per comandare al robot di attendere fino a quando il robot non raggiunge una posizione maggiore di -300 sull'asse Y prima di passare al comportamento successivo.

L'immagine sottostante mostra il blocco VEXcode accanto al blocco Switch contenente il comando Python per gli stessi comportamenti. 

Un confronto tra un blocco Wait Until VEXcode VR e il blocco switch corrispondente. Il blocco VR dice "Attendi che la posizione Y del robot in millimetri sia maggiore di -300". Il codice Python del blocco switch legge 'while not location.position(Y, MM) > -300: wait(5, MSEC)'. Il comando wait è rientrato sotto a while not.All'interno del blocco Switch, while notlocation.position (Y, MM) > -300: è il primo comando Python che controlla se la posizione del robot lungo l'asse X è maggiore di -300.

Il secondo comando rientrato, wait (5, MSEC), mette in pausa l'esecuzione del ciclo condizionale per 5 millisecondi.

In VEXcode VR, un comando wait viene sempre aggiunto con il ciclo condizionale. 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 condizionale, altrimenti il progetto potrebbe non funzionare come previsto. 

In questo esempio, il progetto controlla se la posizione del robot è maggiore o meno di un valore Y di -300 ogni 5 MSEC. Questa riga di codice è rientrata sotto la prima riga di codice perché questo comando è il comportamento che si ripeterà fino a quando non verrà soddisfatta la condizione (un valore di coordinata Y maggiore di -300). 

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