Lição 3: Adicionando Comandos de Trem de Força para Resolver o Labirinto da Parede
Resolvendo o Problema do Labirinto da Parede
Agora que o robô VR dirigiu para a letra ‘A’, bem como para o número ‘2’ no Maze Wall Playground, como você criaria um projeto onde o robô VR dirige para outros locais, como para a letra ‘B’? Até agora, usamos dados do Sensor de Para-choques para dirigir até uma parede e, em seguida, girar para passar para a próxima parede. Para navegar até a letra 'B', precisamos ser capazes de mover o Robô VR para um ponto no meio da superfície do labirinto, para que ele possa seguir um caminho diferente em direção ao nosso destino.
Se o código contivesse apenas drive e turn_for comandos, o Robô VR poderia ficar “preso” na secção número ‘2’ do Labirinto de Parede, porque continuaria a virar à esquerda ou à direita sem nunca recuar.
Em vez disso, podemos estimar a distância da última parede que o robô VR tocou até onde precisa de virar. Podemos então usar comandos Drivetrain, como drive_for e turn_for, com os while loops e dados do Sensor de pára-choques no nosso projecto para resolver o labirinto !
-
Comece por modificar o seu projeto anterior, crie um novo projeto ou selecione "Copiar" e cole este código no VEXcode VR para corresponder a este projeto 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 ()
- O projeto acima começa a conduzir o Robô VR à letra ‘B’, no entanto, para que o Robô VR o faça, ele primeiro precisaria fazer backup e depois virar à esquerda.
- Edite o código removendo o comando stop e substituindo-o pelos comandos drive_for e turn_for .
- Podemos estimar que o Robô VR precisa dirigir em marcha à ré por aproximadamente 300 milímetros (mm). Em primeiro lugar, defina os parâmetros do comando drive_for para “reverter” por 300 milímetros (mm).
-
De seguida, defina os parâmetros do comando turn_for para virar 90 graus para a esquerda. O seu projeto deve agora ter este aspeto:
def main(): enquanto não 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)
- Inicie o Wall Maze Playground, se ainda não estiver aberto, e execute o projeto.
-
Adicionar esses comandos orientará o Robô VR na direção certa para conduzir a letra ‘B.’
- Selecione o botão "Reset" para reiniciar o Playground e mover o Robô VR de volta para a posição inicial.
-
Agora que o Robô VR está orientado na direção correta, adicione os seguintes comandos abaixo do comando final turn_for , para conduzir o Robô VR até à letra 'B' no Wall Maze Playground. Certifique-se de que os comandos estão recuados corretamente no seu projeto.
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 (RIGHT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain.stop()
- Inicie o Wall Maze Playground, se ainda não estiver aberto, e execute o projeto.
-
O robô VR agora dirigirá com a letra ‘B’ no Wall Maze Playground.
Mini Desafio
Neste desafio, o robô VR deve navegar até ao número '3' no Wall Maze Playground utilizando vários loops enquanto , comandos do grupo motopropulsor e o sensor de pára-choques.

Siga estas etapas para concluir o mini desafio:
-
Assista ao vídeo da solução abaixo e analise como o robô VR deve dirigir para concluir o mini desafio. No videoclipe abaixo, o Robô VR começa no local de partida e segue o mesmo padrão de dirigir até uma parede até que o para-choque seja pressionado e depois gire. O robô percorre o mesmo caminho para começar, que percorreu para dirigir até a letra B. No ponto de viragem para longe da parede, o robô vira à direita para continuar até o número 3. A partir desse ponto, ele avança e vira à esquerda duas vezes para contornar o próximo conjunto de paredes, passando pela letra B. Finalmente, o robô avança e vira à direita duas vezes para contornar as paredes finais para alcançar o número 3.
- Crie um projeto adicionando ou removendo os comandos necessários ao projeto Unit4Lesson3 para levar o robô VR ao número ‘3’ no Wall Maze Playground.
- Inicie o projeto para testar se funciona.
- Se o projeto não for bem-sucedido, edite e tente novamente. Continue este processo até que o desafio seja concluído.
- Assim que o robô de RV chegar com sucesso ao número ‘3’ no Wall Maze Playground, salve o projeto.
Parabéns! Você concluiu com sucesso o Desafio Labirinto da Parede!
Perguntas
Selecione uma ligação abaixo para aceder ao questionário da aula.
Google Doc / .docx / .pdf