Skip to main content
Portal do Professor

Utilização do Sensor de Visão - Python

Ícone da caixa de ferramentas do professor 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.

Ícone de dicas para professores 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

Ícone de dicas para professores 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.VEXcode V5 com a parte Drivetrain de um comando introduzido à esquerda e à direita, é mostrada uma lista de opções de preenchimento automático para esse comando que pode ser percorrida.

Obtenha o hardware necessário, o seu portátil de engenharia e abra o VEXcode V5.

Materiais necessários:
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.

O VEXcode V5 é apresentado com a caixa de ferramentas aberta na extremidade esquerda e a Ajuda para o comando Drive aberta na extremidade direita. A Ajuda mostra a definição do comando e informação sobre a forma como é utilizado.

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.

Barra de ferramentas VEXcode V5 com o menu Ficheiro aberto e Abrir exemplos destacados numa caixa vermelha. Abrir Exemplos é o quarto item de menu abaixo de Novo Desenho de Blocos, Novo Desenho de Texto e Abrir.

  • Utilize a barra de filtros na parte superior da aplicação e selecione “Sensing”.

Exemplo de janela de seleção de projeto no VEXcode V5 mostra o filtro Sensing selecionado na parte superior, destacado por uma caixa vermelha. Abaixo estão vários exemplos de ícones de projetos.

Selecione e abra o projeto de exemplo Detecting Objects (Vision).

O ícone do projeto de exemplo diz Detecting Objects Vision na parte inferior e mostra um ícone de robô com um sensor à esquerda e um esboço indicando a deteção à direita.

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.

Ícone de dicas para professores 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

A janela de configuração do Vision Sensor mostra a imagem de uma mão a segurar um cubo vermelho à esquerda, com uma sobreposição no cubo e as palavras REDBOX e W142 H142 por cima. À direita, estão definidas três assinaturas de cores para BlueBox, Redbox e Greenbox.

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.

Ícone de dicas para professores 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.

Ícone Motivar Discussão 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:

  1. Quais são os passos para configurar o Sensor de Visão?

  2. O que faz a estrutura if else?

  3. O que aconteceria à forma como o Sensor de Visão deteta objetos se mudássemos de quarto?

As respostas irão variar:

  1. 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.

  2. 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.

  3. 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.

Ícone Amplie a sua aprendizagem Amplie a sua aprendizagem - Configure mais objetos

Escolha outros dois objetos coloridos para configurar, possivelmente branco, roxo, amarelo, etc...

Janela de configuração do Vision Sensor que mostra o instantâneo à esquerda com uma mão a segurar uma engrenagem amarela. Existe uma sobreposição quadrada na engrenagem amarela e os dados indicam Caixa amarela, X90 y 62, w102, h 98. À direita estão definidas as assinaturas de cor para Bluebox, Redbox, Greenbox e Yellowbox.

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.

Janela de configuração do Vision Sensor com uma mão segurando um cubo vermelho com uma sobreposição sobre o cubo e texto lendo redbox e x84 y 28 depois w 158 h 166. À direita, as assinaturas de cor Bluebox, Redbox e Greenbox são definidas com um deslizador destacado numa caixa vermelha com o mostrador definido para 4.4.

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.

V5 Clawbot num campo com o braço descaído e a garra aberta em torno de uma caixa roxa.

  • 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.

Ícone Motivar Discussão 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.

Ícone Amplie a sua aprendizagem 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.

Interface do Vision Sensor Utility mostrando duas mãos a segurar uma Greenbox e uma Redbox na janela da esquerda. Cada cubo colorido possui uma sobreposição de dados. À direita, as subscrições da Bluebox, Redbox, Greenbox e Yellowbox estão todas definidas.

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?