-
0
UNIVERSIT POLITECNICA DELLE MARCHE
FACOLT DI INGEGNERIA
Corso di Laurea magistrale in Ingegneria Meccanica
Misura dell'occupancy di ambienti interni con
sensori di misura IR
Prof. Ing. Enrico Primo Tomasini
Relazione finale di:
Federico Campi
Francesco Diambrini
Anno Accademico 2014/2015
-
1
INDICE
INDICE
....................................................................................................................
1
1. INTRODUZIONE
................................................................................................
2
2. STRUMENTO DI MISURA
..................................................................................
3
2.1. PRINCIPIO DI FUNZIONAMENTO
..............................................................................................
3
2.2. TPA81
.....................................................................................................................................
6
2.3. SERVOMOTORI
........................................................................................................................
9
2.4. ARDUINO
..............................................................................................................................
11
3. ALLESTIMENTO BANCO DI MISURA
................................................................
13
3.1. SKECTH ARDUINO
..................................................................................................................
13
3.2. MISURA MAPPA DI TEMPERATURA
........................................................................................
14
4. RISULTATI
......................................................................................................
16
4.1. PROCESSAMENTO CON MATLAB: MAPPA DI TEMPERATURA
.................................................. 16
4.2. PROCESSAMENTO CON MATLAB: DATI DI OCCUPANCY
.......................................................... 18
5.
CONCLUSIONI.................................................................................................
22
-
2
1. INTRODUZIONE
La seguente relazione cercher di illustrare una metodologia per
la misura dell'occupancy di
ambienti interni (ovvero la presenza o meno di persone, o human
detection, all'interno
dell'ambiente) tramite l'individuazione delle sorgenti di
calore.
La misura a distanza delle temperature utilizzata in molti
campi, dai sistemi di allarme agli
impianti di climatizzazione. Grazie alla mappatura della
distribuzione della temperatura in una
stanza infatti non solo possibile individuare le persone
presenti ma, abbinando alla mappa di
temperatura altre variabili ambientali come pressione e umidit,
possibile ottenere lindice di
comfort nellambiente considerato.
Il procedimento illustrato in questa relazione si basa
sullutilizzo di un sensore di temperatura non
a contatto, il TPA81, un array di 8 termopile che riesce a
captare le radiazioni elettromagnetiche
emesse dai corpi nellinfrarosso.
Lo strumento utilizzato a basso costo e presenta ingombri molto
pi contenuti rispetto ad altre
tecniche di termovisione; inoltre esso pu essere facilmente
comandato mediante luso di un
microcontrollore, come ad esempio Arduino , il quale stato usato
anche nelle misurazioni in
seguito riportate.
La prima parte dell'esperienza si basata sulla costruzione di
uno sketch, cio un programma
eseguibile, che permettesse di muovere il sensore in diverse
posizioni per poter determinare
completamente la mappa di temperatura della stanza (nel caso in
analisi il laboratorio di
vibrazioni).
Dopo aver effettuato la misura della distribuzione della
temperatura nellambiente si usato
Matlab per elaborare i dati ottenuti, cos da ottenere, grazie ad
un algoritmo che verr illustrato in
seguito, i dati sulloccupancy che sono stati poi confrontati con
il dato reale, cio le persone
realmente presenti nella stanza.
-
3
2. STRUMENTO DI MISURA
2.1. PRINCIPIO DI FUNZIONAMENTO
Per misurare la temperatura delle pareti e del pavimento stato
utilizzato un sistema di scansione
basato sul sensore ad infrarossi TPA81 della Devantech
mobilitato da due servomotori.
Il TPA81 consiste fondamentalmente in una termopila, cio un
insieme di termocoppie connesse in
serie e montate su un microchip.
La termopila uno dei principali strumenti di misura della
potenza radiante ed usata anche
come sistema primario per la calibrazione di altri apparecchi di
misura nellultravioletto.
Il principio di funzionamento si basa sulleffetto Seebeck; in
altre parole si sfrutta la forza
elettromotrice generata riscaldando una giunzione di due
differenti metalli. Infatti, se in una
catena bimetallica le due giunzioni vengono mantenute a
differente temperatura si genera una
corrente elettrica. Il rendimento di una termopila, generalmente
modesto, definito dal rapporto
tra la differenza di temperatura tra le giunzioni e la
temperatura assoluta della giunzione calda.
La forza elettromotrice che genera una termopila esprimibile
dalla seguente formula:
= ( + )
Dove:
la forza elettromotrice [V];
la differenza di temperatura tra le giunzioni;
il potere termoelettrico del semiconduttore positivo [V/C];
il potere termoelettrico del semiconduttore negativo [V/C].
Per migliorarne il rendimento, e quindi il segnale in uscita
generato dalla FEM prodotta, si devono
contenere al massimo le dispersioni di calore, cos da ottenere
la massima differenza di
temperatura tra le giunzioni.
-
4
Figura 1 Termopila
La variazione di temperatura tra il giunto caldo e freddo
provocata dal flusso radiativo
proveniente dallambiente e diretto sulla lente della
termopila.
risaputo infatti che la luce e la radiazione di calore
differiscono solo per la lunghezza donda;
quindi possibile eseguire la misura della temperatura di un
oggetto a distanza se lenergia irradiata
dalloggetto raccolta da un assorbitore collegato alla giunzione
di una termocoppia.
La legge di Stefan-Boltzamann fornisce la relazione tra la
potenza irradiata, lemissivit
delloggetto e la sua temperatura, da cui possibile ricavare una
misura indiretta della
temperatura; tale legge espressa dalla formula:
= 4
Dove:
la potenza irradiata dalloggetto;
lemissivit delloggetto (ovvero il rapporto tra la radiazione
emessa dall'oggetto e quella
che emetterebbe un corpo nero alla stessa temperatura);
la temperatura delloggetto;
= 5,67 108
24 la costante di Stefan-Boltzmann.
Lenergia assorbita dal sensore sar quindi data dallenergia
emessa dalloggetto alla propria
temperatura meno lenergia emessa dal sensore a temperatura
ambiente.
-
5
La differenza di temperatura, a causa delleffetto Seebeck
descritto in precedenza, genera una
tensione in uscita dalla termopila. Il legame tra queste due
grandezze dato dalla legge:
= [()4
()4]
da cui si ricava la temperatura della superficie considerata e
dove una costante di
proporzionalit ricavata per via sperimentale. Nella rilevazione
delle temperature superficiali
lemissivit non viene considerata e il comportamento delle pareti
si approssima a quello di un
corpo nero.
Una termopila quindi fornisce la differenza di temperatura tra
ambiente e oggetto, un sensore
passivo che non necessita di irradiare energia verso lambiente e
non influenzata dalla riflettanza
dei materiali presenti.
Inoltre a differenza dei sistemi bolometrici, che misurano i
gradienti di temperatura delloggetto
tramite una variazione di resistenza del sensore, la termopila
non necessita di una temperatura di
stabilizzazione per evitare le deriva della misura (il sistema
NUC delle termocamere).
Quindi un sensore a termopila presenta, grazie alla costruzione
pi semplice, un costo di circa 100-
200 volte inferiore rispetto a una telecamera a infrarossi.
-
6
2.2. TPA81
Il sensore TPA81 della Devantech un tipico sensore di
temperatura per le misure non a contatto.
Il suo nome sta per Thermopile Array 8x1, ed infatti composto da
un array di 8 termopile. La
superficie esterna di questo array si affaccia su una lente al
silicio che serve a convogliare su di
essa il flusso termico proveniente da una superficie.
Figura 2 TPA81
Come detto in precedenza questo sensore basa il suo principio di
funzionamento sul metodo
radiometrico, permettendo di ricavare la temperatura di una
superficie in base allemissione
radiativa proveniente da essa.
La matrice costituita da sensori sensibili alla gamma infrarossa
in banda larga (da 2m a 22m).
La banda simile a quella rilevata dai sensori PIR che si trovano
negli allarmi/antifurto o nei
dispositivi che accendono le luci.
Figura 3 Risposta spettrale del sensore
-
7
Il campo di temperatura delle pareti si pu collocare attorno ai
300K. Dalle curve di emissione
spettrale di corpo nero vediamo che per questa temperatura la
massima emissione si ha attorno ai
10m, che corrisponde al campo di massima sensibilit del
sensore.
Figura 4 Caratterizzazione della risposta del sensore nel
diagramma spettrale di Plank
IL CAMPO DI VISTA DEL SENSORE (FOV-Field of View) 41x6, quindi
5.12x6 per ogni pixel. Il
sistema di filtri e di lenti integrati nel sensore permette di
inquadrare precisamente il punto
considerato. Nel sensore presente anche un circuito integrato
che permette di calcolare la
temperatura di ciascun punto. Il campo di vista del Tpa81 varia
con la distanza dalla superficie. Si
pu notare come larea totale intercettata dal sensore aumenta con
la distanza.
Figura 5 Campo di vista del sensore
-
8
Il sensore collegato al microcontrollore Arduino tramite un bus
I2C.
Figura 6 Collegamenti TPA81
Di seguito verranno elencate le caratteristiche tecniche dello
strumento.
CARATTERISTICHE TECNICHE
Tensione operativa 5 V
Range accuratezza tra 4-10C +/-3C
Range accuratezza tra 10-100C +/-2C
Emissivit di taratura 0.95
Campo di rilevamento (FOV) 41x6 (8 pixel di 5 x 6)
Uscite 1 ambiente+ 8 temp. degli 8 pixel
Comunicazione Protocollo I2C
Controllo Servomotore 32 passi per 180 di rotazione
Dimensioni 31 x 18 mm
Tabella 1 Caretteristiche tecniche TPA81
-
9
2.3. SERVOMOTORI
Oltre allarray di termopile il sistema composto da due
servomotori elettrici, che permettono
lorientamento e il movimento del sensore.
Figura 7 Servomotori
I motori sono solidali con il sensore ed assemblati con il
sistema di Pan & Tilt; essi sono posti con
angoli di rotazione sfalsati di 90, ci permette di fare misure a
scansione su una croce predefinita
o di orientare il sensore nel punto in cui si desidera fare la
misura.
Figura 8 Sensore e sistema di movimentazione
I servomotori HS-442 sono dei motori passo-passo il cui
movimento basato sullinduzione
magnetica. La corrente circolante negli statori eccita il rotore
che ogni volta si orienter secondo il
nord.
-
10
Figura 9 Schematizzazione funzionamento servomotori
I servomotori sono gestiti dal microcontrollore Arduino. I
collegamenti sono un filo per
lalimentazione Vcc, di 5V, uno per la messa a terra GND e un
filo collegato al pin digitale PWM
(Pulse Wide Modulation, ovvero modulazione a larghezza
dimpulso). Il PWM un pin speciale che
permette di variare nel tempo il segnale di movimentazione del
servomotore.
Figura 10 Collegamento tra servomotori ed Arduino
In questo modo il sistema consente di effettuare 32 step x 180
di rotazione.
Il sistema cos costruito stato montato sul controsoffitto del
laboratorio per garantire una
scansione completa della stanza, come possibile osservare nella
figura seguente.
Figura 11 Sistema montato sul controsoffitto
-
11
2.4. ARDUINO
La parte di gestione del sensore e controllo dei servomotori,
nel sistema di misura utilizzato,
spetta al microcontrollore Arduino. Arduino una piattaforma open
source di physical computing
basata su una semplice scheda input/output(I/O) e sullIDE di
programmazione Processing, un
ambiente di sviluppo facile da usare. Arduino un Hardware e
software open source perch la
scheda pu essere assemblata liberamente da chiunque a partire
dal diagramma del circuito e da
componenti preesistenti.
La scheda composta da un micro-controller a 8-bit AVR prodotto
dalla Atmel. La versione di
Arduino utilizzata la ATmega2560.
Il microcontrollore Arduino presenta queste specifiche
tecniche:
CARATTERISTICHE
Microcontrollore ATmega2560
Tensione di funzionamento 5V
Tensione di ingresso (consigliato) 7-12V
Tensione di ingresso (limiti) 6-20V
Digital I / O Pins 54 (di cui 15 forniscono luscita PWM)
Pins di ingresso analogico 16
Corrente di CC per Pin O / I 40 mA
Corrente DC per 3.3V Pin 50 mA
Flash Memory 256 KB di cui 8 KB utilizzati dal bootloader
SRAM 8 KB
EEPROM 4 KB
Frequenza di clock 16 MHz
Tabella 2 Caratteristiche tecniche Arduino
-
12
Figura 12 Arduino ATmega2560
Mediante lutilizzo della scheda ethernet shield, montata al di
sopra del microcontrollore
principale, lArduino ATmega2560, stato possibile salvare i dati
registrati dal sensore su una
microSD che veniva inserita allinterno dello slot predisposto
allinterno della scheda.
Figura 13 Ethernet shield
Queste schede sono poste allinterno di un contenitore plastico
modificato a cui si fornisce
lalimentazione allo strumento via cavo, cos come vengono
collegati tutti i cavi di interesse per il
corretto funzionamento del dispositivo, cio quelli inerenti
larray di termopile ed i 2 servomotori.
Grazie ad una porta USB, inoltre, possibile scaricare sul
microcontrollore tramite pc il
programma scritto nel linguaggio Arduino che definisce i comandi
che la scheda dovr inviare al
sistema.
Figura 14 Case contente i microcontrollori
-
13
3. ALLESTIMENTO BANCO DI MISURA
3.1. SKECTH ARDUINO
La programmazione della scheda Arduino facilitata dalle numerose
guide presenti sulla rete.
L'ambiente di sviluppo integrato (IDE) di Arduino
un'applicazione multipiattaforma scritta in
Java, ed derivata dall'IDE creato per il linguaggio di
programmazione Processing.
Per permettere la stesura del codice sorgente, l'IDE include un
editor di testo dotato di alcune
particolarit, come il syntax highlighting, il controllo delle
parentesi, e l'indentazione automatica.
L'editor inoltre in grado di compilare e lanciare il programma
eseguibile in una sola passata e con
un solo click.
Per permettere la comunicazione tra Arduino e i vari sensori
sono necessarie delle librerie, quelle
utilizzate in questa esperienza sono le seguenti:
VarSpeedServo.h: permette la movimentazione dei servomotori;
Wire.h: per la comunicazione con il sensore TPA81;
SD.h: consente la scrittura su scheda microSD.
Gli skecth creati sono due, uno per le 4 pareti laterali della
stanza, mentre laltro per il pavimento.
Figura 15 Skecth Arduino
-
14
3.2. MISURA MAPPA DI TEMPERATURA
Per la misurazione abbiamo diviso la stanza in 5 superfici
piane, le 4 pareti laterali e il pavimento.
Il laboratorio presenta le seguenti dimensioni (in metri):
Figura 16 Pianta ambiente di misura
La scansione delle superfici stata eseguita utilizzando due
skecth separati per le pareti e per il
pavimento, cos da tenere in considerazione i diversi movimenti
che il sensore doveva svolgere per
misurare tutta larea.
Come si visto prima l'area del campo di vista del sensore cambia
al variare della distanza delle
superfici da misurare, si dunque tenuto conto di questa
variazione nel dividere la stanza in
diversi "rettangoli" che, sotto forma di matrice, ricoprissero
tutta l'area di interesse.
Gli sketch di Arduino implementati in questa misurazione
consistono sostanzialmente in cicli "for",
ovvero cicli di iterazione, che ripetono la misura per ogni
posizione del sensore; le superfici da
misurare sono state infatti suddivise secondo una griglia e il
sensore stato posizionato, durante
la misura, nelle diverse posizioni utilizzando un unico ciclo
iterativo.
-
15
Il sensore, per ogni posizione, registra 5 valori di temperatura
e Arduino scrive direttamente la
media in un file .txt allinterno della schedaSD. Il sensore poi
passa alla posizione successiva in
modo da scansionare tutte le zone dellambiente.
Mentre le pareti laterali sono state ricoperte completamente dal
sensore, per il pavimento ci non
stato possibile a causa di problemi di sovrapposizione del campo
di vista. Nel pavimento si
infatti optato per una scansione a croce cercando di coprire gli
angoli bui con ulteriori quattro
scansioni oblique (una per ogni angolo); ci dovuto
esclusivamente ai movimenti consentiti dal
servomotore, che ricopre una semisfera che riesce s a coprire
l'intero spazio del pavimento, ma
per farlo inclinerebbe il sensore. Un modo alternativo di
procedere sarebbe stato l'effettuare una
scansione per centri concentrici, ma ci avrebbe notevolmente
complicato l'analisi a causa, come
detto, della sovrapposizione di diversi pixel del sensore in
misurazioni diverse. Si quindi optato
per il compromesso migliore, che ha comunque consentito di
ricoprire la maggior parte della
superficie di interesse, escludendo soltanto aree molto
marginali e, comunque, prive di persone al
momento della misura.
Alla fine della misurazione si sono quindi ottenuti due file con
allinterno tutti valori di
temperatura registrati dallo strumento. I due file sono stati
poi processati con matlab per ottenere
la mappa di temperatura e il dato sulloccupancy
dellambiente.
-
16
4. RISULTATI 4.1. PROCESSAMENTO CON MATLAB: MAPPA DI
TEMPERATURA
Per processare i dati ottenuti con il sensore si utilizzato
MatLab (acronimo di Matrix
Laboratory),un ambiente per il calcolo numerico e l'analisi
statistica scritto in C.
MatLab consente di manipolare matrici, visualizzare funzioni e
dati, implementare algoritmi,
creare interfacce utente, e interfacciarsi con altri
programmi.
Inizialmente stata ottenuta la mappa di temperatura
dellambiente, poi mediante luso
dellalgoritmo citato nellarticolo Human Detection Using
Thermopiles del 2008, si sono valutati i
dati di occupancy.
Nelle immagini sottostanti possibile vedere per prima la mappa
di temperatura del pavimento, di
seguito quella di tutto lambiente, con le pareti comprese; le
aree in blu scuro identificano le zone
non scansionate dal sensore e ad ogni "quadratino" corrisponde
un pixel del sensore:
Figura 17 Mappa di temperatura pavimento
-
17
Figura 18 Mappa di temperatura pavimento e pareti
.
-
18
4.2. PROCESSAMENTO CON MATLAB: DATI DI OCCUPANCY
Per ottenere il dato di occupancy dellambiente le misure
derivanti dalle scansioni delle superfici
sono state elaborate utilizzando lalgoritmo contenuto
nellarticolo "Human Detection Using
Thermopiles" del 2008 di Jos Luis Honorato, Ignacio Spiniak e
Miguel Torres-Torriti.
Lalgoritmo precedente stato usato solo parzialmente ed stato in
parte modificato, poich esso
utilizzato non tanto per la rilevazione statica di persone
allinterno dellambiente, quanto
piuttosto per rilevarne il loro passaggio al di sotto del
sensore.
Le modifiche principali che sono state adottate sono due:
innanzi tutto non si utilizzato un valore
medio delle temperature rilevate dai diversi pixel ma sono stati
considerati tutti i dati provenienti
da ogni singolo pixel in quanto, a differenza di quanto
riportato nell'articolo citato, l'obiettivo della
misura non era semplicemente rilevare se fosse presente una
persona oppure no, ma anche
localizzare le persone nello spazio. Infine stato modificato,
sempre per lo stesso motivo, il valore
soglia da 0.2 a 0.45 (l'utilizzo del valore si vedr in seguito)
in quanto il primo risultava troppo
basso rispetto alle esigenze e inadatto allo scopo della misura
trattata in questa tesina.
Lalgoritmo basato sul fatto che la radiazione emessa dal corpo
umano molto maggiore di
quella dellambiente circostante quindi, andando a normalizzare
le temperature misurate e
comparandole tra di loro, possibile rilevare se una persona si
trova al di sotto del sensore oppure
no.
In pratica si fa risaltare leffetto termico del corpo umano
rispetto al rumore di fondo
dellambiente.
Si inizia col normalizzare le temperature registrate dal sensore
rispetto alla differenza di
temperatura tra la massima temperatura prevista della pelle e la
temperatura ambiente
stimate considerando la formula:
() =() ()
() ()
dove () sono le temperature registrate dal sensore.
-
19
Inoltre dipende dalla temperatura ambiente stimata attuale e per
esprimere tale
dipendenza stato utilizzata la seguente relazione:
= c22 + c1 + c0
dove:
c0=6,037;
c1=1,555;
c2=-0,019799.
Si pu quindi notare che la temperatura della pelle aumenta
allaumentare della temperatura
ambiente; questo importante per la scelta del parametro , da
impostare a livelli bassi in
ambienti in cui la temperatura diminuisce e viceversa a livelli
alti in ambienti in cui la temperatura
sale, al fine di evitare misurazioni sbagliate.
La temperatura ambiente viene stimata utilizzando lapposito
pixel nel sensore (il nono), facendo
poi la media tra tutti valori registrati dal pixel durante la
scansione.
Lultimo passo riguarda il confronto della temperatura
normalizzata con in valore di soglia che
permette di identificare la presenza di persone:
Il valore scelto in questo caso, in base alle temperature
registrate, pari, come visto prima, a 0,45,
e ci permette di identificare al meglio le sorgenti di
calore.
Di seguito verranno inserite le immagini sul dato di occupancy.
Le zone rosse identificano la
presenza di fonti di calore, prima del solo pavimento, poi di
tutto lambiente, comprese le pareti.
-
20
Figura 19 Pavimento
-
21
Figura 20 Occupancy totale ambiente
-
22
5. CONCLUSIONI
Confrontando i dati ottenuti con la posizione delle persone
effettivamente presenti all'interno del
laboratorio al momento della misura si visto che mobilitando
adeguatamente un sensore TPA81
tramite servomotori e applicando i giusti algoritmi
effettivamente possibile localizzare con
buona precisione spaziale la presenza di persone all'interno di
una stanza. Questo un ottimo
risultato considerando che sono stati utilizzati strumenti di
costo relativamente basso rispetto a
sistemi dalle prestazioni comparabili e utilizzati per gli
stessi scopi; anche dal punto di vista
software sono stati utilizzati programmi open source (arduino) o
comunque facilmente reperibili e
la stessa programmazione non ha richiesto particolari competenze
informatiche rivelandosi s
difficoltosa in un primo momento, ma tutto sommato snella e
agevole una volta entrati nel
meccanismo.
Per contro il sistema utilizzato presenta ancora punti negativi
che richiedono un ulteriore studio e
una pi approfondita implementazione; non si stato infatti in
grado di distinguere,
nell'esperienza effettuata, le diverse fonti di calore tra loro:
un sistema del genere, ad esempio,
riconoscerebbe come persona anche un termoconvettore, un
termosifone o una bocchetta d'aria
calda posta sul soffitto, problema che, per altro, si presentato
anche nel caso in analisi.
Un altro aspetto negativo potrebbe essere la risposta dinamica
del sistema; la scansione di
un'intera stanza con un meccanismo come quello appena descritto
richiede infatti che il
servomotore si sposti consecutivamente in molte dimensioni
diverse e, quindi, richiede tempo. Se
durante il movimento del sensore una persona si spostasse in due
posizioni diverse, e il sensore
scansionasse le due posizioni consecutivamente tra loro, darebbe
in uscita la presenza di due
persone e non di una.
Considerando un equilibrio tra i pregi (costi e semplicit) e i
difetti, il sistema preso in analisi
presenta comunque ottime potenzialit e merita uno studio pi
approfondito.