VL53L0X: laserafstandsensor met hoë presisie

VL53L0X

In sommige van u projekte het u die afstand nodig om te meet. Wel, u moet weet dat die VL53L0X is 'n toestel waarmee u dit met hoë presisie kan meet. Daarbenewens maak die klein grootte en die lae prys dit ideaal vir u DIY-projekte, veral om met Arduino te integreer.

Daar is baie toestelle wat afstande kan meet, sommige is afstandmeters gebaseer op ultraklank wat 'n geluid uitstraal en wanneer dit met die voorwerp bons, kan dit die afstand wat daar is, met genoeg presisie ken. Maar as u die hoogste presisie wil hê, benodig u a optiese afstandmeter. Hierdie tipe meettoestelle is gebaseer op laser, soos die geval is met die VL53L0X.

Wat is die ToF?

ToF-beginsel (skema)

Time of Flight of ToF (Time-of-Flight) kamera dit is 'n tegniek wat gebruik word om afstande te meet. Dit is gebaseer op optika en meet die tyd wat verloop het tussen die emissie van 'n ligstraal en die ontvangs daarvan. Dit kan CCD-, CMOS-sensors wees, en die pulse kan infrarooi, laser, ens. Die stelsel sal gesinchroniseer word om die tydmeting te begin net wanneer die pols geaktiveer word en die teller te stop wanneer hulle die weiering deur die sensor ontvang.

Op daardie manier afstand kan redelik akkuraat bereken word. Daar is slegs 'n bykomende logiese stroombaan nodig wat in die skyfie geïntegreer is om die berekeninge uit te voer vanaf die oomblik dat die balk afgevuur word totdat dit ontvang is en sodoende te bepaal wat die afstand is. Die beginsel is redelik eenvoudig.

ESP8266
Verwante artikel:
ESP8266: die WIFI-module vir Arduino

Hierdie tipe toestel word gebruik in robotika om die robot of hommeltuig toe te laat om hindernisse te vermy, om te weet hoe ver dit van 'n teiken af ​​is, om beweging of nabyheid op te spoor, vir motorsensors wat vir verskillende toepassings gebruik word, om 'n elektroniese meter soos 'n aandrywer te implementeer, sodat Arduino iets doen wanneer dit bespeur sekere nabyheid van 'n voorwerp, ens.

Wat is die VL53L0X en die datablad

VL53L0X

El VL53L0X gebruik hierdie beginsel om afstande met laser-infrarooi te meet. laaste geslag. Saam met 'n verwerker, soos Arduino, kan dit 'n kragtige instrument wees om te meet. Spesifiek, die chip kan afstande vang tussen 50mm en 2000mm, dit wil sê tussen 5 sentimeter en 2 meter.

Om nader afstande te meet, benodig u waarskynlik 'n variant van hierdie chip genaamd VL6180X waarmee u 'n reikafstand van tussen 5 en 200 mm kan meet, dit wil sê tussen 'n halwe sentimeter en 20 sentimeter. As u om enige tegniese rede 'n soortgelyke, maar ultraklank-gebaseerde toestel wil vind, moet u na die HC-SR04 kyk, 'n ander redelik goedkoop module wat gewild is onder vervaardigers.

El VL53L0X-skyfie is ontwerp om werk selfs as die omgevingslig redelik hoog is. Hou in gedagte dat wanneer opties gewerk word, hoe groter die ligte "besoedeling" van die omgewing is, hoe moeiliker sal die weiering van die sein voldoende wees. Maar in hierdie geval bied dit nie te veel probleme nie. Daarbenewens kan die vergoedingstelsel waarmee dit geïntegreer word, meet, selfs as u dit agter die beskermende glas gebruik.

Dit maak dit een van die beste afstandsensors wat u in die mark sal vind. Met 'n baie hoër presisie as sensors gebaseer op ultraklank of infrarooi (IR). Die rede waarom ons so presies is, is dat die laser nie beïnvloed sal word deur eggo's of weerkaatsing van voorwerpe soos in die ander gevalle nie.

Tans kan u dit vir ongeveer € 16 in muilezels geïntegreer kry, of in ander gevalle in eenvoudiger borde van net meer as € 1 of € 3. U weet reeds dat u dit in winkels soos eBay, AliExpress, Amazon, ens. Die vervaardigers van hierdie toestelle is uiteenlopend, dus as u die besonderhede van die gekoopte model moet ken, is dit die beste om dit na te gaan die vervaardiger se datablad wat u gekies het. Byvoorbeeld:

El VL53L0X Dit bevat die emitter van die laserpuls en die sensor om die terugkeerstraal vas te vang. In hierdie geval is die emitter 'n 940nm golflengte laser en VCSEL tipe (Vertical Cavity Surface-Emitting Laser). Wat die vangsensor betref, dit is 'n SPAD (Single Photon Avalanche Diodes). Dit integreer ook 'n interne elektronika genaamd FlightSenseTM wat die afstand sal bereken.

El meethoek of FOV (gesigsveld) dit is 25º in hierdie geval. Dit kom neer op 'n meetoppervlak van 0,44 m in deursnee op 'n afstand van 1 m. Alhoewel die meetbereik afhang van die omliggende toestande. As dit binnenshuis gedoen word, is dit 'n bietjie hoër as wanneer dit buitenshuis gedoen word. Dit hang ook af van die weerkaatsing van die voorwerp waarop u wys:

Teikenweerkaatsing Voorwaardes Binne Buite
Wit teiken tipiese 200cm 80cm
Naboots 120cm 60cm
Grys ​​teiken tipiese 80cm 50cm
minimum 70cm 40cm

Daarbenewens het die VL53L0X verskeie werkswyses dit kan die resultate verskil. Hierdie modusse word in die volgende tabel saamgevat:

modo Tydsberekening omvang presisie
deur verstek 30ms 1.2m Sien die tabel hieronder
Hoë presisie 200ms 1.2m + / - 3%
Langafstand 33ms 2m Sien die tabel hieronder
Hoë spoed 20ms 1.2m + / - 5%

Volgens hierdie modusse het ons 'n paar standaard- en langafstand-akkuraathede wat u in hierdie tabel het:

Binne Buite
Teikenweerkaatsing Afstand 33ms 66ms Afstand 33ms 66ms
Wit teiken 'n 120 cm 4% 3% 'n 60 cm 7% 6%
Grys ​​teiken 'n 70 cm 7% 6% 'n 40 cm 12% 9%

Pinout en verbinding

VL53L0X skyfdiagram

 

Om alles reg te laat werk, is dit nodig 'n koppelvlak met die buitewêreld. En dit word bereik deur enkele penne of verbindings. Die uitskakeling van die VL53L0X is redelik eenvoudig, hy het net 6 penne. Vir die integrasie met Arduino kan kommunikasie deur I2C gedoen word.

Om dit te voed, kan u verbind penne Dus:

  • VCC na 5v vanaf Arduino
  • GND tot GND van Arduino
  • SCL na 'n analoog Arduino-pen. Byvoorbeeld A5
  • SDA na 'n ander analoogpen. Byvoorbeeld A4
  • Die GPI01- en XSHUT-penne hoef nie tans gebruik te word nie.

Integrasie met Arduino

VL53L0X gekoppel aan Arduino

Soos vir baie ander modules, het u ook biblioteke vir die VL53L0X (bv. Die een vir Adafruit) beskikbare kode wat u kan gebruik om met sekere funksies te werk as u skryf die bronkode om u projek in Arduino IDE te hanteer. As dit u eerste keer met Arduino is, beveel ek aan ons programmeringshandleiding.

'N Voorbeeld van Eenvoudige kode waarmee u metings kan meet en meetwaarde deur die seriële poort kan vertoon sodat u dit vanaf u rekenaarskerm kan sien terwyl u die Arduino-bord gekoppel het:

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

In Adafruit se eie biblioteek het u meer voorbeelde van gebruik as u dit nodig het ...


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

Wees die eerste om te kommentaar lewer

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.