Skip to main content

Lezione 2: Utilizzo dei blocchi di confronto e guida fino a vicino

In questa lezione, creerai un progetto che porta il robot VR alla lettera "A" utilizzando il sensore di distanza con il blocco reporter <Less than> booleano. Nella mini-sfida, applicherai queste abilità per navigare dall'inizio del Labirinto del Muro al numero "1".

Una vista dall'alto verso il basso del labirinto della parete con la lettera A obiettivo evidenziato in una casella rossa, vicino alla posizione di partenza del robot VR.

Risultati di apprendimento

  • Identificare che il <Greater than> blocco è un blocco booleano che segnala se il primo valore è maggiore del secondo valore.
  • Identificare che il <Less than> blocco è un blocco booleano che segnala se il primo valore è inferiore al secondo valore.
  • Identificare che i <Less than> blocchi <Greater than> o riportino un valore VERO o FALSO in un blocco [Wait until].
  • Descrivere come creare un progetto che ha un robot VR che avanza fino a quando il valore del sensore di distanza è inferiore a un valore di soglia di 50 millimetri (mm).

Nomina e salva il progetto

  • Avviare un nuovo progetto in VEXcode VR e denominare il progetto Unit5Lesson2. Ricorda che puoi utilizzare blocchi VEXcode, blocchi Switch o una combinazione di entrambi i tipi di blocchi per il tuo progetto. 
Barra degli strumenti VEXcode VR con il pulsante "Nome progetto" evidenziato in una casella rossa, a sinistra del pulsante Seleziona parco giochi. Il nome del progetto è impostato su Unità 5 Lezione 2.

Usa il sensore di distanza per evitare le pareti

  • Trascinare il blocco [Drive] nell'area di lavoro.
    VEXcode VR blocca il progetto, iniziando con un blocco all'avvio con un blocco Drive Forward sotto di esso. C'è una casella rossa che evidenzia il blocco Drive Forward.
  • Collegare un blocco [Wait until] sotto il blocco [Drive].
    Lo stesso progetto VEXcode VR blocca come prima, ma ora con un blocco Wait Until in basso evidenziato con un riquadro rosso. Il progetto completo recita All'avvio, Guida in avanti e Attendi fino a quando. Il parametro del blocco Wait Until è vuoto.

Questo progetto utilizzerà il sensore di distanza per navigare attraverso il parco giochi del labirinto a muro senza sbattere contro i muri. In questo progetto utilizzerai il blocco (Distanza da) all'interno del blocco <Less than> booleano.

I <Less than>, <Greater than>, e <Equal to> sono blocchi di confronto: confrontano i valori. Sono anche blocchi di reporter booleani che riportano un valore VERO quando viene soddisfatta la condizione di confronto e FALSO quando la condizione NON viene soddisfatta.

  • <Less than> riporta TRUE quando il primo valore è minore del secondo valore e FALSE quando il primo valore è maggiore o uguale al secondo valore.
    VEXcode VR Less Than boolean block, reading '25 less than 50'.
  • <Greater than> riporta TRUE quando il primo valore è maggiore del secondo valore e FALSE quando il primo valore è minore o uguale al secondo valore.
    VEXcode VR Maggiore di blocco booleano, lettura "100 maggiore di 50".
  • <Equal to> riporta TRUE quando i due valori sono esattamente uguali e FALSE quando non lo sono.
    VEXcode VR Equal To boolean block, reading '50 equal to 50'.

I blocchi di confronto possono accettare decimali, numeri interi o blocchi numerici. Accettano anche blocchi di reporter rotondi, come il blocco (Distanza da). Il blocco (Distanza da) può essere con un blocco di confronto quando si utilizza il sensore di distanza in un progetto.

In questo esempio, il blocco riporterà TRUE quando la distanza da un oggetto e dal sensore di distanza su un robot VR è inferiore a 50 millimetri (mm).

VEXcode VR Minore del blocco booleano con una distanza dal blocco al suo interno, leggendo "Distanza anteriore in millimetri inferiore a 50".

  • Trascinare il blocco <Less than> booleano nel blocco [Wait until].
  • Posizionare il blocco rotondo (Distanza da) all'interno del blocco reporter booleano
    Progetto VEXcode VR Blocks che mette insieme i passaggi precedenti. L'intero progetto ora legge All'avvio, Guida in avanti e Aspetta fino a quando la distanza anteriore in millimetri è inferiore a 50. Un riquadro rosso evidenzia il blocco booleano Meno di.
  • Il blocco [Wait until] manterrà il robot VR in avanti fino a quando la condizione non viene soddisfatta e la distanza riportata è inferiore a 50 millimetri (mm). Quindi, il progetto passerà al blocco successivo nella pila, che sarà il blocco [Stop driving].
    Un diagramma che visualizza il flusso della logica nel progetto VEXcode VR Blocks. Il progetto inizia guidando in avanti e mantiene tale comando fino a quando la distanza del sensore di distanza anteriore in millimetri è inferiore a 50, dopodiché un blocco Stop Driving termina il comando Drive Forward.
  • Un blocco [Stop driving] è necessario dopo il blocco [Wait until] perché il robot VR continuerà a guidare fino a quando non gli verrà ordinato di fermarsi. Aggiungi un blocco [Stop driving] al progetto.
    VEXcode VR blocca il progetto precedente con un blocco Stop Driving aggiunto dopo il blocco Wait Until. L'intero progetto ora legge, quando avviato, Guida in avanti e attendi fino a quando la distanza anteriore in millimetri è inferiore a 50, dopo di che smetti di guidare.
  • Avviare il Wall Maze Playground se non è già aperto ed eseguire il progetto.
  • Guardare il robot VR guidare dall'inizio del labirinto a parete e fermarsi quando il sensore di distanza segnala che si trova a meno di 50 millimetri (mm) dalla parete.
    Una vista dall'alto verso il basso del labirinto della parete con la lettera A goal vicino alla posizione di partenza del robot VR. Il robot VR è ora andato avanti come risultato del progetto Blocks.
  • Utilizzando il <Less than> blocco con il blocco (Distanza da) all'interno del blocco [Attendere fino a], indica al Robot VR di attendere fino a quando non si trova a meno di 50 millimetri (mm) dalla parete prima di fermarsi.
  • Ripristinare il parco giochi per riportare il robot VR alla posizione di partenza.

Utilizzo di blocchi di interruttori

In questa lezione, hai imparato a conoscere i blocchi <Equal to> booleani <Greater than> <Less than>, e. L'immagine seguente mostra i blocchi di confronto booleani dello switch. Affinché un blocco booleano Switch funzioni come previsto, le funzioni Switch Python devono essere inserite con l'ortografia e la punteggiatura corrette. 

Si noti che il <Equal to> blocco Switch utilizza due segni uguali (==). Questo perché in Python, un segno di uguale (=) rappresenta un'assegnazione di un valore (ad esempio, x = 10), mentre due segni di uguale (==) controllano se due valori sono uguali. Assicurarsi di utilizzare due segni uguali quando si utilizza il <Equal to> blocco Switch. 
A comparison of three VEXcode VR boolean blocks and their corresponding switch blocks. The Less Than block is written in Python as '25 < 50', the Greater Than block is written in Python as '100 > 50', and the Equal To block is written in Python as '50 == 50'. A red box highlights the double equal signs in the last example, demonstrating how to compare two values as equal in Python.

Hai anche visto un progetto di esempio in cui il robot VR avanzerà fino a quando la distanza riportata è inferiore a 50 millimetri (mm) da un oggetto. Quindi, il robot VR si fermerà. Il progetto a destra mostra i corrispondenti comandi Python all'interno di un blocco Switch. Il comando, pur non essendofront_distance.get_distance (MM) < 50 dice al robot di verificare se la distanza riportata è inferiore a 50 MM da un oggetto.

La riga di codice rientrata successiva, wait (5, MSEC), mette in pausa il codice per 5 millisecondi. Il comando che controlla se la distanza riportata è inferiore a 50 MM da un oggetto attenderà 5 MSEC prima di verificare nuovamente la condizione. 

Un confronto del nostro progetto VEXcode VR, con il blocco Wait Until convertito in un blocco switch sul lato destro. Il nuovo blocco switch legge in Python 'while not front_distance.get_distance(MM) < 50: wait(5, msec)'.

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