VL53L0X: високоточен лазерен сензор за разстояние

VL53L0X

В някои от вашите проекти ще ви е необходимо да измервате разстоянията. Е, трябва да знаете, че VL53L0X е устройство, което позволява да ги измервате с висока точност. В допълнение, малкият му размер и ниската цена го правят идеален за вашите домашни проекти, особено за интегриране с Arduino.

Има много устройства, които могат да измерват разстояния, някои от тях са измерватели на разстояние, базирани на ултразвук, които издават звук и при подскачане с обекта позволява да се знае с достатъчно точност разстоянието, което има. Но ако искате най-висока точност, за това ви е необходим оптичен измервател на разстояние. Този тип измервателни уреди се основава на лазер, какъвто е случаят с VL53L0X.

Какво представлява ToF?

ToF принцип (схема)

Час на полет или ToF (Time-of-Flight) камера това е техника, използвана за измерване на разстояния. Тя се основава на оптика, измерваща времето, изминало между излъчването на светлинен лъч и приемането му. Те могат да бъдат CCD, CMOS сензори, а импулсите могат да бъдат инфрачервени, лазерни и т.н. Системата ще бъде синхронизирана, за да започне измерването на времето точно когато импулсът се задейства и да спре брояча, когато получат отскок от сензора.

В такъв случай разстоянието може да се изчисли съвсем точно. Необходима е само допълнителна логическа схема, интегрирана в чипа, за да се извършат изчисленията от момента на изстрелване на лъча до получаването му и по този начин да се определи какво е разстоянието. Принципът е доста ясен.

ESP8266
Свързана статия:
ESP8266: WIFI модулът за Arduino

Този тип устройство се използва в роботика да позволи на робота или безпилотния апарат да избягва препятствия, да знае колко далеч са от целта, да открива движение или близост, за автомобилни сензори, използвани за различни приложения, да внедри електронен измервателен уред, като задвижващ механизъм, така че Arduino да прави нещо, когато той открива определена близост на обект и т.н.

Какво представлява VL53L0X и лист с данни

VL53L0X

El VL53L0X използва този принцип за измерване на разстояния чрез лазерна инфрачервена светлина. последно поколение. Заедно с процесор, като Arduino, той може да бъде мощен инструмент за измерване. По-конкретно, чипът може да улавя разстояния между 50 мм и 2000 мм, тоест между 5 сантиметра и 2 метра.

За измерване на по-близки разстояния вероятно се нуждаете от вариант на този чип, наречен VL6180X, който ви позволява да измервате диапазон между 5 и 200 мм, т.е. между половин сантиметър и 20 сантиметра. Ако искате да намерите подобно, но базирано на ултразвук устройство по някаква техническа причина, тогава трябва да разгледате HC-SR04, друг доста евтин модул, популярен сред производителите.

El VL53L0X чип е проектиран да работят дори когато околната светлина е доста висока. Имайте предвид, че когато работите оптично, колкото по-голямо е светлинното „замърсяване“ на околната среда, толкова по-трудно ще бъде да уловите адекватно скачането на сигнала. Но в този случай това не представлява твърде голям проблем. В допълнение, системата за компенсация, която интегрира, му позволява да измерва, дори ако я използвате зад защитно стъкло.

Това го прави едно от най-добрите датчици за разстояние които ще намерите на пазара. С много по-висока точност от сензорите, базирани на ултразвук или инфрачервена светлина (IR). Причината да бъдете толкова точни е, че лазерът няма да бъде повлиян от ехо или отражение от обекти, както в останалите случаи.

В момента можете да го намерите интегриран в мулета с малко допълнително за около 16 евро или в по-прости чинии с малко над 1 или 3 евро в други случаи. Вече знаете, че ще го намерите в магазини като eBay, AliExpress, Amazon и т.н. Производителите на тези устройства са различни, така че ако трябва да знаете подробностите за закупения от вас модел, най-добре е да проверите листа с данни на производителя че сте избрали. Например:

El VL53L0X Вътре в чипа има излъчвател на лазерния импулс и сензор за улавяне на връщащия лъч. В този случай излъчвателят е лазер с дължина на вълната 940 nm и тип VCSEL (лазер с повърхностно излъчваща вертикална кухина). Що се отнася до сензора за улавяне, той е SPAD (Single Photon Avalanche Diodes). Той също така интегрира вътрешна електроника, наречена FlightSense ™, която ще изчисли разстоянието.

El ъгъл на измерване или FOV (зрително поле) в този случай е 25º. Това се изразява в измервателна площ от 0,44 м в диаметър на разстояние 1 м. Въпреки че обхватът на измерване ще зависи от околните условия. Ако се прави на закрито, това е малко по-високо, отколкото ако се прави на открито. Това също ще зависи от отражателната способност на обекта, към който сочите:

Отразяване на целта Условия Интериор външност
Бяла мишена типичен 200cm 80cm
Мимик 120cm 60cm
Сива мишена типичен 80cm 50cm
минимум 70cm 40cm

В допълнение VL53L0X има няколко режими на работа Това може да промени резултатите. Тези режими са обобщени в следната таблица:

Modo Синхронизиране обхват Прецизност
по подразбиране 30ms 1.2m Вижте таблицата по-долу
Висока точност 200ms 1.2m + / - 3%
Дълъг обхват 33ms 2m Вижте таблицата по-долу
Висока скорост 20ms 1.2m + / - 5%

Според тези режими имаме няколко стандартни и далечни точност което имате в тази таблица:

Интериор външност
Отразяване на целта Разстояние 33ms 66ms Разстояние 33ms 66ms
Бяла мишена 120 см 4% 3% 60 см 7% 6%
Сива мишена 70 см 7% 6% 40 см 12% 9%

Pinout и връзка

VL53L0X чип схема

За да работи всичко това правилно, имате нужда интерфейс с външния свят. И това се постига чрез някои щифтове или връзки. Пинът на VL53L0X е доста прост, има само 6 щифта. За интеграцията му с Arduino комуникацията може да се осъществи чрез I2C.

За да го нахраните, можете свържете щифтове Така:

  • VCC до 5v от Arduino
  • GND до GND на Arduino
  • SCL към аналогов щифт на Arduino. Например A5
  • SDA към друг аналогов щифт. Например A4
  • В момента не трябва да се използват щифтовете GPI01 и XSHUT.

Интеграция с Arduino

VL53L0X свързан с Arduino

Както за много други модули, за VL53L0X също имате библиотеки (например тази за Adafruit) от наличния код, който можете да използвате за работа с определени функции, когато пишете изходния код за обработка на вашия проект в Arduino IDE. Ако за първи път използвате Arduino, препоръчвам нашето ръководство за програмиране.

Пример за Лесен код за извършване на измервания и показване на стойността на измерването през сериен порт така че можете да го видите от екрана на вашия компютър, докато имате свързана платка 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);
}

В собствената библиотека на Adafruit имате още примери за употреба, ако имате нужда от нея ...


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.