Firmware - Ottobre 2014 / N°105 - (Page 10)
FOCUS ON
dell'emissione perde di significato e con
l'essa l'utilizzo della triangolazione.
La tecnica mediante l'identificazione di
fase, come già detto è molto più semplice da implementare ma non calcolando
la posizione del target purtroppo riesce a
distinguere soltanto un limitatissimo range di gesti, pertanto non si presta affatto
ad applicazioni più complesse.
In conclusione la soluzione migliore per
le applicazione touchless consiste nello
sviluppo di entrambi gli algoritmi, in questo modo si creerà un sistema in grado
di rilevare, molto velocemente, i movimenti più semplici ed allo stesso tempo
i movimenti più precisi, lo svantaggio di
un approccio simile consiste nel fatto, le
tecniche vanno eseguite contemporaneamente, richiedendo alla CPU uno sforzo
maggiore rispetto al caso in cui si utilizzi
una singola tecnica.
ESEMPIO D'APPLICAZIONE
Dopo aver visto il principio fisico dei sensori di prossimità e le tecniche per la gestione di quest'ultimi, concludiamo l'articolo con un esempio pratico, vedremo
un semplicissimo sketch per Arduino che
si occupa di calcolare la posizione di un
target dalla misure rilevate da tre sensori
ad infrarossi, nello specifico utilizzeremo
il sensore della Sharp GP2D12.
Questo dispositivo viene commercializzato in un package contenente all'interno un fotoemettitore, un fotoresistore e la
relativa circuiteria di contorno. Il disposi-
tivo ha un range di funzionamento da 10
a 80 centimetri e restituisce sul proprio
pin d'uscita una tensione che decresce
al crescere della distanza rilevata, la curva mostrata nella figura 6.
Nella figura appaiono due curve quasi sempre sovrapposte, nello specifico,
la curva continua rappresenta la misura
eseguita su una superfie molto riflettente come ad esempio un foglio bianco,
mentre la linea tratteggiata si riferisce
ad una superficie poco riflettente come
ad esempio un foglio grigio, la curve non
sono lineari e dai 10 cm in poi hanno un
andamento quasi parabolico.
Useremo tre sensori disposti come mostrato nella figura 7, sullo stesso piano.
Una volta lette le tre misure provenienti
dai tre sensori, procederemo al calcolo
della posizione del target, come già detto
la posizione del target sarà data dall'intersezione delle tre sfere aventi come
centro la posizione dei sensori e come
raggio le distanze lette, considerando
quindi l'equazione della generica sfera
(x-x0)2+(y-y0)2+(z-z0)2=r2
che è funzione della posizione del proprio centro e del raggio, la posizione del
target verrà data dalla soluzione del sistema d'equazioni
Poichè le posizioni dei sensori sono fisse
e note, la posizione del target sarà funzione soltanto delle distanze misurate,
quindi in questo caso considerando tutte le distanze in centimetri ed i tre centri (1,1,0), (2,2,0) e (3,1,0) la posizione del
target sarà, considerando soltanto il semispazio definito dai valori di z positivi,
viene indicato un sistema di equazioni in
forma simbolica quest'ultimo ritornerà la
risposta, ovvero la soluzione.
L'accesso all'applicazione è totalmente
gratuita, basta connettersi al sito http://
www.wolframalpha.com/ ed inserire direttamente le equazioni delle tre sfere,
con i relativi valori numerici dei tre centri
ovviamente tale soluzione vale soltanto per la disposizione dei sensori considerata nel caso si dovessero cambiare le posizioni dei sensori bisognerebbe
risolvere nuovamente il sistema delle
tre equazioni, il che normalmente, considerando le tre distanze come variabili
simboliche, porta ad una serie di calcoli
lunghi e noiosi, per ovviare a questo inconveniente ci viene incontro Wolfram
Alpha, un applicazione creata dalla
software house Wolfram conosciuta soprattutto per Mathematica, un motore
di calcolo matematico utilizzato soprattutto per i calcoli simbolici.
Wolfram Alpha più che un'applicazione è
un motore computazionale di conoscenza, ovvero si tratta di un motore di ricerca che in modo "intelligente" interpreta le
parole inserite dall'utente e propone una
lista di risposte piuttosto che una lista di
semplici collegamenti, così se al motore
e i valori simbolici dei tre raggi, separate
da una virgola, e il motore provvederà al
calcolo della coordinate del target in funzione delle variabili simboliche.
A questo punto prima di scrivere lo
sketch resta un'ultima operazione, ovvero interpolare la curva caratteristica del
sensore, in maniera tale da ottenere dai
valori in tensione i valori delle distanze
in centimetri, per farlo ancora una volta
ci viene incontro Wolfram Alpha, tramite
la funzione Fit, la quale partendo da due
insiemi di punti calcola il polinomio di
grado desiderato che lega i due insiemi
di punti. Ad esempio nel nostro caso interpoleremo la curva caratteristica come
una curva del secondo grado andando a
scrivere sulla finestra di ricerca di Alpha
la seguente istruzione
data = {{0.5,65},{0.65,50},{1.35,20},{1.5,15
}}, Fit[data,{1,x,x^2},x]
http://www.wolframalpha.com/
http://www.wolframalpha.com/
Tabella dei contenuti per la edizione digitale del Firmware - Ottobre 2014 / N°105
SOMMARIO
FOCUS on “Infrared Gesture Sensing”
Skills
Leggere le Termocoppie con TI MSP430
Rilevazione del Tocco Senza Interferenze
INside
File System in soluzione embedded: la proposta di Renesas
Analisi e Misura dell’Impedenza del Sangue
ANALOG Un controller per i motori Brushless DC
SPOTlight
PLL a N frazionario con VCO Integrato da oltre 6GHz
Addio DDR, Benvenuta Memoria Seriale!
Tools
MPLAB® Harmony: il framework targato Microchip
LA PIATTAFORMA ZYNQ-7000 AP SoC Intelligent Drives
ALTERA ModelSim
News
EVENTS zapping
Guida
Firmware - Ottobre 2014 / N°105
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2015-02_109
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2015-01_108
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-12_107
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-11_106
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-10_105
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-09_104
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-07_102
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-06_101
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-05_100
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-04_99
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-03_98
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-02_97
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-01_96
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-12_95
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-11_94
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-10_93
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-09_92
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-07_90_91
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-06_89
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-05_88
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-04_87
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-03_86
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-02_85
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-01_84
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-12_83
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-11_82
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-10_81
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-09_80
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-07_78-79
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-06_77
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-05_76
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-04_75
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-03_74
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-02_73
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-01_72
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-12_71
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-11_70
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-10_69
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-09_68
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-07_66_67
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-06_65
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-05_64
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-04_63
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-02_62
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2011-02_61
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2011-01_60
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-12_59
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-11_58
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-10_57
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-09_56
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2010-07_54-55
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2010-06_53
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Maggio-2010-52
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Aprile-2010-51
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Marzo-2010-50
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Febbraio-2010-49
https://www.nxtbookmedia.com