Skip to main content

Lição 2: Usando blocos de comparação e condução até perto

Nesta lição, você criará um projeto que navega o robô de RV até a letra ‘A‘ usando o sensor de distância com o bloco repórter <Less than> booleano. No mini-desafio, você aplicará essas habilidades para navegar desde o início do Labirinto da Parede até o número '1'.

Uma vista de cima para baixo do labirinto da parede com a letra A em destaque em uma caixa vermelha, perto da posição inicial do robô VR.

Resultados de Aprendizagem

  • Identifique que o <Greater than> bloco é um bloco booleano que informa se o primeiro valor é maior que o segundo valor.
  • Identifique que o <Less than> bloco é um bloco booleano que informa se o primeiro valor é menor que o segundo valor.
  • Identifique que os <Less than> blocos <Greater than> ou relatam um valor VERDADEIRO ou FALSO em um bloco [Aguarde até].
  • Descreva como criar um projeto que tenha uma unidade de Robô VR até que o valor do Sensor de Distância seja inferior a um valor limite de 50 milímetros (mm).

Nomeie e guarde o projeto

  • Inicie um novo projeto no VEXcode VR e nomeie o projeto Unit5Lesson2. Lembre-se de que você pode usar blocos VEXcode, blocos Switch ou uma combinação de ambos os tipos de blocos para o seu projeto. 
Barra de ferramentas VEXcode VR com o botão "Nome do projeto" destacado numa caixa vermelha, à esquerda do botão Select Playground. O nome do projeto está definido como Unidade 5 Lição 2.

Use o sensor de distância para evitar paredes

  • Arraste o bloco [Drive] para o espaço de trabalho.
    O VEXcode VR bloqueia o projeto, começando com um bloco When Started com um bloco Drive Forward abaixo dele. Há uma caixa vermelha destacando o bloco Drive Forward.
  • Anexe um bloco [Aguarde até] abaixo do bloco [Drive].
    O mesmo VEXcode VR bloqueia o projeto como antes, mas agora com um bloco Wait Until na parte inferior destacado com uma caixa vermelha. O projeto completo lê When Started, Drive Forward e Wait Until. O parâmetro do bloco Aguarde até que esteja vazio.

Este projeto usará o Sensor de Distância para navegar pelo Parque Infantil do Labirinto da Parede sem esbarrar nas paredes. Você usará o bloco (Distância de) dentro do bloco <Less than> booleano neste projeto.

Os <Less than>, <Greater than>, e <Equal to> são blocos de comparação - eles comparam valores. Eles também são blocos reportadores booleanos que relatam um valor VERDADEIRO quando a condição de comparação é atendida e FALSO quando a condição NÃO é atendida.

  • <Less than> relata VERDADEIRO quando o primeiro valor é menor que o segundo valor e FALSO quando o primeiro valor é maior ou igual ao segundo valor.
    VEXcode VR Less Than boolean block, com a leitura '25 less than 50'.
  • <Greater than> relata VERDADEIRO quando o primeiro valor é maior que o segundo valor e FALSO quando o primeiro valor é menor ou igual ao segundo valor.
    VEXcode VR Greater Than boolean block, onde se lê '100 greater than 50'.
  • <Equal to> relata VERDADEIRO quando os dois valores são exatamente os mesmos e FALSO quando não são.
    VEXcode VR Equal To boolean block, lendo '50 igual a 50'.

Os blocos de comparação podem aceitar decimais, inteiros ou blocos numéricos. Eles também aceitam blocos de repórteres redondos, como o bloco (Distância de). O bloco (Distância de) pode ser com um bloco de comparação ao usar o Sensor de Distância em um projeto.

Neste exemplo, o bloco reportará VERDADEIRO quando a distância de um objeto e do Sensor de Distância em um Robô VR for inferior a 50 milímetros (mm).

VEXcode VR Less Than boolean block with a Distance From block inside of it, reading 'Front Distance in millimeters less than 50'.

  • Arraste o bloco <Less than> Booleano para o bloco [Aguarde até].
  • Coloque o bloco redondo (Distância de) dentro do bloco repórter booleano
    Projeto VEXcode VR Blocks que reúne as etapas anteriores. Todo o projeto agora lê When Started, Drive Forward and Wait Until Front Distance em milímetros é inferior a 50. Uma caixa vermelha destaca o bloco booleano Less Than.
  • O bloco [Aguarde até] manterá o robô VR avançando até que a condição seja atendida e a distância relatada seja inferior a 50 milímetros (mm). Em seguida, o projeto passará para o próximo bloco da pilha, que será o bloco [Stop driving].
    Um diagrama que visualiza o fluxo de lógica no projeto VEXcode VR Blocks. O projeto começa dirigindo para a frente e mantém esse comando até que a distância do sensor de Distância Frontal em milímetros seja inferior a 50, após o que um bloco Parar de Dirigir termina o comando Dirigir para a frente.
  • Um bloco [Stop driving] é necessário após o bloco [Wait until] porque o robô VR continuará a dirigir até que seja instruído a parar. Adicione um bloco [Stop driving] ao projeto.
    O VEXcode VR bloqueia o projeto de antes com um bloco Parar de Dirigir adicionado após o bloco Esperar Até. Todo o projeto agora diz: Quando iniciado, Dirija para frente e aguarde até que a distância da frente em milímetros seja inferior a 50, após o que pare de dirigir.
  • 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 e pare quando o Sensor de Distância informar que está a menos de 50 milímetros (mm) da parede.
    Uma vista de cima para baixo do labirinto da parede com a letra A perto da posição inicial do robô VR. O robô VR avançou agora como resultado do projeto Blocks.
  • Usando o <Less than> bloco com o bloco (Distância de) dentro do bloco [Aguarde até], instrua o Robô VR a esperar até que esteja a menos de 50 milímetros (mm) da parede antes de parar.
  • Redefina o Playground para mover o Robô VR de volta à posição inicial.

Usando Blocos de Interruptor

Nesta lição, você aprendeu sobre os blocos <Greater than> <Less than>, e <Equal to> Booleano. A imagem abaixo mostra os blocos de comparação do Switch Boolean. Para que um bloco booleano Switch funcione como pretendido, as funções do Switch Python devem ser inseridas com a ortografia e pontuação corretas. 

Observe que o <Equal to> bloco Switch usa dois sinais iguais (==). Isso ocorre porque, em Python, um sinal de igual (=) representa uma atribuição de um valor (por exemplo, x = 10), enquanto dois sinais de igual (==) verificam se dois valores são iguais. Certifique-se de usar dois sinais de igual ao usar o <Equal to> bloco Switch. 
A comparison of three VEXcode VR boolean blocks and their corresponding switch blocks. The Less Than block is written in Python as '25 < 50', the Greater Than block is written in Python as '100 > 50', and the Equal To block is written in Python as '50 == 50'. A red box highlights the double equal signs in the last example, demonstrating how to compare two values as equal in Python.

Você também viu um exemplo de projeto em que o Robô VR avançará até que a distância relatada seja inferior a 50 milímetros (mm) de um objeto. Então, o Robô VR irá parar. O projeto à direita mostra os comandos Python correspondentes dentro de um bloco Switch. O comando, embora não front_distance.get_distance(MM) < 50, diz ao robô para verificar se a distância relatada é inferior a 50 MM de um objeto.

A próxima linha de código recuada, wait (5, MS), pausa o código por 5 milissegundos. O comando que verifica se a distância informada é inferior a 50 MM de um objeto aguardará 5 MS antes de verificar a condição novamente. 

Uma comparação do nosso projeto VEXcode VR, com o bloco Wait Until convertido em um bloco de switch no lado direito. O novo bloco switch lê em Python 'while not front_distance.get_distance(MM) < 50: wait(5, msec)'.

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