Índice:

Câmera térmica Apollo Pi de 1979: 10 etapas (com fotos)
Câmera térmica Apollo Pi de 1979: 10 etapas (com fotos)

Vídeo: Câmera térmica Apollo Pi de 1979: 10 etapas (com fotos)

Vídeo: Câmera térmica Apollo Pi de 1979: 10 etapas (com fotos)
Vídeo: Baile da antiga FURACÃO 2000 28 -10- 1995 2024, Novembro
Anonim
Image
Image
Câmera térmica Apollo Pi 1979
Câmera térmica Apollo Pi 1979
Câmera térmica Apollo Pi 1979
Câmera térmica Apollo Pi 1979

Este detector de microondas Apollo antigo agora tem um novo propósito brilhante como uma câmera térmica, alimentado por um Raspberry Pi Zero com um sensor de câmera térmica Adafruit medindo as temperaturas, exibindo os resultados em tempo real em um display TFT de 1,3 brilhante.

Tem um modo predefinido e um modo dinâmico - no primeiro, as cores mostradas na tela são baseadas em limites de temperatura codificados e, no segundo, a faixa de cores pode ser ajustada usando controles deslizantes de temperatura em um painel Adafruit.io. O painel também instantaneamente exibe quaisquer instantâneos carregados pelo dispositivo, que são capturados usando o botão original do polegar na alça.

Todo o sistema é alimentado por uma bateria USB cilíndrica fina escondida na alça, que pode ser facilmente recarregada removendo o cone do nariz e conectando um cabo USB.

Apenas três scripts Python controlam a lógica do menu, o sensor e a integração do Adafruit.io, com a exibição controlada pelo PyGame.

Trabalhar neste projeto realmente me ajudou a manter-me otimista durante o bloqueio e, com o tempo extra disponível, as crianças e eu descobrimos muitas coisas interessantes em casa para apontar!

Dê uma olhada na Apollo Pi em ação no vídeo do YouTube, caso você não consiga ver a versão incorporada acima, ela está em

Suprimentos

Monitor de microondas Apollo

Raspberry Pi Zero W

Câmera térmica Adafruit AMG8833 Breakout

Tela Adafruit Mini PiTFT 1,3"

Cabos Jumper

Disco vibratório 3v

Banco de energia USB

Etapa 1: Desmontagem

Destruir
Destruir
Destruir
Destruir
Destruir
Destruir

Comprei o Apollo Monitor em uma venda de segunda mão no verão passado, por seu visual único e não por qualquer outra coisa - que é tão bom quanto definitivamente já viu dias melhores! Os circuitos internos estavam incompletos e a coisa toda coberta por uma bagunça de cola, uma tentativa histórica de consertá-la.

Originalmente, teria sido usado para verificar a presença de radiação de micro-ondas, presumivelmente em algum tipo de ambiente industrial devido ao seu design e à raridade dos fornos de micro-ondas na época, embora eu não pudesse descobrir muito mais sobre isso. Uma coisa que eu sabia, seria a casa ideal para uma câmera térmica.

Assim que tirei o "nariz" cônico, o resto literalmente se desfez, e o medidor analógico colado e o botão retangular foram facilmente removidos. Eu mantive o botão, porém, era perfeitamente funcional e tinha um formato realmente estranho, então eu teria lutado para colocar um substituto no mesmo buraco.

Etapa 2: Fiação

Fiação
Fiação
Fiação
Fiação

Antes de aparar a caixa para que tudo se encaixasse, primeiro queria ter certeza de que sabia como as partes se encaixariam, então configurei o cabeamento do sensor e da tela. O sensor em si estava bom, apenas quatro cabos de jumper necessários para conectá-lo ao Raspberry Pi.

A tela era um pouco mais complicada, o diagrama de pinagem mostrou que eu precisaria conectar 13 fios de jumper - obviamente, ele foi projetado para ficar diretamente em cima de um Pi, então eu só tive a culpa. Decidi adicionar um pedaço de cabeçalho feminino entre a tela e as conexões Pi, para que eu pudesse tirar a tela e conectá-la facilmente. Essa foi uma ótima ideia, e segui o diagrama da pinagem com muito cuidado para conectar o cabeçalho ao Pi.

Em seguida, soldei alguns cabos de jumper novos no botão original, para que pudesse ser conectado ao GPIO e usado para capturar instantâneos de imagens térmicas. Por último, soldei um pequeno disco vibratório diretamente aos pinos GPIO, para fornecer algum feedback tátil aos pressionamentos de botão.

Etapa 3: Modos de caso

Modos de caso
Modos de caso
Modos de caso
Modos de caso

Uma das coisas que ressuscitou o Apollo Monitor da minha caixa "a fazer" foi o orifício da tela na parte superior - este era aproximadamente o tamanho que eu precisava para a pequena tela Adafruit. Aproximadamente. Demorou cerca de uma hora com um arquivo para estender o buraco para o tamanho certo, mas felizmente consegui não destruir a caixa no processo.

Também cortei partes do interior que originalmente continham uma bateria PP3 e cortei algumas anteparas dentro da alça para abrir espaço para a bateria, usando uma ferramenta rotativa.

Por fim, fiz alguns furos grandes para que os cabos do sensor e do cabo de carregamento pudessem passar do "nariz" para se juntar ao resto dos circuitos.

Etapa 4: alimentação

Poder
Poder
Poder
Poder
Poder
Poder
Poder
Poder

Para este projeto, decidi não usar uma bateria LiPo e um adaptador / carregador, pois havia mais espaço no case. Em vez disso, decidi usar um banco de energia USB padrão. Eu queria um cilíndrico fino para caber dentro da alça, então procurei o mais barato e mais fino que pude encontrar na Amazon. O que chegou, com sua tocha de LED cafona e estilo de bateria falsa, foi o mais fino que consegui encontrar, mas ao desempacotar percebi que ainda era muito grosso para caber na alça. Então eu percebi que ele se desfez - a parte superior se soltou e a bateria interna deslizou para fora, economizando os 3 mm que eu precisava para encaixá-la dentro da alça, que resultado!

Em seguida, peguei um cabo Micro USB curto, tirei parte do isolamento, cortei o cabo positivo e soldou em um adorável botão de travamento quadrado, de modo que a energia pudesse ser controlada sem ter que desconectar a bateria. Este botão se encaixava perfeitamente no que era originalmente a tampa da bateria e era uma combinação bem parecida com o botão original na parte superior do case. Agora que eu sabia que tudo iria caber, era hora de fazer tudo funcionar!

Etapa 5: configuração do software da câmera térmica

Configuração do software da câmera térmica
Configuração do software da câmera térmica

O próprio sensor térmico é uma câmera térmica Breakout Adafruit AMG8833IR, que usa um conjunto de sensores 8x8 para criar a imagem de calor. Funciona com Arduino e Raspberry Pi, mas a maior vantagem de usar um Pi é que o software pode usar o módulo python scipy para realizar interpolação bicúbica nos dados capturados, fazendo com que pareça uma imagem 32x32, legal!

Configurar o sensor é bastante simples, mas existem alguns obstáculos a serem superados, eis o que funcionou para mim:

Ative I2C e SPI no Raspberry Pi (Configuração do Raspberry Pi> Interfaces)

Instale a biblioteca Blinka CircuitPython:

pip3 instalar adafruit-blinka

Em seguida, instale a biblioteca de sensores AMG8XX:

sudo pip3 install adafruit-circuitpython-amg88xx #

Desligue o Pi e conecte o sensor - felizmente apenas 4 fios!

Em seguida, instale os módulos scipy, pygame e de cores:

sudo apt-get install -y python-scipy python-pygamesudo pip3 install color

Neste ponto, meu código gerou um erro scipy, então eu o reinstalei com:

Sudo Pip3 install scipy

Então, recebi o erro: ImportError: libf77blas.so.3: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório

Isso foi resolvido instalando:

sudo apt-get install python-dev libatlas-base-dev

A partir de então, o código de exemplo funcionou bem, executando o script a partir do console em vez de Thonny:

sudo python3 /home/pi/FeverChill/cam.py

Isso fez com que a tela do sensor aparecesse na tela em uma janela de pygame e, após alguns ajustes nos limites de cor / temperatura, fui hipnotizado por uma imagem de calor do meu rosto.

Etapa 6: Configuração do software da tela LCD

Configuração do software da tela LCD
Configuração do software da tela LCD
Configuração do software da tela LCD
Configuração do software da tela LCD

Foi muito bom fazer o sensor funcionar, mas agora eu precisava exibi-lo na telinha. A tela que usei é uma Adafruit Mini PiTFT 1,3 240x240 - principalmente porque sua resolução e formato eram perfeitos para a câmera térmica, também era do tamanho certo para caber no case e oferecia os dois botões conectados por GPIO de que eu precisava.

As instruções do Adafruit ofereciam duas opções aqui: uma maneira fácil e uma maneira difícil - depois de experimentar, percebi que precisava usar a maneira difícil, porque o sensor exigia acesso direto ao framebuffer. Seguindo as instruções passo a passo, estava tudo bem até chegar à pergunta "Gostaria que o console aparecesse" - inicialmente selecionei Não, mas deveria ter respondido Sim. Isso foi um pouco chato, pois significava que eu tinha que refazer o processo, mas me fez saber que, uma vez que o Pi esteja configurado para exibir o console no TFT, ele não mostrará mais a área de trabalho via HDMI (pelo menos essa foi a minha experiência).

Ainda assim, uma vez que a configuração foi concluída, ao reiniciar a tela minúscula exibiu uma versão em miniatura do processo normal de inicialização do Pi, e quando eu executei o script de câmera térmica de exemplo, a janela do pygame exibiu a imagem de calor na tela pequena - muito satisfatório!

Etapa 7: ajustes de código

Ajustes de código
Ajustes de código
Ajustes de código
Ajustes de código

O código de amostra funcionou bem, mas eu queria fazer um pouco mais, então comecei a ajustar os scripts ao meu gosto. Comecei criando um script de menu que carregaria na inicialização e faria bom uso dos dois botões integrados ao painel de exibição.

menu.py

Em primeiro lugar, encontrei alguns Python online que exibiriam um efeito de menu animado agradável na tela pequena, usando PyGame. A beleza desse script é que ele anima todas as imagens em uma pasta definida, portanto, seria fácil alterar a animação em um estágio posterior (por exemplo, para combinar as cores da animação com o caso). Eu defino o script do menu de forma que pressionar qualquer um dos botões pare a animação e abra fever.py ou chill.py, os scripts para mostrar a exibição do sensor. Com isso funcionando, defino o script para ser executado na inicialização - normalmente faço isso editando / etc / xdg / lxsession / LXDE-pi / autostart, mas como esse método depende do carregamento da área de trabalho, desta vez precisei de uma opção diferente.

Então, primeiro editei o arquivo rc.local …

sudo nano /etc/rc.local

… então adicionado ao seguinte logo acima da linha de saída …

sudo /home/pi/FeverChill/menu.py &

… Tendo primeiro garantido que o script menu.py tinha o seguinte no topo…

#! / usr / bin / env python3

… E também depois de definir o menu.py como um script executável digitando:

chmod + x /home/pi/FeverChill/menu.py

no terminal.

febre.py (predefinição)

Para o script Preset, primeiro defino os limites de cor / temperatura, configurando o inferior (azul) para 16 e o superior (vermelho) para 37,8. Teoricamente, ainda mostraria o rosto de uma pessoa em verde, mas brilharia em vermelho se a temperatura fosse igual ou superior a 37,8 graus. Há muitas pesquisas online sobre a amostragem da temperatura corporal por meio de diferentes métodos, mas com a variação do sensor sendo +/- 2,5 graus, decidi ficar com a faixa de "febre" mais amplamente aceita - é fácil de mudar via ssh Numa data posterior.

Em seguida, defino os dois botões de tela para fechar o script atual e abrir o menu.py. Eu também queria encontrar uma maneira de capturar e exportar a imagem da câmera, e tendo encontrado o comando PyGame correto

pygame.image.save (lcd, "Thermal.jpg")

Eu defini isso para ser executado quando o botão "polegar" foi pressionado - aquele que você usaria originalmente para fazer uma leitura de micro-ondas. Isso se encarregou de capturar a imagem, a seguir adicionei algumas linhas de Python para que a imagem fosse imediatamente carregada para um painel do Adafruit IO depois de capturada, para que pudesse ser visualizada em outros dispositivos e facilmente baixada. Com um rápido "salvar como", o script do Preset foi concluído.

chill.py (dinâmico)

Uma câmera térmica é mais do que procurar temperaturas específicas, e eu queria que o script dinâmico fosse flexível, para que os limites de cor superior e inferior pudessem ser ajustados facilmente. Eu não queria adicionar botões extras ao dispositivo e complicar a navegação, então optei por usar controles deslizantes em um painel Adafruit.io.

Eu já tinha a maior parte do código Adafruit no script Preset, então apenas tive que adicionar algumas linhas extras, para que os valores atuais do controle deslizante do painel fossem recuperados na inicialização e definidos como os padrões de exibição.

O código que usei está disponível no GitHub, para reutilizá-lo você só precisa baixar a pasta FeverChill para a pasta / pi / em seu Pi e inserir suas credenciais Adafruit.io e nomes de feed nos scripts, uma vez que seu display & sensor são configurados.

Com os scripts funcionando bem, era hora de mudar para algo mais confuso!

Etapa 8: Concluindo Touch-Ups

Finalizando Touch-Ups
Finalizando Touch-Ups
Finalizando Touch-Ups
Finalizando Touch-Ups
Finalizando Touch-Ups
Finalizando Touch-Ups

Originalmente, este projeto era para ser uma distração rápida do uso do sensor térmico para outra coisa, mas com os eventos atuais eu me vi cada vez mais atraído por ele e pelos minúsculos detalhes extras que o esticariam e o tornariam mais desafiador.

O gabinete do Apollo Monitor era muito bom de trabalhar, fácil de cortar e lixar, mas para finalizá-lo bem, eu queria colocar algumas das placas de circuito visíveis atrás de "máscaras" pintadas. Demorou muito, cortando-os manualmente em pedaços de plástico, mas era um trabalho satisfatório. Primeiro fiz um pequeno que cobriria a tela da placa, mas deixaria os microinterruptores visíveis. Em seguida, fiz um para o sensor térmico, de modo que você não veria os componentes eletrônicos vazios se olhasse para o "lado comercial".

Decidi o esquema de cores alguns dias antes do Reino Unido entrar em bloqueio e tive a sorte de encontrar as cores que queria em uma loja de ferragens próxima. Como o case se dividiu tão bem em duas metades, um esquema de cores em dois tons foi sugerido, e eu estendi isso para o "cone do nariz" e a tampa do sensor. A pintura foi muito divertida, o primeiro dia quente do ano, embora isso significasse pintar enquanto as vespas no galpão se mexiam e se moviam. Eu nunca usei fita adesiva com tinta spray antes, mas estou muito satisfeito com o resultado das peças bicolores resultantes.

Aprendendo as lições de construções anteriores, deixei as partes pintadas endurecerem por uma boa semana antes de tentar a montagem e comecei a montar o vídeo nesse ínterim.

Etapa 9: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

Sempre que estou trabalhando em um projeto, adoro chegar ao estágio em que tudo está pronto para montagem, como um kit de modelo feito por mim mesmo. Não há garantias de que tudo se encaixará e as instruções existem apenas na minha cabeça, mas é minha parte favorita de qualquer construção.

Desta vez correu muito bem - principalmente porque tive tempo extra para gastar com os pequenos detalhes e me certificar de que tudo estava certo. Eu colei a tela no case primeiro de tudo, depois adicionei o botão "capturar" - essas foram as únicas partes conectadas à parte superior do case, então foi um bom começo fácil.

Em seguida, colei levemente a bateria com cola quente na alça e encaixei o Pi com seu suporte na caixa. Depois disso, o sensor da câmera foi cuidadosamente colado no cone do nariz, a chave liga / desliga foi parafusada na tampa da bateria e tudo foi conectado.

Usei cabos jumper para todas as conexões, mas apenas para ser extremamente cuidadoso, colei-os a quente no lugar, para o caso de qualquer movimento durante o aperto final das duas metades. Na verdade, foi só isso, um pouco de esmagamento, mas nenhum som de estalo, então, uma vez que as duas metades estavam bem juntas, encaixei o cone do nariz e prendi o parafuso na alça - as únicas duas coisas que mantêm todo o conjunto unido.

Não funcionou da primeira vez, consegui desligar a tela durante o primeiro squishathon, mas com algumas curvas de cabo estratégicas tudo terminou bem na segunda vez. É hora de apontar as coisas!

Etapa 10: tempos de teste de temperatura

Tempos de teste de temperatura
Tempos de teste de temperatura
Tempos de teste de temperatura
Tempos de teste de temperatura
Tempos de teste de temperatura
Tempos de teste de temperatura
Tempos de teste de temperatura
Tempos de teste de temperatura

Ter tempo extra em casa realmente me ajudou a focar (obcecar?) Mais do que o normal nos pequenos detalhes deste projeto, e isso definitivamente trouxe um acabamento mais limpo e menos surpresas na hora da montagem - além de ajudar a manter meu bem-estar mental ligado o reto e estreito. O plano original para o sensor era algo completamente diferente, então estou muito satisfeito com o resultado final, uma construção lenta e satisfatória.

O Apollo Pi fica ótimo na estante de projetos também e é definitivamente uma ferramenta divertida e útil para se ter por perto, não podemos parar de apontá-lo para as coisas! Em um mundo ideal, seria uma resolução um pouco mais alta, e eu preciso encontrar uma maneira de "virar" a tela, já que ela está espelhada no momento, mas esses são pequenos detalhes.

Obrigado pela leitura e fiquem a salvo de todos.

Meus outros projetos Old Tech, New Spec estão todos no Instructables em

Mais detalhes no site https://bit.ly/OldTechNewSpec. e estou no Twitter @OldTechNewSpec.

Recomendado: