Sommario:

Fotocamera termica Apollo Pi 1979: 10 passaggi (con immagini)
Fotocamera termica Apollo Pi 1979: 10 passaggi (con immagini)

Video: Fotocamera termica Apollo Pi 1979: 10 passaggi (con immagini)

Video: Fotocamera termica Apollo Pi 1979: 10 passaggi (con immagini)
Video: APOLLO 11: La CONQUISTA della LUNA con @PassioneAstronomia 2024, Dicembre
Anonim
Image
Image
1979 Apollo Pi Termocamera
1979 Apollo Pi Termocamera
1979 Apollo Pi Termocamera
1979 Apollo Pi Termocamera

Questo rilevatore di microonde Apollo vintage ha ora un nuovo brillante scopo come fotocamera termica, alimentato da un Raspberry Pi Zero con un sensore della fotocamera termica Adafruit che rileva le temperature, visualizzando i risultati in tempo reale su un luminoso display TFT da 1,3.

Ha una modalità Preset e una Dynamic: nella prima i colori mostrati sullo schermo si basano su soglie di temperatura hard-coded, e nella seconda la gamma di colori può essere regolata utilizzando i cursori della temperatura su un cruscotto Adafruit.io. Il cruscotto anche istantaneamente visualizza tutte le istantanee caricate dal dispositivo, che vengono catturate utilizzando il pulsante del pollice originale sull'impugnatura.

L'intero sistema è alimentato da un sottile pacco batteria USB cilindrico nascosto nell'impugnatura, che può essere facilmente ricaricato staccando l'ogiva e collegando un cavo USB.

Solo tre script Python controllano la logica del menu, il sensore e l'integrazione di Adafruit.io, con il display gestito da PyGame.

Lavorare a questo progetto mi ha davvero aiutato a mantenermi positivo durante il blocco, e con il tempo extra a nostra disposizione i bambini e io abbiamo trovato molte cose interessanti in giro per casa su cui puntare!

Dai un'occhiata all'Apollo Pi in azione nel video di YouTube, nel caso non riuscissi a vedere la versione incorporata sopra è su

Forniture

Monitor a microonde Apollo

Raspberry Pi Zero W

Breakout della termocamera Adafruit AMG8833

Schermo Adafruit Mini PiTFT da 1,3"

Cavi di avviamento

Disco vibrante 3v

banca di alimentazione USB

Passaggio 1: smontaggio

Demolire
Demolire
Demolire
Demolire
Demolire
Demolire

Ho preso l'Apollo Monitor a una vendita dell'usato la scorsa estate, per il suo aspetto unico piuttosto che per qualsiasi altra cosa, il che è altrettanto positivo che aveva sicuramente visto giorni migliori! I circuiti all'interno erano incompleti e il tutto era ricoperto da un pasticcio di colla, un tentativo storico di ripararlo.

Originariamente sarebbe stato utilizzato per verificare la presenza di radiazioni a microonde, presumibilmente in una sorta di ambiente industriale dato il suo design e la rarità dei forni a microonde all'epoca, anche se non ho potuto scoprire molto di più al riguardo. Una cosa che sapevo, sarebbe stata la casa ideale per una termocamera.

Non appena ho tolto il "naso" conico, il resto è letteralmente andato in pezzi e il misuratore analogico incollato e il pulsante rettangolare sono stati facilmente rimossi. Ho tenuto il pulsante però, era perfettamente funzionante e di forma davvero strana, quindi avrei faticato a inserirne uno sostitutivo nello stesso foro.

Passaggio 2: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio

Prima di ritagliare la custodia per adattare tutto, volevo prima assicurarmi di sapere come sarebbero andate insieme le parti, quindi ho impostato il cablaggio del sensore e dello schermo. Il sensore stesso andava bene, erano necessari solo quattro cavi jumper per collegarlo al Raspberry Pi.

Lo schermo era un po' più complicato, il diagramma dei piedini mostrava che avrei dovuto collegare 13 cavi di collegamento - ovviamente è progettato per sedersi direttamente sopra un Pi, quindi dovevo incolpare solo me stesso. Ho deciso di aggiungere un pezzo di intestazione femmina tra lo schermo e le connessioni Pi, in modo da poter togliere lo schermo e collegarlo facilmente. Questa è stata un'ottima idea e ho seguito molto attentamente il diagramma di piedinatura per collegare l'intestazione al Pi.

Successivamente ho saldato alcuni cavi jumper nuovi al pulsante originale, in modo che potesse essere collegato al GPIO e utilizzato per acquisire istantanee di immagini termiche. Infine ho saldato un piccolo disco vibrante direttamente ai pin GPIO, per fornire un feedback tattile alla pressione dei pulsanti.

Passaggio 3: Mod Case

Modifiche del caso
Modifiche del caso
Modifiche del caso
Modifiche del caso

Una delle cose che ha resuscitato l'Apollo Monitor dalla mia scatola "da fare" è stato il foro del display nella parte superiore - questa era all'incirca la dimensione di cui avevo bisogno per il piccolo schermo Adafruit. All'incirca. Ci è voluta circa un'ora con un file per estendere il foro alla giusta dimensione, ma per fortuna sono riuscito a non distruggere la custodia nel processo.

Ho anche tagliato via parti degli interni che originariamente contenevano una batteria PP3 e ritagliato alcune paratie all'interno dell'impugnatura per fare spazio al pacco batteria, usando uno strumento rotante.

Infine ho praticato dei grossi fori in modo che i cavi per il sensore e il cavo di ricarica potessero uscire dal "naso" per unirsi al resto dei circuiti.

Passaggio 4: alimentazione

Potenza
Potenza
Potenza
Potenza
Potenza
Potenza
Potenza
Potenza

Per questo progetto ho deciso di non utilizzare una batteria LiPo e un adattatore/caricatore, poiché c'era più spazio nella custodia. Ho deciso invece di utilizzare un power bank USB standard. Volevo prenderne uno cilindrico sottile, da inserire all'interno del manico, quindi ho cercato il più economico e sottile che ho trovato su Amazon. Quello che è arrivato, con la sua torcia LED scadente e lo stile a finta batteria, era il più sottile che riuscissi a trovare, ma aprendolo mi sono reso conto che era ancora troppo spesso per entrare nel manico. Poi mi sono reso conto che si è rotto: la parte superiore si è svitata e la batteria nuda all'interno è scivolata fuori, risparmiando ordinatamente i 3 mm di cui avevo bisogno per inserirla all'interno della maniglia, che risultato!

Successivamente ho preso un corto cavo Micro USB, ho rimosso parte dell'isolamento, tagliato il cavo positivo e saldato in un bel pulsante quadrato a scatto, in modo che l'alimentazione potesse essere controllata senza dover scollegare la batteria. Questo pulsante si adattava bene a quello che originariamente era il coperchio della batteria, ed era abbastanza simile a quello originale sulla parte superiore del case. Ora che sapevo che tutto sarebbe andato bene, era ora di far funzionare tutto!

Passaggio 5: installazione del software della termocamera

Configurazione del software della termocamera
Configurazione del software della termocamera

Il sensore termico stesso è un Adafruit AMG8833IR Thermal Camera Breakout, che utilizza una serie di sensori 8x8 per creare l'immagine termica. Funziona con Arduino e Raspberry Pi, ma il più grande vantaggio dell'utilizzo di un Pi è che il software può utilizzare il modulo python scipy per eseguire l'interpolazione bicubica sui dati acquisiti, facendolo sembrare un'immagine 32x32, pulito!

L'impostazione del sensore è abbastanza semplice, ma ci sono alcuni passaggi da superare, questo è ciò che ha funzionato per me:

Abilita I2C e SPI sul Raspberry Pi (Configurazione Raspberry Pi > Interfacce)

Installa la libreria Blinka CircuitPython:

pip3 installa adafruit-blinka

Quindi installa la libreria di sensori AMG8XX:

sudo pip3 install adafruit-circuitpython-amg88xx#

Spegni il Pi e collega il sensore - solo 4 fili per fortuna!

Quindi installa i moduli scipy, pygame e color:

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

A questo punto il mio codice ha generato un errore scipy, quindi l'ho reinstallato con:

Sudo Pip3 installa scipy

Quindi ho ricevuto l'errore: ImportError: libf77blas.so.3: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo

Questo è stato risolto installando:

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

Da quel momento in poi il codice di esempio ha funzionato bene, eseguendo lo script dalla console anziché da Thonny:

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

Ciò ha fatto apparire il display del sensore sullo schermo in una finestra di pygame e, dopo alcune modifiche alle soglie di colore/temperatura, sono stato ipnotizzato da un'immagine termica del mio viso.

Passaggio 6: configurazione del software dello schermo LCD

Configurazione del software dello schermo LCD
Configurazione del software dello schermo LCD
Configurazione del software dello schermo LCD
Configurazione del software dello schermo LCD

È stato davvero bello far funzionare il sensore, ma ora avevo bisogno di visualizzarlo sul piccolo schermo. Lo schermo che ho usato è un Adafruit Mini PiTFT 1.3 240x240 - principalmente perché la sua risoluzione e forma erano perfette per la termocamera, inoltre era delle dimensioni giuste per adattarsi alla custodia e offriva i due pulsanti collegati GPIO di cui avevo bisogno.

Le istruzioni di Adafruit offrivano due opzioni qui: un modo Facile e uno Difficile - dopo aver sperimentato mi sono reso conto che dovevo usare il modo Difficile, perché il sensore richiedeva l'accesso diretto al framebuffer. Seguendo le istruzioni passo passo, stavo bene fino a quando non ho risposto alla domanda "Vuoi che appaia la console" - inizialmente ho selezionato No, ma avrei dovuto rispondere Sì. Questo è stato un po' fastidioso perché significava che dovevo rifare il processo, ma mi ha fatto capire che una volta che il Pi è impostato per visualizzare la console sul TFT non mostrerà più il desktop tramite HDMI (almeno questa è stata la mia esperienza).

Tuttavia, una volta completata l'installazione, al riavvio il piccolo schermo mostrava una versione in miniatura del consueto processo di avvio di Pi, e quando ho eseguito lo script della termocamera di esempio, la finestra di pygame mostrava l'immagine di calore sul piccolo schermo - molto soddisfacente!

Passaggio 7: modifiche al codice

Modifiche al codice
Modifiche al codice
Modifiche al codice
Modifiche al codice

Il codice di esempio ha funzionato bene, ma volevo che facesse un po' di più, quindi inizia a modificare gli script secondo i miei gusti. Ho iniziato creando uno script Menu che si caricasse all'avvio e facesse buon uso dei due pulsanti integrati nel tabellone.

menu.py

Per prima cosa ho trovato un po' di Python online che avrebbe mostrato un simpatico effetto di menu animato sul piccolo schermo, usando PyGame. La bellezza di questo script è che anima tutte le immagini in una cartella impostata, quindi sarebbe facile cambiare l'animazione in una fase successiva (ad esempio per abbinare i colori dell'animazione al caso). Ho impostato lo script del menu in modo che premendo uno dei pulsanti si interrompesse l'animazione e si aprisse febbre.py o chill.py, gli script per mostrare il display del sensore. Con questo lavoro ho impostato lo script per l'esecuzione all'avvio - di solito lo faccio modificando /etc/xdg/lxsession/LXDE-pi/autostart, ma poiché questo metodo si basa sul caricamento del desktop, questa volta avevo bisogno di un'opzione diversa.

Quindi prima ho modificato il file rc.local…

sudo nano /etc/rc.local

… poi aggiunto di seguito appena sopra la riga Exit…

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

… dopo essersi assicurati che lo script menu.py avesse quanto segue nella parte superiore…

#!/usr/bin/env python3

…e anche dopo aver impostato menu.py come script eseguibile digitando:

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

nel terminale.

febbre.py (preimpostato)

Per lo script Preset ho impostato prima le soglie di colore/temperatura, impostando quella inferiore (blu) a 16 e quella superiore (rossa) a 37,8. Questo in teoria mostrerebbe ancora il viso di una persona in verde, ma si illuminerebbe di rosso se la temperatura fosse pari o superiore a 37,8 gradi. Ci sono molte ricerche online sul campionamento della temperatura corporea con metodi diversi, ma con la varianza del sensore di +/- 2,5 gradi ho deciso di attenermi alla gamma di "febbre" più ampiamente accettata - questo è abbastanza facile da cambiare tramite ssh in un secondo momento.

Quindi ho impostato i due pulsanti dello schermo per chiudere lo script corrente e aprire menu.py. Volevo anche trovare un modo per catturare ed esportare l'immagine della fotocamera e avendo trovato il comando PyGame giusto

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

L'ho impostato per l'esecuzione quando è stato premuto il pulsante "pollice", quello che avresti originariamente utilizzato per eseguire una lettura a microonde. Questo si è occupato di catturare l'immagine, poi ho aggiunto alcune righe di Python in modo che l'immagine venisse immediatamente caricata su una dashboard di Adafruit IO una volta catturata, in modo che potesse essere visualizzata su altri dispositivi e scaricata facilmente. Con un rapido "salva con nome" lo script Preset è stato completato.

chill.py (dinamico)

In una termocamera c'è molto di più che cercare temperature specifiche e volevo che lo script dinamico fosse flessibile, in modo che le soglie di colore superiore e inferiore potessero essere facilmente regolate. Non volevo aggiungere pulsanti extra al dispositivo e complicare la navigazione, quindi ho scelto di utilizzare gli slider su una dashboard di Adafruit.io.

Avevo già la maggior parte del codice Adafruit nello script Preset, quindi dovevo solo aggiungere alcune righe extra, in modo che i valori correnti del dispositivo di scorrimento dalla dashboard venissero recuperati all'avvio e impostati come predefiniti di visualizzazione.

Il codice che ho usato è tutto disponibile su GitHub, per riutilizzarlo devi solo scaricare la cartella FeverChill nella cartella /pi/ sul tuo Pi e inserire le tue credenziali Adafruit.io e i nomi dei feed negli script, una volta visualizzato e sensore sono impostati.

Con gli script che funzionano bene era ora di passare a qualcosa di più disordinato!

Passaggio 8: ritocchi finali

Ritocchi finali
Ritocchi finali
Ritocchi finali
Ritocchi finali
Ritocchi finali
Ritocchi finali

Originariamente questo progetto doveva essere una rapida distrazione dall'utilizzo del sensore termico per qualcos'altro, ma con gli eventi attuali mi sono trovato sempre più coinvolto e i piccoli dettagli extra che lo avrebbero allungato e reso più difficile.

Il case del monitor Apollo è stato piuttosto piacevole con cui lavorare, facile da tagliare e carteggiare, ma per rifinirlo bene volevo infilare alcuni dei circuiti stampati visibili dietro "maschere" dipinte. Ci sono voluti secoli per scolpirli a mano da pezzi di plastica di scarto, ma è stato un lavoro soddisfacente. Per prima cosa ne ho realizzato uno piccolo che coprisse la scheda dello schermo ma lasciasse visibili i microinterruttori. Successivamente ne ho realizzato uno per il sensore termico, in modo che non avresti visto l'elettronica nuda se avessi guardato verso il basso il "fine business".

Ho deciso la combinazione di colori un paio di giorni prima che il Regno Unito entrasse in isolamento e ho avuto la fortuna di trovare i colori che desideravo nel vicino negozio di ferramenta. Dato che il case si è diviso così bene a metà, è stato suggerito uno schema di colori bicolore, e poi l'ho esteso al "cono del naso" e alla copertura del sensore. Il dipinto era molto divertente, il primo giorno caldo dell'anno, anche se questo significava dipingere mentre le vespe nel capanno si agitavano e si aggiravano. Non ho mai usato nastro adesivo con vernice spray prima, ma sono davvero soddisfatto di come sono venuti fuori i pezzi bicolore risultanti.

Imparando le lezioni delle costruzioni precedenti ho lasciato indurire le parti verniciate per una buona settimana prima di tentare l'assemblaggio e nel frattempo ho iniziato a mettere insieme il video.

Passaggio 9: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Ogni volta che lavoro a un progetto, mi piace arrivare sul palco in cui tutto è pronto per il montaggio come un kit modello fatto da sé. Non ci sono garanzie che tutto si incastri e le istruzioni esistono solo nella mia testa, ma è la mia parte preferita di qualsiasi build.

Questa volta è andato tutto liscio, soprattutto perché avevo più tempo da dedicare ai piccoli dettagli e assicurarmi che tutto fosse così. Prima di tutto ho incollato a caldo lo schermo nella custodia, quindi ho aggiunto il pulsante "acquisizione" - queste erano le uniche parti collegate alla parte superiore della custodia, quindi è stato un inizio facile e piacevole.

Successivamente ho incollato leggermente a caldo il pacco batteria nell'impugnatura e ho inserito il Pi con la sua staffa nella custodia. Dopodiché il sensore della fotocamera è stato accuratamente incollato nell'ogiva, l'interruttore di alimentazione è stato avvitato al coperchio della batteria e tutto è stato collegato.

Ho usato cavi jumper per tutti i collegamenti, ma solo per essere più attenti li ho incollati a caldo in posizione, in caso di qualsiasi movimento durante lo schiacciamento finale delle due metà. Era solo che in effetti, un po 'di squish, ma nessun suono di cracking, quindi una volta che le due metà sono state perfettamente insieme ho inserito a pressione il cono del naso e fissato il bullone attraverso la maniglia - le uniche due cose che tengono insieme l'intero gruppo.

Non ha funzionato la prima volta, sono riuscito a scollegare lo schermo durante il primo squishathon, ma con alcune pieghe strategiche del cavo è finito tutto felicemente la seconda volta. È ora di puntare le cose!

Passaggio 10: tempi di test della temperatura

Tempi di prova della temperatura
Tempi di prova della temperatura
Tempi di prova della temperatura
Tempi di prova della temperatura
Tempi di prova della temperatura
Tempi di prova della temperatura
Tempi di prova della temperatura
Tempi di prova della temperatura

Avere più tempo a casa mi ha davvero aiutato a concentrarmi (ossessione?) più del solito sui piccoli dettagli di questo progetto, e questo ha sicuramente permesso di ottenere una finitura più pulita e meno sorprese al momento del montaggio, oltre a contribuire a mantenere il mio benessere mentale il dritto e stretto. Il piano originale per il sensore era qualcosa di completamente diverso, quindi sono molto soddisfatto del risultato finale, una costruzione dal ritmo lento e soddisfacente.

L'Apollo Pi ha un bell'aspetto anche sullo scaffale del progetto ed è sicuramente uno strumento divertente e utile da avere in giro, non possiamo smettere di puntarlo contro le cose! In un mondo ideale sarebbe una risoluzione leggermente più alta, e ho bisogno di trovare un modo per "capovolgere" il display mentre è specchiato al momento, ma questi sono piccoli inconvenienti.

Grazie per aver letto e state al sicuro a tutti.

I miei altri progetti Old Tech, New Spec sono tutti su Instructables su

Maggiori dettagli sono sul sito web all'indirizzo https://bit.ly/OldTechNewSpec. e sono su Twitter @OldTechNewSpec.

Consigliato: