ESP32 con VL53L0X realizza un veicolo di intelligenza artificiale IoT
Caratteristiche principali del chip VL53L0X:
1.Modulo Miniaturizzato Completamente Integrato
-
laser VCSEL 940nm
-
driver VCSEL
-
Sensore di misurazione della distanza con microcontrollore integrato avanzato
-
4.4mmx2.4mmx1.0mm
-
Misurazione della distanza veloce e accurata
-
Misura distanze assolute fino a 2m
-
Le distanze riportate non sono influenzate dalla riflettività del target
-
Funziona in ambienti con elevata luce infrarossa
-
Compensazione avanzata della diafonia ottica incorporata per semplificare la progettazione della custodia in vetro.
2. Sicurezza dell'occhio umano
- Apparecchiatura laser di classe 1 secondo la più recente norma IEC 60825-1:2014 (3a edizione)
3.Facile da integrare
-
Componenti riadattabili
-
Nessuna ottica aggiuntiva richiesta
-
Alimentazione singola
-
Interfaccia I2C per il controllo del dispositivo e il trasferimento dei dati
-
Xspegnere e interrompere i GPIO
-
Tensione di funzionamento: 3.3V/5V
4.Parametri di VL53L0X:
-
Dimensioni del prodotto: 4,4 mm × 2,4 mm × 1,0 mm
-
Intervallo di misurazione della distanza: 30 ~ 2000mm
-
Precisione di misurazione della distanza: ±5% (modalità ad alta velocità), ±3% (modalità ad alta precisione)
-
Tempo di misurazione (min): 20 ms (modalità ad alta velocità), 200 ms (modalità ad alta precisione)
-
Angolo di intervallo: 25
-
Lunghezza d'onda del laser: 940nm
-
Temperatura di funzionamento: -20 ~ 70°C
Il sensore VL53L0X fornisce 3 modalità di misurazione
-
Modalità di misurazione singola: in questa modalità di misurazione, un singolo trigger esegue solo una misurazione della distanza e, al termine della misurazione, il sensore VL53L0X tornerà in standby e attenderà il trigger successivo.
-
Modalità di misurazione continua: in questa modalità la misurazione della distanza viene eseguita in modo continuo. Al termine di una misurazione, verrà avviata immediatamente quella successiva e l'utente dovrà interrompere la misurazione della distanza per tornare alla modalità standby, l'ultima misurazione sarà terminata prima dell'interruzione.
-
Modalità di misurazione temporizzata: questa modalità è in realtà una modalità di misurazione continua con intervalli di tempo specificati. Una volta completata una misurazione, la misurazione successiva viene avviata dopo un tempo di ritardo definito dall'utente. L'utente deve interrompere la misurazione per tornare in standby e l'ultima misurazione viene completata prima dell'interruzione.
Il sensore VL53L0X offre anche 4 diverse modalità di precisione:
Modalità di precisione
|
Intervallo di Tempo di Misurazione Budget (ms)
|
Distanza di misurazione (m)
|
Scenari di applicazione tipici
|
predefinito
|
30
|
1.2
|
standard
|
alta precisione
|
200
|
1.2 (accuratezza <± 3%)
|
Misurazione accurata
|
lungo distanza
|
33
|
2
|
Lunga distanza, solo in condizioni di oscurità senza infrarossi
|
alta velocità
|
20
|
1.2 (accuratezza <
± 5%)
|
Alta velocità, la precisione non è una priorità
|
Interfaccia | Descrizione |
VCC | Alimentazione Positiva (Ingresso Alimentazione 3.3V/5V) |
TERRA | Potenza di Terra |
SDA | Pin dati I2C |
SCL | Pin dell'orologio I2C |
CHIUSO | Pin, collegabile alla porta IO |
INT | Pin di uscita di interruzione, collegabile alla porta IO |
Modulo di Misurazione Distanza Laser | Modulo ESP32 |
VCC | +5V |
TERRA | TERRA |
SDA | P21 |
SCL | P22 |
Processo Operativo Specifico
-
Apri il pannello di gestione della libreria dell'IDE Arduino, inserisci VL53L0X nella casella di ricerca, quindi scegli di installare la libreria Adafruit_VL53L0X, come mostrato di seguito.
-
Il passo successivo è guardare un semplice programma modello per la modalità di misurazione singola. Questo è mostrato di seguito: ESP32 con VL53L0X realizza un veicolo di intelligenza artificiale IoT - programma modello semplice
Come puoi vedere nel codice sopra, questi passaggi sono necessari per completare una singola misurazione del modulo di misurazione della distanza laser:
(1) Crea un'istanza dell'oggetto Adafruit_VL53L0X
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
Chiama il metodo Begin() per completare l'inizializzazione del modulo di misurazione della distanza laser
(3) Creare un'istanza della struttura VL53L0X_RangingMeasurementData_t che salva i risultati della misurazione.
(4) Chiamare il metodorangTest() per completare una misurazione.
(5) L'attributo RangeStatus dell'oggetto risultato della misurazione indica lo stato del risultato della misurazione e il valore dell'attributo RangeMilliMeter è la distanza misurata (in millimetri).
Per la misurazione continua, la differenza con la misurazione singola di cui sopra è che dopo aver chiamato begin() per completare l'inizializzazione del modulo, è necessario chiamare il metodo startRangeContinuous() per commutare il modulo di misurazione della distanza laser in modalità di misurazione continua. La differenza nella lettura dei dati è quella di utilizzare il metodo isRangeComplete() per determinare se il modulo di misurazione della distanza laser ha completato una misurazione, quindi il metodo readRange() per leggere i risultati della misurazione. Il modello di programma è mostrato di seguito: ESP32 con VL53L0X realizza un veicolo di intelligenza artificiale IoT -misurazione continua