Innehållsförteckning:
- Tillbehör
- Steg 1: Rivning
- Steg 2: Kabeldragning
- Steg 3: Case Mods
- Steg 4: Ström
- Steg 5: Inställning av programvara för termisk kamera
- Steg 6: Inställning av LCD -skärmprogramvara
- Steg 7: Kod tweaks
- Steg 8: Avsluta touch-ups
- Steg 9: Montering
- Steg 10: Temperaturprovningstider
Video: 1979 Apollo Pi termisk kamera: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Denna vintage Apollo mikrovågsdetektor har nu ett glänsande nytt syfte som en värmekamera, drivs av en Raspberry Pi Zero med en Adafruit termisk kamerasensor som tar temperaturerna och visar resultaten i realtid på en ljusstark 1,3 TFT-skärm.
Den har ett förinställt och ett dynamiskt läge - i det första är färgerna som visas på skärmen baserade på hårdkodade temperaturgränser, och i det andra kan färgintervallet justeras med temperaturreglage på en Adafruit.io -instrumentpanel. Instrumentpanelen också direkt visar alla ögonblicksbilder som laddats upp av enheten och som fångas med den ursprungliga tumknappen på greppet.
Hela systemet drivs av ett tunt, cylindriskt USB -batteripaket som är dolt i handtaget, som enkelt kan laddas genom att ta av näsan och ansluta en USB -kabel.
Bara tre Python -skript styr menylogiken, sensorn och Adafruit.io -integrationen, med displayen som hanteras av PyGame.
Att arbeta med detta projekt har verkligen hjälpt mig att hålla mig positiv under lockdown, och med den extra tiden på våra händer har jag och barnen hittat många intressanta saker runt huset att peka på!
Ta en titt på Apollo Pi i aktion i YouTube -videon, om du inte kan se den inbäddade versionen ovan finns den på
Tillbehör
Apollo mikrovågsskärm
Raspberry Pi Zero W
Adafruit AMG8833 Thermal Camera Breakout
Adafruit Mini PiTFT 1,3 skärm
Startkablar
3v vibrerande skiva
USB powerbank
Steg 1: Rivning
Jag hämtade Apollo Monitor på en begagnad försäljning förra sommaren, för sitt unika utseende snarare än något annat - vilket är lika bra som det definitivt hade sett bättre dagar! Kretsarna inuti var ofullständiga och det hela var täckt av en röra av lim, ett historiskt försök att reparera det.
Det skulle ursprungligen ha använts för att kontrollera om det finns mikrovågsstrålning, förmodligen i någon slags industriell miljö med tanke på dess design och sällsynthet i mikrovågsugnar vid den tiden, även om jag inte kunde få reda på mycket mer om det. En sak jag visste, det skulle göra det perfekta hemmet för en värmekamera.
Så snart jag plockade av den koniska "näsan" föll resten av bokstavligen sönder, och den limmade analoga mätaren och rektangulära knappen togs enkelt bort. Jag behöll dock knappen, den var perfekt funktionell och en riktigt udda form, så jag hade kämpat för att få en ersättare i samma hål.
Steg 2: Kabeldragning
Innan jag trimmade höljet för att få allt att passa, ville jag först se till att jag visste hur delarna skulle gå ihop, så jag började koppla ihop sensorn och skärmen. Sensorn i sig var bra, bara fyra bygelkablar behövdes för att ansluta den till Raspberry Pi.
Skärmen var lite mer komplicerad, pinout -diagrammet visade att jag skulle behöva ansluta 13 hopparkablar - uppenbarligen är den utformad för att sitta direkt ovanpå en Pi så jag hade bara mig själv att skylla på. Jag bestämde mig för att lägga till en bit kvinnlig rubrik mellan skärmen och Pi -anslutningarna, så att jag skulle kunna ta av skärmen och ansluta den enkelt. Detta var en bra idé, och jag följde pinout -diagrammet mycket noga för att koppla ihop rubriken till Pi.
Därefter lödde jag några nya bygelkablar till den ursprungliga knappen, så att den kunde anslutas till GPIO och användas för att ta termiska bildbilder. Slutligen lodde jag en liten vibrerande skiva direkt till GPIO -stiften för att ge lite haptisk feedback till knapptryckningarna.
Steg 3: Case Mods
En av de saker som återupplivade Apollo Monitor från min "to do" -låda var displayhålet i toppen - det var ungefär den storleken jag behövde för den lilla Adafruit -skärmen. Ungefär. Det tog någon timme med en fil att förlänga hålet till lagom storlek, men jag lyckades lyckligtvis inte förstöra fallet i processen.
Jag hackade också bort delar av insidan som ursprungligen innehöll ett PP3 -batteri och skar ut några skott inuti greppet för att få plats med batteriet med hjälp av ett roterande verktyg.
Slutligen borrade jag några stora hål så att kablarna för sensorn och laddningskabeln kunde ta sig från "näsan" för att gå ihop med resten av kretsarna.
Steg 4: Ström
För detta projekt bestämde jag mig för att inte använda ett LiPo -batteri och en adapter/laddare, eftersom det fanns mer plats i fodralet. Jag bestämde mig istället för att använda en vanlig USB -powerbank. Jag ville skaffa en tunn cylindrisk, för att passa inuti handtaget, så letade efter den billigaste och tunnaste jag kunde hitta på Amazon. Den som anlände, med sin ostiga LED-ficklampa och faux-batteristyling var den tunnaste jag kunde hitta, men när jag packade upp den insåg jag att den fortfarande var för tjock för att passa i handtaget. Då insåg jag att den lossnade - toppen skruvades upp och det nakna batteriet inuti gled ut, vilket sparar mig snyggt de 3 mm jag behövde för att passa in i handtaget, vilket resultat!
Därefter tog jag en kort Micro USB -kabel, tog bort en del av isoleringen, klippte av den positiva kabeln och lödde in en härlig fyrkantig låsknapp, så att strömmen kunde kontrolleras utan att behöva koppla ur batteriet. Den här knappen passade fint in i det som ursprungligen var batteriluckan och passade ganska nära den ursprungliga på fodralet. Nu när jag visste att allt skulle passa var det dags att få allt att fungera!
Steg 5: Inställning av programvara för termisk kamera
Själva termosensorn är en Adafruit AMG8833IR Thermal Camera Breakout, som använder en 8x8 uppsättning sensorer för att skapa värmebilden. Det fungerar med Arduino och Raspberry Pi, men den största fördelen med att använda en Pi är att programvaran kan använda scipy python -modulen för att utföra bikubisk interpolering på de fångade data, vilket gör att det ser ut som en 32x32 bild, snyggt!
Att installera sensorn är ganska enkelt, men det finns några hoops att hoppa igenom, det här är vad som fungerade för mig:
Aktivera I2C och SPI på Raspberry Pi (Raspberry Pi Configuration> Interfaces)
Installera Blinka CircuitPython -biblioteket:
pip3 installera adafruit-blinka
Installera sedan sensorbiblioteket AMG8XX:
sudo pip3 installera adafruit-circuitpython-amg88xx#
Stäng av Pi och anslut sensorn - endast 4 ledningar tack och lov!
Installera sedan modulerna scipy, pygame och färg:
sudo apt-get install -y python-scipy python-pygamesudo pip3 installera färg
Vid denna tidpunkt fick min kod ett scipy -fel, så jag installerade om den med:
Sudo Pip3 installera scipy
Då fick jag felet: ImportError: libf77blas.so.3: kan inte öppna delad objektfil: Ingen sådan fil eller katalog
Detta löstes genom att installera:
sudo apt-get install python-dev libatlas-base-dev
Från och med då fungerade exempelkoden bra, kör skriptet från konsolen snarare än från Thonny:
sudo python3 /home/pi/FeverChill/cam.py
Detta fick sensordisplayen att dyka upp på skärmen i ett pygamfönster, och efter några justeringar till färg-/temperaturgränserna blev jag hypnotiserad av en värmebild av mitt ansikte.
Steg 6: Inställning av LCD -skärmprogramvara
Det var riktigt bra att få sensorn att fungera, men nu var jag tvungen att visa den på den lilla skärmen. Skärmen jag använde är en Adafruit Mini PiTFT 1,3 240x240 - främst för att dess upplösning och form var precis rätt för värmekameran, det var också rätt storlek för att passa i fodralet och erbjöd de två GPIO -anslutna knapparna jag behövde.
Adafruit -instruktionerna erbjöd två alternativ här: ett enkelt och ett hårt sätt - efter att ha experimenterat insåg jag att jag behövde använda det hårda sättet, eftersom sensorn krävde direkt åtkomst till rambufferten. Efter att ha följt instruktionerna steg för steg gick det bra tills jag fick frågan "Vill du att konsolen ska visas" - jag valde inledningsvis Nej, men borde ha sagt Ja. Detta var lite smärtsamt eftersom det innebar att jag var tvungen att göra om processen, men det gjorde mig medveten om att när Pi är inställd för att visa konsolen på TFT kommer den inte längre att visa skrivbordet via HDMI (åtminstone det var min erfarenhet).
Men när installationen var klar, vid omstart visade den lilla skärmen en miniatyrversion av den vanliga Pi -startprocessen, och när jag körde exemplet med termokameraskriptet visade pygamfönstret värmebilden på den lilla skärmen - mycket tillfredsställande!
Steg 7: Kod tweaks
Provkoden fungerade bra, men jag ville att den skulle göra lite mer, så jag började justera skripten efter min smak. Jag började med att skapa ett menyskript som skulle laddas vid start och använda de två knapparna som är integrerade i displaykortet.
meny.py
För det första hittade jag lite Python online som skulle visa en trevlig animerad menyeffekt på den lilla skärmen med PyGame. Skönheten i det här skriptet är att det animerar alla bilder i en uppsatt mapp, så det skulle vara lätt att ändra animationen i ett senare skede (till exempel för att matcha animationsfärgerna till fallet). Jag ställde in menyskriptet så att genom att trycka på någon av knapparna skulle animeringen stoppas och antingen fever.py eller chill.py öppnas, skripten för att visa sensordisplayen. Med detta arbete ställde jag in skriptet för att köras vid start - vanligtvis gör jag detta genom att redigera/etc/xdg/lxsession/LXDE -pi/autostart, men eftersom denna metod är beroende av skrivbordsladdning behövde jag ett annat alternativ den här gången.
Så först redigerade jag rc.local -filen …
sudo nano /etc/rc.local
… läggs sedan till i följande strax ovanför raden Exit …
sudo /home/pi/FeverChill/menu.py &
… efter att först ha säkerställt att meny.py -skriptet hade följande högst upp …
#!/usr/bin/env python3
… och även efter att ha ställt in menu.py som ett körbart skript genom att skriva:
chmod +x /home/pi/FeverChill/meny.py
in i terminalen.
fever.py (förinställd)
För det förinställda skriptet ställde jag först in färg- / temperaturgränserna, ställde den nedre (blå) till 16 och den övre (röda) till 37,8. Detta skulle teoretiskt sett fortfarande visa en persons ansikte i grönt, men lysa rött om temperaturen var på eller över 37,8 grader. Det finns mycket forskning online om provtagning av kroppstemperatur via olika metoder, men med att variansen för sensorn är +/- 2,5 grader bestämde jag mig för att bara hålla mig till det mest accepterade "feber" -intervallet - det är enkelt att ändra via ssh vid ett senare datum.
Därefter ställer jag in de två skärmknapparna för att stänga det aktuella skriptet och öppna menu.py. Jag ville också hitta ett sätt att fånga och exportera kamerabilden, och efter att ha hittat rätt PyGame -kommando
pygame.image.save (lcd, "thermal.jpg")
Jag ställde in det här att köras när "tummen" -knappen trycktes - den som du ursprungligen skulle ha använt för att ta en mikrovågsavläsning. Det tog hand om att fånga bilden, sedan lade jag till i några rader av Python så att bilden direkt skulle laddas upp till en Adafruit IO -instrumentpanel när den väl tagits, så att den kunde ses på andra enheter och enkelt laddas ner. Med en snabb "spara som" var det förinställda skriptet klart.
chill.py (dynamisk)
Det finns mer med en värmekamera än att leta efter specifika temperaturer, och jag ville att Dynamic -skriptet skulle vara flexibelt, så att de övre och nedre färgtrösklarna enkelt kunde justeras. Jag ville inte lägga till extra knappar på enheten och komplicera navigeringen, så valde att använda reglagen på en Adafruit.io -instrumentpanel.
Jag hade redan huvuddelen av Adafruit -koden i det förinställda skriptet, så jag var tvungen att lägga till några extra rader, så att de nuvarande skjutreglervärdena från instrumentbrädan skulle hämtas vid lanseringen och ställas in som skärmens standardvärden.
Koden jag använde är tillgänglig på GitHub, för att återanvända den behöver du bara ladda ner FeverChill-mappen till / pi / mappen på din Pi och ange dina Adafruit.io-referenser och flödesnamn i skripten, när din visning och sensorn är inställda.
Med skripten som fungerade bra var det dags att flytta till något rörigare!
Steg 8: Avsluta touch-ups
Ursprungligen var detta projekt tänkt att vara en snabb distrahering från att använda termosensorn för något annat, men med aktuella händelser fann jag mig alltmer dras in i det och de små extra detaljerna som skulle sträcka ut det och göra det mer av en utmaning.
Apollo Monitor -fodralet var ganska trevligt att arbeta med, lätt att klippa och slipa, men för att avsluta det fint ville jag stoppa några av de synliga kretskorten bakom målade "masker". Dessa tog åldrar och huggade dem av plastbitar för hand, men det var ett tillfredsställande arbete. Först gjorde jag en liten som skulle täcka över skärmkortet men lämna mikrobrytarna synliga. Därefter gjorde jag en för termosensorn, så att du inte skulle se bar elektronik om du tittade ner i "affärsslutet".
Jag bestämde mig för färgschemat ett par dagar innan Storbritannien gick i låsning och hade turen att hitta de färger jag ville ha i den närliggande järnaffären. Eftersom fallet delades så fint i halvor föreslogs ett tvåfärgat färgschema, och jag sträckte ut detta sedan till "näskonen" och sensorkåpan. Målningen var jättekul, årets första varma dag, men det innebar att måla medan getingarna i skjulet rörde och fräste. Jag har inte använt maskeringstejp med sprayfärg tidigare men jag är riktigt nöjd med hur de resulterande tvåfärgade bitarna kom ut.
När jag lärde mig av tidigare byggnader lämnade jag de målade delarna att härda i en bra vecka innan jag försökte montera och började sätta ihop videon under tiden.
Steg 9: Montering
När jag arbetar med ett projekt älskar jag att komma till scenen där allt är redo för montering som ett självgjord modellkit. Det finns inga garantier för att allt kommer att passa ihop och instruktionerna finns bara i mitt huvud, men det är min favoritdel i alla byggnader.
Den här gången gick det väldigt smidigt - mest för att jag hade extra tid att spendera på de små detaljerna och se till att allt var precis så. Jag varmlimmade skärmen i fodralet först och lade sedan till "capture" -knappen - det här var de enda delarna som var anslutna till fodralets ovansida så det var en trevlig enkel start.
Därefter limmade jag lätt batteripaketet i greppet och monterade Pi med dess fäste i fodralet. Därefter limmades kamerasensorn försiktigt in i näskonan, strömbrytaren skruvades på batteriluckan och allt var anslutet.
Jag använde bygelkablar för alla anslutningar, men för att vara extra försiktig, varmlimmade jag dessa på plats, om det skulle uppstå rörelse under de sista halvorna. Det var bara det, faktiskt, lite av en squish, men inga sprickljud, så när de två halvorna var tätt ihop tryckte jag på näsan och fixerade bulten genom handtaget - de enda två sakerna som höll hela enheten ihop.
Det fungerade inte första gången, jag lyckades koppla bort skärmen under första squishathon, men med några strategiska kabelböjningar slutade allt lyckligt andra gången. Dags att peka på saker!
Steg 10: Temperaturprovningstider
Att ha extra tid hemma hjälpte mig verkligen att fokusera (besatt?) Mer än vanligt på de små detaljerna i det här projektet, och det gjorde definitivt en renare finish och färre överraskningar vid monteringstid - liksom att hjälpa till att hålla mitt mentala välbefinnande på det raka och smala. Den ursprungliga planen för sensorn var något helt annat, så jag är mycket nöjd med slutresultatet, en långsam och tillfredsställande byggnad.
Apollo Pi ser också bra ut på projekthyllan och är definitivt ett roligt och användbart verktyg att ha runt, vi kan inte sluta peka på saker! I en idealisk värld skulle det vara något högre upplösning, och jag måste hitta ett sätt att "vända" skärmen som den speglas för tillfället, men det här är små niggles.
Tack för att du läser och var trygga alla.
Mina andra Old Tech, New Spec -projekt finns alla på Instructables på
Mer information finns på webbplatsen på https://bit.ly/OldTechNewSpec. och jag är på Twitter @OldTechNewSpec.
Rekommenderad:
Merry Grinchmas Tröja, termisk skrivare + GemmaM0: 5 steg (med bilder)
Merry Grinchmas Sweater, Thermal Printer + GemmaM0: Merry Grinchmas tröjan är ett interaktivt plagg som ger ett brett utbud av personliga tryckta meddelanden som ett klagomål när någon rör vid Grinchs hattpompon. Meddelanden mot jul kommer från en termisk skrivare som styrs av
1979 Merlin Pi kamera av hög kvalitet: 7 steg (med bilder)
1979 Merlin Pi högkvalitativ kamera: Detta trasiga gamla Merlin handhållna spel är nu ett taktilt, praktiskt fodral för en Raspberry Pi kamera av hög kvalitet. Det utbytbara kameralinset tittar fram från vad som var batteriluckan på baksidan och på framsidan har knappmatrisen rep
Infraröd kamera för termisk bildbehandling: 3 steg (med bilder)
DIY Thermal Imaging Infrared Camera: Hej! Jag letar alltid efter nya projekt för mina fysiklektioner. För två år sedan stötte jag på en rapport om termosensorn MLX90614 från Melexis. Den bästa med bara 5 ° FOV (synfält) skulle vara lämplig för en självgjord värmekamera. Att läsa
Pi-driven termisk skrivarkamera: 11 steg (med bilder)
Pi-driven termisk skrivarkamera: Saknar du din gamla Polaroid-snabbkamera eller din gamla Gameboy Classic's svartvita kamera? Det gör vi också, när vi känner oss riktigt nostalgiska! I den här instruktionsboken kommer vi att visa dig hur du gör din egen snabbkamera med en Raspberry Pi, en Pi -kamera
Ändra termisk pasta för Acer Aspire 7741G: 5 steg (med bilder)
Ändra termisk pasta för Acer Aspire 7741G: Hej alla, Efter att ha spelat några spel på min personliga bärbara dator, en Acer Aspire 7741G, såg jag att det är varmt och också, ibland efter en avstängning, kommer inte att börja förrän det svalnar. Så jag försökte demontera det och byta CPU + GPU termisk