VL53L0X: sensore di distanza laser ad alta precisione

VL53L0X

In alcuni dei tuoi progetti avrai bisogno di misurare le distanze. Bene, dovresti sapere che il file VL53L0X è un dispositivo che permette di misurarli con elevata precisione. Inoltre, le sue dimensioni ridotte e il prezzo contenuto lo rendono ideale per i tuoi progetti fai da te, soprattutto per l'integrazione con Arduino.

Esistono molti dispositivi in ​​grado di misurare le distanze, alcuni sono distanziometri basati su ultrasuoni che emettono un suono e quando rimbalzano con l'oggetto permette di conoscere con sufficiente precisione la distanza che c'è. Ma se vuoi la massima precisione, per questo hai bisogno di un file misuratore di distanza ottico. Questo tipo di dispositivi di misurazione è basato sul laser, come nel caso del VL53L0X.

Cos'è il ToF?

Principio ToF (schema)

Fotocamera Time of Flight o ToF (Time-of-Flight) è una tecnica utilizzata per misurare le distanze. Si basa sull'ottica, misura il tempo che intercorre tra l'emissione di un raggio luminoso e la ricezione. Possono essere sensori CCD, CMOS e gli impulsi possono essere infrarossi, laser, ecc. Il sistema sarà sincronizzato per avviare la misurazione del tempo proprio quando viene attivato l'impulso e fermare il contatore quando riceve il rimbalzo dal sensore.

In quel modo la distanza può essere calcolata abbastanza accuratamente. Ci vuole solo un circuito logico aggiuntivo integrato nel chip per eseguire i calcoli dal momento in cui il raggio viene sparato fino a quando viene ricevuto e quindi determinare qual è la distanza. Il principio è piuttosto semplice.

ESP8266
Articolo correlato:
ESP8266: il modulo WIFI per Arduino

Questo tipo di dispositivo viene utilizzato in robotica per consentire al robot o al drone di evitare gli ostacoli, per sapere quanto sono lontani da un bersaglio, per rilevare il movimento o la prossimità, per i sensori dell'auto utilizzati per diverse applicazioni, per implementare un contatore elettronico, come un attuatore per Arduino per fare qualcosa quando rileva una certa vicinanza di un oggetto, ecc.

Cos'è il VL53L0X e il datasheet

VL53L0X

El VL53L0X utilizza questo principio per misurare le distanze mediante laser a infrarossi. ultima generazione. Insieme a un processore, come Arduino, può essere un potente strumento di misurazione. Nello specifico, il chip può acquisire distanze comprese tra 50 mm e 2000 mm, ovvero tra 5 centimetri e 2 metri.

Per misurare distanze più ravvicinate è probabilmente necessaria una variante di questo chip chiamata VL6180X che permette di misurare un range compreso tra 5 e 200 mm, cioè tra mezzo centimetro e 20 centimetri. Se vuoi trovare un dispositivo simile ma basato sugli ultrasuoni per qualsiasi motivo tecnico, dovresti guardare l'HC-SR04, un altro modulo abbastanza economico popolare tra i produttori.

El Chip VL53L0X è stato progettato per funziona anche quando la luce ambientale è piuttosto alta. Tenere presente che quando si lavora otticamente, maggiore è l '"inquinamento" luminoso dell'ambiente, più difficile sarà catturare adeguatamente il rimbalzo del segnale. Ma in questo caso non presenta troppi problemi. Inoltre, il sistema di compensazione che integra permette di misurare anche se lo si utilizza dietro un vetro di protezione.

Questo lo rende uno dei migliori sensori di distanza che troverai nel mercato. Con una precisione molto maggiore rispetto ai sensori basati su ultrasuoni o infrarossi (IR). Il motivo per essere così precisi è che il laser non sarà influenzato dagli echi o dalla riflettanza degli oggetti come negli altri casi.

Attualmente lo puoi trovare integrato in zoccoli con qualche extra per circa 16 € o in piatti più semplici da poco più di 1 € o 3 € in altri casi. Sai già che lo troverai in negozi come eBay, AliExpress, Amazon, ecc. I produttori di questi dispositivi sono vari, quindi se hai bisogno di conoscere i dettagli del modello che hai acquistato, è meglio controllare la scheda tecnica del produttore che hai scelto. Per esempio:

El VL53L0X Ha all'interno del chip l'emettitore dell'impulso laser e il sensore per catturare il raggio di ritorno. In questo caso, l'emettitore è un laser con lunghezza d'onda di 940 nm e di tipo VCSEL (Vertical Cavity Surface-Emitting Laser). Per quanto riguarda il sensore di cattura, si tratta di uno SPAD (Single Photon Avalanche Diodes). Integra anche un'elettronica interna chiamata FlightSenseTM che calcolerà la distanza.

El angolo di misurazione o FOV (campo visivo) in questo caso è 25º. Ciò si traduce in un'area di misurazione di 0,44 m di diametro a una distanza di 1 m. Sebbene l'intervallo di misurazione dipenderà dalle condizioni circostanti. Se è fatto al chiuso è un po 'più alto che se è fatto all'aperto. Dipenderà anche dalla riflettanza dell'oggetto a cui stai puntando:

Riflettanza target Condizioni Interno Esterno
Obiettivo bianco tipico 200cm 80cm
Imitare 120cm 60cm
Obiettivo grigio tipico 80cm 50cm
minimo 70cm 40cm

Inoltre, il VL53L0X ne ha diversi modalità operative Ciò può variare i risultati. Queste modalità sono riassunte nella tabella seguente:

Modo Sincronizzazione Portata Precisione
per impostazione predefinita, 30ms 1.2m Vedi la tabella sotto
Alta precisione 200ms 1.2m + / - 3%
Lungo raggio 33ms 2m Vedi la tabella sotto
ad alta velocità 20ms 1.2m + / - 5%

Secondo queste modalità, ne abbiamo diversi precisioni standard e a lungo raggio che hai in questa tabella:

Interno Esterno
Riflettanza target Distanza 33ms 66ms Distanza 33ms 66ms
Obiettivo bianco a 120 cm 4% 3% a 60 cm 7% 6%
Obiettivo grigio a 70 cm 7% 6% a 40 cm 12% 9%

Pinout e connessione

Schema del chip VL53L0X

Perché tutto questo funzioni correttamente è necessario un'interfaccia con il mondo esterno. E ciò si ottiene tramite alcuni pin o connessioni. Il pinout del VL53L0X è abbastanza semplice, ha solo 6 pin. Per la sua integrazione con Arduino, la comunicazione può avvenire tramite I2C.

Per nutrirlo, puoi collegare i pin come questa:

  • VCC a 5v da Arduino
  • GND to GND di Arduino
  • SCL a un pin analogico Arduino. Ad esempio A5
  • SDA a un altro pin analogico. Ad esempio A4
  • Al momento non è necessario utilizzare i pin GPI01 e XSHUT.

Integrazione con Arduino

VL53L0X connesso ad Arduino

Come per molti altri moduli, per il VL53L0X avete anche delle librerie (es. Quella per Adafruit) del codice disponibile che puoi utilizzare per lavorare con determinate funzioni durante la scrittura il codice sorgente per gestire il tuo progetto in Arduino IDE. Se è la tua prima volta con Arduino, ti consiglio il nostro manuale di programmazione.

Un esempio di Codice semplice per eseguire misurazioni e visualizzare il valore di misurazione tramite la porta seriale così puoi vederlo dallo schermo del tuo PC mentre hai la scheda Arduino collegata è:

#include "Adafruit_VL53L0X.h"
 
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
 
void setup() {
  Serial.begin(9600);
 
  // Iniciar sensor
  Serial.println("VL53L0X test");
  if (!lox.begin()) {
    Serial.println(F("Error al iniciar VL53L0X"));
    while(1);
  }
}
 
 
void loop() {
  VL53L0X_RangingMeasurementData_t measure;
    
  Serial.print("Leyendo sensor... ");
  lox.rangingTest(&measure, false); // si se pasa true como parametro, muestra por puerto serie datos de debug
 
  if (measure.RangeStatus != 4)
  {
    Serial.print("Distancia (mm): ");
   Serial.println(measure.RangeMilliMeter);
  } 
  else
  {
    Serial.println("  Fuera de rango ");
  }
    
  delay(100);
}

Nella libreria di Adafruit hai più esempi di utilizzo se ne hai bisogno ...


Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.