Lição 2: Dirija-se à letra 'A'
Usando o sensor de distância para evitar paredes
Agora que você aprendeu sobre o que são os operadores de comparação e como eles podem ser usados em um projeto, aplicará esse aprendizado para conduzir o robô de RV à letra 'A' no Wall Maze Playground. Este projeto usará o Sensor de Distância para navegar pelo Parque Infantil do Labirinto da Parede sem esbarrar nas paredes.
Nomeie e guarde o projeto
- Inicie um novo projeto de texto e selecione o Wall Maze Playground quando solicitado.
- Nomeie o projeto como Unit5Lesson2.
-
Arraste, digite ou copie um ciclo while e remova o comando Drivetrain que é preenchido como parte do novo modelo de projeto de Texto, para que o seu projeto fique assim. Note que o comando irá preencher um ciclo while com um comando wait dentro. Não remova o comando wait , isto irá garantir que o VR Robot executa o projeto corretamente.
def main(): while condition: wait(5, MS)
-
Arraste, digite ou copie o comando sem espera drive dentro do loop, para que o seu projeto fique assim.
def main(): while condition: drivetrain.drive(FORWARD) wait(5, MSEC)
- Verifique se o recuo está correto e se o comando drive está alinhado com o comando wait .
Adicione a função get_distance e o operador maior que
- Arraste ou digite o comando get_distance na 'condição' do ciclo while , para que o seu projecto fique assim. Digite o operador maior que e o segundo operando como '50.
-
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) aguarde(5, MS)
-
Adicione um comando stop fora do ciclo while, para que o seu projeto fique assim. É necessário um comando stop após o ciclo while porque o robô VR continuará a conduzir até ser instruído para parar.
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()
- Abra a janela do Playground se ainda não estiver aberta, certifique-se de que o Wall Maze Playground se abre e execute o projeto.
- Observe o Robô VR avançar até que o Sensor de Distância informe que a distância entre o Robô VR e a parede não é superior a 50 milímetros (mm).
- Redefina o Playground para mover o Robô VR de volta à posição inicial.
Continue o Projeto para Conduzir à Letra ‘A’
A utilização do operador maior que (>) com o comando get_distance como condição do ciclo while instrui o Robot VR a avançar até a distância entre o Robot VR e a parede é superior a 50 milímetros (mm). Assim que o Sensor de Distância relatar uma distância do Robô VR até a parede que não seja superior a 50 milímetros, o Robô VR parará de dirigir. Para continuar com a letra 'A', o Robô VR precisa girar quando se aproximar da parede.
Para dirigir com a letra ‘A’, o Robô VR precisará detectar duas paredes e virar à esquerda quando essas paredes forem detectadas. Em seguida, o Robô VR irá parar quando detectar a terceira parede, localizada atrás da letra ‘A’.
-
Substitua o comando stop por um comando turn_for , para que o seu projeto fique assim. O comando turn_for é necessário porque quando o sensor de distância estiver a 50 milímetros (mm) de uma parede, o robô VR irá virar à esquerda para continuar em direção à letra 'A'.
- Defina os parâmetros da curva para "ESQUERDA, 90 GRAUS".
def main(): while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES)
- Adicione outro while loop com um comando drive dentro abaixo do comando turn_for . Defina a condição utilizando o comando get_distance como o primeiro operando, o operador maior que e a constante '50' como o segundo operando.
enquanto front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) espera(5, MS)
- Por fim, adicione os seguintes comandos abaixo do segundo ciclo while para instruir o robô VR a detetar a parede final atrás da letra 'A' e, em seguida, parar de conduzir. Certifique-se de que o comando turn_for e o comando stop estão fora dos seus respectivos ciclos while .
drivetrain.turn_for(LEFT, 90, DEGREES) while front_distance.get_distance(MM) > 50: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop()
- Inicie o Wall Maze Playground, se ainda não estiver aberto, e execute o projeto.
- Observe o Robô VR dirigir desde o início do Labirinto de Parede até a letra ‘A‘ e, em seguida, pare.
- Observe que o robô VR não esbarra em nenhuma parede enquanto dirige à letra ‘A‘. Quando o valor do Sensor de Distância informa que o Robô VR não está a mais de 50 milímetros (mm) da parede, o Robô VR é instruído a girar ou parar no projeto.
Selecione o botão Seguinte para continuar com o resto desta lição.