Misurare distanze…
Ecco una comoda funzione di linearizzazione della curva del sensore Sharp GP2Y0A02YK0F con la conversione dei volt letti (da un ingresso analogico di Xduino) in mm:
#define PIN_ST 0 //ingresso analogico
//variabili per gestione distanza (soppressione rumore)
#define BUFFER_DST 6
float buf_dst[BUFFER_DST];
//--- prototipo funzione
float leggiDistanza( void );
/*lettura distanza
(cc) 2008-2010 Kokiua (alias L.M.) from Sorbolo (Parma) - Italy
Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/
*/
float leggiDistanza( void ){
float dst, media = 0;
char i;
dst = (0.5L*((float)analogRead( PIN_ST )))/10; //lettura in volt
dst = (0.0082712905 + 939.57652 * dst) / (1.0L + -3.3978697 * dst + 17.339222 * dst * dst) * 100; //linearizza e converte in mm
if(dst > 1500) dst = buf_dst[BUFFER_DST - 1]; //sopprime picchi disturbi vicino a 0 volt
for( i=0; i < (BUFFER_DST - 1) ; i++){ //aggiorna il buffer calcolo media per soppressione rumore di fondo
buf_dst[i] = buf_dst[i+1];
media += buf_dst[i];
}
buf_dst[BUFFER_DST - 1] = dst;
media = (media + dst) / BUFFER_DST;
return media;
}
Come è possibile vedere dal datasheet, il sensore della Sharp ha un campo utile tra i 20cm e i 150cm, ma con un semplice accorgimento possiamo anche rilevare le distanze minori di 20cm. Come?
Semplice:
N.b. è accaduto che qualcuno abbia contestato la “paternità” di questa mia semplicissima intuizione, pretendendo addirittura che io dovessi manifestare “gratitudine” e riconoscimenti. Così, per sgomberare ogni dubbio sull’originalità di questa mio ragionamento, invito chiunque abbia dubbi sulla mia serietà a consultare la discussione presente nel forum di Arduino in particolare alla mia replica:«Re: Pilotare led RGB e leggere sensori IR x distan – Reply #2 – 12.03.2008 at 19:55:44» Sia ben chiaro che con questo non intendo affermare che nessuno prima di me possa aver avuto la medesima intuizione, ma che ad oggi mi risulta che nessun’altro abbia reclamato a ragione tale “diritto”… (fermo restando che per me questa deve essere considerata un’informazione totalmente libera e gratuita! 😉 )
http://www.kokiua.com/2010/08/02/nuovo-tutorial-3/TutorialDistanza,Misure,SensoreEcco una comoda funzione di linearizzazione della curva del sensore Sharp GP2Y0A02YK0F con la conversione dei volt letti (da un ingresso analogico di Xduino) in mm: Come è possibile vedere dal datasheet, il sensore della Sharp ha un campo utile tra i 20cm e i 150cm, ma con un semplice...kokiua kokiua@gmail.comAdministratorkokiua
Lascia un commento
Devi essere connesso per inviare un commento.