VL53L0X: laserpræcisionssensor med høj præcision

VL53L0X

I nogle af dine projekter har du brug for at måle afstande. Du skal vide, at VL53L0X er en enhed, der gør det muligt at måle dem med høj præcision. Derudover gør dens lille størrelse og lave pris det ideelt til dine DIY-projekter, især for at integrere med Arduino.

Der er mange enheder, der kan måle afstande, nogle af dem er afstandsmålere baseret på ultralyd, der udsender en lyd, og når det hopper med objektet, kan det med tilstrækkelig nøjagtighed kendes afstanden, der er. Men hvis du vil have den højeste præcision, skal du bruge en optisk afstandsmåler. Denne type måleenheder er baseret på laser, som det er tilfældet med VL53L0X.

Hvad er ToF?

ToF-princip (ordning)

Time of Flight eller ToF (Time-of-Flight) kamera det er en teknik, der bruges til at måle afstande. Det er baseret på optik, der måler den forløbne tid mellem udsendelsen af ​​en lysstråle og modtagelsen. De kan være CCD-, CMOS-sensorer, og impulserne kan være infrarøde, laser osv. Systemet synkroniseres for at starte tidsmålingen lige når pulsen udløses og stoppe tælleren, når de modtager afvisningen fra sensoren.

På den måde afstand kan beregnes ganske nøjagtigt. Det tager kun et ekstra logisk kredsløb, der er integreret i chippen, for at udføre beregningerne fra det øjeblik, strålen fyres, indtil den modtages, og således bestemme, hvad afstanden er. Princippet er ret ligetil.

ESP8266
relateret artikel:
ESP8266: WIFI-modulet til Arduino

Denne type enhed bruges i robotteknik at lade robotten eller dronen undgå forhindringer, at vide, hvor langt de er fra et mål, at opdage bevægelse eller nærhed, til bilsensorer, der bruges til forskellige applikationer, at implementere en elektronisk måler, såsom en aktuator til Arduino til at gøre noget når det registrerer en vis nærhed af et objekt osv.

Hvad er VL53L0X og datablad

VL53L0X

El VL53L0X bruger dette princip til at måle afstande med laserinfrarød. sidste generation. Sammen med en processor, som Arduino, kan det være et kraftfuldt værktøj til måling. Specifikt kan chippen fange afstande mellem 50 mm og 2000 mm, det vil sige mellem 5 centimeter og 2 meter.

For at måle tættere afstande har du sandsynligvis brug for en variant af denne chip kaldet VL6180X, der giver dig mulighed for at måle et interval på mellem 5 og 200 mm, det vil sige mellem en halv centimeter og 20 centimeter. Hvis du vil finde en lignende enhed, men baseret på ultralyd af en hvilken som helst teknisk årsag, skal du se på HC-SR04, et andet ret billigt modul, der er populært hos producenter.

El VL53L0X chip er designet til arbejde, selv når det omgivende lys er ret højt. Husk på, at jo større lysforureningen af ​​miljøet er, jo vanskeligere vil det være at fange signalets bounce tilstrækkeligt, når du arbejder optisk. Men i dette tilfælde udgør det ikke for meget problem. Derudover giver kompensationssystemet, som det integrerer, det til at måle, selvom du bruger det bag beskyttelsesglas.

Det gør det til et af de bedste afstandssensorer som du finder på markedet. Med en meget højere præcision end sensorer baseret på ultralyd eller infrarød (IR). Årsagen til at være så præcis er, at laseren ikke påvirkes af ekkoer eller refleksion fra genstande som i de andre tilfælde.

I øjeblikket kan du finde den integreret i muldyr med noget ekstra til ca. € 16 eller i enklere plader på lidt over € 1 eller € 3 i andre tilfælde. Du ved allerede, at du finder den i butikker som eBay, AliExpress, Amazon osv. Producenterne af disse enheder er forskellige, så hvis du har brug for at kende detaljerne i den model, du har købt, er det bedst at kontrollere producentens datablad som du har valgt. For eksempel:

El VL53L0X Det har inde i chippen emitteren af ​​laserpulsen og sensoren til at fange den returstråle. I dette tilfælde er emitteren en 940 nm bølgelængdelaser og VCSEL-type (Vertical Cavity Surface-Emitting Laser). Med hensyn til fangstsensoren er det en SPAD (Single Photon Avalanche Diodes). Den integrerer også en intern elektronik kaldet FlightSenseTM, der beregner afstanden.

El målevinkel eller FOV (synsfelt) det er 25º i dette tilfælde. Det svarer til et måleområde på 0,44 m i diameter i en afstand på 1 m. Selvom måleområdet vil afhænge af de omgivende forhold. Hvis det gøres indendørs, er det lidt højere, end hvis det gøres udendørs. Det afhænger også af refleksionen af ​​det objekt, du peger på:

Målreflektion Betingelser Interior Ydre
Hvidt mål typisk 200cm 80cm
Efterligne 120cm 60cm
Gråt mål typisk 80cm 50cm
minimo 70cm 40cm

Derudover har VL53L0X flere driftstilstande der kan variere resultaterne. Disse tilstande er opsummeret i følgende tabel:

Modo Timing Anvendelsesområde Præcision
som standard 30ms 1.2m Se tabellen nedenfor
Høj præcision 200ms 1.2m + / - 3%
Lang distance 33ms 2m Se tabellen nedenfor
Høj hastighed 20ms 1.2m + / - 5%

Ifølge disse tilstande har vi flere standard- og langtrækkende nøjagtigheder som du har i denne tabel:

Interior Ydre
Målreflektion Afstand 33ms 66ms Afstand 33ms 66ms
Hvidt mål en 120 cm 4% 3% en 60 cm 7% 6%
Gråt mål en 70 cm 7% 6% en 40 cm 12 % 9%

Pinout og forbindelse

VL53L0X chip diagram

For at alt dette skal fungere korrekt, har du brug for en grænseflade med omverdenen. Og det opnås gennem nogle ben eller forbindelser. Pinout på VL53L0X er ret simpelt, den har kun 6 ben. For sin integration med Arduino kan kommunikation ske gennem I2C.

For at fodre det kan du tilslut stifter Så:

  • VCC til 5v fra Arduino
  • GND til GND af Arduino
  • SCL til en Arduino analog pin. For eksempel A5
  • SDA til en anden analog pin. For eksempel A4
  • GPI01- og XSHUT-stifterne behøver ikke at blive brugt i øjeblikket.

Integration med Arduino

VL53L0X tilsluttet Arduino

Som for mange andre moduler har du også VL53L0X biblioteker (f.eks. Den til Adafruit) af tilgængelig kode, som du kan bruge til at arbejde med visse funktioner, når du skriver kildekoden til håndtering af dit projekt i Arduino IDE. Hvis det er din første gang med Arduino, anbefaler jeg vores programmeringsmanual.

Et eksempel på Enkel kode for dig at tage målinger og vise måleværdi gennem seriel port så du kan se det fra din pc-skærm, mens du har Arduino-kortet tilsluttet, er:

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

I Adafruits eget bibliotek har du flere eksempler på brug, hvis du har brug for det ...


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.