Obsah:

1979 Termálna kamera Apollo Pi: 10 krokov (s obrázkami)
1979 Termálna kamera Apollo Pi: 10 krokov (s obrázkami)

Video: 1979 Termálna kamera Apollo Pi: 10 krokov (s obrázkami)

Video: 1979 Termálna kamera Apollo Pi: 10 krokov (s obrázkami)
Video: Night 2024, Júl
Anonim
Image
Image
1979 Termálna kamera Apollo Pi
1979 Termálna kamera Apollo Pi
1979 Termálna kamera Apollo Pi
1979 Termálna kamera Apollo Pi

Tento ročník mikrovlnného detektora Apollo má teraz lesklý nový účel ako termokamera poháňaná Raspberry Pi Zero so snímačom termokamery Adafruit, ktorý meria teploty a zobrazuje výsledky v reálnom čase na jasnom 1,3-palcovom TFT displeji.

Má prednastavený a dynamický režim - v prvom sú farby zobrazené na obrazovke založené na pevne zakódovaných prahových hodnotách teploty a v druhom je možné farebný rozsah nastaviť pomocou teplotných posúvačov na palubnej doske Adafruit.io. Palubná doska tiež okamžite zobrazuje všetky snímky nahrané zariadením, ktoré sú zachytené pomocou pôvodného tlačidla palca na držadle.

Celý systém je poháňaný tenkou, valcovou batériou USB ukrytou v držadle, ktorú je možné ľahko nabiť vysunutím nosového kužeľa a zapojením USB kábla.

Logiku ponuky, senzor a integráciu Adafruit.io ovládajú iba tri skripty Pythonu, o displej sa stará PyGame.

Práca na tomto projekte mi skutočne pomohla udržať si pozitíva počas uzamknutia a vďaka tomu, že sme mali viac času, sme spolu s deťmi našli veľa zaujímavých vecí v okolí domu, na ktoré by sme to mohli poukázať!

Pozrite sa na Apollo Pi v prevádzke vo videu YouTube, v prípade, že vyššie uvedenú vloženú verziu nevidíte, je na

Zásoby

Mikrovlnný monitor Apollo

Raspberry Pi Zero W

Oddychová termálna kamera Adafruit AMG8833

Obrazovka Adafruit Mini PiTFT 1,3"

Prepojovacie káble

3v vibračný kotúč

USB power banka

Krok 1: Teardown

Strhnúť
Strhnúť
Strhnúť
Strhnúť
Strhnúť
Strhnúť

Minulý rok v lete som si vybral monitor Apollo z druhej ruky, a to kvôli jeho jedinečnému vzhľadu a nie kvôli čomukoľvek inému - čo je rovnako dobré, ako by určite zažil lepšie dni! Obvody vo vnútri boli neúplné a celé to bolo obalené zmätkom lepidla, čo je historický pokus o opravu.

Pôvodne sa používal na kontrolu prítomnosti mikrovlnného žiarenia, pravdepodobne v nejakom priemyselnom prostredí vzhľadom na jeho dizajn a vzácnosť vtedajších mikrovlnných rúr, aj keď som o tom nemohol zistiť nič viac. Jednu vec som vedel, že by to bol ideálny domov pre termálnu kameru.

Hneď ako som vyskočil z kónického „nosa“, jeho zvyšok sa doslova rozpadol a prilepený analógový merač a obdĺžnikové tlačidlo sa dali ľahko odstrániť. Tlačidlo som však ponechal, bolo to úplne funkčné a malo to skutočne zvláštny tvar, takže som sa snažil vložiť náhradu do rovnakého otvoru.

Krok 2: Zapojenie

Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie

Pred orezaním puzdra, aby bolo všetko v poriadku, som sa najskôr chcel uistiť, že viem, ako budú diely ladiť, a tak som sa pustil do zapojenia senzora a obrazovky. Samotný snímač bol v poriadku, na jeho pripojenie k Raspberry Pi boli potrebné iba štyri prepojovacie káble.

Obrazovka bola o niečo komplikovanejšia, diagram vývodov ukázal, že potrebujem pripojiť 13 prepojovacích káblov - je zrejmé, že je navrhnutý tak, aby sedel priamo na vrchu Pi, takže som si to mohol skutočne vyčítať. Rozhodol som sa pridať kúsok ženskej hlavičky medzi obrazovku a pripojenia Pi, aby som mohol obrazovku odpojiť a ľahko ju pripojiť. Bol to skvelý nápad a veľmi opatrne som postupoval podľa schémy vývodov, aby som zapojil hlavičku do Pi.

Ďalej som k pôvodnému tlačidlu spájkoval nové prepojovacie káble, aby sa dal pripojiť k GPIO a použiť na zachytenie snímok termálneho obrazu. Nakoniec som spájkoval malý vibračný kotúč priamo na kolíky GPIO, aby som poskytol haptickú spätnú väzbu na stlačenie tlačidiel.

Krok 3: Prípadové režimy

Modely prípadu
Modely prípadu
Modely prípadu
Modely prípadu

Jednou z vecí, ktoré vzkriesili monitor Apollo z môjho boxu „to do“, bol otvor v hornej časti displeja - to bola zhruba veľkosť, ktorú som potreboval na malú obrazovku Adafruit. Zhruba. Trvalo asi hodinu, kým súbor predĺžil otvor na správnu veľkosť, ale našťastie sa mi podarilo v tomto prípade puzdro nezničiť.

Tiež som odrezal časti vnútorností, ktoré pôvodne držali batériu PP3, a pomocou otočného nástroja som vyrezal niektoré priedely vnútri držadla, aby som uvoľnil miesto pre batériu.

Nakoniec som vyvŕtal niekoľko veľkých otvorov, aby sa káble pre senzor a nabíjací kábel dostali z „nosa“a spojili sa so zvyškom obvodov.

Krok 4: Napájanie

Moc
Moc
Moc
Moc
Moc
Moc
Moc
Moc

Pri tomto projekte som sa rozhodol nepoužiť batériu LiPo a adaptér/nabíjačku, pretože v kufri bolo viac miesta. Namiesto toho som sa rozhodol použiť štandardnú powerbanku USB. Chcel som dostať tenký valcovitý, aby sa zmestil do rukoväte, a tak som hľadal najlacnejší a najtenší, aký som mohol nájsť na Amazone. Ten, ktorý prišiel, so syrovou LED baterkou a štýlom umelej batérie bol najtenší, aký som mohol nájsť, ale pri vybalení z krabice som si uvedomil, že je stále príliš hrubý na to, aby sa zmestil do rukoväte. Potom som si uvedomil, že sa to rozpadlo - vrch odskrutkovaný a vnútorná nahá batéria sa vysunula, čo mi úhľadne ušetrilo 3 mm, ktoré som potreboval, aby sa zmestil do rukoväte, aký výsledok!

Ďalej som vzal krátky kábel Micro USB, odstránil časť izolácie, odstrihol kladný kábel a spájkoval som krásne štvorcové západkové tlačidlo, aby bolo možné napájanie ovládať bez toho, aby som musel odpojiť batériu. Toto tlačidlo krásne zapadalo do toho, čo bolo pôvodne krytom batérie, a celkom zodpovedalo pôvodnému krytu v hornej časti puzdra. Teraz, keď som vedel, že sa všetko zmestí, bolo načase, aby to všetko fungovalo!

Krok 5: Nastavenie softvéru termálnej kamery

Nastavenie softvéru termálnej kamery
Nastavenie softvéru termálnej kamery

Samotný tepelný senzor je Adafruit AMG8833IR Thermal Camera Breakout, ktorý na vytváranie tepelného obrazu používa pole senzorov 8x8. Funguje s Arduino a Raspberry Pi, ale najväčšou výhodou použitia Pi je, že softvér môže pomocou modulu scipy python vykonávať bikubickú interpoláciu na zachytených údajoch, takže vyzerá ako obrázok 32 x 32, úhľadne!

Nastavenie senzora je pomerne jednoduché, ale existuje niekoľko obručí, cez ktoré je možné preskočiť, a to fungovalo pre mňa:

Povoliť I2C a SPI na Raspberry Pi (Konfigurácia Raspberry Pi> Rozhrania)

Nainštalujte knižnicu Blinka CircuitPython:

pip3 nainštalujte adafruit-blinka

Ďalej nainštalujte knižnicu senzorov AMG8XX:

sudo pip3 nainštalujte adafruit-circuitpython-amg88xx#

Vypnite Pi a pripojte snímač - našťastie iba 4 vodiče!

Ďalej nainštalujte moduly scipy, pygame a color:

sudo apt-get install -y python-scipy python-pygamesudo farba inštalácie pip3

V tomto mieste môj kód vyvolal chybu scipy, takže som ho preinštaloval pomocou:

Sudo Pip3 nainštalujte scipy

Potom sa mi zobrazila chyba: ImportError: libf77blas.so.3: nemožno otvoriť súbor zdieľaného objektu: Žiadny takýto súbor alebo adresár

Tento problém bol vyriešený inštaláciou:

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

Odvtedy vzorový kód fungoval dobre, pričom skript bol spustený z konzoly, nie z Thonny:

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

Vďaka tomu sa displej senzora zobrazil na obrazovke v okne pygame a po niekoľkých úpravách prahov farby/teploty ma hypnotizoval horúci obraz mojej tváre.

Krok 6: Nastavenie softvéru obrazovky LCD

Nastavenie softvéru obrazovky LCD
Nastavenie softvéru obrazovky LCD
Nastavenie softvéru obrazovky LCD
Nastavenie softvéru obrazovky LCD

Bolo skutočne dobré uviesť senzor do činnosti, ale teraz som ho potreboval nechať zobraziť na malej obrazovke. Obrazovka, ktorú som použil, je Adafruit Mini PiTFT 1,3 240 x 240 - hlavne preto, že jeho rozlíšenie a tvar boli pre termokameru vhodné, tiež mala správnu veľkosť, aby sa zmestila do puzdra a ponúkla dve potrebné tlačidlá pripojené k GPIO.

Pokyny Adafruit tu ponúkali dve možnosti: ľahký a ťažký spôsob - po experimentovaní som si uvedomil, že musím použiť tvrdý spôsob, pretože snímač vyžadoval priamy prístup k framebufferu. Podľa pokynov krok za krokom som bol v poriadku, kým som nezaznamenal otázku „Chcete, aby sa konzola zobrazovala“- Najprv som vybral Nie, ale mal som povedať Áno. Bola to trochu bolesť, pretože to znamenalo, že musím postup zopakovať, ale uvedomilo mi to, že akonáhle je Pi nastavené na zobrazenie konzoly na TFT, prestane zobrazovať pracovnú plochu prostredníctvom HDMI (aspoň to bola moja skúsenosť).

Napriek tomu, akonáhle bolo nastavenie dokončené, pri reštarte sa na malej obrazovke zobrazila miniatúrna verzia obvyklého procesu spustenia Pi a keď som spustil príklad skriptu termálnej kamery, v okne pygame sa zobrazil tepelný obraz na malej obrazovke - veľmi uspokojujúce!

Krok 7: Vyladenie kódu

Vylepšenia kódu
Vylepšenia kódu
Vylepšenia kódu
Vylepšenia kódu

Ukážkový kód fungoval dobre, ale chcel som, aby urobil trochu viac, a tak som sa pustil do vyladenia skriptov podľa môjho vkusu. Začal som vytvorením skriptu Menu, ktorý sa načíta pri štarte a dobre využije dve tlačidlá integrované do dosky displeja.

menu.py

Najprv som našiel nejaký Python online, ktorý by na malej obrazovke pomocou PyGame zobrazoval pekný efekt animovanej ponuky. Krása tohto skriptu je v tom, že animuje všetky obrázky v nastavenom priečinku, takže by bolo ľahké zmeniť animáciu v neskoršej fáze (napríklad prispôsobiť farby animácie prípadu). Skript ponuky som nastavil tak, aby stlačením ktoréhokoľvek z tlačidiel zastavil animáciu a otvoril skripty horúčky.py alebo chill.py, ktoré zobrazujú displej senzora. S týmto fungovaním som nastavil, aby sa skript spustil pri štarte - zvyčajne to robím úpravou/etc/xdg/lxsession/LXDE -pi/autostart, ale keďže sa táto metóda spolieha na načítanie pracovnej plochy, tentoraz som potreboval inú možnosť.

Najprv som teda upravil súbor rc.local …

sudo nano /etc/rc.local

… potom pridané v nasledujúcom texte tesne nad riadok Ukončiť …

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

… keď sme najskôr zaistili, že skript menu.py mal na vrchu nasledujúce položky …

#!/usr/bin/env python3

… a tiež po nastavení menu.py ako spustiteľného skriptu zadaním:

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

do terminálu.

fever.py (predvoľba)

Pre skript Predvoľba som najskôr nastavil prahové hodnoty farby / teploty, pričom spodný (modrý) som nastavil na 16 a horný (červený) na 37,8. To by teoreticky stále zobrazovalo tvár osoby v zelenej farbe, ale svietilo červeno, ak by teplota bola 37,8 stupňa alebo vyššia. Na internete je veľa výskumov o vzorkovaní telesnej teploty rôznymi spôsobmi, ale s tým, že rozptyl senzora je +/- 2,5 stupňa, som sa rozhodol držať sa najrozšírenejšieho rozsahu „horúčky“- to je dosť ľahké zmeniť pomocou ssh v neskoršom termíne.

Ďalej som nastavil dve tlačidlá obrazovky na zatvorenie aktuálneho skriptu a otvorenie menu.py. Tiež som chcel nájsť spôsob, ako zachytiť a exportovať obraz z kamery, a nájsť správny príkaz PyGame

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

Nastavil som to tak, aby sa spustilo po stlačení tlačidla „palca“- toho, ktoré ste pôvodne použili na čítanie z mikrovlnnej rúry. To sa postaralo o zachytenie obrázku, ďalej som pridal niekoľko riadkov Pythonu, aby bol obrázok ihneď po zachytení ihneď nahraný na hlavný panel Adafruit IO, aby ho bolo možné prezerať na iných zariadeniach a ľahko sťahovať. Rýchle „uloženie ako“dokončilo prednastavený skript.

chill.py (dynamický)

Termokamera je viac než len hľadanie konkrétnych teplôt a ja som chcel, aby bol dynamický skript flexibilný, aby bolo možné ľahko nastaviť horné a dolné prahy farieb. Nechcel som do zariadenia pridať ďalšie tlačidlá a komplikovať navigáciu, preto som sa rozhodol používať posuvníky na palubnej doske Adafruit.io.

Väčšinu kódu Adafruit som už mal v prednastavenom skripte, takže som musel pridať niekoľko ďalších riadkov, aby sa aktuálne hodnoty posúvača z palubnej dosky získali pri spustení a nastavili ako predvolené hodnoty pre zobrazenie.

Kód, ktorý som použil, je k dispozícii na GitHub, na jeho opätovné použitie stačí stiahnuť priečinok FeverChill do priečinka / pi / na vašom Pi a do skriptov zadať svoje poverenia Adafruit.io a názvy kanálov, akonáhle sa zobrazí & senzor je nastavený.

Keď skripty fungovali dobre, bolo načase prejsť na niečo chaotickejšie!

Krok 8: Dokončenie dotykov

Dokončovanie dotykov
Dokončovanie dotykov
Dokončovanie dotykov
Dokončovanie dotykov
Dokončovanie dotykov
Dokončovanie dotykov

Pôvodne mal tento projekt predstavovať rýchle odreagovanie od používania tepelného senzora na niečo iné, ale pri súčasných udalostiach som sa do neho čoraz viac vťahoval a v drobných detailoch, ktoré by ho roztiahli a urobili z neho väčšiu výzvu.

S puzdrom monitora Apollo sa celkom pekne pracovalo, ľahko sa rezalo a brúsilo, ale aby som to pekne dokončil, chcel som zastrčiť niektoré viditeľné dosky s plošnými spojmi za namaľované „masky“. Trvalo to veky, ručne ich vyrezávať z kúskov odpadového plastu, ale bola to uspokojujúca práca. Najprv som vyrobil malý, ktorý zakryl dosku obrazovky, ale nechal mikrospínače viditeľné. Ďalej som urobil jeden pre tepelný senzor, aby ste nevideli holú elektroniku, keby ste sa pozreli dole na „koniec podnikania“.

Rozhodol som sa pre farebnú schému pár dní predtým, ako sa Spojené kráľovstvo zablokovalo, a mal som šťastie, že som v neďalekom železiarstve našiel farby, ktoré som chcel. Keď sa prípad tak pekne rozdelil na polovice, navrhla sa dvojfarebná farebná schéma a potom som ju rozšíril na „kužeľ nosa“a kryt snímača. Maľba bola skvelá zábava, prvý teplý deň v roku, aj keď to znamenalo maľovanie, zatiaľ čo osy v kôlni sa miešali a mleli. Maskovaciu pásku so sprejom som ešte nepoužil, ale som veľmi spokojný s tým, ako vznikli dvojfarebné kúsky.

Keď som sa poučil z predchádzajúcich stavieb, nechal som natreté diely stuhnúť dobrý týždeň pred montážou a medzitým som začal dávať dohromady video.

Krok 9: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Kedykoľvek pracujem na projekte, rád sa dostanem do fázy, kedy je všetko pripravené tak, aby bolo možné zostaviť ho ako vlastnú stavebnicu. Neexistujú žiadne záruky, že to všetko do seba zapadne a pokyny existujú iba v mojej hlave, ale je to moja obľúbená časť akejkoľvek zostavy.

Tentoraz to prebiehalo veľmi hladko - väčšinou preto, že som mal viac času venovať sa malým detailom a uistiť sa, že je všetko tak, ako má byť. V prvom rade som zalepil obrazovku do puzdra a potom pridal tlačidlo „zachytiť“- to boli jediné časti spojené s hornou časťou puzdra, takže to bolo ľahké ľahké spustenie.

Ďalej som zľahka zalepil batériu do držadla a namontoval Pi s konzolou do puzdra. Potom bol snímač kamery opatrne zasunutý do nosného kužeľa, vypínač napájania bol naskrutkovaný na kryt batérie a všetko bolo zapojené.

Na všetky pripojenia som použil prepojovacie káble, ale aby som bol obzvlášť opatrný, prilepil som ich na miesto za tepla, v prípade akéhokoľvek pohybu počas konečného zovretia dvoch polovíc. V skutočnosti to bolo trochu škrípanie, ale žiadne praskavé zvuky, takže akonáhle boli obe polovice tesne spojené, zasunul som nosový kužeľ a zaistil skrutku držadlom - jediné dve veci držali celú zostavu pohromade..

Prvýkrát to nefungovalo, počas prvého squishathonu sa mi podarilo odpojiť obrazovku, ale niekoľkými strategickými ohybmi káblov sa to všetko skončilo šťastne druhýkrát. Čas poukázať na veci!

Krok 10: Časy testovania teploty

Časy testovania teploty
Časy testovania teploty
Časy testovania teploty
Časy testovania teploty
Časy testovania teploty
Časy testovania teploty
Časy testovania teploty
Časy testovania teploty

To, že mám viac času doma, mi skutočne pomohlo zamerať sa (posadnúť sa?) Viac ako obvykle na malé detaily tohto projektu, čo určite prinieslo čistejšiu povrchovú úpravu a menej prekvapení pri montáži - a tiež to, že som si udržal duševnú pohodu rovné a úzke. Pôvodný plán senzora bol niečo úplne iné, takže som veľmi spokojný s konečným výsledkom, pomalým a uspokojujúcim zostavením.

Apollo Pi vyzerá skvele aj na poličke projektu a je rozhodne zábavným a užitočným nástrojom, ktorý môžete mať pri sebe. Nemôžeme na to prestať ukazovať! V ideálnom svete by to bolo o niečo vyššie rozlíšenie a musím nájsť spôsob, ako „prevrátiť“displej tak, ako sa v súčasnosti zrkadlí, ale sú to malé neistoty.

Ďakujem za prečítanie a držte sa všetci v bezpečí.

Moje ďalšie projekty Old Tech, New Spec sú všetky na stránke Instructables na

Viac podrobností je na webovej stránke https://bit.ly/OldTechNewSpec. a som na Twitteri @OldTechNewSpec.

Odporúča: