VL53L0X: vysoce přesný laserový snímač vzdálenosti

VL53L0X

U některých vašich projektů budete muset měřit vzdálenosti. Měli byste vědět, že VL53L0X je zařízení, které umožňuje jejich měření s vysokou přesností. Jeho malá velikost a nízká cena ho navíc činí ideálním pro vaše kutilské projekty, zejména pro integraci s Arduino.

Existuje mnoho zařízení, která mohou měřit vzdálenosti, některá z nich jsou dálkoměry založené na ultrazvuku, které vydávají zvuk a při odrazu od objektu umožňuje dostatečně přesně zjistit vzdálenost, která existuje. Ale pokud chcete nejvyšší přesnost, k tomu potřebujete a optický měřič vzdálenosti. Tento typ měřicích zařízení je založen na laseru, jako je tomu v případě VL53L0X.

Co je toF?

Princip ToF (schéma)

Kamera Time of Flight nebo ToF (Time-of-Flight) je to technika používaná k měření vzdáleností. Je založen na optice, která měří čas, který uplynul mezi vyzařováním světelného paprsku a jeho příjmem. Mohou to být snímače CCD, CMOS a impulsy mohou být infračervené, laserové atd. Systém bude synchronizován, aby zahájil měření času, právě když je spuštěn puls, a zastavil čítač, když obdrží odraz od senzoru.

Tím způsobem vzdálenost lze vypočítat docela přesně. Trvá pouze další logické obvody integrované do čipu, aby se provedly výpočty od okamžiku, kdy je paprsek vystřelen, dokud není přijat, a tedy určit vzdálenost. Princip je docela přímočarý.

Související článek:
ESP8266: modul WIFI pro Arduino

Tento typ zařízení se používá v robotika umožnit robotovi nebo dronu vyhýbat se překážkám, vědět, jak daleko jsou od cíle, detekovat pohyb nebo blízkost, senzory automobilů používané pro různé aplikace, implementovat elektronický měřič, jako je aktuátor, aby Arduino něco udělalo, když detekuje určitou blízkost objektu atd.

Co je VL53L0X a datový list

VL53L0X

El VL53L0X používá tento princip k měření vzdáleností pomocí laserového infračerveného záření. poslední generace. Spolu s procesorem, jako je Arduino, může být výkonným nástrojem pro měření. Konkrétně čip dokáže zachytit vzdálenosti mezi 50 mm a 2000 5 mm, tj. Mezi 2 centimetry a XNUMX metry.

Pro měření bližších vzdáleností pravděpodobně potřebujete variantu tohoto čipu s názvem VL6180X, která vám umožní měřit rozsah mezi 5 a 200 mm, tj. Mezi půl centimetru a 20 centimetry. Pokud chcete z technických důvodů najít podobné, ale na ultrazvuku založené zařízení, měli byste se podívat na HC-SR04, další poměrně levný modul oblíbený u výrobců.

El Čip VL53L0X byl navržen tak, aby pracovat, i když je okolní světlo poměrně vysoké. Pamatujte, že při optické práci platí, že čím větší je světelné „znečištění“ prostředí, tím obtížnější bude adekvátně zachytit odraz signálu. Ale v tomto případě to nepředstavuje příliš velký problém. Integrovaný kompenzační systém mu navíc umožňuje měřit, i když jej používáte za ochranným sklem.

Díky tomu je jeden nejlepších snímačů vzdálenosti které najdete na trhu. S mnohem vyšší přesností než senzory založené na ultrazvuku nebo infračerveném záření (IR). Důvodem, proč být tak přesný, je to, že laser nebude ovlivněn ozvěnami nebo odrazem od objektů, jako v ostatních případech.

V současné době ji najdete integrovanou v mulech s některými doplňky za přibližně 16 EUR nebo v jednodušších talířích za něco málo přes 1 EUR nebo 3 EUR v jiných případech. Už víte, že ji najdete v obchodech jako eBay, AliExpress, Amazon atd. Výrobci těchto zařízení jsou různí, takže pokud potřebujete znát podrobnosti o modelu, který jste si koupili, je nejlepší to zkontrolovat technický list výrobce které jste si vybrali. Například:

El VL53L0X Má uvnitř čipu vysílač laserového pulzu a snímač pro zachycení vracejícího se paprsku. V tomto případě je emitorem 940nm vlnový laser a typ VCSEL (Vertical Cavity Surface-Emitting Laser). Pokud jde o snímací senzor, jedná se o SPAD (Single Photon Avalanche Diodes). Integruje také interní elektroniku nazvanou FlightSenseTM, která vypočítá vzdálenost.

El úhel měření nebo FOV (zorné pole) v tomto případě je to 25 °. To znamená oblast měření o průměru 0,44 m ve vzdálenosti 1 m. Rozsah měření bude záviset na okolních podmínkách. Pokud se to dělá uvnitř, je to o něco vyšší, než když se to dělá venku. Závisí to také na odrazivosti objektu, na který míříte:

Cílová odrazivost Podmínky Interiér Vnější
Bílý terč Typický 200cm 80cm
Napodobit 120cm 60cm
Šedý terč Typický 80cm 50cm
Minimo 70cm 40cm

Kromě toho má VL53L0X několik provozní režimy Výsledky se mohou lišit. Tyto režimy jsou shrnuty v následující tabulce:

Modo Načasování Rozsah Přesnost
Výchozí 30ms 1.2m Viz tabulka níže
Vysoká přesnost 200ms 1.2m + / - 3%
Dlouhý dosah 33ms 2m Viz tabulka níže
Vysoká rychlost 20ms 1.2m + / - 5%

Podle těchto režimů máme několik standardní a dálkové přesnosti které máte v této tabulce:

Interiér Vnější
Cílová odrazivost Vzdálenost 33ms 66ms Vzdálenost 33ms 66ms
Bílý terč 120 cm 4% 3% 60 cm 7% 6%
Šedý terč 70 cm 7% 6% 40 cm 12% 9%

Pinout a připojení

Čipové schéma VL53L0X

 

Aby vše fungovalo správně, potřebujete rozhraní s vnějším světem. A toho je dosaženo pomocí několika pinů nebo připojení. Pinout VL53L0X je poměrně jednoduchý, má pouze 6 pinů. Pro jeho integraci s Arduino lze komunikaci provádět prostřednictvím I2C.

Krmit to můžete připojte kolíky Tak:

  • VCC na 5V od Arduina
  • GND na GND Arduina
  • SCL na analogový pin Arduino. Například A5
  • SDA na jiný analogový pin. Například A4
  • V tuto chvíli není nutné použít piny GPI01 a XSHUT.

Integrace s Arduino

VL53L0X připojený k Arduinu

Stejně jako u mnoha dalších modulů máte pro VL53L0X také knihovny (např. Pro Adafruit) dostupného kódu, který můžete použít k práci s určitými funkcemi při psaní zdrojový kód pro zpracování vašeho projektu v Arduino IDE. Pokud jste s Arduinem poprvé, doporučuji náš programovací manuál.

Příkladem Jednoduchý kód pro provádění měření a zobrazení měřené hodnoty přes sériový port takže to můžete vidět z obrazovky vašeho PC, když máte připojenou desku 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);
}

Ve vlastní knihovně Adafruit máte další příklady použití, pokud to potřebujete ...


Obsah článku se řídí našimi zásadami redakční etika. Chcete-li nahlásit chybu, klikněte zde.

Buďte první komentář

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.