Skip to main content

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. Peça de seleção Parede Labirinto Playground.
  • Nomeie o projeto como Unit5Lesson2.
    A barra de ferramentas VEXcode VR e a caixa de diálogo do nome do projeto no centro lê Unidade 5 Lição 2.
  • 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).Uma vista de cima para baixo do Wall Maze Playground com o robô VR parou em frente à primeira parede oposta ao local de partida.
  • 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’.
Uma vista de cima para baixo do Wall Maze Playground com o robô VR na posição inicial e três setas vermelhas mostrando o caminho desde o início até a letra A. A primeira seta se estende para a frente em direção à parede oposta, a segunda seta se estende de lá para a esquerda para enfrentar a próxima parede e a terceira se estende de lá para baixo até a 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.

    Uma vista de cima para baixo do Wall Maze Playground com o robô VR no local de partida na parte inferior central do Playground. A letra A está diretamente à esquerda do robô, separada por uma parede curta.

    • 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.