Innholdsfortegnelse:

1979 Apollo Pi termisk kamera: 10 trinn (med bilder)
1979 Apollo Pi termisk kamera: 10 trinn (med bilder)

Video: 1979 Apollo Pi termisk kamera: 10 trinn (med bilder)

Video: 1979 Apollo Pi termisk kamera: 10 trinn (med bilder)
Video: Kate Bush - The tour of Life HD LPR Remastering (Live at Hammersmith Odeon 79) 2024, November
Anonim
Image
Image
1979 Apollo Pi termisk kamera
1979 Apollo Pi termisk kamera
1979 Apollo Pi termisk kamera
1979 Apollo Pi termisk kamera

Denne vintage Apollo mikrobølgeovndetektoren har nå et skinnende nytt formål som et termisk kamera, drevet av en Raspberry Pi Zero med en Adafruit termisk kamerasensor som tar temperaturene, og viser resultatene i sanntid på en lys 1.3 TFT-skjerm.

Den har en forhåndsinnstilling og en dynamisk modus - i den første er fargene som vises på skjermen basert på hardkodede temperaturgrenser, og i den andre kan fargeområdet justeres ved hjelp av temperaturglidere på et Adafruit.io -dashbord. viser alle øyeblikksbilder som er lastet opp av enheten, og som tas med den originale tommelknappen på grepet.

Hele systemet drives av en tynn, sylindrisk USB -batteripakke som er skjult i håndtaket, som enkelt kan lades opp ved å dukke av nesekeglen og koble til en USB -kabel.

Bare tre Python -skript styrer menylogikken, sensoren og Adafruit.io -integrasjonen, med displayet håndtert av PyGame.

Arbeidet med dette prosjektet har virkelig bidratt til å holde meg positiv under lockdown, og med ekstra tid på hendene har barna og jeg funnet mange interessante ting rundt huset å vise det til!

Ta en titt på Apollo Pi i aksjon i YouTube -videoen, hvis du ikke kan se den innebygde versjonen ovenfor, er den på

Rekvisita

Apollo mikrobølgeovnmonitor

Raspberry Pi Zero W

Adafruit AMG8833 termisk kamera breakout

Adafruit Mini PiTFT 1,3 skjerm

Hoppekabler

3v vibrerende plate

USB strømbank

Trinn 1: Nedrivning

Rive ned
Rive ned
Rive ned
Rive ned
Rive ned
Rive ned

Jeg hentet Apollo Monitor på et brukt salg i fjor sommer, for sitt unike utseende i stedet for noe annet - som er like bra som det definitivt hadde sett bedre dager! Kretsene inne var ufullstendige og det hele var dekket av et rot med lim, et historisk forsøk på å reparere det.

Det ville opprinnelig ha blitt brukt til å sjekke om det finnes mikrobølgestråling, antagelig i noen slags industrielle omgivelser gitt designet og sjeldenheten til mikrobølgeovner den gangen, selv om jeg ikke kunne finne ut mer om det. En ting jeg visste, det ville gjøre det ideelle hjemmet for et termisk kamera.

Så snart jeg spratt av den koniske "nesen" falt resten av bokstavelig talt fra hverandre, og den pålimte analoge måleren og den rektangulære knappen ble enkelt fjernet. Jeg beholdt knappen, men den var helt funksjonell og en veldig merkelig form, så jeg hadde slitt med å få en erstatter i samme hull.

Trinn 2: Kabling

Kabling
Kabling
Kabling
Kabling

Før jeg trimmet saken for å få alt til å passe, ville jeg først sørge for at jeg visste hvordan delene ville gå sammen, så jeg begynte å koble til sensoren og skjermen. Selve sensoren var fin, bare fire hoppekabler trengs for å koble den til Raspberry Pi.

Skjermen var litt mer komplisert, pinout -diagrammet viste at jeg måtte koble til 13 jumper -ledninger - åpenbart at den er designet for å sitte direkte på toppen av en Pi, så jeg hadde bare meg selv å klandre. Jeg bestemte meg for å legge til et stykke kvinnelig topptekst mellom skjermen og Pi -tilkoblingene, slik at jeg enkelt kunne ta av skjermen og koble den til. Dette var en god idé, og jeg fulgte pinout -diagrammet veldig nøye for å koble overskriften til Pi.

Deretter loddet jeg noen ferske startkabler til den originale knappen, slik at den kunne kobles til GPIO og brukes til å ta bilder av termiske bilder. Til slutt loddet jeg en liten vibrerende plate direkte til GPIO -pinnene, for å gi noen haptisk tilbakemelding til knappetrykkene.

Trinn 3: Case Mods

Case Mods
Case Mods
Case Mods
Case Mods

En av tingene som gjenoppsto Apollo Monitor fra min "to do" -boks var displayhullet i toppen - dette var omtrent den størrelsen jeg trengte for den lille Adafruit -skjermen. Omtrentlig. Det tok en time eller så med en fil å utvide hullet til akkurat passe størrelse, men jeg klarte heldigvis ikke å ødelegge saken i prosessen.

Jeg hakket også bort deler av innsiden som opprinnelig inneholdt et PP3 -batteri, og kuttet ut noen skott inne i grepet for å få plass til batteripakken ved hjelp av et roterende verktøy.

Til slutt boret jeg noen store hull slik at kablene til sensoren og ladekabelen kunne komme seg fra "nesen" for å slutte seg til resten av kretsene.

Trinn 4: Strøm

Makt
Makt
Makt
Makt
Makt
Makt
Makt
Makt

For dette prosjektet bestemte jeg meg for å bruke et LiPo -batteri og adapter/lader, ettersom det var mer plass i saken. Jeg bestemte meg i stedet for å bruke en standard USB -strømbank. Jeg ønsket å få en tynn sylindrisk, for å passe inn i håndtaket, så søkte etter den billigste og tynneste jeg kunne finne på Amazon. Den som ankom, med sin tøffe LED-lommelykt og faux-batteristyling var den tynneste jeg kunne finne, men da jeg pakket den ut skjønte jeg at den fremdeles var for tykk til å passe i håndtaket. Da skjønte jeg at den løsnet - toppen skrudd av og det nakne batteriet inni gled ut, og sparte meg pent de 3 mm jeg trengte for å passe den inne i håndtaket, for et resultat!

Deretter tok jeg en kort Micro USB -kabel, fjernet noe av isolasjonen, klippte den positive kabelen og loddet i en nydelig firkantet låseknapp, slik at strømmen kunne kontrolleres uten å måtte koble fra batteripakken. Denne knappen passet fint inn i det som opprinnelig var batteridekselet, og passet ganske godt til den originale på toppen av saken. Nå som jeg visste at alt ville passe, var det på tide å få alt til å fungere!

Trinn 5: Programvareoppsett for termisk kamera

Oppsett av termisk kamera
Oppsett av termisk kamera

Selve termosensoren er en Adafruit AMG8833IR Thermal Camera Breakout, som bruker en 8x8 rekke sensorer for å lage varmebildet. Det fungerer med Arduino og Raspberry Pi, men den største fordelen med å bruke en Pi er at programvaren kan bruke scipy python -modulen til å utføre bikubisk interpolasjon på de fangede dataene, slik at det ser ut som et 32x32 bilde, pent!

Det er ganske enkelt å sette opp sensoren, men det er noen bøyler å hoppe gjennom, dette er det som fungerte for meg:

Aktiver I2C og SPI på Raspberry Pi (Raspberry Pi Configuration> Grensesnitt)

Installer Blinka CircuitPython -biblioteket:

pip3 installer adafruit-blinka

Installer neste AMG8XX sensorbibliotek:

sudo pip3 installer adafruit-circuitpython-amg88xx#

Slå av Pi, og koble til sensoren - bare 4 ledninger heldigvis!

Installer deretter modulene scipy, pygame og farge:

sudo apt-get install -y python-scipy python-pygamesudo pip3 installer farge

På dette tidspunktet sendte koden min en feilmelding, så jeg installerte den på nytt med:

Sudo Pip3 installere scipy

Da mottok jeg feilen: ImportError: libf77blas.so.3: kan ikke åpne en delt objektfil: Ingen slik fil eller katalog

Dette ble løst ved å installere:

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

Fra da av fungerte eksempelkoden fint, og kjørte skriptet fra konsollen i stedet for fra Thonny:

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

Dette fikk sensordisplayet til å dukke opp på skjermen i et pygame -vindu, og etter noen justeringer av farge-/temperaturtersklene ble jeg hypnotisert av et varmebilde av ansiktet mitt.

Trinn 6: Programvareoppsett for LCD -skjerm

Programvareoppsett for LCD -skjerm
Programvareoppsett for LCD -skjerm
Programvareoppsett for LCD -skjerm
Programvareoppsett for LCD -skjerm

Det var veldig bra å få sensoren til å fungere, men nå måtte jeg ha den vist på den lille skjermen. Skjermen jeg brukte er en Adafruit Mini PiTFT 1,3 240x240 - hovedsakelig fordi oppløsningen og formen var akkurat passe til termokameraet, den hadde også riktig størrelse for å passe i etuiet og tilbød de to GPIO -tilkoblede knappene jeg trengte.

Adafruit -instruksjonene tilbød to alternativer her: En enkel og en vanskelig måte - etter å ha eksperimentert innså jeg at jeg måtte bruke den harde måten, fordi sensoren krevde direkte tilgang til rammebufferen. Følg trinnvise instruksjonene jeg hadde det bra til jeg traff spørsmålet "Vil du at konsollen skal vises" - jeg valgte først Nei, men burde ha sagt Ja. Dette var litt smertefullt, da det betydde at jeg måtte gjøre prosessen på nytt, men det gjorde meg oppmerksom på at når Pi er satt til å vise konsollen på TFT, vil den ikke lenger vise skrivebordet via HDMI (i det minste det var min erfaring).

Når oppsettet var fullført, viste den lille skjermen imidlertid en miniatyrversjon av den vanlige Pi -oppstartsprosessen ved omstart, og da jeg kjørte eksempelet termisk kameraskript, viste pygame -vinduet varmebildet på den lille skjermen - veldig tilfredsstillende!

Trinn 7: Kodejusteringer

Code Tweaks
Code Tweaks
Code Tweaks
Code Tweaks

Eksempelkoden fungerte bra, men jeg ville at den skulle gjøre litt mer, så jeg begynte å justere skriptene etter min smak. Jeg begynte med å lage et Meny -skript som vil lastes opp ved oppstart og gjøre god bruk av de to knappene som er integrert i skjermkortet.

meny. py

For det første fant jeg noen Python online som ville vise en fin animert menyeffekt på den lille skjermen, ved hjelp av PyGame. Det fine med dette skriptet er at det animerer alle bildene i en angitt mappe, så det ville være enkelt å endre animasjonen på et senere tidspunkt (for eksempel for å matche animasjonsfargene til saken). Jeg satte meny -skriptet slik at ved å trykke på en av knappene ville stoppe animasjonen og åpne enten fever.py eller chill.py, skriptene for å vise sensordisplayet. Med dette arbeidet satte jeg skriptet til å kjøre ved oppstart - vanligvis gjør jeg dette ved å redigere/etc/xdg/lxsession/LXDE -pi/autostart, men ettersom denne metoden er avhengig av skrivebordslaster, trengte jeg et annet alternativ denne gangen.

Så først redigerte jeg rc.local -filen …

sudo nano /etc/rc.local

… deretter lagt til i det følgende like over Avslutt -linjen …

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

… etter først å ha sørget for at menu.py -skriptet hadde følgende helt øverst …

#!/usr/bin/env python3

… og også etter å ha angitt menu.py som et kjørbart skript ved å skrive:

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

inn i terminalen.

fever.py (forhåndsinnstilt)

For det forhåndsinnstilte skriptet satte jeg først farge- / temperaturgrensene, og satte den nedre (blå) til 16 og den øvre (røde) til 37,8. Dette vil teoretisk sett fortsatt vise en persons ansikt i grønt, men lyse rødt hvis temperaturen var på eller over 37,8 grader. Det er mye forskning på nettet om prøvetaking av kroppstemperatur via forskjellige metoder, men med at variansen til sensoren er +/- 2,5 grader bestemte jeg meg for å bare holde meg til det mest aksepterte "feber" -området - dette er enkelt nok å endre via ssh på en senere dato.

Deretter satte jeg de to skjermknappene for å lukke gjeldende skript og åpne meny.py. Jeg ønsket også å finne en måte å fange og eksportere kamerabildet, og etter å ha funnet den riktige PyGame -kommandoen

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

Jeg satte denne til å kjøre når du trykte på "tommel" -knappen - den du opprinnelig ville brukt til å lese en mikrobølgeovn. Det tok seg av å ta bildet, deretter la jeg til i noen linjer med Python, slik at bildet umiddelbart ble lastet opp til et Adafruit IO -dashbord når det ble tatt, slik at det kunne sees på andre enheter og enkelt lastes ned. Med en rask "lagre som" var det forhåndsinnstilte skriptet fullført.

chill.py (dynamisk)

Det er mer med et termisk kamera enn å lete etter bestemte temperaturer, og jeg ønsket at Dynamic -skriptet skulle være fleksibelt, slik at de øvre og nedre fargetersklene enkelt kunne justeres. Jeg ønsket ikke å legge til ekstra knapper på enheten og komplisere navigasjonen, så valgte å bruke glidebrytere på et Adafruit.io dashbord.

Jeg hadde allerede hoveddelen av Adafruit -koden i det forhåndsinnstilte skriptet, så jeg måtte bare legge til noen ekstra linjer, slik at gjeldende glidebryterverdier fra dashbordet ble hentet ved lansering og angitt som standardinnstillinger for skjermen.

Koden jeg brukte er tilgjengelig på GitHub, for å bruke den på nytt trenger du bare å laste ned FeverChill-mappen til / pi / mappen på Pi-en din og skrive inn legitimasjonene og feednavnene til Adafruit.io i skriptene, når skjermen er vist og sensoren er satt opp.

Med manusene som fungerte bra, var det på tide å flytte til noe mer rotete!

Trinn 8: Fullfør berøringsoppdateringer

Avsluttende touch-ups
Avsluttende touch-ups
Avsluttende touch-ups
Avsluttende touch-ups
Avsluttende touch-ups
Avsluttende touch-ups

Opprinnelig var dette prosjektet ment å være en rask distraksjon fra å bruke termosensoren til noe annet, men med nåværende hendelser fant jeg meg stadig mer trukket inn i det, og de små ekstra detaljene som ville strekke det ut og gjøre det mer av en utfordring.

Apollo Monitor -saken var ganske fin å jobbe med, lett å kutte og slipe, men for å avslutte den pent ville jeg tette noen av de synlige kretskortene bak malte "masker". Disse tok aldre, og hugget dem ut av plastbiter for hånd, men det var tilfredsstillende arbeid. Først lagde jeg en liten som skulle dekke til skjermkortet, men la mikrobryterne være synlige. Deretter lagde jeg en til termosensoren, slik at du ikke skulle se bar elektronikk hvis du så ned "business end".

Jeg bestemte meg for fargevalget et par dager før Storbritannia gikk i lås, og var så heldig å finne fargene jeg ønsket i den nærliggende maskinvarebutikken. Ettersom saken delte seg så fint i to halvdeler ble det foreslått et fargeton i to farger, og jeg utvidet dette deretter til "neskeglen" og sensordekselet. Maleriet var veldig morsomt, den første varme dagen i året, selv om det betydde å male mens vepsene i skuret rørte rundt og freset. Jeg har ikke brukt malertape med spraymaling før, men jeg er veldig fornøyd med hvordan de tofargede bitene kom ut.

Da jeg lærte av tidligere bygg, lot jeg de malte delene herde i en god uke før jeg prøvde å montere det, og begynte å sette sammen videoen i mellomtiden.

Trinn 9: Montering

montering
montering
montering
montering
montering
montering

Når jeg jobber med et prosjekt, elsker jeg å komme til scenen der alt er lagt klart for montering som et selvlaget modellsett. Det er ingen garantier for at alt vil passe sammen, og instruksjonene finnes bare i hodet mitt, men det er min favorittdel av enhver bygning.

Denne gangen gikk det veldig greit - hovedsakelig fordi jeg hadde ekstra tid å bruke på de små detaljene og sørge for at alt var akkurat -så. Jeg limte skjermen først inn i saken først, og la deretter til "fangst" -knappen - dette var de eneste delene som var koblet til toppen av saken, så det var en fin enkel start.

Deretter limte jeg batteripakken lett inn i grepet, og monterte Pi med braketten i saken. Etter at kamerasensoren ble limt forsiktig inn i nesekeglen, ble strømbryteren skrudd på batteridekselet og alt ble koblet til.

Jeg brukte jumperkabler for alle tilkoblingene, men for å være ekstra forsiktig, limte jeg disse på plass, i tilfelle det skulle bevege seg under den siste sammenpressingen av de to halvdelene. Det var bare det som var litt av en squish, men ingen sprekklyder, så når de to halvdelene var tett sammen, presset jeg nesekeglen og festet bolten gjennom håndtaket - de eneste to tingene som holdt hele enheten sammen.

Det fungerte ikke første gangen, jeg klarte å koble fra skjermen under det første squishathonet, men med noen få strategiske kabelbøyninger endte alt lykkelig andre gang. På tide å peke på ting!

Trinn 10: Temperaturtestingstider

Testtider for temperatur
Testtider for temperatur
Testtider for temperatur
Testtider for temperatur
Testtider for temperatur
Testtider for temperatur
Testtider for temperatur
Testtider for temperatur

Å ha ekstra tid hjemme hjalp meg virkelig med å fokusere (besatt?) Mer enn vanlig på de små detaljene i dette prosjektet, og det sørget definitivt for en renere finish og færre overraskelser ved monteringstid - i tillegg til å holde mitt mentale velvære på det rette og smale. Den opprinnelige planen for sensoren var noe helt annet, så jeg er veldig fornøyd med sluttresultatet, et sakte og tilfredsstillende bygg.

Apollo Pi ser også flott ut på prosjekthyllen og er definitivt et morsomt og nyttig verktøy å ha rundt seg, vi kan ikke slutte å peke den på ting! I en ideell verden ville det vært litt høyere oppløsning, og jeg må finne en måte å "snu" skjermen slik den speiles for øyeblikket, men dette er små niggles.

Takk for at du leser og vær trygg alle sammen.

Mine andre Old Tech, New Spec -prosjekter er alle på Instructables på

Flere detaljer er på nettstedet på https://bit.ly/OldTechNewSpec. og jeg er på Twitter @OldTechNewSpec.

Anbefalt: