Lezione 3: Aggiunta di comandi di trasmissione per risolvere il labirinto del muro
Risolvere il problema del labirinto a muro
Ora che il robot VR è arrivato alla lettera "A" e al numero "2" sul Maze Wall Playground, come creeresti un progetto in cui il robot VR si sposta in altre posizioni, ad esempio alla lettera "B"? Finora, abbiamo utilizzato i dati del sensore paraurti per guidare verso una parete, quindi girare per passare alla parete successiva. Per navigare fino alla lettera "B", dobbiamo essere in grado di spostare il robot VR in un punto al centro della superficie del labirinto, in modo che possa intraprendere un percorso diverso verso la nostra destinazione.
Se il codice contenesse solo i comandi drive e turn_for , il VR Robot potrebbe rimanere "bloccato" nella sezione numero '2' del Wall Maze, perché continuerebbe a girare a sinistra o a destra senza mai fare retromarcia.
Invece, possiamo stimare la distanza dall'ultimo muro toccato dal robot VR al punto in cui deve svoltare. Possiamo quindi usare i comandi Drivetrain, come drive_for e turn_for, con i loop while e i dati del sensore paraurti nel nostro progetto per risolvere il labirinto!
-
Inizia modificando il tuo progetto precedente, crea un nuovo progetto o seleziona "Copia" e incolla questo codice in VEXcode VR in modo che corrisponda a questo progetto di base.
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) 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.stop ()
- Il progetto di cui sopra inizia a guidare il robot VR alla lettera "B", tuttavia, affinché il robot VR possa farlo, dovrebbe prima tornare indietro e poi girare a sinistra.
- Modifica il codice rimuovendo il comando stop e sostituendolo con i comandi drive_for e turn_for
- Possiamo stimare che il robot VR debba guidare in retromarcia per circa 300 millimetri (mm). Per prima cosa, imposta i parametri del comando drive_for su "reverse" per 300 millimetri (mm).
-
Quindi, imposta i parametri del comando turn_for per girare 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) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.turn_for (RIGHT, 90, DEGREES) 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.drive_for (REVERSE, 300, MM) drivetrain.turn_for (LEFT, 90, DEGREES)
- Avviare il Wall Maze Playground se non è già aperto ed eseguire il progetto.
-
L'aggiunta di questi comandi orienterà il robot VR nella giusta direzione per guidare la lettera "B".
- Selezionare il pulsante "Reset" per ripristinare il parco giochi e riportare il robot VR alla posizione di partenza.
-
Ora che il robot VR è orientato nella direzione corretta, aggiungi i seguenti comandi sotto il comando finale turn_for , per guidare il robot VR verso la lettera 'B' sul labirinto di pareti Playground. Assicurarsi che i comandi siano correttamente rientrati nel progetto.
while not left_bumper.pressed(): trasmissione.drive (AVANTI) wait(5, MSEC) trasmissione.turn_for (DESTRA, 90, GRADI) while not left_bumper.pressed (): trasmissione.drive (AVANTI) wait(5, MSEC) trasmissione.turn_for (DESTRA, 90, GRADI) while not left_bumper.pressed (): trasmissione.drive (AVANTI) wait(5, MSEC) trasmissione.stop()
- Avviare il Wall Maze Playground se non è già aperto ed eseguire il progetto.
-
Il robot VR ora si dirigerà verso la lettera "B" sul muro del labirinto del parco giochi.
Mini sfida
In questa sfida, il robot VR deve raggiungere il numero "3" nel labirinto muro Playground utilizzando più giri mentre , comandi di trasmissione e il sensore paraurti.

Segui questi passaggi per completare la mini sfida:
-
Guarda il video della soluzione qui sotto e rivedi come dovrebbe guidare il robot VR per completare la mini sfida. Nel video qui sotto, il robot VR inizia nella posizione di partenza e segue lo stesso schema di guida verso una parete fino a quando il paraurti viene premuto e poi girato. Il robot percorre lo stesso percorso per iniziare, che ha percorso per guidare fino alla lettera B. Al punto di svolta lontano dal muro, il robot gira a destra per continuare fino al numero 3. Da quel punto guida in avanti e gira a sinistra due volte per aggirare la prossima serie di muri, oltre la lettera B. Infine, il robot guida in avanti e gira a destra due volte per aggirare le pareti finali per raggiungere il numero 3.
- Crea un progetto aggiungendo o rimuovendo i comandi necessari al progetto Unit4Lesson3 per guidare il Robot VR al numero '3' sul Wall Maze Playground.
- Avvia il progetto per verificare se funziona.
- Se il progetto non va a buon fine, modificalo e riprova. Continua questo processo fino al completamento della sfida.
- Una volta che il robot VR guida con successo al numero "3" sul Wall Maze Playground, salva il progetto.
Congratulazioni! Hai completato con successo la Sfida Labirinto a muro!