Table des matières:

Caméra thermique Apollo Pi 1979 : 10 étapes (avec photos)
Caméra thermique Apollo Pi 1979 : 10 étapes (avec photos)

Vidéo: Caméra thermique Apollo Pi 1979 : 10 étapes (avec photos)

Vidéo: Caméra thermique Apollo Pi 1979 : 10 étapes (avec photos)
Vidéo: 24.03 Вторая ночь ракетно-шахедного кошмара. Китай, как он выглядит изнутри. 2024, Novembre
Anonim
Image
Image
1979 Apollo Pi caméra thermique
1979 Apollo Pi caméra thermique
1979 Apollo Pi caméra thermique
1979 Apollo Pi caméra thermique

Ce détecteur de micro-ondes Apollo vintage a maintenant un tout nouvel objectif en tant que caméra thermique, alimenté par un Raspberry Pi Zero avec un capteur de caméra thermique Adafruit prenant les températures, affichant les résultats en temps réel sur un écran TFT lumineux de 1,3.

Il dispose d'un mode prédéfini et d'un mode dynamique - dans le premier, les couleurs affichées à l'écran sont basées sur des seuils de température codés en dur, et dans le second, la gamme de couleurs peut être ajustée à l'aide des curseurs de température sur un tableau de bord Adafruit.io. Le tableau de bord est également instantanément affiche tous les instantanés téléchargés par l'appareil, qui sont capturés à l'aide du bouton du pouce d'origine sur la poignée.

L'ensemble du système est alimenté par une batterie USB cylindrique mince dissimulée dans la poignée, qui peut être facilement rechargée en retirant le cône du nez et en branchant un câble USB.

Seuls trois scripts Python contrôlent la logique du menu, le capteur et l'intégration Adafruit.io, avec l'affichage géré par PyGame.

Travailler sur ce projet m'a vraiment aidé à rester positif pendant le verrouillage, et avec le temps supplémentaire dont nous disposons, les enfants et moi avons trouvé beaucoup de choses intéressantes autour de la maison pour le signaler !

Jetez un œil à l'Apollo Pi en action dans la vidéo YouTube, au cas où vous ne pourriez pas voir la version intégrée ci-dessus, c'est sur

Fournitures

Moniteur micro-ondes Apollo

Raspberry Pi Zero W

Déploiement de la caméra thermique Adafruit AMG8833

Écran Adafruit Mini PiTFT 1,3"

Câbles de démarrage

Disque vibrant 3v

Banque d'alimentation USB

Étape 1: démontage

Abattre
Abattre
Abattre
Abattre
Abattre
Abattre

J'ai acheté l'Apollo Monitor lors d'une vente d'occasion l'été dernier, pour son look unique plutôt qu'autre chose - ce qui est aussi bien car il avait définitivement connu des jours meilleurs ! Les circuits à l'intérieur étaient incomplets et le tout était recouvert d'un gâchis de colle, une tentative historique de le réparer.

Il aurait été utilisé à l'origine pour vérifier la présence de rayonnement micro-ondes, vraisemblablement dans une sorte de milieu industriel étant donné sa conception et la rareté des fours à micro-ondes à l'époque, bien que je n'aie pas pu en savoir beaucoup plus à ce sujet. Une chose que je savais, ce serait la maison idéale pour une caméra thermique.

Dès que j'ai fait sauter le "nez" conique, le reste s'est littéralement effondré, et le compteur analogique collé et le bouton rectangulaire ont été facilement retirés. J'ai gardé le bouton cependant, il était parfaitement fonctionnel et d'une forme vraiment étrange, donc j'aurais eu du mal à installer un remplacement dans le même trou.

Étape 2: Câblage

Câblage
Câblage
Câblage
Câblage

Avant de couper le boîtier pour que tout s'adapte, je voulais d'abord m'assurer que je savais comment les pièces s'assembleraient, alors je me suis mis à câbler le capteur et l'écran. Le capteur lui-même fonctionnait bien, il suffisait de quatre câbles de démarrage pour le connecter au Raspberry Pi.

L'écran était un peu plus compliqué, le schéma de brochage montrait que je devais connecter 13 câbles de démarrage - il est évidemment conçu pour s'asseoir directement sur un Pi, donc je n'avais vraiment à blâmer que moi-même. J'ai décidé d'ajouter un morceau d'en-tête femelle entre l'écran et les connexions Pi, afin que je puisse retirer l'écran et le connecter facilement. C'était une excellente idée, et j'ai suivi très attentivement le schéma de brochage pour câbler l'en-tête au Pi.

Ensuite, j'ai soudé de nouveaux câbles de démarrage au bouton d'origine, afin qu'il puisse être connecté au GPIO et utilisé pour capturer des instantanés d'images thermiques. Enfin, j'ai soudé un petit disque vibrant directement aux broches GPIO, pour fournir un retour haptique aux pressions sur les boutons.

Étape 3: Mods de cas

Mods de cas
Mods de cas
Mods de cas
Mods de cas

L'une des choses qui a ressuscité le moniteur Apollo de ma boîte "à faire" était le trou d'affichage en haut - c'était à peu près la taille dont j'avais besoin pour le petit écran Adafruit. Grossièrement. Il a fallu environ une heure avec une lime pour étendre le trou à la bonne taille, mais heureusement, j'ai réussi à ne pas détruire le boîtier au cours du processus.

J'ai également coupé des parties de l'intérieur qui contenaient à l'origine une batterie PP3 et découpé quelques cloisons à l'intérieur de la poignée pour faire de la place pour la batterie, à l'aide d'un outil rotatif.

Enfin, j'ai percé de gros trous pour que les câbles du capteur et du câble de charge puissent sortir du "nez" pour rejoindre le reste des circuits.

Étape 4: Puissance

Puissance
Puissance
Puissance
Puissance
Puissance
Puissance
Puissance
Puissance

Pour ce projet, j'ai décidé de ne pas utiliser une batterie LiPo et un adaptateur/chargeur, car il y avait plus de place dans le boîtier. J'ai plutôt décidé d'utiliser une banque d'alimentation USB standard. Je voulais en obtenir un cylindrique fin, pour s'adapter à l'intérieur de la poignée, alors j'ai cherché le moins cher et le plus fin que j'ai pu trouver sur Amazon. Celui qui est arrivé, avec sa torche LED ringard et son style de fausse batterie était le plus fin que j'ai pu trouver, mais en le déballant, j'ai réalisé qu'il était encore trop épais pour tenir dans la poignée. Puis j'ai réalisé qu'il s'était détaché - le dessus s'était dévissé et la batterie nue à l'intérieur a glissé, m'épargnant parfaitement les 3 mm dont j'avais besoin pour l'insérer dans la poignée, quel résultat !

Ensuite, j'ai pris un court câble Micro USB, enlevé une partie de l'isolation, coupé le câble positif et soudé dans un joli bouton de verrouillage carré, de sorte que l'alimentation puisse être contrôlée sans avoir à débrancher la batterie. Ce bouton s'insère bien dans ce qui était à l'origine le couvercle de la batterie et correspondait assez bien à celui d'origine sur le dessus du boîtier. Maintenant que je savais que tout irait bien, il était temps que tout fonctionne !

Étape 5: Configuration du logiciel de la caméra thermique

Configuration du logiciel de la caméra thermique
Configuration du logiciel de la caméra thermique

Le capteur thermique lui-même est un appareil photo thermique Adafruit AMG8833IR, qui utilise un réseau de capteurs 8x8 pour créer l'image thermique. Cela fonctionne avec Arduino et Raspberry Pi, mais le plus grand avantage de l'utilisation d'un Pi est que le logiciel peut utiliser le module python scipy pour effectuer une interpolation bicubique sur les données capturées, ce qui la fait ressembler à une image 32x32, soignée !

La configuration du capteur est assez simple, mais il y a quelques obstacles à franchir, voici ce qui a fonctionné pour moi:

Activer I2C et SPI sur le Raspberry Pi (Raspberry Pi Configuration > Interfaces)

Installez la bibliothèque Blinka CircuitPython:

pip3 installer adafruit-blinka

Installez ensuite la bibliothèque de capteurs AMG8XX:

sudo pip3 installer adafruit-circuitpython-amg88xx#

Éteignez le Pi et connectez le capteur - seulement 4 fils heureusement !

Installez ensuite les modules scipy, pygame et color:

sudo apt-get install -y python-scipy python-pygamesudo pip3 installer la couleur

À ce stade, mon code a généré une erreur scipy, je l'ai donc réinstallé avec:

Sudo Pip3 installer scipy

Ensuite, j'ai reçu l'erreur: ImportError: libf77blas.so.3: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type

Cela a été résolu en installant:

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

À partir de là, l'exemple de code a bien fonctionné, exécutant le script depuis la console plutôt que depuis Thonny:

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

Cela a fait apparaître l'affichage du capteur à l'écran dans une fenêtre Pygame, et après quelques ajustements aux seuils de couleur/température, j'ai été hypnotisé par une image thermique de mon visage.

Étape 6: Configuration du logiciel de l'écran LCD

Configuration du logiciel de l'écran LCD
Configuration du logiciel de l'écran LCD
Configuration du logiciel de l'écran LCD
Configuration du logiciel de l'écran LCD

C'était vraiment bien de faire fonctionner le capteur, mais maintenant j'avais besoin de l'afficher sur le petit écran. L'écran que j'ai utilisé est un Adafruit Mini PiTFT 1.3 240x240 - principalement parce que sa résolution et sa forme étaient parfaitement adaptées à la caméra thermique, il était également de la bonne taille pour tenir dans le boîtier et offrait les deux boutons connectés GPIO dont j'avais besoin.

Les instructions d'Adafruit proposaient ici deux options: une méthode facile et une méthode difficile - après avoir expérimenté, j'ai réalisé que je devais utiliser la méthode difficile, car le capteur nécessitait un accès direct au tampon d'images. En suivant les instructions étape par étape, tout allait bien jusqu'à ce que je réponde à la question "Voulez-vous que la console apparaisse" - j'ai initialement sélectionné Non, mais j'aurais dû dire Oui. C'était un peu pénible car cela signifiait que je devais refaire le processus, mais cela m'a fait prendre conscience qu'une fois que le Pi est configuré pour afficher la console sur le TFT, il n'affichera plus le bureau via HDMI (au moins c'était mon expérience).

Pourtant, une fois la configuration terminée, au redémarrage, le petit écran affichait une version miniature du processus de démarrage habituel de Pi, et lorsque j'ai exécuté l'exemple de script de caméra thermique, la fenêtre pygame affichait l'image thermique sur le petit écran - très satisfaisant !

Étape 7: Modifications du code

Modifications du code
Modifications du code
Modifications du code
Modifications du code

L'exemple de code a bien fonctionné, mais je voulais qu'il en fasse un peu plus, alors j'ai commencé à peaufiner les scripts à mon goût. J'ai commencé par créer un script de menu qui se chargerait au démarrage et ferait bon usage des deux boutons intégrés au tableau d'affichage.

menu.py

Tout d'abord, j'ai trouvé du Python en ligne qui afficherait un bel effet de menu animé sur le petit écran, en utilisant PyGame. La beauté de ce script est qu'il anime toutes les images dans un dossier défini, il serait donc facile de modifier l'animation à un stade ultérieur (par exemple pour faire correspondre les couleurs de l'animation au boîtier). J'ai défini le script de menu de sorte qu'appuyer sur l'un des boutons arrête l'animation et ouvre soit fièvre.py ou chill.py, les scripts pour afficher l'affichage du capteur. Avec ce travail, j'ai configuré le script pour qu'il s'exécute au démarrage - généralement, je le fais en modifiant /etc/xdg/lxsession/LXDE-pi/autostart, mais comme cette méthode repose sur le chargement du bureau, j'avais besoin d'une option différente cette fois-ci.

J'ai donc d'abord édité le fichier rc.local…

sudo nano /etc/rc.local

… puis ajouté dans la suite juste au-dessus de la ligne de sortie…

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

… après s'être d'abord assuré que le script menu.py avait ce qui suit tout en haut…

#!/usr/bin/env python3

… et aussi après avoir défini menu.py en tant que script exécutable en tapant:

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

dans le terminal.

fièvre.py (Préréglage)

Pour le script Preset, j'ai d'abord défini les seuils de couleur / température, en définissant le seuil inférieur (bleu) à 16 et le supérieur (rouge) à 37,8. Cela montrerait théoriquement toujours le visage d'une personne en vert, mais s'illuminerait en rouge si la température était égale ou supérieure à 37,8 degrés. Il y a beaucoup de recherches en ligne sur l'échantillonnage de la température corporelle via différentes méthodes, mais avec la variance du capteur de +/- 2,5 degrés, j'ai décidé de m'en tenir à la plage de "fièvre" la plus largement acceptée - c'est assez facile à changer via ssh à une date ultérieure.

Ensuite, j'ai défini les deux boutons d'écran pour fermer le script en cours et ouvrir menu.py. Je voulais aussi trouver un moyen de capturer et d'exporter l'image de la caméra, et avoir trouvé la bonne commande PyGame

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

J'ai configuré cela pour qu'il s'exécute lorsque le bouton "pouce" a été enfoncé - celui que vous auriez utilisé à l'origine pour prendre une lecture au micro-ondes. Cela a pris en charge la capture de l'image, j'ai ensuite ajouté quelques lignes de Python afin que l'image soit immédiatement téléchargée sur un tableau de bord Adafruit IO une fois capturée, afin qu'elle puisse être visualisée sur d'autres appareils et facilement téléchargée. Avec un "enregistrer sous" rapide, le script prédéfini était terminé.

chill.py (Dynamique)

Une caméra thermique ne se limite pas à rechercher des températures spécifiques, et je voulais que le script dynamique soit flexible, afin que les seuils de couleur supérieur et inférieur puissent être facilement ajustés. Je ne voulais pas ajouter de boutons supplémentaires à l'appareil et compliquer la navigation, j'ai donc choisi d'utiliser des curseurs sur un tableau de bord Adafruit.io.

J'avais déjà la majeure partie du code Adafruit dans le script Preset, je devais donc juste ajouter quelques lignes supplémentaires, afin que les valeurs de curseur actuelles du tableau de bord soient récupérées au lancement et définies comme valeurs d'affichage par défaut.

Le code que j'ai utilisé est tout disponible sur GitHub, pour le réutiliser il vous suffit de télécharger le dossier FeverChill dans le dossier /pi/ de votre Pi et d'entrer vos identifiants Adafruit.io et les noms de flux dans les scripts, une fois votre affichage & capteur sont configurés.

Avec les scripts qui fonctionnaient bien, il était temps de passer à quelque chose de plus compliqué !

Étape 8: Finition des retouches

Retouches de finition
Retouches de finition
Retouches de finition
Retouches de finition
Retouches de finition
Retouches de finition

À l'origine, ce projet était censé être une distraction rapide de l'utilisation du capteur thermique pour autre chose, mais avec les événements actuels, je me suis retrouvé de plus en plus attiré par lui, et les petits détails supplémentaires qui l'étireraient et le rendraient plus difficile.

Le boîtier du moniteur Apollo était assez agréable à travailler, facile à couper et à poncer, mais pour le finir joliment, je voulais ranger certains des circuits imprimés visibles derrière des "masques" peints. Ceux-ci ont pris des années, les découpant à la main dans des déchets de plastique, mais c'était un travail satisfaisant. J'en ai d'abord fait un petit qui couvrirait la carte écran mais laisserait les micro-interrupteurs visibles. Ensuite, j'en ai fait un pour le capteur thermique, afin que vous ne voyiez pas d'électronique nue si vous regardiez du côté "business".

J'ai décidé de la palette de couleurs quelques jours avant le verrouillage du Royaume-Uni et j'ai eu la chance de trouver les couleurs que je voulais dans la quincaillerie voisine. Comme le boîtier s'est si bien divisé en deux, un schéma de couleurs à deux tons a été suggéré, et j'ai ensuite étendu cela au "cône de nez" et au couvercle du capteur. La peinture était très amusante, le premier jour chaud de l'année, bien que cela signifiait peindre pendant que les guêpes dans le hangar s'agitaient et s'agitaient. Je n'ai jamais utilisé de ruban de masquage avec de la peinture en aérosol auparavant, mais je suis vraiment satisfait de la façon dont les pièces bicolores qui en résultent sont sorties.

Tirant les leçons des versions précédentes, j'ai laissé durcir les pièces peintes pendant une bonne semaine avant de tenter l'assemblage et j'ai commencé à assembler la vidéo entre-temps.

Étape 9: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Chaque fois que je travaille sur un projet, j'aime arriver au stade où tout est disposé prêt à être assemblé, comme un kit de modèle fait maison. Il n'y a aucune garantie que tout ira bien ensemble et les instructions n'existent que dans ma tête, mais c'est ma partie préférée de toute construction.

Cette fois-ci, tout s'est très bien passé - principalement parce que j'avais plus de temps à consacrer aux petits détails et à m'assurer que tout était parfait. J'ai d'abord collé l'écran dans le boîtier, puis j'ai ajouté le bouton "capturer" - c'étaient les seules pièces connectées au haut du boîtier, ce qui était un bon début facile.

Ensuite, j'ai légèrement collé à chaud la batterie dans la poignée et j'ai installé le Pi avec son support dans le boîtier. Après cela, le capteur de la caméra a été soigneusement collé dans le cône de nez, l'interrupteur d'alimentation a été vissé sur le couvercle de la batterie et tout a été connecté.

J'ai utilisé des câbles de démarrage pour toutes les connexions, mais juste pour être très prudent, je les ai collés à chaud en place, en cas de mouvement lors de l'écrasement final des deux moitiés. C'était juste qu'en fait, un peu d'écrasement, mais aucun bruit de craquement, donc une fois les deux moitiés bien ajustées, j'ai poussé le cône de nez et j'ai fixé le boulon à travers la poignée - les deux seules choses qui maintiennent l'ensemble ensemble..

Cela n'a pas fonctionné la première fois, j'ai réussi à déconnecter l'écran lors du premier squishathon, mais avec quelques coudes de câbles stratégiques, tout s'est bien terminé la deuxième fois. Il est temps de pointer les choses !

Étape 10: Temps de test de température

Temps de test de température
Temps de test de température
Temps de test de température
Temps de test de température
Temps de test de température
Temps de test de température
Temps de test de température
Temps de test de température

Avoir plus de temps à la maison m'a vraiment aidé à me concentrer (obséder ?) le droit et l'étroit. Le plan initial du capteur était quelque chose de complètement différent, donc je suis très satisfait du résultat final, une construction lente et satisfaisante.

L'Apollo Pi a également fière allure sur l'étagère du projet et est certainement un outil amusant et utile à avoir, nous ne pouvons pas arrêter de le pointer sur des choses ! Dans un monde idéal, la résolution serait légèrement plus élevée, et je dois trouver un moyen de "retourner" l'affichage tel qu'il est reflété pour le moment, mais ce sont de petits problèmes.

Merci d'avoir lu et restez en sécurité tout le monde.

Mes autres projets Old Tech, New Spec sont tous sur Instructables à

Plus de détails sont sur le site Web à https://bit.ly/OldTechNewSpec. et je suis sur Twitter @OldTechNewSpec.

Conseillé: