Lezione 2: Drive to the Next Disks
Drive to the Blue Disks
Il progetto precedente prevede che il robot VR svolti a destra quando il sensore dell'occhio anteriore rileva un disco verde, che ha portato il robot VR attraverso il primo passo nel labirinto. Ora, continueremo a costruire sul progetto in modo che il robot VR guidi sui primi quattro dischi del Disk Maze Playground.
Guardando dove è rivolto il robot VR dopo aver girato a destra al disco verde, possiamo vedere che per navigare verso i prossimi tre dischi blu, il robot VR dovrebbe avanzare e girare a sinistra ad ogni disco blu. Possiamo usare la stessa logica del ciclo while con la condizione not per far sì che il robot VR continui a guidare attraverso il labirinto e giri a sinistra quando rileva un disco blu.
- Aggiungi un altro commento sotto il turn_for nel progetto esistente per descrivere i prossimi comportamenti del robot VR. Il tuo progetto dovrebbe essere simile a questo:
def main():
# Drive to 1st disk (verde), turn right
while not front_eye.detect(VERDE):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# Drive to 2nd disk (blue), turn left- Sotto il nuovo commento, aggiungi un altro ciclo while con una condizione not. Imposta la condizione sul comando detect e imposta i parametri su "BLUE", poiché il prossimo disco che incontrerà il VR Robot è blu.
# Drive to 2nd disk (blu), turn left
while not front_eye.detect(BLU):
wait(5, MSEC)- All'interno del ciclo while , trascinare o digitare il comando non in attesa drive.
# Drive to 2nd disk (blu), turn left
while not front_eye.detect(BLU):
drivetrain.drive(FORWARD)
wait(5, MSEC)- Trascina o digita un comando turn_for e imposta i parametri per girare a sinistra di 90 gradi.
# Drive to 2nd disk (blu), turn left
while not front_eye.detect(BLU):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)- Esegui il progetto per vedere come il robot VR si muove attraverso il Disk Maze Playground.
- 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 blu nel parco giochi del labirinto del disco utilizzando il sensore dell'occhio anteriore. Aggiungi comandi al progetto, sposta il robot VR nei due dischi successivi, quindi fermati. Il tuo progetto completo dovrebbe ora assomigliare a questo:
def main():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (RIGHT, 90, DEGREES)
# Drive to 2nd disk (blue), turn left
while not front_eye.detect (BLUE):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES)
# Drive to 3rd disk (blue), turn left
while not front_eye.detect (BLUE):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES)
# Drive to 4th disk (blue), turn left
while not front_eye.detect (BLUE):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES)Identificazione di un modello nei movimenti del robot VR
L'obiettivo di navigare con successo nel labirinto di dischi con il sensore oculare anteriore è quello di 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. Identificare modelli come questo può aiutarti a semplificare i tuoi progetti man mano che crescono in complessità.

Per tua informazione
Si noti che esiste anche uno schema nella sequenza dei comandi nel progetto. C'è una serie di comandi (per i dischi blu) che vengono ripetuti tre volte nel progetto. Questa sezione di codice può essere condensata utilizzando un ciclo per . Il progetto mostrato qui combina quei tre cicli mentre relativi ai dischi blu in un singolo ciclo per.
def main():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (RIGHT, 90, DEGREES)
# Drive to the next 3 disks (blue), turn left
for value in range(3):
while not front_eye.detect (BLUE):
drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES)L'utilizzo di un ciclo per può rendere il progetto più semplice e facilmente leggibile, ma contiene i comandi ripetitivi all'interno di un ciclo.
- 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.

- 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.
Selezionare il pulsante Avanti per continuare con il resto della lezione.