16 Comentários

Aplicação Da Visão Computacional Para Obtenção Da Resistência Em Resistores De Quatro Faixas

Os resistores são componentes eletroeletrônicos utilizados com frequência, estando presentes desde dispositivos eletrônicos até quadros de comandos industriais, sua operação consiste realizar a oposição a passagem da corrente elétrica, tendo como efeito a transformação de energia elétrica em energia térmica.

As faixas coloridas que servem para indicar o valor de resistência e a tolerância dos resistores axiais são bastante pequenas, problemas como a fadiga ou deficiências visuais podem causar a montagem trocada desses componentes, ocasionando retrabalho e em alguns casos ou até a perda dos dispositivos como um todo.

Buscando encontrar uma solução para os problemas citados anteriormente e observando-se o desenvolvimento dos circuitos eletrônicos e consequentemente o aumento do desempenho dos dispositivos computacionais, vê-se a possibilidade da utilização da inspeção automatizada através de um sistema de visão computacional. Esse ramo da informática basicamente busca e processa informações a partir de uma imagem. 

Um sistema baseado em visão computacional além de excluir a possibilidade da fadiga por esforço repetitivo e gerar um reconhecimento mais acurado das cores, pode também proporcionar uma maior agilidade no processo do reconhecimento. 

Descrição do projeto teste

Para realizar a captura e processamento das imagens foi utilizada a linguagem Python e uma pequena estrutura mecânica. A linguagem Python é bastante utilizada com esse objetivo, suas bibliotecas dão suporte a uma grande variedade de funções o que simplifica o processo de desenvolvimento.

OPENCV

Utilizou-se a linguagem de programação Python para manipulação de imagens com a biblioteca Opencv. A utilização do Python acarreta vários benefícios, além de ser de fácil compreensão é uma linguagem que pode ser usada de forma gratuita para fins acadêmicos e comerciais.

“Python é uma linguagem de programação de alto nível, orientada a objeto, interpretada e fácil de trabalhar. Foi lançada em 1991 por Guido Van Rossum e, atualmente, possui um modelo de desenvolvimento aberto, gerenciado pela Python Software Foundation, uma organização sem fins lucrativos. (BARELLI, 2019, p.10)”

Buscou-se o Opencv pois de acordo com Neu (2014) além de ser uma biblioteca de código aberto, ela possui vários recursos avançados que podem ser utilizados para o processamento digital de imagens (PDI). Ela está disponível gratuitamente, assim como seus manuais de referência.

Todo o algoritmo da aplicação desenvolvida pode ser divido em três partes fundamentais. Sendo elas:

  1. Captura de imagens;
  2. Segmentação das cores nos resistores;
  3. Cálculo da resistência.

Captura de imagens

O trecho do código que pode ser visto no Quadro 1 representa a parte onde é realizada a aquisição da imagem do resistor. Nessa parte do programa é realizada a identificação da câmera dentro do sistema. 

O endereço da câmera é guardado na variável “cap”, logo após na linha dois, o sistema entra em um loop infinito, através desse processo é possível armazenar na variável “frame" os quadros lidos.

Segmentação das cores

Após realizar a captura da imagem é necessário transformá-la do espaço RGB para o espaço HSV. Com os valores mínimos e máximos de intensidade para cada tonalidade já definido previamente através de testes, é possível então identificar a presença dessas cores selecionadas no quadro atual da imagem que foi capturada.

Esses valores de mínimo e máximo são obtidos usando-se uma cor de referência para calibração, de posse dessa cor é necessário variar manualmente a Matiz, a Saturação e o Valor que caracterizam o espaço HSV para que seja possível encontrar o range de atuação da cor para a aplicação específica. A forma como o processo de reconhecimento das cores após a calibração foi realizada encontra-se no Quadro 2.

No Quadro 2 é possível observar que na linha um acontece a transformação do espaço de cores RGB para HSV, já na dois e realizada uma iteração entre todos os valores presentes no dicionário que armazena os valores de máximo para cada cor. 

Durante o processo de leitura das cores, elas são armazenadas na ordem em que o programa de leitura procura por elas, não na ordem em que aparecem no resistor. Para solucionar esse problema, é armazenado em um vetor os valores das coordenadas onde o centro da faixa foi encontrado, pois dessa forma, pode-se realizar a ordenação das cores com base no valor da coordenada y para cada faixa. Essa ordenação ocorre na função que realiza o cálculo da resistência.

O centro das faixas sobre o resistor foi encontrado traçando-se o contorno delas após a segmentação. Com esse processo foi possível obter os quatro valores que identificam a dimensão para cada uma das faixas. De posse desses valores, encontrou-se o centro de cada faixa, e finalmente, a posição y dela na imagem. 

No Quadro 3 pode ser visto o trecho de código relacionado a segmentação das faixas. Em seguida é necessário realizar o cálculo da resistência. 

Cálculo da resistência

A função responsável por realizar o cálculo da resistência, recebe os valores e ordena-os, logo após, realiza o cálculo da resistência com base na fórmula da equação 1.

Equação 1: Fórmula utilizada para obtenção do valor da resistência através da programação.

\left [ \left ( Faixa\, 1 * 10 \right )+Faixa\, 2 \right ]\, *10^{Faixa \, 3}

    O trecho de código que executa essa função pode ser visto no Quadro 4.

Note que na linha um, a variável  “coresOrdenadas”, recebe o resultado do ordenamento realizado na variável “coresLidas”, pelo fato dessa variável conter o nome da cor da faixa e sua coordenada y dentro da imagem, se faz necessário na linha dois e três realizar uma iteração para selecionar apenas os valores que representam as cores. Cada cor tem um valor associado dentro de um dicionário. Por fim é realizado o cálculo que representa o valor da resistência.

Câmera

A câmera utilizada foi uma webcam com resolução de 640 X 480, foi necessário retirar parte do gabinete dela para que ela fosse adaptada a estrutura da câmera escura onde foi realizada a captura das imagens. A Figura 1 mostra a câmera que foi utilizada.

Figura 1: Câmera utilizada na aquisição das imagens

A retirada de partes do gabinete expos partes do circuito eletrônico, no entanto essa adaptação não impactou negativamente na captura das imagens. Ao final da montagem, a placa eletrônica da câmera não ficou de fácil acesso.

LED

Foi utilizado apenas um LED (5mm) branco adaptado a estrutura para que fosse possível identificar as faixas presentes no resistor. Para ligar o LED, foi soldado em um dos seus terminais um resistor de 330 Ω e foi usada uma fonte de 5V. 

Figura 2: Circuito eletrônico

Como pode ser visto na Figura 2, pela simplicidade de sua ligação eletrônica, não foi necessário nenhum circuito adicional. Sua fixação foi realizada na parte superior da estrutura com o foco direcionado ao resistor que seria lido. Utilizou-se um LED branco para melhor captação das cores.

Estrutura Mecânica

A mecânica utilizada tem como objetivo único dá suporte ao LED e a câmera, essa estrutura é composta de uma caixa plástica com dois rasgos laterais para passagem dos resistores, assim como de alguns furos superiores para fixação da câmera e da iluminação. A versão final da estrutura pode ser vista a Figura 3.

Figura 3: Estrutura de aquisição de imagens

Figura 3: Estrutura de aquisição de imagens

Como esteira transportadora utiliza-se um protoboard coberto com fita preta, onde é possível fixar o resistor que será lido, essa base pode ser vista na Figura 4.

Figura 4: Base utilizada como esteira transportadora.

Por último verificou-se que a base na cor preta, apesar de facilitar a aquisição das outras cores, inviabiliza a aquisição dela mesma durante o processo de captura. Como proposta de melhoria do projeto desenvolvido, é sugerido a utilização de uma base de fixação dos resistores com uma cor que não comprometa a aquisição das cores da tabela de cores dos resistores, assim como uma iluminação não direcionada ao resistor, mas que possibilite uma luminosidade ambiente para melhor captação das cores das faixas.

Código Da Aplicação

Vídeo De Funcionamento

Saiba mais

Aplicação de visão computacional com OpenCV

Visão Computacional com OpenCV na Intel Edison

Contagem de objetos em movimento com OpenCV e Python usando Raspberry Pi

Referências

  • BARELLI, Felipe. Introdução a visão computacional. 1 ed. São Paulo: Casa do Código. 2019.circuitos. 1 ed. Saraiva Educação S.A. 2019.
  • NEU, Charles. Desenvolvimento de um sistema de reconhecimento de sinais de trânsito utilizando processamento de imagens com Opencv para um robô humanoide. Disponível em < https://repositorio.unisc.br/jspui/handle/11624/688 >, acesso em 18 maio 2020.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Notícias » Aplicação Da Visão Computacional Para Obtenção Da Resistência Em Resistores De Quatro Faixas
Comentários:
Notificações
Notificar
guest
16 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
José Rubens Caramori
José Rubens
30/06/2020 09:29

Parabéns pelo projeto, tenho sofrido por muitos anos com a identificação de cores dos resistores, sou daltônico, uso um filtro vermelho pra me ajudar na bancada. É uma classe de deficiência muitas vezes esquecida. Muito bem pensado esse seu projeto. Fantástico.

Andre Tenorio
29/06/2020 19:56

Show de bola!

Flavio
Flavio
29/06/2020 12:12

Muito bom. Gostei !

Giovanni Bauermeister
Giovanni Bauermeister
24/06/2020 08:35

Muito legal o projeto Joselito!

Fabio Luiz
Fabio Luiz
24/06/2020 07:31

Parabens pelo projeto, show!

Joelson
Joelson
23/06/2020 13:57

O homem é uma potência !!! Parabens pelo projeto ....

Joselito Junior
Joselito Junior
Reply to  Joelson
24/06/2020 11:26

Valeu Joelson!

Cristiano
Cristiano
22/06/2020 22:37

Muito interessante seu projeto. Parabéns e, obrigado por compartilhar.

Ibernon Neto
Ibernon Neto
22/06/2020 13:41

Excelente!

Talvez você goste:

Nenhum resultado encontrado.

Séries

Menu

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link