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