logo ST UM3038 Sensore di misurazione del tempo di volo multizona
Manuale d'uso
ST UM3038 Sensore di misurazione del tempo di volo multizona

UM3038 Manuale d'uso
Una guida all'utilizzo del sensore VL53L7CX Time-of-Flight multizona con campo visivo di 90°

Introduzione

Lo scopo di questo manuale utente è spiegare come gestire il sensore ToF (Time-of-Flight) VL53L7CX, utilizzando l'API del driver ultra lite (ULD). Descrive le principali funzioni per programmare il dispositivo, le calibrazioni ei risultati di output.
Appositamente progettato per applicazioni che richiedono un campo visivo ultraampio, il sensore del tempo di volo VL53L7CX offre un campo visivo diagonale di 90°. Basato sulla tecnologia FlightSense di ST, il VL53L7CX incorpora un'efficiente lente di metasuperficie (DOE) posizionata sull'emettitore laser che consente la proiezione di un FoV quadrato di 60° x 60° sulla scena.
La sua capacità multizona fornisce una matrice di 8×8 zone (64 zone) e può lavorare a velocità elevate (60 Hz) fino a 350 cm.
Grazie alla modalità autonoma con soglia di distanza programmabile unita al FoV ultrawide, il VL53L7CX è perfetto per qualsiasi applicazione che richieda il rilevamento dell'utente a bassa potenza. Gli algoritmi brevettati di ST e l'innovativa costruzione del modulo consentono al VL53L7CX di rilevare, in ciascuna zona, più oggetti all'interno del campo visivo con una comprensione approfondita. Gli algoritmi dell'istogramma ST garantiscono l'immunità al crosstalk del vetro di copertura oltre i 60 cm.
Derivato dal VL53L5CX, i pinout e i driver di entrambi i sensori sono compatibili, il che garantisce una migrazione semplice da un sensore all'altro.
Come tutti i sensori Time-of-Flight (ToF) basati sulla tecnologia FlightSense di ST, il VL53L7CX registra, in ciascuna zona, una distanza assoluta indipendentemente dal colore e dalla riflettanza del target.
Alloggiato in un pacchetto reflowable in miniatura che integra un array SPAD, il VL53L7CX raggiunge le migliori prestazioni in varie condizioni di illuminazione ambientale e per un'ampia gamma di materiali del vetro di copertura.
Tutti i sensori ToF di ST integrano un VCSEL che emette una luce IR a 940 nm completamente invisibile, totalmente sicura per gli occhi (certificazione Classe 1).
Il VL53L7CX è il sensore perfetto per qualsiasi applicazione che richieda FoV ultrawide come robotica, altoparlanti intelligenti, videoproiettori, gestione dei contenuti. La combinazione della funzionalità multizona e del campo visivo a 90° può migliorare nuovi casi d'uso come il riconoscimento dei gesti, lo SLAM per la robotica e l'attivazione del sistema a basso consumo per gli edifici intelligenti.
Figura 1. Modulo sensore VL53L7CX
ST UM3038 Sensore di portata multizona del tempo di volo fig 11Riferimenti

Scheda tecnica VL53L7CX (DS13865).

Acronimi e Abbreviazioni

Acronimo/abbreviazione Definizione
DOE elemento ottico diffrattivo
Campo visivo campo di view
I2C circuito interintegrato (bus seriale)
Kcps/SPAD Kilo-count al secondo per spad (unità utilizzata per quantificare il numero di fotoni nell'array SPAD)
Memoria RAM memoria ad accesso casuale
SCL linea orologio seriale
SDA dati seriali
SPAD diodo a valanga a singolo fotone
ToF Tempo di volo
ULD driver ultraleggero
VCSEL diodo ad emissione superficiale a cavità verticale
Xtalk diafonia

Descrizione funzionale

2.1 Sistema terminatoview
Il sistema VL53L7CX è composto da un modulo hardware e dal software del driver ultra lite (VL53L7CX ULD) in esecuzione su un host (vedere la figura seguente). Il modulo hardware contiene il sensore ToF. La ST fornisce il driver software che viene indicato in questo documento come “il driver”. Questo documento descrive le funzioni del driver che sono accessibili all'host. Queste funzioni controllano il sensore e ottengono i dati di distanza.
Figura 2. Sistema VL53L7CX finitoview
ST UM3038 Sensore di portata multizona del tempo di volo fig 102.2 Orientamento efficace
Il modulo include una lente sopra l'apertura RX che capovolge (orizzontalmente e verticalmente) l'immagine catturata del bersaglio. Di conseguenza, la zona identificata come zona 0 in basso a sinistra dell'array SPAD è illuminata da un bersaglio posto in alto a destra della scena.
Figura 3. Orientamento effettivo del VL53L7CXST UM3038 Sensore di portata multizona del tempo di volo fig 9

2.3 Schemi e configurazione I2C
La comunicazione tra driver e firmware è gestita da I2C, con una capacità di funzionamento fino a 1 MHz. L'implementazione richiede pull-up sulle linee SCL e SDA. Consultare la scheda tecnica VL53L7CX per ulteriori informazioni.
Il dispositivo VL53L7CX ha un indirizzo I2C predefinito di 0x52. Tuttavia, è possibile modificare l'indirizzo predefinito per evitare conflitti con altri dispositivi o facilitare l'aggiunta di più moduli VL53L7CX al sistema per un maggiore campo visivo del sistema. L'indirizzo I2C può essere modificato utilizzando la funzione vl53l7cx_set_i2c_address().
Figura 4. Più sensori sul bus I2C
ST UM3038 Sensore di portata multizona del tempo di volo fig 8
Per consentire a un dispositivo di modificare il proprio indirizzo I2C senza influire sugli altri sul bus I2C, è importante disabilitare la comunicazione I2C dei dispositivi che non vengono modificati. La procedura è la seguente:

  1. Accendere il sistema normalmente.
  2. Tirare verso il basso il pin LPn del dispositivo di cui non verrà modificato l'indirizzo.
  3. Sollevare il pin LPn del dispositivo con l'indirizzo I2C modificato.
  4. Programmare l'indirizzo I2C sul dispositivo utilizzando la funzione set_i2c_address().
  5. Tirare verso l'alto il pin LPn del dispositivo non riprogrammato.

Tutti i dispositivi dovrebbero ora essere disponibili sul bus I2C. Ripetere i passaggi precedenti per tutti i dispositivi VL53L7CX nel sistema che richiedono un nuovo indirizzo I2C.

Contenuto del pacchetto e flusso di dati

3.1 Architettura e contenuto del driver
Il pacchetto VL53L7CX ULD è composto da quattro cartelle. Il driver si trova nella cartella /VL53L7CX_ULD_API.
Il driver è composto da obbligatorio e facoltativo fileS. Opzionale filesono plugins utilizzato per estendere le funzionalità ULD. Ogni plugin inizia con la parola “vl53l7cx_plugin” (ad es. vl53l7cx_plugin_xtalk.h). Se l'utente non vuole il proposto plugins, possono essere rimossi senza influire sulle altre funzionalità del driver. La figura seguente rappresenta l'obbligo filese l'opzionale plugins.
Figura 5. Architettura del driver
ST UM3038 Sensore di portata multizona del tempo di volo fig 7
L'utente deve anche implementare due filesi trova nella cartella /Platform. La piattaforma proposta è un guscio vuoto, e va riempito di funzioni dedicate.
Nota: Piattaforma h file contiene macro obbligatorie per utilizzare l'ULD. Tutti i file il contenuto è obbligatorio per utilizzare correttamente l'ULD.
3.2 Flusso di calibrazione
Nota: Il crosstalk (xtalk) è definito come la quantità di segnale ricevuto sull'array SPAD che è dovuto alla riflessione della luce VCSEL all'interno della finestra protettiva (vetro di copertura) aggiunta sopra il modulo. Il modulo VL53L7CX è autocalibrato e può essere utilizzato senza alcuna calibrazione aggiuntiva.
Potrebbe essere necessaria la calibrazione Xtalk se il modulo è protetto da un vetrino coprioggetto. Il VL53L7CX è immune a xtalk oltre i 60 cm grazie a un algoritmo di istogramma, ma a brevi distanze inferiori a 60 cm, xtalk può essere più grande del segnale effettivamente restituito, fornendo una falsa lettura del bersaglio o facendo apparire i bersagli più vicini di quanto non siano in realtà. Tutte le funzioni di calibrazione xtalk sono incluse in un plugin xtalk (opzionale). L'utente deve utilizzare il file `vl53l7cx_plugin_xtalk'.
Xtalk può essere calibrato una volta e i dati possono essere salvati per essere riutilizzati in seguito. È necessario un bersaglio a distanza fissa, con una riflettanza nota. La distanza minima richiesta è di 600 mm e il bersaglio deve coprire l'intero campo visivo. A seconda della configurazione, l'utente può modificare le impostazioni per adattare la calibrazione Xtalk, come proposto nella tabella seguente.
Tabella 1. Impostazioni disponibili per la calibrazione

Collocamento Minimo Proposto da ST Massimo
Distanza [mm] 600 600 3000
Numero di samples 1 4 16
Riflettanza [%] 1 3 99

Nota Aumentando il numero di samples aumenta la precisione, ma aumenta anche il tempo per la calibrazione. Il tempo relativo al numero di samples è lineare e i valori seguono il timeout approssimativo:

  • Anno 1ample 1 secondo
  • Anno 4ampmeno di 2.5 secondi
  • Anno 16ampmeno di 8.5 secondi

La calibrazione viene eseguita utilizzando la funzione vl53l7cx_calibrate_xtalk(). Questa funzione può essere utilizzata in qualsiasi momento. Tuttavia, il sensore deve essere prima inizializzato. La figura seguente rappresenta il flusso di calibrazione Xtalk.
Figura 6. Flusso di calibrazione XtalkST UM3038 Sensore di portata multizona del tempo di volo fig 6

3.3 Gamma di flusso
La figura seguente rappresenta il flusso variabile utilizzato per ottenere le misurazioni. La calibrazione Xtalk e le chiamate di funzioni opzionali devono essere utilizzate prima di iniziare la sessione di misurazione. Le funzioni get/set non possono essere utilizzate durante una sessione di intervallo e la programmazione "al volo" non è supportata.
Figura 7. Variazione del flusso utilizzando VL53L7CXST UM3038 Sensore di portata multizona del tempo di volo fig 5

Funzionalità disponibili

L'API VL53L7CX ULD include diverse funzioni che consentono all'utente di regolare il sensore, a seconda del caso d'uso. Tutte le funzioni disponibili per il conducente sono descritte nelle sezioni seguenti.
4.1 Inizializzazione
L'inizializzazione deve essere eseguita prima di utilizzare il sensore VL53L7CX. Questa operazione richiede all'utente di:

  1. Accendere il sensore (VDDIO, AVDD, pin LPn impostati su High e pin I2C_RST impostato su 0)
  2. Chiama la funzione vl53l7cx_init(). La funzione copia il firmware (~84 kbyte) nel modulo caricando il codice sull'interfaccia I2C ed eseguendo una routine di avvio per completare l'inizializzazione.

4.2 Gestione del reset del sensore
Per ripristinare il dispositivo, è necessario attivare i seguenti pin:

  1. Impostare i pin VDDIO, AVDD e LPn su basso.
  2. Attendere 10 ms.
  3. Imposta i pin VDDIO, AVDD e LPn su alto. Attivando solo il pin I2C_RST si ripristina la comunicazione I2C.

4.3 Risoluzione
La risoluzione corrisponde al numero di zone disponibili. Il sensore VL53L7CX ha due possibili risoluzioni: 4×4 (16 zone) e 8×8 (64 zone). Di default il sensore è programmato in 4×4.
La funzione vl53l7cx_set_resolution() consente all'utente di modificare la risoluzione. Poiché la frequenza di range dipende dalla risoluzione, questa funzione deve essere utilizzata prima di aggiornare la frequenza di range. Inoltre, la modifica della risoluzione aumenta anche la dimensione del traffico sul bus I2C quando vengono letti i risultati.
4.4 Frequenza del range
La frequenza di misurazione può essere utilizzata per modificare la frequenza di misurazione. Poiché la frequenza massima è diversa tra le risoluzioni 4×4 e 8×8, questa funzione deve essere utilizzata dopo aver scelto una risoluzione. I valori minimi e massimi consentiti sono elencati nella tabella seguente.
Tabella 2. Frequenze minime e massime

Risoluzione Frequenza minima [Hz] Frequenza di portata massima [Hz]
4×4 1 60
8×8 1 15

La frequenza di range può essere aggiornata utilizzando la funzione vl53l7cx_set_ranging_frequency_hz(). Per impostazione predefinita, la frequenza di range è impostata su 1 Hz.
4.5 Modalità di misurazione
La modalità di misurazione consente all'utente di scegliere tra prestazioni elevate o basso consumo energetico.
Le modalità proposte sono due:

  • Continuo: il dispositivo acquisisce continuamente fotogrammi con una frequenza variabile definita dall'utente. Il VCSEL è abilitato durante tutto il range, quindi la distanza massima del range e l'immunità ambientale sono migliori. Questa modalità è consigliata per misurazioni veloci o alte prestazioni.
  • Autonoma: questa è la modalità predefinita. Il dispositivo acquisisce continuamente fotogrammi con una frequenza variabile definita dall'utente. Il VCSEL è abilitato durante un periodo definito dall'utente, utilizzando la funzione vl53l7cx_set_integration_time_ms(). Poiché il VCSEL non è sempre abilitato, il consumo energetico è ridotto. I vantaggi sono più evidenti con una frequenza ridotta. Questa modalità è consigliata per applicazioni a bassa potenza.

La modalità di intervallo può essere modificata utilizzando la funzione vl53l7cx_set_ranging_mode().
4.6 Tempo di integrazione
Il tempo di integrazione è una funzione disponibile solo utilizzando la modalità Autonomous range (fare riferimento alla Sezione 4.5 Modalità range). Consente all'utente di modificare l'ora mentre VCSEL è abilitato. La modifica del tempo di integrazione se la modalità di intervallo è impostata su continua non ha alcun effetto. Il tempo di integrazione predefinito è impostato su 5 ms.
L'effetto del tempo di integrazione è diverso per le risoluzioni 4×4 e 8×8. La risoluzione 4×4 è composta da un tempo di integrazione e la risoluzione 8×8 è composta da quattro tempi di integrazione. Le figure seguenti rappresentano l'emissione VCSEL per entrambe le risoluzioni.
Figura 8. Tempo di integrazione per 4×4 autonomoST UM3038 Sensore di portata multizona del tempo di volo fig 4

La somma di tutti i tempi di integrazione + 1 ms di sovraccarico deve essere inferiore al periodo di misurazione. In caso contrario, il periodo di intervallo viene aumentato automaticamente per adattarsi al valore del tempo di integrazione.
4.7 Modalità di alimentazione
Le modalità di alimentazione possono essere utilizzate per ridurre il consumo energetico quando il dispositivo non viene utilizzato. Il VL53L7CX può funzionare in una delle seguenti modalità di alimentazione:

  • Riattivazione: il dispositivo è impostato su HP inattivo (alta potenza), in attesa di istruzioni.
  • Sleep: il dispositivo è impostato su LP inattivo (basso consumo), lo stato di basso consumo. Il dispositivo non può essere utilizzato fino a quando non viene impostato in modalità Riattivazione. Questa modalità conserva il firmware e la configurazione.

La modalità di alimentazione può essere modificata utilizzando la funzione vl53l7cx_set_power_mode(). La modalità predefinita è Sveglia.
Nota Se l'utente desidera modificare la modalità di alimentazione, il dispositivo non deve trovarsi in uno stato di intervallo.
4.8 affilatrice
Il segnale restituito da un bersaglio non è un impulso pulito con spigoli vivi. I bordi sono in pendenza e possono influenzare le distanze riportate nelle zone adiacenti. L'affilatoio viene utilizzato per rimuovere parte o tutto il segnale causato dall'abbagliamento velato. L'example mostrato nella figura seguente rappresenta un bersaglio vicino a 100 mm centrato nel FoV, e un altro bersaglio, più indietro a 500 mm. A seconda del valore dello sharpener, il bersaglio vicino può apparire in più zone rispetto a quello reale.
Figura 10. Esampfile della scena utilizzando diversi valori di nitidezza
ST UM3038 Sensore di portata multizona del tempo di volo fig 3
L'affilatore può essere modificato utilizzando la funzione vl53l7cx_set_sharpener_percent(). I valori consentiti sono compresi tra 0% e 99%. Il valore predefinito è 5 %.
4.9 Ordine obiettivo
Il VL53L7CX può misurare diversi target per zona. Grazie all'elaborazione dell'istogramma, l'host è in grado di scegliere l'ordine dei target segnalati. Ci sono due opzioni:

  • Più vicino: l'obiettivo più vicino è il primo segnalato
  • Più forte: l'obiettivo più forte è il primo segnalato

L'ordine di destinazione può essere modificato utilizzando la funzione vl53l7cx_set_target_order(). L'ordine predefinito è Strongest.
L'example nella figura seguente rappresenta il rilevamento di due bersagli. Uno a 100 mm a bassa riflettanza e uno a 700 mm ad alta riflettanza.
Figura 11. Esample dell'istogramma con 2 target

ST UM3038 Sensore di portata multizona del tempo di volo fig 2

4.10 Obiettivi multipli per zona
Il VL53L7CX può misurare fino a quattro target per zona. L'utente può configurare il numero di target restituiti dal sensore.
Nota La distanza minima tra due target da rilevare è di 600 mm. La selezione non è possibile dal driver; deve essere fatto in `platform.h' file. La macro VL53L7CX_NB_ TARGET_PER_ZONE deve essere impostata su un valore compreso tra 1 e 4. L'ordine del target descritto nella Sezione 4.9 Ordine del target influisce direttamente sull'ordine del target rilevato. Per impostazione predefinita, il sensore emette solo un massimo di un target per zona.
Nota  Un numero maggiore di obiettivi per zona aumenta la dimensione della RAM richiesta.
4.11 Margine Xtalk
Il margine Xtalk è una funzionalità aggiuntiva disponibile solo utilizzando il plugin Xtalk. Il .c e .f fileÈ necessario utilizzare 'vl53l7cx_plugin_xtalk'.
Il margine viene utilizzato per modificare la soglia di rilevamento quando è presente una coverlass sulla parte superiore del sensore. La soglia può essere aumentata per garantire che il senza copertura non venga mai rilevato, dopo aver impostato i dati di calibrazione X talk. Per esample, l'utente può eseguire una calibrazione Xwalk su un singolo dispositivo e riutilizzare gli stessi dati di calibrazione per tutti gli altri dispositivi. Il margine X talk può essere utilizzato per regolare la correzione X talk. La figura sottostante rappresenta il margine Xwalk.
Figura 12. X margine di conversazione
ST UM3038 Sensore di portata multizona del tempo di volo fig 14.12 Soglie di rilevamento

Oltre alle normali capacità di portata, il sensore può essere programmato per rilevare un oggetto in base a determinati criteri predefiniti. Questa funzionalità è disponibile utilizzando il plug-in "soglie di rilevamento", che è un'opzione non inclusa di default nell'API. Il files chiamato `vl53l7cx_plugin_detection_thresholds' deve essere usato. La funzione può essere utilizzata per attivare un interrupt al pin A3 (INT) quando vengono soddisfatte le condizioni definite dall'utente. Sono possibili tre configurazioni:

  • Risoluzione 4×4: utilizzando 1 soglia per zona (totale di 16 soglie)
  • Risoluzione 4×4: utilizzando 2 soglie per zona (totale 32 soglie)
  • Risoluzione 8×8: utilizzando 1 soglia per zona (totale di 64 soglie)

Qualunque sia la configurazione utilizzata, la procedura per la creazione delle soglie e la dimensione della RAM sono le stesse.
Per ogni combinazione di soglia, devono essere compilati diversi campi:

  • Zone id: id della zona selezionata (fare riferimento alla Sezione 2.2 Orientamento effettivo)
  • Misura: misura da catturare (distanza, segnale, numero di SPAD, …)
  • Tipo: finestre di misura (in finestre, fuori finestre, sotto soglia bassa, …)
  • Soglia bassa: utente con soglia bassa per il trigger. L'utente non ha bisogno di impostare il formato, viene gestito automaticamente dall'API.
  • Soglia alta: utente con soglia alta per il trigger. L'utente non ha bisogno di impostare il formato, viene gestito automaticamente dall'API.
  • Operazione matematica: utilizzata solo per 4×4 2 combinazioni di soglie per zona. L'utente può impostare una combinazione utilizzando diverse soglie in una zona.

4.13 Indicatore di movimento
Il sensore VL53L7CX dispone di una funzione firmware integrata che consente il rilevamento del movimento in una scena. L'indicatore di movimento viene calcolato tra fotogrammi sequenziali. Questa opzione è disponibile utilizzando il plugin `vl53l7cx_plugin_motion_indicator'.
L'indicatore di movimento viene inizializzato utilizzando la funzione vl53l7cx_motion_indicator_init(). Se l'utente desidera modificare la risoluzione del sensore, deve aggiornare la risoluzione dell'indicatore di movimento utilizzando la funzione dedicata: vl53l7cx_motion_indicator_set_resolution().
L'utente può anche modificare le distanze minima e massima per il rilevamento del movimento. La differenza tra le distanze minima e massima non può essere superiore a 1500 mm. Per impostazione predefinita, le distanze vengono inizializzate con valori compresi tra 400 mm e 1500 mm.
I risultati sono memorizzati nel campo `indicatore di movimento'. In questo campo, l'array `motion' fornisce un valore contenente l'intensità del movimento per zona. Un valore elevato indica un'elevata variazione di movimento tra i fotogrammi. Un movimento tipico fornisce un valore compreso tra 100 e 500. Questa sensibilità dipende dal tempo di integrazione, dalla distanza del bersaglio e dalla riflettanza del bersaglio.
Una combinazione ideale per applicazioni a bassa potenza è l'uso dell'indicatore di movimento con modalità di misurazione autonoma e soglie di rilevamento programmate sul movimento. Ciò consente il rilevamento delle variazioni di movimento nel campo visivo con un consumo energetico minimo.

Risultati a distanza

5.1 Dati disponibili
Un ampio elenco di dati sull'obiettivo e sull'ambiente può essere emesso durante le attività di misurazione. La tabella seguente descrive i parametri a disposizione dell'utente.
Tabella 3. Uscita disponibile utilizzando il sensore VL53L7CX

Elemento Nb byte (RAM) Unità Descrizione
Ambiente per SPAD 256 Kcps/SPAD Misurazione della velocità ambientale eseguita sull'array SPAD, senza emissione di fotoni attivi, per misurare la velocità del segnale ambientale dovuta al rumore.
Numero di bersagli rilevati 64 Nessuno Numero di bersagli rilevati nella zona corrente. Questo valore dovrebbe essere il primo da verificare per conoscere la validità di una misurazione.
Numero di SPAD abilitati 256 Nessuno Numero di SPAD abilitati per la misura corrente. Un bersaglio riflettente lontano o basso attiverà più SPAD.
Segnale per SPAD 256 x nb obiettivi programmati Kcps/SPAD Quantità di fotoni misurati durante l'impulso VCSEL.
Gamma sigma 128 x nb obiettivi programmati Millimetro Stimatore Sigma per il rumore nel riportato
distanza del bersaglio.
Distanza 128 x nb obiettivi programmati Millimetro Distanza bersaglio
Stato obiettivo 64 x nb obiettivi programmati Nessuno Validità delle misure. Vedere la Sezione 5.5 Interpretazione dei risultati per ulteriori informazioni.
Riflessione 64 obiettivi numerici programmati Percent Riflettanza target stimata in percentuale
Indicatore di movimento 140 Nessuno Struttura contenente i risultati dell'indicatore di movimento.
Il campo 'movimento' contiene l'intensità del movimento.

Nota: per più elementi (segnale per velocità, sigma, …) l'accesso ai dati è diverso se l'utente ha programmato più di 1 target per zona (vedere Sezione 4.10 Target multipli per zona). Vedi esample code per ulteriori informazioni.
5.2 Personalizza la selezione dell'output
Per impostazione predefinita, tutte le uscite VL53L7CX sono abilitate. Se necessario, l'utente può disabilitare alcune uscite del sensore. La disabilitazione delle misurazioni non è disponibile sul driver; deve essere eseguito nella `piattaforma' file. L'utente può dichiarare le seguenti macro per disabilitare le uscite:
#define VL53L7CX_DISABLE_AMBIENT_PER_SPAD
#define VL53L7CX_DISABLE_NB_SPADS_ENABLED
#define VL53L7CX_DISABLE_NB_TARGET_DETECTED
#definire VL53L7CX_DISABLE_SIGNAL_PER_SPAD
#definire VL53L7CX_DISABLE_RANGE_SIGMA_MM
#define VL53L7CX_DISABLE_DISTANZA_MM
#definire VL53L7CX_DISABLE_TARGET_STATUS
#define VL53L7CX_DISABLE_REFLECTANCE_PERCENT
#definire VL53L7CX_DISABLE_MOTION_INDICATOR
Di conseguenza, i campi non vengono dichiarati nella struttura dei risultati ei dati non vengono trasferiti all'host. Le dimensioni della RAM e dell'I2C sono ridotte. Per garantire la coerenza dei dati, la ST consiglia di mantenere sempre abilitati "numero di target rilevati" e "stato del target". Consente di filtrare le misurazioni in base allo stato del target (fare riferimento alla Sezione 5.5 Interpretazione dei risultati).
5.3 Ottenere risultati variabili
Durante la sessione di misurazione, ci sono due modi per sapere se sono disponibili nuovi dati di misurazione:

  • Modalità polling: usa continuamente la funzione vl53l7cx_check_data_ready(). Rileva un nuovo conteggio del flusso restituito dal sensore.
  • Modalità di interruzione: attende un'interruzione sollevata sul pin A3 (GPIO1). L'interrupt viene cancellato automaticamente dopo ~100 s.

Quando i nuovi dati sono pronti, i risultati possono essere letti utilizzando la funzione vl53l7cx_get_ranging_data(). Restituisce una struttura aggiornata contenente tutto l'output selezionato. Poiché il dispositivo è asincrono, non vi è alcuna interruzione da cancellare per continuare la sessione di misurazione.
Questa funzione è disponibile per entrambe le modalità di misurazione continua e autonoma.
5.4 Utilizzo del formato firmware grezzo
Dopo aver trasferito i dati di portata tramite I2C, avviene una conversione tra il formato del firmware e il formato dell'host. Questa operazione viene tipicamente eseguita per avere una distanza in millimetri come uscita predefinita del sensore. Se l'utente desidera utilizzare il formato del firmware, la seguente macro deve essere definita nella piattaforma file:
#definire VL53L7CX_USE_RAW_FORMAT
5.5 Interpretazione dei risultati
I dati restituiti dal VL53L7CX possono essere filtrati per tener conto dello stato del target. Lo stato indica la validità della misurazione. L'elenco completo degli stati è descritto nella tabella seguente.

Stato obiettivo Descrizione
0 I dati sulla distanza non vengono aggiornati
1 Velocità del segnale troppo bassa sull'array SPAD
2 Fase obiettivo
3 Stimatore Sigma troppo alto
4 Coerenza target non riuscita
5 Intervallo valido
6 Avvolgimento non eseguito (tipicamente il primo intervallo)
7 Coerenza della tariffa non riuscita
8 Velocità del segnale troppo bassa per il target attuale
9 Intervallo valido con impulso grande (potrebbe essere dovuto a un target unito)
10 Portata valida, ma nessun bersaglio rilevato alla portata precedente
11 Coerenza della misurazione non riuscita
12 Bersaglio sfocato da un altro, a causa dell'affilatoio
13 Obiettivo rilevato ma dati incoerenti. Succede spesso per obiettivi secondari.
255 Nessun target rilevato (solo se è abilitato il numero di target rilevati)

Per avere dati coerenti, l'utente deve filtrare lo stato di destinazione non valido. Per fornire una valutazione di affidabilità, un obiettivo con stato 5 è considerato valido al 100%. Uno stato di 6 o 9 può essere considerato con un valore di confidenza del 50 %. Tutti gli altri stati sono al di sotto del livello di confidenza del 50 %.
5.6 Errori del conducente
Quando si verifica un errore utilizzando il sensore VL53L7CX, il driver restituisce un errore specifico. La tabella seguente elenca i possibili errori.
Tabella 5. Elenco degli errori disponibili utilizzando il driver

Stato obiettivo Descrizione
0 Nessun errore
127 L'utente ha programmato un'impostazione errata (risoluzione sconosciuta, frequenza di portata troppo alta, ...)
255 Errore grave. Di solito un errore di timeout, dovuto a un errore I2C.
altro Combinazione di più errori sopra descritti

Nota Più codici di errore possono essere implementati dall'host utilizzando la piattaforma files.
Cronologia delle revisioni
Tabella 6. Cronologia delle revisioni del documento

Data Versione Cambiamenti
2-ago-22 1 Versione iniziale
2-Set-22 2 Sezione aggiornata Introduzione Aggiunta nota sulla distanza minima tra i bersagli alla Sezione 4.10 Più bersagli per zona

AVVISO IMPORTANTE LEGGERE ATTENTAMENTE
STMicroelectronics NV e le sue consociate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, migliorie e migliorie ai prodotti ST e/o al presente documento in qualsiasi momento e senza preavviso. Gli acquirenti devono ottenere le ultime informazioni rilevanti sui prodotti ST prima di effettuare ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita di ST in vigore al momento della conferma dell'ordine.
Gli acquirenti sono gli unici responsabili della scelta, della selezione e dell'uso dei prodotti ST e la ST non si assume alcuna responsabilità per l'assistenza all'applicazione o la progettazione dei prodotti degli acquirenti. Nessuna licenza, esplicita o implicita, su qualsiasi diritto di proprietà intellettuale è concessa da ST nel presente documento. La rivendita di prodotti ST con disposizioni diverse da quelle qui riportate rende nulla qualsiasi garanzia concessa da ST per tale prodotto. ST e il logo ST sono marchi di fabbrica di ST. Per ulteriori informazioni sui marchi ST, fare riferimento a  www.st.com/trademarks.
Tutti gli altri nomi di prodotti o servizi sono di proprietà dei rispettivi proprietari. Le informazioni contenute in questo documento annullano e sostituiscono le informazioni precedentemente fornite in qualsiasi versione precedente di questo documento.
© 2022 STMicroelectronics Tutti i diritti riservati

Documenti / Risorse

ST UM3038 Sensore di misurazione del tempo di volo multizona [pdf] Manuale d'uso
UM3038 Sensore di distanza multizona dell'ora di volo, UM3038, Sensore di distanza multizona dell'ora di volo, Multizona dell'ora di volo, Sensore di distanza multizona in volo, Sensore di distanza multizona, Sensore di distanza in volo, Sensore di distanza, Sensore UM3038

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *