Skip to main content

Lição 1: O que é um sensor de para-choque?

Nesta lição, você aprenderá o que é um sensor e por que usaria sensores com um robô de RV. O primeiro sensor que você aprenderá é o Bumper Sensor. Você aprenderá como o Bumper Sensor funciona e como usar os VR Robot Bumper Sensors em um projeto VEXcode VR Python.

Resultados de Aprendizagem

  • Identificar que o Bumper Sensor é um tipo de interruptor que pode reportar quando pressionado ou não pressionado.
  • Identifique se o sensor de pára-choques pode ser usado para causar uma ação do robô VR quando pressionado ou não pressionado.
  • Identifique que left_bumper.pressed e right_bumper.pressed  são comandos que relatam um valor booleano sobre o sensor do para-choque.
  • Descreva porque é que o Sensor de Para-choques seria usado num projeto.

Aplicar

Os sensores são essenciais para a robótica. Para que um robô VR seja realmente considerado um robô, ele deve ser capaz de sentir e interagir com seu ambiente. Isso é comumente referido como o ciclo de decisão do Sense → Think → Act.

Um diagrama que mostra um ciclo contínuo com três estágios conectados por setas. A primeira etapa, denominada Sentido, inclui o texto Sentir o Ambiente, indicando que o processo começa com a coleta de informações do entorno. Passando para a próxima etapa, chamada Pense, o texto diz Tomar decisões com base nos dados do sensor do ambiente, sugerindo que essa etapa envolve o processamento das informações detectadas para tomar decisões. A etapa final, denominada Act, inclui o texto Realizar Decisões, mostrando que as ações são tomadas com base nas decisões. As setas criam um loop, retornando o processo de volta ao estágio Sentido, representando um ciclo contínuo de sentir, pensar e agir.

Um Robô de RV usa sensores para coletar dados de seu entorno (Sentido),  tomar decisões com base nessas informações (Pensar) e transformar essas informações em instruções para comportamentos (Agir).

Os sensores permitem que um Robô VR interaja com o seu ambiente e permitem que o utilizador crie projetos mais dinâmicos. Esses projetos dinâmicos exigem um robô de RV para interagir e responder a ambientes em mudança.

O sensor do para-choques

Nesta Unidade, irá utilizar o Sensor de Para-choques, um sensor que pode detetar o contacto físico. O Sensor de Para-choques é usado para informar um Robô VR quando ele faz contato com um objeto ou parede. Um Robô VR pode então usar as informações relatadas do Sensor do Para-choque Esquerdo ou Direito para tomar decisões.

O Robô VR possui dois Sensores Pára-choques localizados na frente.

Uma vista frontal do robô VR. Os dois sensores de pára-choques na frente são destacados com caixas vermelhas.

Um sensor de pára-choques é um interruptor que informa se está pressionado ou não.

  • O Sensor do Para-choque informará um valor do sensor de Verdadeiro quando o Sensor do Para-choque for pressionado.
  • O Sensor do Para-choque informará um valor do sensor de Falso quando o Sensor do Para-choque não for pressionado.

O Sensor de Pára-choques é pressionado pelas paredes do Wall Maze Playgroundou pelas paredes exteriores que rodeiam outros Playgrounds.

O robô de realidade virtual no playground do Labirinto da Parede. O robô está a olhar para uma parede à sua frente, indicando que terá de se virar para poder avançar.

Leia o artigo Sensor de pára-choques - Características do robô - VEX VR para obter informações detalhadas sobre o funcionamento do sensor de pára-choques.

Comandos Prensados do Para-choques

O Sensor de Para-choques é usado para determinar se o Robô VR está a tocar num objeto ou parede. Esses dados podem então ser usados em um projeto para que o Robô VR possa tomar uma decisão quando o Sensor de Para-choque for pressionado. 

Utilize os comandos left_bumper.pressed e right_bumper.pressed num projeto de texto para verificar o estado do sensor de pára-choques.

Left_bumper.pressed e right_bumper.pressed são comandos booleanos do repórter, que reportam True se o Bumper estiver pressionadoe False se estiver não pressionado.

Dois comandos pressionados no para-choque são escritos em duas linhas para mostrar a diferença entre o para-choque esquerdo ou direito. Na linha superior, o comando lê o ponto do para-choque de sublinhado direito pressionado (). Na linha inferior, o comando lê o ponto do para-choque de sublinhado esquerdo pressionado ().

Os comandos left_bumper.pressed e right_bumper.pressed são normalmente utilizados com uma estrutura de controlo, como um ciclo while , para que o robô VR possa utilizar os dados do Sensor de pára-choques para tomar uma decisão. Você aprenderá mais sobre os loops while na próxima lição. 

O Sensor de Para-choque e o Problema do Labirinto de Parede

Pensando no Problema do Labirinto de Parede, o objetivo é fazer com que o Robô VR dirija enquanto o Sensor de Para-choque não estiver pressionado. Quando o Sensor de Para-choques é pressionado, o Robô VR atinge uma parede e, em seguida, precisa parar ou girar para continuar no labirinto. 

No exemplo a seguir, o Robô VR avançará a partir do local de partida, até que o Para-choque Esquerdo seja pressionado quando atingir a parede oposta. Assim que o Para-choque Esquerdo for pressionado, o Robô VR parará de dirigir. 

Ficheiro de vídeo

Você notará que o Painel exibe o valor que o Sensor de Para-choques está relatando em tempo real à medida que o projeto é executado. Quando o Sensor do Para-choques não é pressionado, o valor é relatado como Falso.

# Adicione o código do projeto em "" main"
def main():
	while notleft_bumper.pressed ()
		: 		drivetrain.drive (FORWARD)
		wait(5, MSEC
	) 	drivetrain.stop ()

# VR threads - Do not delete
vr_thread(main())
O Wall Maze Playground, que mostra o painel do Playground e o robô de RV, está na posição inicial, sem tocar em nenhuma das paredes. Os sensores do pára-choques no painel do playground são destacados com uma caixa vermelha, relatando False, dizendo que ambos não estão sendo pressionados.

Quando o Sensor do Para-choque é pressionado e o Robô VR está contra a parede, o valor é relatado como Verdadeiro.

# Adicione o código do projeto em "" main"
def main():
	while notleft_bumper.pressed ()
		: 		drivetrain.drive (FORWARD)
		wait(5, MSEC
	) 	drivetrain.stop ()

# VR threads - Do not delete
vr_thread(main())
O Wall Maze Playground mostra o painel do Playground quando a frente do robô de RV está tocando uma parede. Os sensores de pára-choques no painel do playground são destacados com uma caixa vermelha, relatando True, dizendo que ambos estão sendo pressionados.

Você pode usar o Painel a qualquer momento para ajudar a visualizar os dados do sensor durante a execução do seu projeto. Observe que o Painel pode ser ocultado e reaberto a qualquer momento, conforme mostrado neste vídeo. No videoclipe abaixo, o menu de hambúrguer no canto superior esquerdo da janela do Playground é selecionado para exibir o botão Painel abaixo dele. O botão Dashboard é então selecionado e o Dashboard é aberto. Este processo é repetido para fechar o Painel.

Ficheiro de vídeo

Perguntas

Selecione uma ligação abaixo para aceder ao questionário da aula.

Google Doc / .docx / .pdf