Utilização do Sensor de Visão - Python
Caixa de ferramentas do professor
-
O objetivo desta secção
A utilização eficaz do Sensor de Visão exige que os alunos sejam capazes de o configurar e ajustar consoante o ambiente em que se encontra. Na atividade seguinte, os alunos vão aprender como fazer as duas coisas.
Para obter mais informações sobre como programar o Sensor de Visão com o VEXcode V5, visite as informações de ajuda no VEXcode V5 para Pythonou consulte a secção V5 da Biblioteca VEX.
A seguir, é apresentado um esboço do que os seus alunos farão nesta atividade:
-
Abra o projeto de exemplo Detetar Objetos (Visão).
-
Configure o sensor de visão.
-
Execute o projeto de exemplo Detetar Objetos (Vision).
-
Discuta e reflita.
-
Sintonize o sensor de visão.
Dicas para professores
Se esta for a primeira vez que o aluno utiliza o VEXcode V5, poderá aceder a muitos artigos úteis na Biblioteca VEX.
Dicas para professores
a
utilizando o preenchimento automático
O preenchimento automático é uma funcionalidade do VEXcode V5 que prevê o resto do comando que está a escrever. À medida que os alunos trabalham no VEXcode V5, incentive-os a utilizar a funcionalidade Autocomplete para ajudar com a sintaxe do Python. Poderá notar uma função de preenchimento automático ao começar a digitar o comando. Utilize as teclas “Para cima” e “Para baixo” para selecionar o nome pretendido e prima “Tab” ou (Enter/Return) no teclado para fazer a seleção. Para mais informações sobre como utilizar o preenchimento automático consulte este artigo.
Obtenha o hardware necessário, o seu portátil de engenharia e abra o VEXcode V5.
Quantidade | Materiais necessários |
---|---|
1 |
Kit de iniciação para sala de aula VEX V5 |
1 |
VEXcode V5 (versão mais recente, Windows, macOS) |
1 |
Caderno de Engenharia |
1 |
Configurar um Sensor de Visão (Biblioteca VEX) |
1 |
Ajustar o Sensor de Visão (Biblioteca VEX) |
1 |
Projeto de exemplo de deteção de objetos (Visão) |
Esta atividade dar-lhe-á as ferramentas para utilizar o Sensor de Visão.
Pode utilizar as informações Help dentro do VEXcode V5 para aprender sobre os comandos.
Passo 1: Abra um projeto de exemplo
O VEXcode V5 contém muitos exemplos de projetos diferentes. Utilizará um deles nesta exploração.
Abra o projeto de exemplo Detecting Objects (Vision) concluindo os seguintes passos:
- Abra o menu Ficheiro.
- Selecione Exemplos abertos.
- Utilize a barra de filtros na parte superior da aplicação e selecione “Sensing”.
Selecione e abra o projeto de exemplo Detecting Objects (Vision).
Guarde o seu projeto como Detetar Objetos.
- Verifique se o nome do projeto Detecting Objects está agora na janela no centro da barra de ferramentas.
Dicas para professores
-
Certifique-se de que os alunos selecionaram Exemplos Abertos no menu Ficheiro.
-
Certifique-se de que os alunos selecionaram o projeto Detetar Objetos (Visão) Exemplo. Pode salientar aos alunos que existem diversas seleções para escolher na página Exemplos Abertos.
-
Pode pedir aos alunos que adicionem as suas iniciais ou o nome do grupo ao nome do projeto. Isto ajudará a diferenciar os programas se pedir aos alunos que os enviem.
-
Como o VEXcode V5 tem auto-save, não há necessidade de guardar o projeto novamente após este ter sido guardado pela primeira vez.
-
Se os alunos precisarem de ajuda para poupar, encaminhe-os para um destes artigos:
Passo 2: configurar e utilizar o sensor de visão
- Comece a ler Vision Sensor - Robot Config - VEXcode V5.
- De seguida, leia Ajustes do sensor de visão-Configuração do robô-VEXcode V5
- A seguir, configure o Sensor de Visão para três objetos coloridos: vermelho, verde e azul.
Abra o projeto de exemplo de deteção de objetos (Vision) guardado anteriormente.
Como está a ser utilizado o Sensor de Visão neste projeto? Preveja o que acontecerá quando o projeto for executado e anote as previsões no seu caderno de engenharia.
# Library imports
from vex import *
# Begin project code
check_red = Event()
check_blue = Event()
check_green = Event()
# Will check to see if there is a blue object in view of the vision
# sensor and display the result on line 1 on the V5 Brain's screen
def has_blue_callback():
brain.screen.clear_row(1)
brain.screen.set_cursor(1, 1)
vexcode_vision_5_objects = vision_5.take_snapshot(vision_5__BLUEBOX)
if vexcode_vision_5_objects and len(vexcode_vision_5_objects) > 0:
brain.screen.print("Blue Object Found")
else:
brain.screen.print("No Blue Object")
# Will check to see if there is a red object in view of the vision
# sensor and display the result on line 3 on the V5 Brain's screen
def has_red_callback():
brain.screen.clear_row(3)
brain.screen.set_cursor(3, 1)
vexcode_vision_5_objects = vision_5.take_snapshot(vision_5__REDBOX)
if vexcode_vision_5_objects and len(vexcode_vision_5_objects) > 0:
brain.screen.print("Red Object Found")
else:
brain.screen.print("No Red Object")
# Will check to see if there is a green object in view of the vision
# sensor and display the result on line 5 on the V5 Brain's screen
def has_green_callback():
brain.screen.clear_row(5)
brain.screen.set_cursor(5, 1)
vexcode_vision_5_objects = vision_5.take_snapshot(vision_5__GREENBOX)
if vexcode_vision_5_objects and len(vexcode_vision_5_objects) > 0:
brain.screen.print("Green Object Found")
else:
brain.screen.print("No Green Object")
# register event handlers
check_blue(has_blue_callback)
check_red(has_red_callback)
check_green(has_green_callback)
# small delay to ensure that the event handlers are ready to be used
wait(15, MSEC)
# set the print font for all future prints to the V5 screen
brain.screen.set_font(FontType.MONO40)
# constantly runs to check for new sensor data
while True:
check_blue.broadcast_and_wait()
check_red.broadcast_and_wait()
check_green.broadcast_and_wait()
wait(0.1, SECONDS)
- Descarregue e execute o projeto. Coloque objetos de cores diferentes em frente ao Sensor de Visão e observe o comportamento do robô. Registe no seu caderno de engenharia como a sua previsão foi diferente ou correta em comparação com o que realmente observou no projeto.
Dicas para professores
Os três objetos coloridos não têm de ser cubos, podem ser qualquer objeto verde, vermelho e azul relativamente pequeno.
Motivar a discussão
-
respostas
Promova uma discussão em sala de aula para que os alunos partilhem o que previram que este projeto fará nos seus cadernos de engenharia e reflitam também sobre como configurar o Sensor de Visão.
Facilite a discussão colocando as seguintes questões:
-
Quais são os passos para configurar o Sensor de Visão?
-
O que faz a estrutura if else?
-
O que aconteceria à forma como o Sensor de Visão deteta objetos se mudássemos de quarto?
As respostas irão variar:
-
Os alunos devem observar que o nome do objeto terá de ser decidido. O objeto deve ser colocado na moldura do Sensor de Visão e imobilizado através do botão “Congelar”. A cor será então selecionada e configurada através do botão "Definir". Os alunos deverão delinear os passos indicados no ponto do presente artigo.
-
A estrutura if else executa as instruções dentro da primeira ou segunda parte de if else com base no valor booleano reportado. Mais informações sobre como utilizar esta instrução podem ser encontradas nas informações de Ajuda.
-
Se o Sensor de Visão fosse solicitado para detetar objetos num ambiente diferente, a iluminação poderia mudar e as cores dos objetos poderiam parecer diferentes. Isto pode dificultar a deteção de objetos pelo Sensor de Visão.
Amplie a sua aprendizagem
-
Configure mais objetos
Escolha outros dois objetos coloridos para configurar, possivelmente branco, roxo, amarelo, etc...
Se os alunos precisarem de ajuda, consulte as informações Ajuda ou o artigo Configurar um sensor de visão V5.
Passo 3: Ajustando o Sensor de Visão
Muitas vezes um objeto é configurado para ser reconhecido pelo Sensor de Visão num ambiente, por exemplo, numa sala de aula. Quando o Sensor de Visão for levado para um ambiente diferente, como por exemplo um ambiente de competição, o objeto poderá não ser reconhecido pelo Sensor de Visão. Isto acontece muitas vezes devido a uma alteração na iluminação depois de o Sensor de Visão já ter sido configurado. Para resolver este problema, poderá ser necessário ajustar o seu sensor de visão.
- Comece por ler Ajustar o sensor de visão V5 no VEXcode V5.
- De seguida, ajuste o Sensor de Visão para os três objetos coloridos: vermelho, verde e azul.
Abra o projeto de exemplo Detecting Objects (Vision) guardado anteriormente.
Como é que o ajuste do Sensor de Visão afetará a capacidade de deteção de objetos? Leva o Clawbot para uma parte diferente da sala com mais ou menos luz.
- Descarregue e execute o projeto. Coloque objetos de cores diferentes em frente ao Sensor de Visão e observe o comportamento do robô. Documente no seu caderno de engenharia o quão bem o Sensor de Visão deteta objetos. O Sensor de Visão necessita de ser ajustado depois de mudar de local?
- Ajuste o Sensor de Visão conforme necessário. Teste o sensor de visão depois de ajustado para determinar se consegue detetar melhor os objetos e fazer os ajustes necessários.
Motivar a Discussão
-
Refletir sobre a Atividade
P: O Sensor de Visão detetou objetos como esperava?
A: As respostas variam; no entanto, o objetivo desta questão é promover o pensamento cognitivo. Os alunos devem notar que a capacidade do Sensor de Visão para detetar objetos pode mudar dependendo do ambiente e da luz.
P: Porque é importante poder ajustar o Sensor de Visão conforme necessário?
R: Embora as respostas possam variar, uma resposta comum deveria ser que se um robô utilizar um Sensor de Visão e for levado para uma competição ou mesmo utilizado num jogo ou desafio, o desempenho do robô dependerá da precisão do o Sensor de Visão. Ajustá-lo é importante para a precisão.
Amplie a sua aprendizagem
-
Vários objetos
Peça aos alunos para executarem o projeto Detetar Objetos (Visão) e colocarem mais do que um dos objetos configurados à frente do Sensor de Visão. O que acontece? Peça-lhes que documentem as suas descobertas no seu caderno de engenharia.
Peça agora aos alunos que coloquem um objeto configurado e um objeto desconhecido ou não configurado em frente ao Sensor de Visão. O que acontece? Peça-lhes que documentem as suas descobertas no seu caderno de engenharia.
Pergunte aos alunos antes de o testar, o que aconteceria se colocassem três objetos configurados em frente ao Sensor de Visão? Peça aos alunos que anotem as suas previsões antes de o testarem. Peça-lhes que registem as suas observações após testá-lo.
Promova uma discussão sobre o que os alunos previram e observaram.
Facilite a discussão perguntando:
- Quais foram as diferenças entre um, dois e três objetos?
- Ajustaria o projeto de alguma forma para reconhecer vários objetos?