Calibrazione VL53L0X

Buongiorno a tutti.
Ho acquistato un sensore TOF basato sul VL53L0X, ma ho problemi nel gestirlo.
Nonostante sia un sensore abbastanza diffuso, non trovo informazioni sulla sua calibrazione.
Il problema è che il sensore ha un offset fisso di 36mm ed un errore casuale di +/- 3 mm. L'errore causale può anche starmi bene, non posso però accettare l'errore di offset di 36mm (non voglio correggerlo via software, lo voglio leggere corretto dal sensore).
Il sensore supporta alcuni tipi di calibrazione, ben descritti a livello hardware sul datasheet, ma non trovo esempi di programmazione e le librerie (sia la Adafruit che la Pololu) non forniscono nulla.
Inoltre, il sensore viene venduto con l'indicazione di una portata di 2 metri, ma di fabbrica esce limitato a 80 cm e non ho trovato alcun modo per estenderne la portata fino al limite indicato.
Qualcuno ci ha già lavorato con questo sensore e sa aiutarmi?
Grazie

Carlo

carloroma63:
... le librerie (sia la Adafruit ...

... quella di Adafruit di trova su GitHub e mi sembra piuttosto completa e complessa ... vedo un "vl53l0x_api_calibration.h" che ha al suo interno delle chiamate di calibrazione, ma di più non so dirti.

Una prima strada è armarsi di santa pazienza e studiarsi tutti i moduli della libreria (... sono tanti e NON esattamente banali), l'altra è rivelgersi al forum di supporto tecnico Adafruit e vedere se loro o gli altri utenti sanno risponderti ... ::slight_smile:

Guglielmo

... puoi anche provare a guardare tutta la documentazione che mette a disposizione ST sul suo SITO :wink:

Guglielmo

Per la questione del range ho risolto.
Analizzando le librerie, ho trovato il metodo configSensor(), che implementa una delle 4 modalità VL53L0X_SENSE_DEFAULT, VL53L0X_SENSE_LONG_RANGE, VL53L0X_SENSE_HIGH_SPEED, VL53L0X_SENSE_HIGH_ACCURACY, da utilizzare attraverso un indice compreso tra 0 e 3. E' da notare che le costanti che ho citato le ho lette nella libreria, ma NON sono esportate della libreria e quindi non sono disponibili nel corpo dello sketch.

Adesso devo capire come impostare l'offset...

Grazie

Carlo

... e comunque la precisione è veramente scarsa....
l'ho fissato al tavolo, puntato verso il soffitto, e queste sono le letture:
16:01:29.191 -> Reading a measurement... Distance (mm): 1746
16:01:29.325 -> Reading a measurement... Distance (mm): 1848
16:01:29.459 -> Reading a measurement... Distance (mm): 1783
16:01:29.625 -> Reading a measurement... Distance (mm): 1828
16:01:29.758 -> Reading a measurement... Distance (mm): 1895
16:01:29.908 -> Reading a measurement... Distance (mm): 1935
16:01:30.041 -> Reading a measurement... Distance (mm): 1831
16:01:30.175 -> Reading a measurement... Distance (mm): 1818
16:01:30.308 -> Reading a measurement... Distance (mm): 1884
16:01:30.458 -> Reading a measurement... Distance (mm): 1669
16:01:30.591 -> Reading a measurement... Distance (mm): 1843
16:01:30.724 -> Reading a measurement... Distance (mm): 1860

Beh ... non è che mi meraviglia ... quel sensore è dato per una buona precisione fino a 1200mm oltre ... cala parecchio. Del resto, basta guardare i due grafici di pagina 25 e 26 del datasheet ... ::slight_smile:


Guglielmo

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.