VL53L0X: senzor de distanță laser de înaltă precizie

VL53L0X

În unele dintre proiectele dvs. va trebui să măsurați distanțele. Ei bine, ar trebui să știți că VL53L0X este un dispozitiv care permite măsurarea acestora cu precizie ridicată. În plus, dimensiunile reduse și prețul redus îl fac ideal pentru proiectele dvs. de bricolaj, în special pentru a se integra cu Arduino.

Există multe dispozitive care pot măsura distanțele, unele dintre ele sunt distanțometre bazate pe ultrasunete care emit un sunet și atunci când sărind cu obiectul permite să cunoască cu suficientă precizie distanța care există. Dar dacă doriți cea mai mare precizie, pentru aceasta aveți nevoie de un distometru optic. Acest tip de dispozitive de măsurare se bazează pe laser, la fel ca în cazul VL53L0X.

Ce este ToF?

Principiul ToF (schema)

Camera Time of Flight sau ToF (Time-of-Flight) este o tehnică utilizată pentru măsurarea distanțelor. Se bazează pe optică, măsurând timpul scurs între emisia unui fascicul de lumină și recepția acestuia. Pot fi senzori CCD, CMOS, iar impulsurile pot fi în infraroșu, cu laser etc. Sistemul va fi sincronizat pentru a porni măsurarea timpului chiar atunci când pulsul este declanșat și pentru a opri contorul atunci când primesc săritura de la senzor.

In acest mod distanța poate fi calculată destul de precis. Tot ce aveți nevoie este un circuit logic suplimentar încorporat în cip pentru a efectua calculele de la declanșarea fasciculului până la momentul în care este primit și, astfel, pentru a determina distanța. Principiul este destul de simplu.

ESP8266
Articol asociat:
ESP8266: modulul WIFI pentru Arduino

Acest tip de dispozitiv este utilizat în robotica să permită robotului sau dronei să evite obstacolele, să știe cât de departe sunt de o țintă, să detecteze mișcarea sau proximitatea, pentru senzorii auto folosiți pentru diferite aplicații, să implementeze un contor electronic, cum ar fi un actuator, astfel încât Arduino să facă ceva când detectează o anumită apropiere a unui obiect etc.

Ce este VL53L0X și foaia de date

VL53L0X

El VL53L0X folosește acest principiu pentru a măsura distanțele prin infraroșu cu laser. ultima generație. Împreună cu un procesor, cum ar fi Arduino, poate fi un instrument puternic pentru măsurare. Mai exact, cipul poate capta distanțe între 50mm și 2000mm, adică între 5 centimetri și 2 metri.

Pentru a măsura distanțe mai apropiate, probabil că aveți nevoie de o variantă a acestui cip numită VL6180X, care vă permite să măsurați un interval cuprins între 5 și 200 mm, adică între o jumătate de centimetru și 20 de centimetri. Dacă doriți să găsiți un dispozitiv similar, dar bazat pe ultrasunete din orice motiv tehnic, atunci ar trebui să vă uitați la HC-SR04, un alt modul destul de ieftin, popular pentru producători.

El Cip VL53L0X a fost conceput să funcționează chiar și atunci când lumina ambientală este destul de ridicată. Rețineți că, atunci când lucrați optic, cu cât „poluarea” luminoasă a mediului este mai mare, cu atât va fi mai dificil să captați în mod adecvat săritura semnalului. Dar în acest caz nu prezintă prea multe probleme. În plus, sistemul de compensare pe care îl integrează îi permite să măsoare chiar dacă îl folosești în spatele sticlei de protecție.

Asta o face una dintre cei mai buni senzori de distanță pe care le veți găsi pe piață. Cu o precizie mult mai mare decât senzorii bazati pe ultrasunete sau infraroșu (IR). Motivul pentru a fi atât de precis este că laserul nu va fi afectat de ecouri sau reflectanță din obiecte ca în celelalte cazuri.

În prezent, îl puteți găsi integrat în catâri cu ceva suplimentar pentru aproximativ 16 EUR sau în plăci mai simple de puțin peste 1 EUR sau 3 EUR în alte cazuri. Știți deja că îl veți găsi în magazine precum eBay, AliExpress, Amazon etc. Producătorii acestor dispozitive sunt diferiți, așa că, dacă trebuie să cunoașteți detaliile modelului pe care l-ați cumpărat, cel mai bine este să verificați fisa tehnica a producatorului pe care l-ai ales. De exemplu:

El VL53L0X Are în interiorul cipului emițătorul impulsului laser și senzorul pentru a captura fasciculul de întoarcere. În acest caz, emițătorul este un laser cu lungime de undă de 940nm de tipul VCSEL (Laser cu emisie de suprafață cu cavitate verticală). În ceea ce privește senzorul de captură, acesta este un SPAD (Single Photon Avalanche Diodes). De asemenea, integrează o electronică internă numită FlightSense ™, care va calcula distanța.

El unghiul de măsurare sau FOV (câmpul vizual) este 25º în acest caz. Aceasta se traduce printr-o zonă de măsurare de 0,44 m în diametru la o distanță de 1 m. Deși domeniul de măsurare va depinde de condițiile înconjurătoare. Dacă se face în interior este puțin mai mare decât dacă se face în aer liber. De asemenea, va depinde de reflectanța obiectului pe care îl îndreptați:

Reflectanța țintă Termeni Interior Exterior
Țintă albă tipic 200cm 80cm
Imita 120cm 60cm
Țintă gri tipic 80cm 50cm
Minimo 70cm 40cm

În plus, VL53L0X are mai multe moduri de operare care poate varia rezultatele. Aceste moduri sunt rezumate în următorul tabel:

Modo Sincronizare domeniu Precizie
în mod implicit 30ms 1.2m Vezi tabelul de mai jos
Precizie ridicată 200ms 1.2m + / - 3%
Raza lunga 33ms 2m Vezi tabelul de mai jos
Viteza mare 20ms 1.2m + / - 5%

Conform acestor moduri, avem mai multe precizii standard și de lungă durată pe care le aveți în acest tabel:

Interior Exterior
Reflectanța țintă Distanța 33ms 66ms Distanța 33ms 66ms
Țintă albă un 120cm 4% 3% un 60cm 7% 6%
Țintă gri un 70cm 7% 6% un 40cm 12% 9%

Pinout și conexiune

Diagrama cu cip VL53L0X

Pentru ca toate acestea să funcționeze corect aveți nevoie o interfață cu lumea exterioară. Și asta se realizează prin intermediul unor pini sau conexiuni. Pinout-ul VL53L0X este destul de simplu, are doar 6 pini. Pentru integrarea sa cu Arduino, comunicarea se poate face prin I2C.

Pentru a-l hrăni, puteți conectați pinii Asa de:

  • VCC la 5v de la Arduino
  • GND la GND din Arduino
  • SCL la un pin analogic Arduino. De exemplu A5
  • SDA la un alt pin analogic. De exemplu A4
  • Pinii GPI01 și XSHUT nu trebuie utilizați în acest moment.

Integrare cu Arduino

VL53L0X conectat la Arduino

La fel ca pentru multe alte module, pentru VL53L0X aveți și biblioteci (de ex Adafruit) a codului disponibil pe care îl puteți utiliza pentru a lucra cu anumite funcții atunci când scrieți codul sursă pentru a gestiona proiectul dvs. în Arduino IDE. Dacă este prima dată cu Arduino, vă recomand manualul nostru de programare.

Un exemplu de Cod simplu pentru a lua măsurători și a afișa valoarea măsurătorilor prin portul serial astfel încât să o puteți vedea de pe ecranul computerului în timp ce aveți placa Arduino conectată este:

#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);
}

În propria bibliotecă Adafruit aveți mai multe exemple de utilizare dacă aveți nevoie de ea ...


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.