Lezione 2: Utilizzo di più cicli While
Proseguimento attraverso il labirinto del muro
Ora abbiamo utilizzato un ciclo while con il sensore paraurti per far sì che il robot VR smetta di muoversi quando raggiunge il muro. Tuttavia, per continuare attraverso il labirinto della parete, il robot VR deve girare quando raggiunge una parete, in modo che possa cambiare direzione e continuare.
-
Per iniziare, rimuovi il comando stop all'esterno del ciclo while e sostituiscilo con un comando turn_for . Impostare i parametri per far ruotare il robot VR a sinistra di 90 gradi. Il tuo progetto dovrebbe assomigliare a questo:
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) - Avviare il Wall Maze Playground se non è già aperto ed eseguire il progetto.
-
Guarda il robot VR guidare dall'inizio del labirinto a parete, fermati quando il sensore paraurti viene premuto dal muro e gira a sinistra di 90 gradi.

I loop multipli e il problema del labirinto a parete
Ora il robot VR ha raggiunto un muro e si è girato in modo da poter continuare a guidare attraverso il labirinto. Nello stesso modo in cui i dati del sensore Bumper sono stati utilizzati in un ciclo while per questo primo passaggio nel labirinto, la stessa struttura può essere utilizzata più volte nello stesso progetto per far sì che il robot VR continui ad attraversare il labirinto. Più cicli while possono essere utilizzati nello stesso progetto.
-
Partendo dalla posizione attuale del robot VR, il passo successivo per risolvere il labirinto a muro sarebbe quello di avanzare fino alla parete successiva e girare a destra di 90 gradi. I comandi esistenti possono essere copiati e incollati sotto i comandi precedenti while loop e turn_for. Ricordatevi di fare attenzione al rientro e di modificare i nuovi parametri del comando turn_for per ruotare di 90 gradi a destra. Il tuo progetto dovrebbe assomigliare a questo:
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for (LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) - Reimposta il Wall Maze Playground ed esegui di nuovo il progetto.
-
Guarda il robot VR guidare dall'inizio del labirinto a parete, fermarsi quando il sensore paraurti viene premuto dal muro, girare a sinistra di 90 gradi, avanzare fino a quando il sensore paraurti viene nuovamente premuto da un muro, quindi girare a destra di 90 gradi e fermarsi.

Mini sfida
Per questa mini sfida, crea un progetto in cui il robot VR guida dall'inizio alla lettera "A" sul labirinto a muro del parco giochi utilizzando più loop e il sensore paraurti!

Segui questi passaggi per completare la mini sfida:
-
Guarda il video della soluzione qui sotto per vedere come dovrebbe guidare il robot VR per completare la mini sfida. In questo video, il robot VR inizia dall'inizio in basso al centro del parco giochi. Si muove in avanti fino a quando il sensore paraurti viene premuto dalla parete opposta, poi gira a sinistra e si dirige verso la parete successiva di fronte ad esso. Quando il paraurti viene premuto su quella parete, il robot gira di nuovo a sinistra e avanza fino a raggiungere la parete finale e la lettera A.
- Creare un progetto aggiungendo o rimuovendo i comandi necessari al progetto Unit4Lesson2.
- Avviare il progetto per testarlo.
- Se il progetto non va a buon fine, modificalo e riprova. Continuare a rivedere ed eseguire il progetto fino a quando il robot VR non guida con successo dall'inizio alla lettera "A".
- Salvare il progetto una volta che il robot VR guida con successo dall'inizio alla lettera "A".
Congratulazioni! Hai risolto la mini sfida!