Cuprins:

Cameră termică Apollo Pi 1979: 10 pași (cu imagini)
Cameră termică Apollo Pi 1979: 10 pași (cu imagini)
Anonim
Image
Image
Cameră termică Apollo Pi din 1979
Cameră termică Apollo Pi din 1979
Cameră termică Apollo Pi din 1979
Cameră termică Apollo Pi din 1979

Acest detector de microunde Apollo de epocă are acum un nou scop strălucitor ca cameră termică, alimentat de un Raspberry Pi Zero cu un senzor de cameră termică Adafruit care ia temperaturile, afișând rezultatele în timp real pe un ecran TFT de 1,3 luminos.

Are un mod Preset și un mod Dinamic - în primul rând culorile afișate pe ecran se bazează pe praguri de temperatură codificate, iar în al doilea intervalul de culori poate fi ajustat folosind glisoarele de temperatură de pe un tablou de bord Adafruit.io. afișează instantaneele încărcate de dispozitiv, care sunt capturate folosind butonul original deget mare de pe mâner.

Întregul sistem este alimentat de un acumulator USB subțire, cilindric, ascuns în mâner, care poate fi reîncărcat cu ușurință, scoțând conul nasului și conectând un cablu USB.

Doar trei scripturi Python controlează logica meniului, senzorul și integrarea Adafruit.io, cu afișajul gestionat de PyGame.

Lucrul la acest proiect m-a ajutat cu adevărat să mă mențin pozitiv în timpul blocării și, cu timpul suplimentar pe mâna noastră, copiii și am găsit multe lucruri interesante din casă pentru a-l indica!

Aruncați o privire la Apollo Pi în acțiune în videoclipul YouTube, în cazul în care nu puteți vedea versiunea încorporată de mai sus, este la

Provizii

Monitor Apollo cu microunde

Raspberry Pi Zero W

Adafruit AMG8833 Dispozitiv de cameră termică

Adafruit Mini PiTFT 1.3 Ecran

Cabluri jumper

Disc vibrant 3v

USB power bank

Pasul 1: dezmembrarea

Dărâma
Dărâma
Dărâma
Dărâma
Dărâma
Dărâma

Am ridicat monitorul Apollo la o vânzare la mâna a doua, vara trecută, pentru aspectul său unic, mai degrabă decât pentru orice altceva - ceea ce este la fel de bine precum văzuse cu siguranță zile mai bune! Circuitele din interior erau incomplete și totul era acoperit de o mizerie de lipici, o încercare istorică de a-l repara.

Ar fi fost inițial folosit pentru a verifica prezența radiației cu microunde, probabil într-un fel de cadru industrial, având în vedere designul său și raritatea cuptoarelor cu microunde de la acea vreme, deși nu am putut afla mai multe despre asta. Un lucru pe care l-am știut, ar fi casa ideală pentru o cameră termică.

De îndată ce am scos „nasul” conic, restul lui s-a destrămat literalmente, iar contorul analogic încleiat și butonul dreptunghiular au fost ușor îndepărtate. Am păstrat butonul, totuși, era perfect funcțional și avea o formă foarte ciudată, așa că m-aș fi străduit să încadrez un înlocuitor în aceeași gaură.

Pasul 2: Cablare

Cablare
Cablare
Cablare
Cablare

Înainte de a tunde carcasa pentru ca totul să se potrivească, am vrut mai întâi să mă asigur că știu cum vor merge piesele împreună, așa că am decis să cablez senzorul și ecranul. Senzorul în sine era în regulă, erau necesare doar patru cabluri jumper pentru a-l conecta la Raspberry Pi.

Ecranul a fost ceva mai complicat, diagrama de afișare a arătat că ar trebui să conectez 13 fire jumper - evident este conceput să stea direct deasupra unui Pi, așa că am avut doar vina pe mine. Am decis să adaug o bucată de antet feminin între ecran și conexiunile Pi, astfel încât să pot scoate ecranul și să-l conectez cu ușurință. Aceasta a fost o idee grozavă și am urmat cu atenție diagrama pinout pentru a conecta antetul la Pi.

Apoi am lipit niște cabluri jumper proaspete la butonul original, astfel încât să poată fi conectat la GPIO și folosit pentru a captura instantanee de imagine termică. În cele din urmă, am lipit un mic disc vibrator direct la pinii GPIO, pentru a oferi un feedback haptic la apăsarea butoanelor.

Pasul 3: Moduri de caz

Moduri de caz
Moduri de caz
Moduri de caz
Moduri de caz

Unul dintre lucrurile care au înviat monitorul Apollo din caseta mea „de făcut” a fost gaura de afișare din partea de sus - aceasta era aproximativ dimensiunea de care aveam nevoie pentru micul ecran Adafruit. Aproximativ. A durat aproximativ o oră cu un fișier pentru a extinde gaura la dimensiunea potrivită, dar din fericire am reușit să nu distrug cazul în acest proces.

De asemenea, am tăiat părți din interior care dețineau inițial o baterie PP3 și am decupat câteva pereți din interiorul mânerului pentru a face loc acumulatorului, folosind un instrument rotativ.

În cele din urmă, am forat niște găuri mari, astfel încât cablurile pentru senzor și cablul de încărcare să se poată îndrepta de la „nas” pentru a se uni cu restul circuitelor.

Pasul 4: Putere

Putere
Putere
Putere
Putere
Putere
Putere
Putere
Putere

Pentru acest proiect am decis să nu folosesc o baterie LiPo și un adaptor / încărcător, deoarece era mai mult spațiu în carcasă. Am decis în schimb să folosesc o bancă de alimentare USB standard. Am vrut să obțin unul cilindric subțire, care să încapă în mâner, așa că am căutat cel mai ieftin și mai subțire pe care l-am putut găsi pe Amazon. Cea care a sosit, cu lanterna LED brânză și stilul de baterie falsă a fost cea mai subțire pe care am putut să o găsesc, dar la dezaburire am realizat că era încă prea gros pentru a se potrivi în mâner. Apoi mi-am dat seama că s-a despărțit - partea superioară deșurubată și bateria goală din interior a alunecat afară, economisindu-mă cu grijă cei 3 mm de care aveam nevoie pentru a o potrivi în mâner, ce rezultat!

Apoi am luat un scurt cablu Micro USB, am dezlipit o parte din izolație, am decupat cablul pozitiv și am lipit într-un minunat buton pătrat de blocare, astfel încât puterea să poată fi controlată fără a fi nevoie să deconectați acumulatorul. Acest buton s-a încadrat frumos în ceea ce a fost inițial capacul bateriei și a fost un meci destul de apropiat pentru cel original din partea superioară a carcasei. Acum, că știam că totul se va potrivi, a venit timpul să pun totul în funcțiune!

Pasul 5: Configurarea software-ului camerei termice

Configurarea software-ului camerei termice
Configurarea software-ului camerei termice

Senzorul termic în sine este un dispozitiv termic Adafruit AMG8833IR Breakout, care utilizează o gamă de senzori 8x8 pentru a crea imaginea de căldură. Funcționează cu Arduino și Raspberry Pi, dar cel mai mare avantaj al utilizării unui Pi este că software-ul poate utiliza modulul scipy python pentru a efectua interpolare bicubică asupra datelor capturate, făcându-l să arate ca o imagine de 32x32, îngrijită!

Configurarea senzorului este destul de simplă, dar există câteva cercuri prin care să sar, acesta este ceea ce a funcționat pentru mine:

Activați I2C și SPI pe Raspberry Pi (Configurare Raspberry Pi> Interfețe)

Instalați biblioteca Blinka CircuitPython:

pip3 instalează adafruit-blinka

Apoi instalați biblioteca de senzori AMG8XX:

sudo pip3 instalați adafruit-circuitpython-amg88xx #

Opriți Pi și conectați senzorul - numai 4 fire din fericire!

Apoi instalați modulele scipy, pygame și color:

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

În acest moment, codul meu a aruncat o eroare scipy, așa că l-am reinstalat cu:

Sudo Pip3 instalează scipy

Apoi am primit eroarea: ImportError: libf77blas.so.3: nu se poate deschide fișierul de obiect partajat: nu există un astfel de fișier sau director

Acest lucru a fost rezolvat prin instalarea:

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

De atunci, exemplul de cod a funcționat bine, rulând scriptul de pe consolă, mai degrabă decât de la Thonny:

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

Acest lucru a făcut ca afișajul senzorului să apară pe ecran într-o fereastră Pygame și, după câteva modificări la pragurile de culoare / temperatură, am fost hipnotizat de o imagine de căldură a feței mele.

Pasul 6: Configurare software ecran LCD

Configurare software ecran LCD
Configurare software ecran LCD
Configurare software ecran LCD
Configurare software ecran LCD

A fost foarte bine ca senzorul să funcționeze, dar acum trebuia să-l afișez pe micul ecran. Ecranul pe care l-am folosit este un Adafruit Mini PiTFT 1.3 240x240 - în principal pentru că rezoluția și forma au fost potrivite pentru camera termică, de asemenea, avea dimensiunea potrivită pentru a se potrivi în carcasă și oferea cele două butoane conectate GPIO de care aveam nevoie.

Instrucțiunile Adafruit ofereau două opțiuni aici: o modalitate ușoară și una dificilă - după ce am experimentat, mi-am dat seama că trebuie să folosesc calea Hard, deoarece senzorul necesită acces direct la framebuffer. Urmând instrucțiunile pas cu pas, am fost bine până am apăsat întrebarea „Vrei să apară consola” - am selectat inițial Nu, dar ar fi trebuit să spun Da. A fost un pic dureros, deoarece a însemnat că a trebuit să refac procesul, dar m-a făcut să știu că odată ce Pi este setat să afișeze consola pe TFT, acesta nu va mai afișa desktopul prin HDMI (cel puțin asta a fost experiența mea).

Cu toate acestea, odată ce configurarea a fost finalizată, la repornirea micului ecran a fost afișată o versiune în miniatură a procesului obișnuit de pornire Pi, iar când am rulat exemplul scriptului camerei termice, fereastra Pygame a afișat imaginea de căldură pe micul ecran - foarte satisfăcător!

Pasul 7: modificări de cod

Modificări de cod
Modificări de cod
Modificări de cod
Modificări de cod

Exemplul de cod a funcționat bine, dar am vrut să facă ceva mai mult, așa că a început să modificăm scripturile după gustul meu. Am început prin crearea unui script de meniu care să se încarce la pornire și să folosească bine cele două butoane integrate în panoul de afișare.

menu.py

În primul rând, am găsit câteva Python online care ar afișa un efect de meniu animat frumos pe ecranul mic, folosind PyGame. Frumusețea acestui script este că animă toate imaginile dintr-un folder setat, deci ar fi ușor să schimbați animația într-o etapă ulterioară (de exemplu, pentru a potrivi culorile animației cu carcasa). Am setat scriptul meniului astfel încât apăsarea oricăruia dintre butoane să oprească animația și să deschidă fie fever.py sau chill.py, scripturile pentru a afișa afișajul senzorului. Cu acest lucru, am setat scriptul să ruleze la pornire - în mod obișnuit, fac acest lucru editând / etc / xdg / lxsession / LXDE-pi / autostart, dar, deoarece această metodă se bazează pe încărcarea desktopului, de această dată aveam nevoie de o opțiune diferită.

Așa că am editat mai întâi fișierul rc.local …

sudo nano /etc/rc.local

… apoi adăugat în cele ce urmează chiar deasupra liniei de ieșire …

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

… după ce ne-am asigurat mai întâi că scriptul menu.py are următoarele elemente în partea de sus …

#! / usr / bin / env python3

… și, de asemenea, după setarea menu.py ca un script executabil prin tastarea:

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

în terminal.

fever.py (Preset)

Pentru scriptul Preset, am setat mai întâi pragurile de culoare / temperatură, setând cel inferior (albastru) la 16 și cel superior (roșu) la 37,8. Acest lucru ar arăta teoretic fața unei persoane în verde, dar va lumina în roșu dacă temperatura ar fi la sau peste 37,8 grade. Există o mulțime de cercetări online despre eșantionarea temperaturii corpului prin diferite metode, dar cu varianța senzorului de +/- 2,5 grade, am decis să rămân cu cea mai larg acceptată gamă de „febră” - acest lucru este destul de ușor de schimbat prin ssh la o dată ulterioară.

Apoi am setat cele două butoane ale ecranului pentru a închide scriptul curent și a deschide menu.py. De asemenea, am vrut să găsesc o modalitate de a captura și exporta imaginea camerei și după ce am găsit comanda PyGame potrivită

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

Am setat acest lucru să ruleze când a fost apăsat butonul „degetul mare” - cel pe care l-ați fi folosit inițial pentru a face o citire cu microunde. Asta s-a ocupat de captarea imaginii, apoi am adăugat în câteva linii de Python, astfel încât imaginea să fie imediat încărcată într-un tablou de bord Adafruit IO odată capturat, astfel încât să poată fi vizualizată pe alte dispozitive și descărcată cu ușurință. Cu o „salvare rapidă” rapidă, scriptul Preset a fost finalizat.

chill.py (Dinamic)

Există o cameră termică mai mult decât căutarea unor temperaturi specifice și am dorit ca scriptul Dynamic să fie flexibil, astfel încât pragurile de culoare superioare și inferioare să poată fi ajustate cu ușurință. Nu am vrut să adaug butoane suplimentare dispozitivului și să complic navigarea, așa că am ales să folosesc glisoare pe un tablou de bord Adafruit.io.

Am avut deja cea mai mare parte a codului Adafruit în scriptul Preset, așa că a trebuit să adaug câteva linii suplimentare, astfel încât valorile curente ale glisorului de pe tabloul de bord să fie recuperate la lansare și setate ca valori implicite ale afișajului.

Codul pe care l-am folosit este disponibil pe GitHub, pentru a-l reutiliza, trebuie doar să descărcați folderul FeverChill în folderul / pi / de pe Pi și să introduceți acreditările Adafruit.io și numele fluxurilor în scripturi, odată ce afișarea și senzorul sunt configurate.

Cu scenariile care funcționau frumos, era timpul să treci la ceva mai dezordonat!

Pasul 8: Finalizarea retușărilor

Finalizarea retușărilor
Finalizarea retușărilor
Finalizarea retușărilor
Finalizarea retușărilor
Finalizarea retușărilor
Finalizarea retușărilor

Inițial, acest proiect a fost menit să fie o distragere rapidă de la utilizarea senzorului termic pentru altceva, dar odată cu evenimentele actuale m-am trezit din ce în ce mai atras de el și de detaliile minuscule suplimentare care l-ar întinde și l-ar face să devină mai mult o provocare.

Carcasa Apollo Monitor a fost destul de plăcută de lucrat, ușor de tăiat și șlefuit, dar pentru a o termina frumos am vrut să ascund câteva dintre plăcile de circuite vizibile din spatele „măștilor” pictate. Acestea au durat veacuri, cioplindu-le manual din bucăți de deșeuri de plastic, dar a fost o muncă satisfăcătoare. Mai întâi am făcut una mică, care să acopere placa de ecran, dar să lase microîntrerupătoarele la vedere. Apoi am făcut unul pentru senzorul termic, astfel încât să nu vedeți electronice goale dacă ați privi în jos „capătul afacerii”.

Am decis schema de culori cu câteva zile înainte ca Marea Britanie să intre în blocaj și am avut norocul să găsesc culorile pe care le doream în magazinul de hardware din apropiere. Deoarece carcasa s-a împărțit atât de frumos în jumătăți, a fost sugerată o schemă de culori în două tonuri, iar apoi am extins-o la „conul nasului” și la capacul senzorului. Pictura a fost foarte distractivă, prima zi călduroasă a anului, deși asta a însemnat pictura în timp ce viespile din magazie se agitau și măcinau. Nu am mai folosit bandă de mascare cu vopsea spray, dar sunt foarte mulțumit de modul în care au ieșit piesele rezultate în două tonuri.

Învățând lecțiile construcțiilor anterioare, am lăsat părțile pictate să se întărească pentru o săptămână bună înainte de a încerca asamblarea și am început să montez videoclipul între timp.

Pasul 9: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Ori de câte ori lucrez la un proiect, îmi place să ajung la scena în care totul este pregătit pentru asamblare, ca un kit de modele de sine stătător. Nu există garanții că totul se va potrivi și instrucțiunile există doar în capul meu, dar este partea mea preferată din orice construcție.

De data aceasta a mers foarte ușor - mai ales pentru că am avut timp suplimentar să-mi petrec detaliile mici și să mă asigur că totul este la fel. Mai întâi de toate, am lipit ecranul în carcasă, apoi am adăugat butonul „captură” - acestea au fost singurele părți conectate la partea superioară a carcasei, așa că a fost un început ușor plăcut.

Apoi am lipit ușor acumulatorul în mâner și am montat Pi cu consola în carcasă. După aceea, senzorul camerei a fost lipit cu atenție în conul nasului, comutatorul de alimentare a fost înșurubat pe capacul bateriei și totul a fost conectat.

Am folosit cabluri jumper pentru toate conexiunile, dar doar pentru a fi foarte atentă, le-am lipit la cald, în cazul oricărei mișcări în timpul încheierii finale a celor două jumătăți. Doar că, de fapt, un pic squish, dar nu sună nici o crăpătură, așa că, odată ce cele două jumătăți au fost strânse între ele, am împins conul nasului și am fixat șurubul prin mâner - singurele două lucruri care țin întregul ansamblu împreună.

Nu a funcționat prima dată, am reușit să deconectez ecranul în timpul primului squishathon, dar cu câteva îndoiri de cabluri strategice totul sa încheiat fericit a doua oară. E timpul să-l indicăm asupra lucrurilor!

Pasul 10: Timpii de testare a temperaturii

Timpi de testare a temperaturii
Timpi de testare a temperaturii
Timpi de testare a temperaturii
Timpi de testare a temperaturii
Timpi de testare a temperaturii
Timpi de testare a temperaturii
Timpi de testare a temperaturii
Timpi de testare a temperaturii

A avea timp suplimentar acasă m-a ajutat să mă concentrez (obsedez?) Mai mult decât de obicei asupra micilor detalii ale acestui proiect, ceea ce a făcut cu siguranță un finisaj mai curat și mai puține surprize la momentul asamblării - precum și să mă ajut să-mi mențin starea de bine mentală cel drept și îngust. Planul inițial pentru senzor era ceva complet diferit, așa că sunt foarte mulțumit de rezultatul final, o construcție lentă și satisfăcătoare.

Apollo Pi arată foarte bine și pe raftul proiectului și este cu siguranță un instrument distractiv și util de folosit, nu ne putem opri să-l arătăm asupra lucrurilor! Într-o lume ideală, ar fi o rezoluție puțin mai mare și trebuie să găsesc o modalitate de a „flip” afișajul, deoarece este oglindit în acest moment, dar acestea sunt mici negri.

Vă mulțumim pentru citire și rămâneți în siguranță tuturor.

Celelalte proiecte ale mele Old Tech, New Spec sunt toate pe Instructables la

Mai multe detalii sunt pe site-ul web la https://bit.ly/OldTechNewSpec. și sunt pe Twitter @OldTechNewSpec.

Recomandat: