Skip to main content

Lição 3: Dirija para o número ‘31’

Nesta lição, o robô de RV dirigirá para o número ‘31‘ e depois voltará para o número ‘1’ no Playground do Mapa de Grade Numérica!

Uma visão de cima para baixo do playground do Mapa de Grade Numérica, com o número 31 destacado por uma caixa vermelha. O robô VR começa no número 1 e o quadrado do número 31 está três espaços acima dele.

Observe que o Robô VR estará viajando ao longo do eixo Y para se mover para o número ‘31’ no Playground do Mapa de Grade Numérica.

Uma vista de cima para baixo do playground do Mapa de Grade Numérica, com o espaço número 31 destacado por uma caixa preta. Uma linha indica medições através do eixo Y, com o primeiro espaço sendo -900 milímetros no eixo Y, e o próximo sendo -700 continuando a contar por 200 cada vez. O espaço número 31 está numa localização Y de -300 milímetros.

O Robô VR irá conduzir até ao local do número ‘31’ no Parque Infantil Number Grid Map. No entanto, antes que o Robô de RV possa navegar para esse número, o Robô de RV deve ser informado onde está a localização desse número. As coordenadas do número ‘31’ são (-900, -300).

Uma vista de cima para baixo do playground do Mapa de Grade Numérica, com dois indicadores de eixo marcando a localização do espaço número 31. O Robô VR começa em -900 X e -900 Y, enquanto o espaço número 31 está em -900 X e -300 Y.
  • Arraste o bloco sem espera [Drive] para o espaço de trabalho.

    Um novo projeto de blocos VEXcode VR que começa com um bloco When Started seguido por um bloco Drive Forward.
  • Anexe um bloco [Aguarde até] abaixo do bloco [Drive].

    Uma continuação do projeto de blocos VEXcode VR, agora com um bloco Wait Until adicionado após o bloco Drive Forward. Todo o projeto agora lê When Started, Drive Forward e Wait Until. O bloco Esperar até tem um parâmetro booleano vazio.
  • Arraste o bloco <Greater than> Boolean reporter para o bloco [Wait until].

    Uma continuação do projeto de blocos VEXcode VR, agora com um bloco Maior que inserido no bloco Esperar Até. Todo o projeto agora lê When Started, Drive Forward seguido por um bloco Wait Until com um bloco Greater Than que diz 'blank is Greater Than 50'.
  • Observe que o <Greater than> bloco é usado em vez do <Less than> bloco porque o Robô VR está subindo da parte inferior do Playground. O Robô VR começa com um valor Y de -900 milímetros (mm). À medida que o robô VR avança, os valores Y aumentam.

    A mesma visualização de cima para baixo do playground do Mapa de Grade Numérica com dois indicadores de eixo marcando a localização do espaço do número 31 anterior. O Robô VR começa em -900 X e -900 Y, enquanto o espaço número 31 está em -900 X e -300 Y.
  • Arraste o bloco (Posição do Robô) para dentro do <Greater than> bloco.

    Uma continuação do projeto de blocos VEXcode VR, agora com um bloco Position of Robot inserido no bloco Greater Than. Todo o projeto agora diz Quando iniciado, Dirija para frente e aguarde até que a posição X do robô em milímetros seja maior que 50.
  • Defina o parâmetro do bloco (Posição do Robô) para “Y” e o parâmetro do <Greater than> bloco para -300.

    Uma continuação do projeto de blocos VEXcode VR, agora com o eixo do bloco Position of Robot alterado de X para Y e o segundo parâmetro do bloco Greater Than alterado de 50 para -300. Todo o projeto agora diz Quando iniciado, Dirija para frente e aguarde até que a posição Y do robô em milímetros seja maior que -300.
  • Arraste um bloco [Stop driving] e adicione-o ao projeto.

    Uma continuação do projeto de blocos VEXcode VR, agora com um bloco Stop Driving adicionado abaixo do bloco Wait Until. Todo o projeto agora diz Quando iniciado, Dirija para frente e aguarde até que a posição Y do robô em milímetros seja maior que -300. Por último, pare de conduzir.
  • Inicie o Number Grid Map Playground se ainda não estiver aberto e execute o projeto.
  • Assista ao robô VR dirigir para o número ‘31’ no Playground Number Grid Map.

    Uma vista de cima para baixo do playground do Mapa de Grade Numérica com o robô VR descansando no espaço número 31.
  • Neste projeto, o robô VR dirige para o número ‘31’ no Number Grid Map Playground. Uma vez que os valores Y estão aumentando à medida que o Robô VR dirige para o número ‘31’, o projeto usa um <Greater than> bloco.
  • O Robô VR irá parar quando o seu valor Y for maior do que o valor Y da coordenada em que o número indicado está ligado. Como o valor Y do número ‘31’ é -300, o Robô VR parará de dirigir quando o valor Y for maior que -300.
Um diagrama que visualiza o fluxo de lógica no projeto VEXcode VR Blocks. O projeto começa com um bloco When Started e, em seguida, começa a dirigir para frente, e mantém esse comando até que a Posição da Posição Y do sensor do Robô em milímetros seja maior que -300, após o que um bloco Stop Driving termina o comando Drive Forward.

Usando Blocos de Interruptor 

Nesta lição, você aprendeu a usar o bloco VEXcode [Wait until] com uma condição booleana para comandar o robô a esperar até que ele atinja uma posição superior a -300 no eixo Y antes de passar para o próximo comportamento.

A imagem abaixo mostra o bloco VEXcode ao lado do bloco Switch contendo o comando Python para os mesmos comportamentos. 

Uma comparação de um bloco VEXcode VR Wait Until e seu bloco de switch correspondente. O bloco VR diz 'Aguarde até que a posição Y do robô em milímetros seja maior que -300'. O código Python do bloco switch diz 'while not location.position(Y, MM) > -300: wait(5, MSEC)'. O comando wait é recuado abaixo do while not.Dentro do bloco Switch, enquanto não location.position(Y, MM) > -300: é o primeiro comando Python que verifica se a posição do robô ao longo do eixo X é maior que -300.

O segundo comando recuado, wait (5, MSEC), pausa a execução do loop condicional por 5 milissegundos.

No VEXcode VR, é sempre adicionado um comando wait com o ciclo condicional. O objetivo do comando wait é garantir que o VEXcode VR pode executar corretamente o projeto conforme pretendido, devido à natureza baseada na web da plataforma VEXcode VR. O comando wait nunca deve ser eliminado quando se utiliza um ciclo condicional, ou o seu projeto pode não funcionar como esperado. 

Neste exemplo, o projeto verifica se a posição do robô é maior ou não do que um valor Y de -300 a cada 5 MS. Essa linha de código é recuada abaixo da primeira linha de código porque esse comando é o comportamento que se repetirá até que a condição (um valor de coordenada Y maior que -300) seja atendida. 

Selecione o botão Seguinte para continuar com o resto desta lição.