Tabla de contenido:
- Suministros
- Paso 1: desmontaje
- Paso 2: cableado
- Paso 3: Modificaciones de casos
- Paso 4: Poder
- Paso 5: Configuración del software de la cámara térmica
- Paso 6: Configuración del software de la pantalla LCD
- Paso 7: Ajustes de código
- Paso 8: Finalización de retoques
- Paso 9: Montaje
- Paso 10: Tiempos de prueba de temperatura
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
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
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
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
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
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
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
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
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
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
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
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:
1979 Cámara Merlin Pi de alta calidad: 7 pasos (con imágenes)
1979 Cámara de alta calidad Merlin Pi: este viejo juego de mano Merlin roto es ahora un estuche táctil y práctico para una cámara Raspberry Pi de alta calidad. La lente de la cámara intercambiable se asoma desde lo que era la tapa de la batería en la parte trasera, y en la parte delantera, la matriz de botones ha sido representada
Cámara de impresora térmica con tecnología Pi: 11 pasos (con imágenes)
Cámara de impresora térmica con tecnología Pi: ¿Extrañas tu vieja cámara instantánea Polaroid o la vieja cámara en blanco y negro de tu Gameboy Classic? ¡Nosotros también, cuando nos sentimos realmente nostálgicos! En este Instructable, le mostraremos cómo hacer su propia cámara instantánea usando una Raspberry Pi, una cámara Pi
Cámara térmica IR M5Stack con sensor de imágenes de matriz de infrarrojos AMG8833: 3 pasos
Cámara térmica IR M5Stack con sensor de imágenes de matriz de infrarrojos AMG8833: como muchos, he tenido una fascinación por las cámaras térmicas, pero siempre han estado fuera de mi rango de precios, ¡hasta ahora! Mientras navegaba por el sitio web de Hackaday, encontré esta cámara construida con la M5Stack Módulo ESP32 y relativamente barato
CÁMARA DE UNICORNIO - Cámara Raspberry Pi Zero W NoIR de 8 MP: 7 pasos (con imágenes)
CÁMARA DE UNICORNIO - Raspberry Pi Zero W NoIR 8MP Cámara Build: Pi Zero W NoIR 8MP Camera BuildThis Instructable fue creado para ayudar a cualquiera que quiera una cámara infrarroja o una cámara portátil realmente genial o una cámara portátil Raspberry Pi o simplemente quiera divertirse, jejeje . Este es el más asequible y configurab
Cámara térmica mejorada PiEyeR: 8 pasos (con imágenes)
Cámara térmica mejorada PiEyeR: descripción general La placa de cámara térmica infrarroja Adafruit AMG8833 puede proporcionar una cámara de imágenes de infrarrojo lejano similar a "FLIR" a aproximadamente una décima parte del precio de las unidades de imagen térmica infrarroja lejana anteriores. Por supuesto, la resolución y la sensibilidad no son tan altas