Índice:
- Suprimentos
- Etapa 1: Desenvolvimento de PCB
- Etapa 2: Desenvolvimento de software
- Etapa 3: Lendo os sensores
- Etapa 4: configuração do sensor térmico
- Etapa 5: Habilitando a interface I2C
- Etapa 6: Conectando o sensor e a câmera
- Etapa 7: Mapeamento de Calor
- Etapa 8: Processamento de imagem
- Etapa 9: Código e arquivos PCB
- Etapa 10: Conclusão
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
- Eu desenvolvi um dispositivo que pode ser conectado a um drone e pode transmitir ao vivo um quadro mesclado feito da imagem termográfica que mostra a radiação térmica e fotografia regular com luz visível.
- A plataforma consiste em um pequeno computador de placa única, um sensor de câmera térmica e um módulo de câmera normal.
- Este projeto tem como objetivo examinar as possibilidades de uma plataforma de imagem térmica de baixo custo para a detecção de danos em painéis solares caracterizados por assinaturas térmicas.
Suprimentos
- Raspberry Pi 3B +
- Panasonic AMG8833 grade-olho
- Pi Camera V2
- Laptop com visualizador VNC
Etapa 1: Desenvolvimento de PCB
- A placa PCB para o sensor de olho de grade Panasonic pode ser projetada com a ajuda do Auto-desk EAGLE.
- O arquivo.brd é desenvolvido de forma semelhante ao módulo Adafruit AMG8833 com pequenas modificações
- Em seguida, o PCB pode ser impresso com os fabricantes de PCB e usei o pcbway.com, onde meu primeiro pedido foi totalmente gratuito.
- Descobri que a soldagem de PCB era completamente diferente da soldagem que eu conhecia, pois envolvia dispositivos montados em superfície, então fui a outro fabricante de PCB e mandei soldar minha PCB com o sensor.
Etapa 2: Desenvolvimento de software
- O código é escrito em Thonny, um ambiente de desenvolvimento integrado python.
- O procedimento por trás do projeto era conectar a câmera pi e instalar o software associado.
- A próxima etapa foi conectar o sensor térmico para corrigir os pinos GPIO e instalar a Biblioteca Adafruit para utilizar o sensor.
- A biblioteca Adafruit continha um script para ler o sensor e mapear as temperaturas em cores, no entanto, as imagens em movimento criadas por ela não puderam ser implementadas
- Portanto, o código foi reescrito para um formato que suporte processamento de imagem, principalmente para fundir dois quadros.
Etapa 3: Lendo os sensores
- Para a coleta de dados da câmera térmica foi utilizada a biblioteca ADAFRUIT, que permite a rápida liberação dos sensores com o comando readpixels (), gerando um array contendo temperaturas em graus Celsius medidas a partir de sensores em elementos separados.
- Para a câmera Pi, o comando de função picamera.capture () gera uma imagem com o formato de arquivo de saída especificado
- A fim de se adequar ao processamento rápido, uma resolução mais baixa foi definida para 500 x 500 pixels
Etapa 4: configuração do sensor térmico
- Em primeiro lugar, temos que instalar a biblioteca Adafruit e os pacotes python
- Abra o prompt de comando e execute: sudo apt-get update que irá atualizar você Pi
- Em seguida, execute o comando: sudo apt-get install -y build-essential python-pip python-dev python-smbus git
- Em seguida, execute: git clone https://github.com/adafruit/Adafruit_Python_GPIO….which baixará o pacote Adafruit para o seu Raspberry Pi
- Mova dentro do diretório: cd Adafruit_Python_GPIO
- E instale a configuração executando o comando: sudo python setup.py install
- Agora instale o scipy e o pygame: sudo apt-get install -y python-scipy python-pygame
- Por fim, instale a biblioteca de cores emitindo o comando: sudo pip install color Adafruit_AMG88xx
Etapa 5: Habilitando a interface I2C
- Emita o comando: sudo raspi-config
- Clique nas opções avançadas e selecione I2C e, em seguida, habilite-o e selecione Concluir
- Reinicialize o Pi para habilitar I2C com sucesso
- Certifique-se de ter habilitado as interfaces de câmera e VNC também
Etapa 6: Conectando o sensor e a câmera
- Você deve conectar apenas 4 pinos de AMG8833 a Pi e deixar o pino IR.
- A alimentação de 5 V e o aterramento podem ser conectados aos pinos 1 e 6 do GPIO
- SDA e SCL são conectados aos pinos 4 e 5 do Pi.
- Faça login no raspberry com ssh
- executar: sudo i2cdetect -y 1
- Você deve ver "69" na 9ª coluna se não houver algum problema na fiação do sensor com Pi.
- Por fim, conecte a câmera pi v2 ao slot da câmera no pi raspberry
Etapa 7: Mapeamento de Calor
- Emita o comando: git clone
- Mova para o diretório Adafruit_AMG88xx_python / examples
- emita o comando: sudo python Thermal_cam.py
- Anexei o código para mapeamento de calor AMG8833 abaixo.
Etapa 8: Processamento de imagem
- Mapeamento de Temperatura
- Para visualizar os dados térmicos, os valores de temperatura são mapeados em um gradiente de cor, variando de azul a vermelho com todas as outras cores entre
- Quando o sensor é iniciado, a temperatura mais baixa é mapeada para 0 (azul) e a temperatura mais alta para 1023 (vermelho)
- Todas as outras temperaturas intermediárias são atribuídas a valores correlacionados dentro do intervalo
- A saída do sensor é 1 x 64 array, que é redimensionado para uma matriz.
-
Interpolação
- A resolução do sensor térmico é bastante baixa, 8 x 8 pixels, então a interpolação cúbica é usada para aumentar a resolução para 32 x 32, o que resulta em uma matriz 16 vezes maior
- A interpolação funciona construindo novos pontos de dados entre um conjunto de pontos conhecidos, no entanto, a precisão diminui.
-
Números para imagens
- Números que variam de 0 a 1023 em uma matriz de 32 x 32 são convertidos em código decimal no modelo de cores RGB.
- A partir do código decimal, é fácil gerar a imagem com uma função da biblioteca SciPy
-
Redimensionamento com anti-aliasing
- Para redimensionar a imagem de 32 x 32 para 500 x 500 a fim de coincidir com a resolução da câmera Pi, PIL (Python Image Library) é usado.
- Possui filtro anti-aliasing que irá suavizar as bordas entre os pixels quando aumentados
-
Sobreposição de imagem transparente
- A imagem digital e a imagem de calor são então mescladas em uma imagem final, adicionando-as com 50% de transparência cada.
- Quando as imagens de dois sensores com uma distância paralela entre eles são fundidas, eles não se sobrepõem completamente
- Finalmente, as medidas de temperatura mínima e máxima por AMG8833 são exibidas com texto sobreposto no visor
Etapa 9: Código e arquivos PCB
Anexei o teste e o código final para o projeto abaixo
Etapa 10: Conclusão
- Assim, uma câmera térmica foi construída com Raspberry Pi e AMG8833.
- O vídeo final foi incorporado nesta postagem
- Pode-se observar que a temperatura muda instantaneamente conforme eu pego o isqueiro perto da configuração e a chama do isqueiro é detectada com precisão pelo sensor.
- Portanto, este projeto pode ser desenvolvido para detecção de febre em pessoas que entram em uma sala, o que será muito útil nesta crise COVID19.