Inhoudsopgave:

1979 Apollo Pi thermische camera: 10 stappen (met afbeeldingen)
1979 Apollo Pi thermische camera: 10 stappen (met afbeeldingen)

Video: 1979 Apollo Pi thermische camera: 10 stappen (met afbeeldingen)

Video: 1979 Apollo Pi thermische camera: 10 stappen (met afbeeldingen)
Video: Los descendientes de los incas, del Tahuantinsuyo a la República-Ronald Elward 2024, Juli-
Anonim
Image
Image
1979 Apollo Pi thermische camera
1979 Apollo Pi thermische camera
1979 Apollo Pi thermische camera
1979 Apollo Pi thermische camera

Deze vintage Apollo-microgolfdetector heeft nu een glanzend nieuw doel als thermische camera, aangedreven door een Raspberry Pi Zero met een Adafruit thermische camerasensor die de temperaturen opneemt en de resultaten in realtime weergeeft op een helder 1,3 TFT-scherm.

Het heeft een vooraf ingestelde en een dynamische modus - in de eerste zijn de kleuren die op het scherm worden weergegeven gebaseerd op hardgecodeerde temperatuurdrempels, en in de tweede kan het kleurbereik worden aangepast met behulp van temperatuurschuifregelaars op een Adafruit.io-dashboard. Het dashboard ook direct geeft alle snapshots weer die door het apparaat zijn geüpload en die zijn vastgelegd met de originele duimknop op de handgreep.

Het hele systeem wordt aangedreven door een dunne, cilindrische USB-batterij die in de handgreep is verborgen en die gemakkelijk kan worden opgeladen door de neuskegel los te maken en een USB-kabel aan te sluiten.

Slechts drie Python-scripts besturen de menulogica, sensor en Adafruit.io-integratie, waarbij de weergave wordt afgehandeld door PyGame.

Het werken aan dit project heeft me echt geholpen om positief te blijven tijdens de lockdown, en met de extra tijd die we hebben, hebben de kinderen en ik veel interessante dingen in huis gevonden om op te wijzen!

Bekijk de Apollo Pi in actie in de YouTube-video, voor het geval je de ingesloten versie hierboven niet kunt zien, staat deze op

Benodigdheden

Apollo Magnetron Monitor

Raspberry Pi Zero W

Adafruit AMG8833 thermische camera breakout

Adafruit Mini PiTFT 1.3 Scherm

Startkabels

3v vibrerende schijf

USB-powerbank

Stap 1: Afbreken

Scheuren
Scheuren
Scheuren
Scheuren
Scheuren
Scheuren

Ik heb de Apollo Monitor afgelopen zomer op een tweedehandsverkoop gekocht, eerder vanwege zijn unieke uiterlijk dan iets anders - wat net zo goed is als het zeker betere dagen had gekend! De circuits binnenin waren onvolledig en het hele ding was bedekt met een puinhoop van lijm, een historische poging om het te repareren.

Het zou oorspronkelijk zijn gebruikt om de aanwezigheid van microgolfstraling te controleren, vermoedelijk in een soort industriële omgeving gezien het ontwerp en de zeldzaamheid van magnetrons in die tijd, hoewel ik er niet veel meer over kon vinden. Eén ding wist ik wel: het zou het ideale huis zijn voor een thermische camera.

Zodra ik de conische "neus" losliet, viel de rest letterlijk uit elkaar, en de vastgelijmde analoge meter en rechthoekige knop waren gemakkelijk te verwijderen. Ik heb de knop echter behouden, hij was perfect functioneel en een heel vreemde vorm, dus ik zou moeite hebben gehad om een vervanging in hetzelfde gat te passen.

Stap 2: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Voordat ik de behuizing ging trimmen om alles passend te maken, wilde ik eerst zeker weten hoe de onderdelen in elkaar zouden passen, dus begon ik de sensor en het scherm te bekabelen. De sensor zelf was in orde, er waren slechts vier startkabels nodig om hem op de Raspberry Pi aan te sluiten.

Het scherm was een beetje ingewikkelder, het pinout-diagram liet zien dat ik 13 jumperdraden moest aansluiten - het is duidelijk ontworpen om direct op een Pi te zitten, dus ik had eigenlijk alleen mezelf de schuld. Ik besloot een stuk vrouwelijke header toe te voegen tussen het scherm en de Pi-verbindingen, zodat ik het scherm eraf kon halen en gemakkelijk kon aansluiten. Dit was een geweldig idee, en ik volgde het pinout-diagram heel nauwkeurig om de header op de Pi aan te sluiten.

Vervolgens heb ik wat nieuwe startkabels aan de originele knop gesoldeerd, zodat deze op de GPIO kon worden aangesloten en gebruikt om snapshots van warmtebeelden vast te leggen. Ten slotte heb ik een klein trillend schijfje rechtstreeks op de GPIO-pinnen gesoldeerd, om wat haptische feedback te geven bij het indrukken van de knop.

Stap 3: Case-mods

Case-mods
Case-mods
Case-mods
Case-mods

Een van de dingen die de Apollo Monitor uit mijn "to do"-doos deed herleven, was het display-gat in de bovenkant - dit was ongeveer de maat die ik nodig had voor het kleine Adafruit-scherm. Ongeveer. Het duurde een uur of zo met een vijl om het gat uit te breiden tot precies de juiste maat, maar ik slaagde er gelukkig in de koffer niet te vernietigen tijdens het proces.

Ik heb ook delen van de binnenkant weggehakt die oorspronkelijk een PP3-batterij bevatten, en enkele schotten in de greep uitgesneden om ruimte te maken voor het batterijpakket, met behulp van een roterend gereedschap.

Tot slot heb ik een aantal grote gaten geboord zodat de kabels voor de sensor en de laadkabel vanuit de "neus" hun weg konden vinden naar de rest van de circuits.

Stap 4: Voeding

Stroom
Stroom
Stroom
Stroom
Stroom
Stroom
Stroom
Stroom

Voor dit project heb ik besloten om geen LiPo-batterij en adapter/oplader te gebruiken, omdat er meer ruimte in de koffer was. Ik besloot in plaats daarvan een standaard USB-powerbank te gebruiken. Ik wilde een dunne cilindrische, die in het handvat past, dus zocht ik naar de goedkoopste en dunste die ik op Amazon kon vinden. Degene die arriveerde, met zijn goedkope LED-zaklamp en faux-batterijstijl, was de dunste die ik kon vinden, maar toen ik hem uitpakte, realiseerde ik me dat hij nog steeds te dik was om in het handvat te passen. Toen realiseerde ik me dat het uit elkaar viel - de bovenkant werd losgeschroefd en de naakte batterij binnenin gleed naar buiten, waardoor ik netjes de 3 mm bespaarde die ik nodig had om het in het handvat te passen, wat een resultaat!

Vervolgens nam ik een korte micro-USB-kabel, verwijderde een deel van de isolatie, knipte de positieve kabel af en soldeerde een mooie vierkante vergrendelingsknop in, zodat de stroom kon worden geregeld zonder de batterij los te hoeven koppelen. Deze knop paste mooi in wat oorspronkelijk de batterijklep was, en kwam redelijk goed overeen met de originele op de bovenkant van de behuizing. Nu ik wist dat alles zou passen, was het tijd om het allemaal werkend te krijgen!

Stap 5: Installatie van thermische camerasoftware

Installatie van thermische camerasoftware
Installatie van thermische camerasoftware

De thermische sensor zelf is een Adafruit AMG8833IR Thermal Camera Breakout, die een 8x8-reeks sensoren gebruikt om het warmtebeeld te creëren. Het werkt met Arduino en Raspberry Pi, maar het grootste voordeel van het gebruik van een Pi is dat de software de scipy python-module kan gebruiken om bicubische interpolatie uit te voeren op de vastgelegde gegevens, waardoor het eruitziet als een 32x32-afbeelding, netjes!

Het instellen van de sensor is vrij eenvoudig, maar er zijn enkele hoepels om doorheen te springen, dit is wat voor mij werkte:

Schakel I2C en SPI in op de Raspberry Pi (Raspberry Pi-configuratie> Interfaces)

Installeer de Blinka CircuitPython-bibliotheek:

pip3 installeer adafruit-blinka

Installeer vervolgens de AMG8XX-sensorbibliotheek:

sudo pip3 installeer adafruit-circuitpython-amg88xx#

Schakel de Pi uit en sluit de sensor aan - gelukkig maar 4 draden!

Installeer vervolgens de scipy-, pygame- en kleurmodules:

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

Op dit punt gaf mijn code een scipy-fout, dus ik heb hem opnieuw geïnstalleerd met:

Sudo Pip3 installeer scipy

Toen ontving ik de fout: ImportError: libf77blas.so.3: kan het gedeelde objectbestand niet openen: geen dergelijk bestand of map

Dit is opgelost door te installeren:

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

Vanaf dat moment werkte de voorbeeldcode prima, waarbij het script vanaf de console werd uitgevoerd in plaats van vanuit Thonny:

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

Hierdoor verscheen de sensorweergave op het scherm in een pygame-venster en na wat aanpassingen aan de kleur- / temperatuurdrempels werd ik gehypnotiseerd door een warmtebeeld van mijn gezicht.

Stap 6: Lcd-schermsoftware instellen

Lcd-schermsoftware instellen
Lcd-schermsoftware instellen
Lcd-schermsoftware instellen
Lcd-schermsoftware instellen

Het was echt goed om de sensor werkend te krijgen, maar nu moest ik hem op het kleine scherm laten zien. Het scherm dat ik gebruikte is een Adafruit Mini PiTFT 1.3 240x240 - voornamelijk omdat de resolutie en vorm precies goed waren voor de thermische camera, ook omdat het de juiste maat had om in de behuizing te passen en de twee GPIO-verbonden knoppen bood die ik nodig had.

De Adafruit-instructies boden hier twee opties: een gemakkelijke en een harde manier - na wat experimenteren realiseerde ik me dat ik de harde manier moest gebruiken, omdat de sensor directe toegang tot de framebuffer vereiste. Door de stapsgewijze instructies te volgen, ging het goed totdat ik op de vraag "Wilt u dat de console verschijnt" klikte - ik selecteerde aanvankelijk Nee, maar had Ja moeten zeggen. Dit was een beetje vervelend, omdat het betekende dat ik het proces opnieuw moest doen, maar het maakte me wel bewust dat als de Pi eenmaal is ingesteld om de console op de TFT weer te geven, het bureaublad niet langer via HDMI wordt weergegeven (tenminste dat was mijn ervaring).

Maar toen de installatie eenmaal voltooid was, vertoonde het kleine scherm bij het opnieuw opstarten een miniatuurversie van het gebruikelijke Pi-opstartproces, en toen ik het voorbeeld van het thermische camerascript uitvoerde, toonde het pygame-venster het warmtebeeld op het kleine scherm - zeer bevredigend!

Stap 7: Code Tweaks

Code Tweaks
Code Tweaks
Code Tweaks
Code Tweaks

De voorbeeldcode werkte prima, maar ik wilde dat het een beetje meer deed, dus begon ik de scripts naar mijn smaak aan te passen. Ik begon met het maken van een menuscript dat bij het opstarten zou laden en goed gebruik zou maken van de twee knoppen die in het displaybord waren geïntegreerd.

menu.py

Ten eerste vond ik wat Python online die een mooi geanimeerd menu-effect op het kleine scherm zou weergeven, met behulp van PyGame. Het mooie van dit script is dat het alle afbeeldingen in een vaste map animeert, dus het zou gemakkelijk zijn om de animatie in een later stadium te wijzigen (bijvoorbeeld om de animatiekleuren af te stemmen op de case). Ik heb het menuscript zo ingesteld dat het indrukken van een van de knoppen de animatie zou stoppen en koorts.py of chill.py zou openen, de scripts om de sensorweergave weer te geven. Met deze werking heb ik het script ingesteld om te worden uitgevoerd bij het opstarten - normaal doe ik dit door /etc/xdg/lxsession/LXDE-pi/autostart te bewerken, maar omdat deze methode afhankelijk is van het laden van het bureaublad, had ik deze keer een andere optie nodig.

Dus eerst heb ik het rc.local-bestand bewerkt …

sudo nano /etc/rc.local

… vervolgens toegevoegd in het volgende net boven de regel Exit …

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

…na ervoor gezorgd te hebben dat het menu.py-script het volgende helemaal bovenaan had staan …

#!/usr/bin/env python3

…en ook na het instellen van menu.py als een uitvoerbaar script door te typen:

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

in de terminal.

koorts.py (vooraf ingesteld)

Voor het Preset-script stel ik eerst de kleur- / temperatuurdrempels in, waarbij ik de onderste (blauw) op 16 en de bovenste (rood) op 37,8 stel. Dit zou in theorie nog steeds het gezicht van een persoon groen weergeven, maar rood oplichten als de temperatuur 37,8 graden of hoger was. Er is veel online onderzoek naar het meten van lichaamstemperatuur via verschillende methoden, maar met de variantie van de sensor van +/- 2,5 graden heb ik besloten om gewoon vast te houden aan het meest geaccepteerde "koorts" -bereik - dit is eenvoudig genoeg om te veranderen via ssh op een latere datum.

Vervolgens stel ik de twee schermknoppen in om het huidige script te sluiten en menu.py te openen. Ik wilde ook een manier vinden om het camerabeeld vast te leggen en te exporteren, en ik had de juiste PyGame-opdracht gevonden

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

Ik heb dit ingesteld om uit te voeren wanneer de "duim" -knop werd ingedrukt - degene die je oorspronkelijk zou hebben gebruikt om een microgolfmeting te doen. Dat zorgde voor het vastleggen van de afbeelding, vervolgens voegde ik enkele regels Python toe, zodat de afbeelding onmiddellijk zou worden geüpload naar een Adafruit IO-dashboard zodra deze was vastgelegd, zodat deze op andere apparaten kon worden bekeken en gemakkelijk kon worden gedownload. Met een snelle "opslaan als" was dat het Preset-script voltooid.

chill.py (Dynamisch)

Een thermische camera is meer dan zoeken naar specifieke temperaturen, en ik wilde dat het Dynamic-script flexibel zou zijn, zodat de bovenste en onderste kleurdrempels gemakkelijk konden worden aangepast. Ik wilde geen extra knoppen aan het apparaat toevoegen en de navigatie bemoeilijken, dus koos ik ervoor om schuifregelaars op een Adafruit.io-dashboard te gebruiken.

Ik had het grootste deel van de Adafruit-code al in het Preset-script, dus ik moest alleen wat extra regels toevoegen, zodat de huidige schuifregelaarwaarden van het dashboard bij het opstarten zouden worden opgehaald en ingesteld als de standaardweergaven.

De code die ik heb gebruikt is allemaal beschikbaar op GitHub, om hem opnieuw te gebruiken, hoef je alleen maar de FeverChill-map te downloaden naar de /pi/-map op je Pi en je Adafruit.io-inloggegevens en feednamen in de scripts in te voeren, zodra je weergave & sensor zijn ingesteld.

Nu de scripts goed werkten, was het tijd om naar iets rommeligers te gaan!

Stap 8: Touch-ups afwerken

Touch-ups afwerken
Touch-ups afwerken
Touch-ups afwerken
Touch-ups afwerken
Touch-ups afwerken
Touch-ups afwerken

Oorspronkelijk was dit project bedoeld als een snelle afleiding van het gebruik van de thermische sensor voor iets anders, maar met de huidige gebeurtenissen merkte ik dat ik er steeds meer in werd gezogen, en de kleine extra details die het zouden verlengen en het een grotere uitdaging zouden maken.

De behuizing van de Apollo Monitor was best prettig om mee te werken, gemakkelijk te snijden en te schuren, maar om het mooi af te maken wilde ik enkele van de zichtbare printplaten achter geverfde "maskers" verstoppen. Het kostte veel tijd om ze met de hand uit stukjes plastic afval te snijden, maar het was bevredigend werk. Eerst maakte ik een kleine die het schermbord zou bedekken, maar de microschakelaars zichtbaar zou laten. Vervolgens maakte ik er een voor de thermische sensor, zodat je geen kale elektronica zou zien als je langs de "zakelijke kant" keek.

Ik besloot het kleurenschema een paar dagen voordat het VK op slot ging, en had het geluk om de kleuren te vinden die ik wilde in de nabijgelegen ijzerhandel. Omdat de behuizing zo mooi in tweeën was gesplitst, werd een tweekleurig kleurenschema voorgesteld, en ik heb dit vervolgens uitgebreid naar de "neuskegel" en het sensordeksel. Het schilderen was erg leuk, de eerste warme dag van het jaar, maar dat betekende wel schilderen terwijl de wespen in de schuur zaten te roeren en rond te malen. Ik heb nog nooit plakband met spuitverf gebruikt, maar ik ben erg blij met hoe de resulterende tweekleurige stukken eruit kwamen.

Toen ik de lessen van eerdere builds leerde, liet ik de geverfde delen een goede week uitharden voordat ik probeerde te monteren, en in de tussentijd begon ik de video in elkaar te zetten.

Stap 9: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

Wanneer ik aan een project werk, vind ik het heerlijk om op het podium te komen waar alles klaar staat voor montage als een zelfgemaakte modelkit. Er zijn geen garanties dat het allemaal in elkaar past en de instructies bestaan alleen in mijn hoofd, maar het is mijn favoriete onderdeel van elke build.

Deze keer verliep het heel soepel - vooral omdat ik extra tijd had om aan de kleine details te besteden en ervoor te zorgen dat alles precies zo was. Ik heb het scherm eerst in de behuizing gelijmd en vervolgens de "capture" -knop toegevoegd - dit waren de enige onderdelen die aan de bovenkant van de behuizing waren verbonden, dus dat was een leuke gemakkelijke start.

Vervolgens heb ik het batterijpakket licht in de greep gelijmd en de Pi met zijn beugel in de behuizing geplaatst. Daarna werd de camerasensor voorzichtig in de neuskegel gelijmd, de stroomschakelaar op het batterijklepje geschroefd en alles aangesloten.

Ik heb startkabels gebruikt voor alle verbindingen, maar om extra voorzichtig te zijn heb ik deze op hun plaats gelijmd, voor het geval er beweging optreedt tijdens het laatste samenknijpen van de twee helften. Het was gewoon een beetje een squish, maar geen krakende geluiden, dus toen de twee helften goed tegen elkaar aan zaten, duwde ik de neuskegel en maakte de bout door het handvat vast - de enige twee dingen die het hele samenstel bij elkaar hielden.

Het werkte de eerste keer niet, ik slaagde erin om het scherm los te koppelen tijdens de eerste squishathon, maar met een paar strategische kabelbochten eindigde het de tweede keer gelukkig allemaal. Tijd om het op dingen te richten!

Stap 10: Temperatuurtesttijden

Temperatuurtesttijden
Temperatuurtesttijden
Temperatuurtesttijden
Temperatuurtesttijden
Temperatuurtesttijden
Temperatuurtesttijden
Temperatuurtesttijden
Temperatuurtesttijden

Extra tijd thuis hebben heeft me echt geholpen om me meer dan normaal te concentreren (obsederen?) het rechte en smalle. Het oorspronkelijke plan voor de sensor was iets heel anders, dus ik ben erg blij met het eindresultaat, een langzame en bevredigende build.

De Apollo Pi ziet er ook geweldig uit op de projectplank en is zeker een leuk en handig hulpmiddel om in de buurt te hebben, we kunnen niet stoppen hem op dingen te wijzen! In een ideale wereld zou het een iets hogere resolutie zijn, en ik moet een manier vinden om het scherm "om te draaien", zoals het op dit moment wordt gespiegeld, maar dit zijn kleine probleempjes.

Bedankt voor het lezen en blijf veilig allemaal.

Mijn andere Old Tech, New Spec-projecten staan allemaal op Instructables op

Meer details staan op de website op https://bit.ly/OldTechNewSpec. en ik ben op Twitter @OldTechNewSpec.

Aanbevolen: