Lição 2: Usando Operadores de Comparação
Nesta Lição, você se debruçará sobre os operadores de comparação e os utilizará em um projeto com dados do Sensor de Distância. De seguida, irá criar um projeto que navega o Robô VR até à letra 'A' utilizando o Sensor de Distância com while loops e o operador maior que (>). No mini-desafio, você aplicará essas habilidades para navegar desde o início do Labirinto da Parede até o número '1'.

Resultados de Aprendizagem
- Identifique que maior que (>), menor que (<) e igual a (==) são operadores de comparação que comparam dois valores, conhecidos como operandos.
- Identifique que o operador maior que (>) compara dois valores e informa Verdadeiro se o valor à esquerda for maior que o valor à direita.
- Identifique que o operador less than (<) compara dois valores e informa True se o valor à esquerda for menor que o valor à direita.
- Identifique que os operadores maior que (>) ou menor que (<) reportam um valor Verdadeiro ou Falso quando utilizados como condição num ciclo while .
- Descreva como criar um projeto que tenha uma unidade de Robô VR até que o valor do Sensor de Distância seja menor que um determinado valor.
Operadores de comparação
Os operadores menor que (<), maior que (>) e igual a (==) comparam dois valores, também conhecidos como operandos. O valor à esquerda do operador é o primeiro operando e o valor à direita é o segundo operando. Os operadores relatam valores booleanos e retornam um valor True quando a comparação está correta e False quando a comparação NÃO está correta.
- Nesses exemplos, usando o operador less than (<), quando a instrução estiver numericamente correta, ela reportará True.

- Da mesma forma, nesses exemplos, usando o operador maior que (>), a declaração numericamente correta relatará Verdadeiro.

- O operador igual a (==) informa Verdadeiro quando os dois valores são exatamente iguais e Falso quando não são.
- Observe que o sinal de duplo igual significa "igual a" e compara os dois valores. Um único sinal de igual é um operador de atribuição que atribui um valor a uma variável.
Os operadores de comparação podem comparar decimais, inteiros ou comandos de relatórios numéricos.
Usando Operadores de Comparação com Dados do Sensor de Distância
Os operadores de comparação são particularmente úteis quando você está usando dados numéricos de um sensor, como o Sensor de Distância, para fazer com que o Robô VR tome uma decisão. Na unidade anterior, os dados do sensor do para-choque foram usados para fazer o robô VR girar quando o sensor do para-choque foi pressionado. No entanto, com um operador de comparação, podemos usar dados do sensor de distância para fazer o robô VR girar em um local mais preciso. Isso é útil para evitar colidir com paredes ou para fazer com que o robô de RV navegue até um local específico em um playground.
Os dados do Sensor de Distância podem ser usados como um dos valores no operador de comparação.
front_distance.get_distance(MM) > 50Por exemplo, se quiséssemos que o robô VR se dirigisse para um objeto, como uma parede, e parasse quando estivesse próximo do objeto, poderíamos fazê-lo utilizando um operador de comparação e a função get _distance. Essencialmente, estamos pedindo ao Robô VR para dirigir enquanto a distância entre o robô e o objeto é maior do que um valor limite, como 50 milímetros (mm).
Enquanto o Sensor de Distância informa que é maior que 50 milímetros (mm), ou o valor é maior que (>) 50, o Robô VR pode dirigir livremente. Quando o Sensor de Distância informa que está mais próximo que 50 milímetros (mm), ou o valor não é maior que (>) 50, o Robô VR precisa parar ou girar antes de colidir com a parede.
Para sua informação
Escolher qual operador de comparação usar pode ser uma escolha estilística. O operador maior que (>) foi usado no exemplo acima para tornar o projeto o mais claro e legível possível. Enquanto o robô VR estiver a uma distância superior a 50 milímetros, siga em frente. Você pode atingir o mesmo objetivo invertendo a ordem dos valores no operador e usando um operador menor que (<).
enquanto 50 > front_distance.get_distance(MM):Aqui, o Robô VR dirigiria enquanto 50 milímetros eram maiores do que o valor relatado pelo Sensor de Distância. O Robô VR executaria o mesmo comportamento, no entanto, o projeto é um pouco menos claro e legível.
Dependendo dos dados do sensor que você está usando, o operador igual a (==) pode não fazer com que o Robô VR funcione como você pretendia. Por exemplo, se o objetivo é fazer com que o Robô VR pare a 50 milímetros de um objeto, você pode pensar em usar o operador igual a (==).
while front_distance.get_distance(MM) == 50:No entanto, no Labirinto de Parede, por exemplo, usar um operador igual a (==) com o Sensor de Distância exigiria uma leitura tão precisa do sensor, para ser exatamente 50 milímetros, que a velocidade do Robô VR tornaria quase impossível obter esse nível de precisão em tempo real. Assim, o Robô VR provavelmente continuaria ultrapassando o limite, porque se ele está relatando um valor de 100 milímetros ou 25 milímetros, nenhum deles é igual a 50 mm, então o operador nunca relata como Verdadeiro.
Operadores de Comparação e o Problema do Labirinto de Parede
Um loop enquanto pode ser utilizado com operadores de comparação e o sensor de distância, para que o robô VR verifique continuamente os dados do sensor e avalie a comparação. Isso pode permitir que o Robô VR execute um comportamento enquanto um valor está acima ou abaixo de um certo limite. No Labirinto de Parede, o resultado desejado é fazer com que o Robô VR avance enquanto o Sensor de Distância estiver a mais de 50 milímetros (mm) da parede. Em seguida, ele deve parar ou girar para continuar pelo labirinto.
def main():
while front_distance.get_distance(MM) > 50:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()Neste exemplo de videoclipe, o ciclo while no projeto apresentado à esquerda manterá o Robô VR a avançar a partir do local inicial, desde que a condição seja satisfeita e a distância entre o Robô VR e o objeto mais próximo (a primeira parede oposta) é reportado como superior a 50 milímetros (mm). O robô então para quando se aproxima da primeira parede e a distância relatada é inferior a 50 mm.
Esta imagem explica o fluxo do projeto acima:
- Enquanto o Sensor de Distância estiver a mais de 50 milímetros (mm) da parede, o operador informa True e permanece no loop enquanto
- Quando está a menos de 50 milímetros (mm) da parede, o operador reporta False e sai do loop while .

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