VL53L0X: vysoko presný laserový snímač vzdialenosti

VL53L0X

V niektorých vašich projektoch budete musieť merať vzdialenosti. Mali by ste vedieť, že VL53L0X je zariadenie, ktoré umožňuje ich meranie s vysokou presnosťou. Vďaka svojej malej veľkosti a nízkej cene je navyše ideálny pre vaše DIY projekty, najmä pre integráciu s Arduino.

Existuje veľa zariadení, ktoré dokážu merať vzdialenosti, niektoré z nich sú merače vzdialenosti založené na ultrazvuku, ktoré vydávajú zvuk a pri odrážaní sa od objektu umožňuje dostatočne presne poznať vzdialenosť, ktorá existuje. Ale ak chcete najvyššiu presnosť, potrebujete: a optický merač vzdialenosti. Tento typ meracích prístrojov je založený na laseri, ako je to v prípade VL53L0X.

Čo je toF?

Princíp ToF (schéma)

Kamera Time of Flight alebo ToF (Time-of-Flight) je to technika používaná na meranie vzdialeností. Je založený na optike, ktorá meria čas, ktorý uplynul medzi emisiou svetelného lúča a jeho príjmom. Môžu to byť snímače CCD, CMOS a impulzy môžu byť infračervené, laserové atď. Systém bude synchronizovaný tak, aby spustil meranie času, práve keď sa spustí impulz, a zastavil počítadlo, keď prijme odraz od snímača.

Takýmto spôsobom vzdialenosť sa dá vypočítať celkom presne. Všetko, čo potrebujete, je ďalšie logické obvody zabudované do čipu na vykonávanie výpočtov od okamihu vypálenia lúča do okamihu jeho prijatia, a teda na určenie vzdialenosti. Princíp je dosť priamy.

ESP8266
Súvisiaci článok:
ESP8266: modul WIFI pre Arduino

Tento typ zariadenia sa používa v robotika umožniť robotovi alebo dronu vyhýbať sa prekážkam, vedieť, ako ďaleko sú od cieľa, zisťovať pohyb alebo blízkosť, automobilové snímače používané pre rôzne aplikácie, implementovať elektronický merač, napríklad akčný člen, aby Arduino niečo urobilo, keď detekuje určitú blízkosť objektu atď.

Čo je VL53L0X a údajový list

VL53L0X

El VL53L0X využíva tento princíp na meranie vzdialeností pomocou laserového infračerveného žiarenia. minulá generácia. Spolu s procesorom, ako je Arduino, môže byť výkonným nástrojom na meranie. Konkrétne čip dokáže zachytiť vzdialenosti medzi 50 mm a 2000 5 mm, to znamená medzi 2 cm a XNUMX metrami.

Na meranie bližších vzdialeností pravdepodobne potrebujete variant tohto čipu s názvom VL6180X, ktorý umožňuje merať rozsah od 5 do 200 mm, to znamená od pol centimetra do 20 centimetrov. Ak chcete z technických dôvodov nájsť podobné, ale na ultrazvuku založené zariadenie, mali by ste sa pozrieť na HC-SR04, ďalší pomerne lacný modul obľúbený u výrobcov.

El Čip VL53L0X bol navrhnutý tak, aby pracovať, aj keď je okolité svetlo dosť vysoké. Majte na pamäti, že pri optickej práci platí, že čím väčšie je svetelné „znečistenie“ prostredia, tým ťažšie bude adekvátne zachytiť odraz signálu. Ale v tomto prípade to nepredstavuje príliš veľký problém. Integrovaný kompenzačný systém mu navyše umožňuje merať, aj keď ho používate za ochranným sklom.

Vďaka tomu je jeden najlepších senzorov vzdialenosti ktoré nájdete na trhu. S oveľa vyššou presnosťou ako snímače založené na ultrazvuku alebo infračervenom žiarení (IR). Dôvod, prečo byť taký presný, je, že laser nebude ovplyvňovaný ozvenami alebo odrazmi od objektov, ako v ostatných prípadoch.

V súčasnosti ho nájdete integrovaný v muliciach s doplnkami za približne 16 EUR alebo v jednoduchších platniach za niečo viac ako 1 EUR alebo 3 EUR v ostatných prípadoch. Už viete, že ho nájdete v obchodoch ako eBay, AliExpress, Amazon atď. Výrobcovia týchto zariadení sú rôzni, takže ak potrebujete vedieť podrobnosti o zakúpenom modeli, je najlepšie skontrolovať ich údajový list výrobcu že ste si vybrali. Napríklad:

El VL53L0X Má vo vnútri čipu vysielač laserového impulzu a snímač na zachytenie vracajúceho sa lúča. V tomto prípade je vysielačom 940nm vlnový laser a typ VCSEL (vertikálny povrchový emitujúci laser). Čo sa týka snímacieho snímača, jedná sa o SPAD (Single Photon Avalanche Diodes). Integruje tiež internú elektroniku s názvom FlightSenseTM, ktorá počíta vzdialenosť.

El uhol merania alebo FOV (zorné pole) v tomto prípade je to 25 °. To znamená oblasť merania s priemerom 0,44 m vo vzdialenosti 1 m. Aj keď rozsah merania bude závisieť od okolitých podmienok. Ak sa to robí v interiéri, je to o niečo vyššie, ako keď sa to robí vonku. Bude to tiež závisieť od odrazivosti objektu, na ktorý ukazujete:

Cieľová odrazivosť Podmienky Interiér exteriér
Biely terč typický 200cm 80cm
Napodobniť 120cm 60cm
Sivý terč typický 80cm 50cm
minimum 70cm 40cm

Okrem toho má VL53L0X niekoľko prevádzkové režimy Výsledky sa môžu líšiť. Tieto režimy sú zhrnuté v nasledujúcej tabuľke:

modo Načasovanie rozsah presnosť
V predvolenom nastavení 30ms 1.2 Pozri tabuľku nižšie
Vysoká presnosť 200ms 1.2 + / - 3%
Dlhý dosah 33ms 2m Pozri tabuľku nižšie
Vysoká rýchlosť 20ms 1.2 + / - 5%

Podľa týchto režimov ich máme niekoľko štandardná a diaľková presnosť ktoré máte v tejto tabuľke:

Interiér exteriér
Cieľová odrazivosť Vzdialenosť 33ms 66ms Vzdialenosť 33ms 66ms
Biely terč na 120cm 4% 3% na 60cm 7% 6%
Sivý terč na 70cm 7% 6% na 40cm 12% 9%

Pinout a pripojenie

Čipová schéma VL53L0X

Aby všetko fungovalo správne, potrebujete rozhranie s vonkajším svetom. A to sa dosahuje pomocou niektorých kolíkov alebo spojení. Pinout VL53L0X je celkom jednoduchý, má iba 6 pinov. Pre jeho integráciu s Arduino možno komunikáciu realizovať cez I2C.

Kŕmiť to môžete spojiť piny Takže:

  • VCC na 5v od Arduina
  • GND na GND Arduina
  • SCL na analógový pin Arduino. Napríklad A5
  • SDA na iný analógový pin. Napríklad A4
  • Piny GPI01 a XSHUT sa momentálne nemusia používať.

Integrácia s Arduino

VL53L0X pripojený k Arduinu

Ako pre mnoho ďalších modulov, aj pre VL53L0X máte knižnice (napr. Tú pre Adafruit) dostupného kódu, ktorý môžete použiť na prácu s určitými funkciami pri písaní zdrojový kód na spracovanie vášho projektu v Arduino IDE. Ak ste s Arduinom prvýkrát, odporúčam náš programovací manuál.

Príklad Jednoduchý kód na vykonávanie meraní a zobrazenie nameranej hodnoty cez sériový port takže to môžete vidieť z obrazovky počítača, zatiaľ čo máte pripojenú dosku Arduino:

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

Vo vlastnej knižnici Adafruit máte ďalšie príklady použitia, ak to potrebujete ...


Buďte prvý komentár

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.