O que é um sensor de visão? -Píton
Caixa de ferramentas do professor
-
O objetivo desta página
Esta página irá apresentar aos alunos o que é um sensor de visão e algumas das suas características. Os alunos irão então analisar uma imagem parcial de um projeto de exemplo para ver como o Sensor de Visão pode ser utilizado com o VEXcode V5.
As questões Motivar Discussão na parte inferior da página podem ser respondidas como uma discussão em turma ou individualmente nos cadernos de engenharia dos alunos.
Motivar a discussão
P: Que tipos de trabalhos humanos beneficiariam da ajuda de um robô com sensor de visão?
A: Preste atenção a trabalhos humanos que beneficiariam da capacidade de ver ambientes e/ou manipular ambientes a distâncias remotas (por exemplo, observar animais na natureza, desarmar explosivos ou realizar cirurgias assistidas por robôs).
Q: Nomeie um dispositivo e descreva como utiliza a entrada, a saída e o processo.
A: Uma resposta possível pode ser uma calculadora que recebe as sequências de números e operadores matemáticos que uma pessoa introduz, processa esses números e operações para calcular um resultado e, em seguida, exibe esse resultado num ecrã para a pessoa.
P: Porque é que acha que foi utilizado um loop para sempre no projeto apresentado?
A: Foi utilizado um loop para sempre para que o Sensor de Visão verifique continuamente os vários instantâneos tirados para ver se um objeto vermelho aparece no campo de visão do sensor.
Descrição
O Sensor de Visão permite que o seu robô recolha dados visuais de uma transmissão em direto. Uma transmissão em direto é uma transmissão em streaming do que uma câmara de vídeo está a captar. O Sensor de Visão é como uma câmara inteligente que pode observar, selecionar, ajustar e armazenar cores e objetos que aparecem no seu campo visual.
Capacidades:
- Este sensor pode ser utilizado para reconhecer cores e padrões de cor.
- Este sensor pode ser utilizado para seguir um objeto.
- Este sensor pode ser utilizado para recolher informações sobre o ambiente.
O Sensor de Visão permite que o robô utilize dados de entrada visuais do seu ambiente. O projeto pode então determinar como os dados visuais de entrada devem afetar o comportamento do robô. Por exemplo, o robô poderia realizar ações (saída), como rodar motores ou exibir resultados no ecrã LCD.
O Sensor de Visão também pode capturar um instantâneo do que está à sua frente e analisá-lo de acordo com o que o utilizador está a perguntar. Por exemplo, um utilizador pode recolher dados do instantâneo, como por exemplo qual é a cor do objeto? Existe algum objeto detetado? Qual é o tamanho do objeto (largura e altura)?
O robô pode então tomar decisões com base nesses dados. O exemplo de projeto parcial abaixo mostra como é feito. Três cores são verificadas repetidamente após o início do projeto e cada verificação de cor é um evento diferente. Apenas o evento que verifica Azul é mostrado abaixo. Esta pilha faz com que o robô imprima "Objeto Azul Encontrado" se for detetado um objeto azul ou "Nenhum Objeto Azul" caso contrário. Os eventos check_red e check_green não apresentados abaixo têm stacks semelhantes para decidir o que imprimir no ecrã.
# Library imports
from vex import *
# Begin project code
check_red = Event()
check_blue = Event()
check_green = Event()
def check_blue_callback():
brain.screen.set_font(FontType.MONO40)
brain.screen.clear_row(1)
brain.screen.set_cursor(1, 1)
# Take a snapshot with the Vision Sensor and store vision data into a variable
vision_5_objects = vision_5.take_snapshot(vision_5__BLUEBOX)
# Check the variable to see if the snapshot detected any blue objects
if (vision_5_objects):
brain.screen.print("Blue Object Found")
else:
brain.screen.print("No Blue Object")
# System Event Handlers
check_blue(check_blue_callback)
#add 15ms delay to make sure events are registered correctly
wait(15, MSEC)
while True:
check_blue.broadcast_and_wait()
check_red.broadcast_and_wait()
check_green.broadcast_and_wait()
wait(0.1,SECONDS)
wait(5, MSEC)