Come realizzare una termocamera IR fai-da-te

Le applicazioni di una termocamera fai-da-te sono numerose: ad esempio, controllo in giro per casa per i danni prodotti dal meteo, ricerca sistematica delle perdite di calore per scarso isolamento termico, scansione delle persone per visualizzare il calore e quindi l’energia che le persone realmente emettono, visione della fauna selvatica o delle persone che si nascondono al buio nella tua proprietà, etc. In questo articolo, vedremo come possiamo costruire una termocamera a basso costo usando diversi tipi di sensori infrarossi commerciali e un microprocessore per la gestione del sistema e l’acquisizione dati.

La luce infrarossa (IR) è una radiazione elettromagnetica (EMR) con lunghezze d’onda più lunghe rispetto alla luce visibile, che la rende in generale invisibile all’occhio umano. La maggior parte della radiazione termica emessa da oggetti vicini alla temperatura ambiente è infrarossa. Gli occhi umani non possono “vedere” la luce infrarossa poiché ha lunghezze d’onda più lunghe della luce visibile, ma una termocamera IR sì, e convertirla in un’immagine con colori diversi legati alla temperatura rilevata.

Le applicazione della termografia IR sono innumerevoli. In biomedicina, ad esempio, la termografia a infrarossi è la tecnica più promettente tra gli altri metodi convenzionali per rivelare le differenze di temperatura della pelle, risultanti dalla dispersione irregolare della temperatura, che è la segnalazione significativa di malattie e disturbi nel corpo umano: infatti, anche una variazione di appena qualche grado nella normale temperatura del corpo umano indica possibili malattie.

L’indagine medica del petto tramite una termocamera rivela un possibile tumore.

La “Forward Looking InfaRed”, spesso abbreviata in “FLIR”, è una tecnologia di visione che si basa sulla rivelazione della radiazione infrarossa. I sensori FLIR sono sensibili alla radiazione termica e la utilizzano per creare immagini successivamente inviate a una uscita video. Per questa ragione, possono essere usati ad es. dai piloti di notte, con la nebbia o per individuare oggetti caldi sullo sfondo di altri più freddi in condizioni di completa oscurità, come nel caso di una notte nuvolosa e senza luna.

È da notare che le lunghezze d’onda degli infrarossi che i FLIR attuali sono in grado di visualizzare sono ben differenti da quelle dei sistemi di visione notturna propriamente detta, e che operano nello spettro visibile e nell'”infrarosso vicino” (da 1 a 2 micrometri). Per la tecnologia attuale, infatti, ci sono due bande principali nell’infrarosso: la banda “onda lunga” (LWIR, da 8 a 12 micrometri, (con classificazione astronomica a volte detto “infrarosso lontano) e la banda “onda media” (MWIR, 3-5 micrometri).

I moderni sensori nell’infrarosso nella banda onda lunga possono discriminare fonti di calore come parti calde dei motori o parti del corpo umano, ma solo a pochi chilometri di distanza. A distanze maggiori, la visualizzazione è resa più difficile, perché la radiazione IR è soggetta a fenomeni di assorbimento, scattering e rifrazione causati dall’atmosfera o dal vapore acqueo. I FLIR di tipo LWIR di norma necessitano di raffreddamento criogenico, ma esistono modelli meno sensibili che non lo richiedono.

I sensori che operano tra i 3 e i 5 micrometri sono invece chiamati banda media (MWIR) e hanno prestazioni migliori in termini di distanza, perché a quelle lunghezze d’onda si hanno minori fenomeni di assorbimento per il vapore acqueo. Di contro, questi dispositivi generalmente richiedono componenti più costosi e il raffreddamento criogenico. Si noti che un termometro IR commerciale rileva le emissioni infrarosse di lunghezza d’onda tipicamente compresa tra 8 e 14 µm, cioè LWIR.

Un termometro IR commerciale ha un sensore spot LWIR.

Come costruire una termocamera con Arduino

La termografia è uno strumento abbastanza potente per effettuare una seria ricerca in campo energetico e ed è possibile provare a farla da solo con un termometro IR economico. Non volevo hackerare / distruggere un termometro IR nuovo, poiché avevo ancora intenzione di usarlo nella sua forma originale in seguito. Per questo motivo, ho deciso di collegare temporaneamente una vecchia webcam sul retro. In questo modo, il mio laptop può leggere la temperatura tramite il display LCD del termometro.

Successivamente, ho collegato due servi RC (cioè due servomotori radiocomandabili) ad una scheda Arduino, come ad esempio Arduino Uno. Quei servi eseguono la panoramica e inclinano il termometro, quindi il termometro può scansionare un’immagine, spazzolandola pixel dopo pixel. È una tecnica analoga a quella già adottata per il “radar” che crea un’immagine di un ambiente “spazzolandolo” con un sensore a ultrasuoni, e descritta nel ns. articolo Come costruire un radar a ultrasuoni, che trovi qui.

Potete anche scrivere un programma in Processing (software da noi presentato qui), che invia le posizioni dei servi X e Y ad Arduino e allo stesso tempo legge la temperatura tramite la webcam. Il programma disegna un’immagine termica in base alle temperature misurate. L’intero processo è lento, soprattutto perché il termometro stesso è lento, ma ovviamente anche la lettura visiva richiede tempo. Una scansione completa con una risoluzione di 70 * 44 pixel richiede circa mezz’ora.

La termocamera fai-da-te proposta nel testo.

Con questa termocamera puoi fare, ad esempio, alcune foto termiche della tua stanza o casa dall’esterno per vedere dove fuoriesce il calore. Tipicamente puoi vedere molto calore fuoriuscire dall’uscio della porta di ingresso e intorno alle finestre. Puoi anche distinguere eventuali termosifoni accesi. Quando il termometro è puntato sul vetro di una finestra misura la temperatura dello sfondo al di là del vetro, poiché le radiazioni IR lo oltrepassano (e puoi sentire il calore di un raggio di sole).

Come si può vedere nelle foto sopra, è possibile creare l’hardware per la termocamera molto velocemente e usando solo un po’ di polistirolo, del nastro adesivo, un’asta di saldatura e alcune fascette. Vi occorreranno solo alcune ore per completare il progetto, che dovrebbe essere abbastanza facile da replicare. Puoi scaricare gli sketch per Arduino e per Processing necessari per gestire questa termocamera da qui, e ringrazio l’autore di questo progetto (N. Roy) per averlo condiviso.

In realtà, l’idea è stata in origine sviluppata da Max Ritter, uno studente 21-enne di informatica presso l’Università di Scienze Applicate di Weingarten, Germania, che ha realizzato un economico strumento fai-da-te per l’imaging termico che costa meno di 100 euro. Anch’essa usava il sensore di un termometro e alcuni servi XY. In circa 2 minuti i servi XY potevano scansionare e misurare 1344 punti usando il sensore del termometro, creando una mappa di visione termica di 42 x 32 pixel.

Una termografia ottenibile con la termocamera mostrata nella foto precedente. 

La sua nuova versione (V3) ha un proprio processore ARM Cortex M3, misura 3072 punti in 2 minuti da -70 °C a 380 °C con una precisione di 0,5 °C – il tipico range e accuratezza di un termometro commerciale, e che si applicano anche al progetto da noi proposto – ed esporta le sue immagini con una risoluzione di 640 x 480, cioè vicina a quella delle termocamere commerciali! Non è in grado di eseguire la scansione in tempo reale, ma per la maggior parte degli scopi non è davvero necessario.

Come fare una termocamera con un sensore array IR

Un progetto alternativo prevede la costruzione di una termocamera a infrarossi fai-da-te, basata non su un termometro IR e dei servomotori, bensì direttamente su un sensore array a infrarossi FLIR, come ad esempio il Lepton a onda lunga, e sulla popolare scheda Teensy 3.6. Quest’ultima è una scheda di sviluppo adatta alla breadboard con un sacco di funzioni in un pacchetto ben fatto, ed inoltre è programmabile nell’ambiente IDE di Arduino, pur essendo una scheda differente da quelle più note.

La Teensy 3.6, infatti, ha 25 ingressi analogici verso 2 ADC con 13 bit di risoluzione, e 2 uscite analogiche con 12 bit di risoluzione, oltre a 22 uscite PWM. La Teensy 3.6 ha ha una porta USB ad alta velocità (480 Mbit/sec) e una seconda porta USB progettata per essere utilizzata in modalità host USB, quindi è possibile collegare dispositivi USB come una tastiera o una memory stick. Questa porta USB è accessibile tramite 5 pin, che sono compatibili con i cavi PC interni comunemente disponibili per USB.

La scheda Teensy 3.6 citata nel testo.

Lo scopo di questo progetto, proposto nel sito web http://www.diy-thermocam.net, è quello di dare a privati, istituti di istruzione e aziende l’accesso a una piattaforma portatile, economica e personalizzabile per l’imaging termico. Esistono varie applicazioni come la ricerca di perdite di calore nell’isolamento degli edifici, l’analisi di componenti elettrici o meccanici, il rilevamento di persone / animali o addirittura il montaggio su un drone, insieme al modulo aggiuntivo di uscita video.

Concepita come soluzione di auto-assemblaggio, la DIY-Thermocam ti consente di sfruttare le versatili possibilità di imaging termico e di risparmiare denaro. Tutto, dal software all’hardware, è completamente open-source! Ciò consente a tutti di modificare o estendere le funzionalità del dispositivo in base alle proprie esigenze! È inoltre disponibile un documento scientifico che fornisce una panoramica dell’intero progetto e delle sue capacità. Pertanto, non vi resta che darci un’occhiata.

La DIY-Thermocam e alcune immagini termiche con essa ottenute.

Puoi creare facilmente la tuo DIY-Thermocam V2 a casa. Per gli strumenti, hai solo bisogno di un semplice saldatore, un po’ di stagno per saldare, una pinza e un cacciavite. Il design del PCB è molto semplice: nessun componente SMD, solo componenti e moduli di grandi dimensioni. La custodia può essere montata facilmente solo con bulloni e dadi, senza bisogno di colla. Una guida di assemblaggio illustrata ti guiderà attraverso il processo di costruzione del dispositivo, passo dopo passo.

La DIY-Thermocam funziona con sensore FLIR Lepton2.x (80 x 60) e FLIR Lepton3.x (160 x 120) LWIR, comprese le versioni “radiometriche” (Lepton2.5 solo al momento). Ad esempio, il sensore Lepton 2.0 racchiude una risoluzione di 80×60 pixel in un pacchetto di 8,5 x 11,7 x 5,6 mm che assorbe solo 150 mW. La frequenza dei fotogrammi è di 9 Hz con una gamma di lunghezze d’onda di risposta spettrale compresa tra 8 e 14 micron (nominale). Il Lepton 3.0 ha invece una risoluzione doppia.

Un piccolo sensore FLIR  Lepton.

La revisione dell’hardware viene rilevata automaticamente dal firmware all’avvio e puoi cambiare il sensore solo con le dita. I sensori Lepton2.0 e Lepton3.0 non hanno una calibrazione interna. Un sensore spot esterno di temperatura IR contactless, l’MLX90614, viene usato per generare una funzione di trasferimento per la conversione di valori grezzi in temperature assolute. Quando si utilizza un Lepton cosiddetto “radiometrico” (Lepton2.5 o Lepton3.5), il sensore spot non è necessario.

Una termocamera più semplice con il Wio Terminal

Oggi puoi realizzare in modo assai semplice una termocamera economica di qualità intermedia fra quelle descritte nelle due sezioni precedenti usando il Wio Terminal – un microcontrollore con connettività wireless compatibile con Arduino e con MicroPython – e il sensore array IR “Grove – Infrared Sensor Array” (AMG8833). Il costo totale per tutti i componenti è inferiore a 80 euro e con essi puoi realizzare facilmente una sistema FLIR a basso costo per le tue termografie in tempo reale.

Alcune caratteristiche di un Wio Terminal.

Il Wio Terminal è un microcontrollore basato su ATSAMD51 e la sua connettività wireless è supportata da Realtek RTL8720DN. La sua velocità della CPU funziona a 120 MHz (aumenta fino a 200 MHz). Il chip Realtek RTL8720DN supporta sia Bluetooth che Wi-Fi fornendo la struttura portante per i progetti IoT. Il terminale Wio stesso è dotato di uno schermo LCD da 2,4″, IMU di bordo (LIS3DHTR), microfono, cicalino, slot per schede microSD, sensore di luce ed emettitore a infrarossi (IR 940nm).

La risoluzione dell’array Grove – Infrared Sensor Sensor Array (AMG8833) è di solo 8 x 8 (64 pixel), che in alcuni casi è abbastanza buona. Quindi nel codice viene usata l’interpolazione lineare per espandersi a 70 x 70 (4900 pixel) per un’indicazione molto migliore. Tramite il codice, la maggior parte della grafica può essere subito indirizzata agli Sprite TFT LCD per avere un frame rate più veloce. Si può anche aggiungere un mirino nel mezzo dello schermo e che mostra la temperatura nel mirino stesso.

In pratica, ciò che ti serve per realizzare questa semplice termocamera è:

  • Terminale Wio
  • Grove – Sensore array di temperatura a infrarossi (AMG8833)
  • Telaio con batteria per terminale Wio
  • Grove – Wrapper (usato per riparare il tuo sensore e mantenerlo al sicuro).

Ciò che serve per realizzare la termocamera descritta nel testo: il sensore IR è quello blu.

Per quanto riguarda invece la parte software, comincia installando la libreria dello schermo LCD “Seeed_Arduino_LCD” (visita qui la pagina Wio Terminal LCD per ulteriori informazioni). Poi visita i repository Seeed_AMG8833 da qui e scarica l’intero repository sull’unità locale. Ora, la libreria Seeed_AMG8833 può essere installata sull’IDE di Arduino. Apri l’IDE di Arduino e fai clic su Sketch -> Includi libreria -> Aggiungi libreria .ZIP e scegli il file Seeed_AMG8833 che hai appena scaricato.

In pratica, per rendere funzionante la tua termocamera procedi così:

  • Collega il Grove – Sensore array IR (AMG8833) all’interfaccia Grove I2C del terminale Wio.
  • Scarica da qui sotto il codice completo (sketch) di Arduino.
  • Carica il codice sull’IDE di Arduino.
  • Ora puoi attivare il Wio Terminal e provare la tua nuova termocamera ad infrarossi!

La termocamera fai-da-te una volta fatti i collegamenti.

Puoi scaricare da qui lo sketch di Arduino da caricare sul Wio Terminal. Questo programma serve per ingrandire una serie di 8 x 8 letture della termo camera, ridimensionarle di 10x e infine visualizzarle, previa interpolazione, a 240 x 320 sullo schermo. Nota: per aumentare le prestazioni e la frequenza dei fotogrammi di questa termocamera ad infrarossi, è possibile aumentare la velocità della CPU del terminale Wio a 200 MHz. Seleziona Strumenti -> Velocità CPU -> 200 MHz (Overclock).