1979 Cámara térmica Apollo Pi: 10 pasos (con imágenes)
1979 Cámara térmica Apollo Pi: 10 pasos (con imágenes)
Anonim
Image
Image
1979 Cámara térmica Apollo Pi
1979 Cámara térmica Apollo Pi
1979 Cámara térmica Apollo Pi
1979 Cámara térmica Apollo Pi

Este antiguo detector de microondas Apollo ahora tiene un nuevo y brillante propósito como cámara térmica, impulsado por una Raspberry Pi Zero con un sensor de cámara térmica Adafruit que toma las temperaturas y muestra los resultados en tiempo real en una brillante pantalla TFT de 1.3.

Tiene un modo preestablecido y dinámico: en el primero, los colores que se muestran en la pantalla se basan en umbrales de temperatura codificados, y en el segundo, el rango de color se puede ajustar usando controles deslizantes de temperatura en un tablero Adafruit.io. muestra las instantáneas cargadas por el dispositivo, que se capturan con el botón del pulgar original en la empuñadura.

Todo el sistema está alimentado por una batería USB delgada y cilíndrica oculta en la empuñadura, que se puede recargar fácilmente sacando el cono de la nariz y conectando un cable USB.

Solo tres scripts de Python controlan la lógica del menú, el sensor y la integración de Adafruit.io, con la pantalla manejada por PyGame.

Trabajar en este proyecto realmente me ha ayudado a mantenerme positivo durante el encierro, y con el tiempo extra en nuestras manos, los niños y yo hemos encontrado muchas cosas interesantes en la casa para señalar.

Eche un vistazo al Apollo Pi en acción en el video de YouTube, en caso de que no pueda ver la versión incrustada de arriba, está en

Suministros

Monitor de microondas Apollo

Raspberry Pi Zero W

Adaptador de cámara térmica Adafruit AMG8833

Pantalla Adafruit Mini PiTFT 1.3"

Cables de salto

Disco vibrante 3v

Banco de energía USB

Paso 1: desmontaje

Demoler
Demoler
Demoler
Demoler
Demoler
Demoler

Compré el Apollo Monitor en una venta de segunda mano el verano pasado, por su aspecto único más que por cualquier otra cosa, ¡que es tan bueno como definitivamente había visto mejores días! Los circuitos interiores estaban incompletos y todo estaba cubierto de un lío de pegamento, un intento histórico de repararlo.

Originalmente se habría utilizado para verificar la presencia de radiación de microondas, presumiblemente en algún tipo de entorno industrial dado su diseño y la rareza de los hornos de microondas en ese momento, aunque no pude encontrar mucho más al respecto. Una cosa que sí sabía, sería el hogar ideal para una cámara térmica.

Tan pronto como saqué la "nariz" cónica, el resto literalmente se desmoronó, y el medidor analógico pegado y el botón rectangular se quitaron fácilmente. Sin embargo, mantuve el botón, era perfectamente funcional y tenía una forma realmente extraña, por lo que habría tenido problemas para colocar un reemplazo en el mismo agujero.

Paso 2: cableado

Alambrado
Alambrado
Alambrado
Alambrado

Antes de recortar la carcasa para que todo encajara, primero quería asegurarme de saber cómo irían juntas las piezas, así que me dispuse a cablear el sensor y la pantalla. El sensor en sí estaba bien, solo se necesitaban cuatro cables de puente para conectarlo a la Raspberry Pi.

La pantalla era un poco más complicada, el diagrama de pines mostraba que necesitaría conectar 13 cables de puente; obviamente, está diseñado para colocarse directamente encima de un Pi, por lo que en realidad solo tengo la culpa a mí mismo. Decidí agregar un trozo de encabezado hembra entre la pantalla y las conexiones Pi, para poder quitar la pantalla y conectarla fácilmente. Esta fue una gran idea, y seguí el diagrama de pines con mucho cuidado para conectar el encabezado al Pi.

A continuación, soldé algunos cables de puente nuevos al botón original, para que pudiera conectarse al GPIO y usarse para capturar instantáneas de imágenes térmicas. Por último, soldé un pequeño disco vibratorio directamente a los pines GPIO, para proporcionar una retroalimentación háptica a las pulsaciones de los botones.

Paso 3: Modificaciones de casos

Modificaciones de casos
Modificaciones de casos
Modificaciones de casos
Modificaciones de casos

Una de las cosas que resucitó el Apollo Monitor de mi caja de "cosas por hacer" fue el orificio de visualización en la parte superior; este era aproximadamente el tamaño que necesitaba para la pequeña pantalla Adafruit. Aproximadamente. Me tomó una hora más o menos con una lima extender el orificio al tamaño correcto, pero afortunadamente logré no destruir la carcasa en el proceso.

También corté partes del interior que originalmente contenían una batería PP3 y corté algunos mamparos dentro de la empuñadura para dejar espacio para el paquete de baterías, usando una herramienta giratoria.

Finalmente perforé unos agujeros grandes para que los cables del sensor y el cable de carga pudieran pasar desde la "nariz" para unirse con el resto de los circuitos.

Paso 4: Poder

Poder
Poder
Poder
Poder
Poder
Poder
Poder
Poder

Para este proyecto, decidí no usar una batería LiPo y un adaptador / cargador, ya que había más espacio en el estuche. En su lugar, decidí usar un banco de energía USB estándar. Quería conseguir uno cilíndrico delgado, que encajara dentro del mango, así que busqué el más barato y delgado que pude encontrar en Amazon. El que llegó, con su linterna LED cursi y su estilo de batería falsa, fue el más delgado que pude encontrar, pero al desempaquetarlo me di cuenta de que todavía era demasiado grueso para caber en el mango. Luego me di cuenta de que se rompió: la parte superior se desenroscó y la batería desnuda del interior se deslizó hacia afuera, lo que me ahorró perfectamente los 3 mm que necesitaba para colocarla dentro del mango, ¡qué resultado!

A continuación, tomé un cable Micro USB corto, quité parte del aislamiento, corté el cable positivo y soldé un hermoso botón de cierre cuadrado, de modo que la energía pudiera controlarse sin tener que desconectar la batería. Este botón encajaba muy bien en lo que originalmente era la tapa de la batería, y coincidía bastante con el original en la parte superior de la carcasa. Ahora que sabía que todo encajaría, ¡era hora de que todo funcionara!

Paso 5: Configuración del software de la cámara térmica

Configuración del software de la cámara térmica
Configuración del software de la cámara térmica

El sensor térmico en sí es una cámara termográfica Adafruit AMG8833IR, que utiliza una matriz de sensores de 8x8 para crear la imagen de calor. Funciona con Arduino y Raspberry Pi, pero la mayor ventaja de usar una Pi es que el software puede usar el módulo scipy python para realizar una interpolación bicúbica en los datos capturados, haciendo que parezca una imagen de 32x32, ¡genial!

Configurar el sensor es bastante sencillo, pero hay algunos obstáculos que superar, esto es lo que funcionó para mí:

Habilite I2C y SPI en Raspberry Pi (Configuración de Raspberry Pi> Interfaces)

Instale la biblioteca Blinka CircuitPython:

pip3 instalar adafruit-blinka

A continuación, instale la biblioteca de sensores AMG8XX:

sudo pip3 instalar adafruit-circuitpython-amg88xx #

Apague el Pi y conecte el sensor, ¡afortunadamente solo 4 cables!

A continuación, instale los módulos scipy, pygame y color:

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

En este punto, mi código arrojó un error de scipy, así que lo reinstalé con:

Sudo Pip3 instalar scipy

Luego recibí el error: ImportError: libf77blas.so.3: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

Esto se resolvió instalando:

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

A partir de ese momento, el código de ejemplo funcionó bien, ejecutando el script desde la consola en lugar de desde Thonny:

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

Esto hizo que la pantalla del sensor se mostrara en la pantalla en una ventana de pygame, y después de algunos ajustes en los umbrales de color / temperatura, me hipnotizó una imagen de calor de mi cara.

Paso 6: Configuración del software de la pantalla LCD

Configuración del software de la pantalla LCD
Configuración del software de la pantalla LCD
Configuración del software de la pantalla LCD
Configuración del software de la pantalla LCD

Fue realmente bueno hacer funcionar el sensor, pero ahora necesitaba que se mostrara en la pequeña pantalla. La pantalla que utilicé es una Adafruit Mini PiTFT 1.3 240x240, principalmente porque su resolución y forma eran las adecuadas para la cámara térmica, también tenía el tamaño adecuado para caber en el estuche y ofrecía los dos botones conectados a GPIO que necesitaba.

Las instrucciones de Adafruit ofrecían dos opciones aquí: una forma fácil y una difícil; después de experimentar, me di cuenta de que necesitaba usar la forma difícil, porque el sensor requería acceso directo al framebuffer. Siguiendo las instrucciones paso a paso, estaba bien hasta que llegué a la pregunta "¿Le gustaría que aparezca la consola?" Inicialmente seleccioné No, pero debería haber dicho Sí. Esto fue un poco molesto, ya que significaba que tenía que volver a hacer el proceso, pero me hizo consciente de que una vez que el Pi está configurado para mostrar la consola en el TFT, ya no mostrará el escritorio a través de HDMI (al menos esa fue mi experiencia).

Aún así, una vez que se completó la configuración, al reiniciar, la pequeña pantalla mostró una versión en miniatura del proceso de inicio habitual de Pi, y cuando ejecuté el script de cámara térmica de ejemplo, la ventana de pygame mostró la imagen de calor en la pequeña pantalla, ¡muy satisfactorio!

Paso 7: Ajustes de código

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

El código de muestra funcionó bien, pero quería que hiciera un poco más, así que me puse a ajustar los scripts a mi gusto. Comencé creando un script de menú que se cargaría al inicio y haría un buen uso de los dos botones integrados en la placa de visualización.

menu.py

En primer lugar, encontré algo de Python en línea que mostraría un bonito efecto de menú animado en la pantalla pequeña, usando PyGame. La belleza de este script es que anima todas las imágenes en una carpeta establecida, por lo que sería fácil cambiar la animación en una etapa posterior (por ejemplo, para hacer coincidir los colores de la animación con el caso). Configuré la secuencia de comandos del menú para que al presionar cualquiera de los botones se detuviera la animación y se abriera fever.py o chill.py, las secuencias de comandos para mostrar la pantalla del sensor. Con esto funcionando, configuro el script para que se ejecute al inicio; normalmente lo hago editando / etc / xdg / lxsession / LXDE-pi / autostart, pero como este método se basa en la carga del escritorio, esta vez necesitaba una opción diferente.

Así que primero edité el archivo rc.local …

sudo nano /etc/rc.local

… luego se agregó lo siguiente justo encima de la línea de salida …

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

… habiéndome asegurado primero de que el script menu.py tuviera lo siguiente en la parte superior …

#! / usr / bin / env python3

… y también después de configurar menu.py como un script ejecutable escribiendo:

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

en la terminal.

fever.py (preestablecido)

Para el guión preestablecido, primero establecí los umbrales de color / temperatura, estableciendo el inferior (azul) en 16 y el superior (rojo) en 37,8. En teoría, esto aún mostraría la cara de una persona en verde, pero se iluminaría en rojo si la temperatura fuera de 37,8 grados o más. Hay mucha investigación en línea sobre el muestreo de la temperatura corporal a través de diferentes métodos, pero con la variación del sensor de +/- 2.5 grados, decidí seguir con el rango de "fiebre" más ampliamente aceptado; esto es bastante fácil de cambiar a través de ssh en una fecha posterior.

A continuación, configuro los dos botones de pantalla para cerrar el script actual y abrir menu.py. También quería encontrar una forma de capturar y exportar la imagen de la cámara, y habiendo encontrado el comando PyGame correcto

pygame.image.save (lcd, "térmico.jpg")

Configuré esto para que se ejecutara cuando se presionó el botón "pulgar", el que habrías usado originalmente para tomar una lectura de microondas. Eso se encargó de capturar la imagen, luego agregué algunas líneas de Python para que la imagen se cargara inmediatamente en un tablero de Adafruit IO una vez capturada, para que pudiera verse en otros dispositivos y descargarse fácilmente. Con un rápido "guardar como" se completó la secuencia de comandos preestablecida.

chill.py (dinámico)

Hay más en una cámara térmica que buscar temperaturas específicas, y quería que el script dinámico fuera flexible, de modo que los umbrales de color superior e inferior pudieran ajustarse fácilmente. No quería agregar botones adicionales al dispositivo y complicar la navegación, así que opté por usar controles deslizantes en un panel de Adafruit.io.

Ya tenía la mayor parte del código de Adafruit en la secuencia de comandos preestablecida, por lo que solo tuve que agregar algunas líneas adicionales, para que los valores actuales del control deslizante del tablero se recuperen en el lanzamiento y se establezcan como los valores predeterminados de visualización.

El código que utilicé está disponible en GitHub, para reutilizarlo solo necesita descargar la carpeta FeverChill a la carpeta / pi / en su Pi e ingresar sus credenciales Adafruit.io y nombres de alimentación en los scripts, una vez que se muestre y el sensor está configurado.

Con los guiones funcionando bien, ¡era hora de pasar a algo más desordenado!

Paso 8: Finalización de retoques

Retoques finales
Retoques finales
Retoques finales
Retoques finales
Retoques finales
Retoques finales

Originalmente, este proyecto estaba destinado a ser una distracción rápida del uso del sensor térmico para otra cosa, pero con los eventos actuales me encontré cada vez más atraído por él y los pequeños detalles adicionales que lo estirarían y lo convertirían en un desafío.

Fue bastante agradable trabajar con la carcasa del Monitor Apollo, fácil de cortar y lijar, pero para terminar bien, quería colocar algunas de las placas de circuito visibles detrás de "máscaras" pintadas. Estos tomaron años, tallarlos a mano en pedazos de plástico de desecho, pero fue un trabajo satisfactorio. Primero hice uno pequeño que cubriría la placa de la pantalla pero dejaría visibles los microinterruptores. A continuación, hice uno para el sensor térmico, para que no vieras los componentes electrónicos desnudos si mirabas el "extremo comercial".

Decidí el esquema de color un par de días antes de que el Reino Unido se bloqueara y tuve la suerte de encontrar los colores que quería en la ferretería cercana. Como la carcasa se dividió tan bien en mitades, se sugirió un esquema de color de dos tonos, y luego lo extendí al "cono de la nariz" y la cubierta del sensor. La pintura fue muy divertida, el primer día cálido del año, aunque eso significó pintar mientras las avispas en el cobertizo se movían y revoloteaban. No he usado cinta adhesiva con pintura en aerosol antes, pero estoy realmente satisfecho con el resultado de las piezas de dos tonos resultantes.

Aprendiendo las lecciones de las construcciones anteriores, dejé que las piezas pintadas se endurecieran durante una buena semana antes de intentar el ensamblaje, y mientras tanto comencé a armar el video.

Paso 9: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Siempre que estoy trabajando en un proyecto, me encanta llegar al escenario donde todo está listo para ensamblar como un kit de maquetas hecho por mí mismo. No hay garantías de que todo encajará y las instrucciones solo existen en mi cabeza, pero es mi parte favorita de cualquier construcción.

Esta vez todo salió muy bien, sobre todo porque tuve tiempo extra para dedicarme a los pequeños detalles y asegurarme de que todo fuera perfecto. Primero pegué con pegamento caliente la pantalla en la carcasa, luego agregué el botón "capturar"; estas eran las únicas partes conectadas a la parte superior de la carcasa, por lo que fue un buen comienzo fácil.

A continuación, pegué ligeramente en caliente el paquete de baterías en la empuñadura y coloqué el Pi con su soporte en la carcasa. Después de eso, el sensor de la cámara se pegó cuidadosamente en el cono de la nariz, el interruptor de encendido se atornilló a la tapa de la batería y todo se conectó.

Usé cables de puente para todas las conexiones, pero solo para tener mucho cuidado, los pegué en caliente en su lugar, en caso de cualquier movimiento durante el aplastamiento final de las dos mitades. Fue solo eso, de hecho, un poco aplastado, pero sin crujidos, así que una vez que las dos mitades estuvieron juntas, empujé el cono de la nariz y aseguré el perno a través del mango, las únicas dos cosas que mantienen unido todo el conjunto..

No funcionó la primera vez, logré desconectar la pantalla durante el primer squishathon, pero con algunas curvas estratégicas de cable todo terminó felizmente la segunda vez. ¡Es hora de señalar las cosas!

Paso 10: Tiempos de prueba de temperatura

Tiempos de prueba de temperatura
Tiempos de prueba de temperatura
Tiempos de prueba de temperatura
Tiempos de prueba de temperatura
Tiempos de prueba de temperatura
Tiempos de prueba de temperatura
Tiempos de prueba de temperatura
Tiempos de prueba de temperatura

Tener tiempo extra en casa realmente me ayudó a concentrarme (¿obsesionarme?) Más de lo habitual en los pequeños detalles de este proyecto, y eso definitivamente hizo que el acabado fuera más limpio y menos sorpresas en el momento del montaje, además de ayudar a mantener mi bienestar mental. lo recto y estrecho. El plan original para el sensor era algo completamente diferente, así que estoy muy satisfecho con el resultado final, una construcción satisfactoria y de ritmo lento.

El Apollo Pi también se ve muy bien en el estante del proyecto y definitivamente es una herramienta divertida y útil para tener a mano, ¡no podemos dejar de apuntar a cosas! En un mundo ideal, sería una resolución un poco más alta, y necesito encontrar alguna forma de "voltear" la pantalla como se refleja en este momento, pero estos son pequeños inconvenientes.

Gracias por leer y mantenerse a salvo todos.

Mis otros proyectos de Old Tech, New Spec están todos en Instructables en

Más detalles están en el sitio web en https://bit.ly/OldTechNewSpec. y estoy en Twitter @OldTechNewSpec.

Recomendado: