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

ВЛ53Л0Х

В некоторых ваших проектах вам потребуется измерять расстояния. Что ж, вы должны знать, что VL53L0X - прибор, позволяющий измерять их с высокой точностью.. Кроме того, его небольшой размер и низкая цена делают его идеальным для ваших проектов DIY, особенно для интеграции с Arduino.

Есть много устройств, которые могут измерять расстояния, некоторые из них - измерители расстояния на основе ультразвука, которые излучают звук и при отражении от объекта позволяют с достаточной точностью определять расстояние, которое существует. Но если вам нужна высочайшая точность, для этого вам понадобится оптический дальномер. Этот тип измерительных приборов основан на лазере, как и в случае с VL53L0X.

Что такое ToF?

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

Камера Time of Flight или ToF (Time-of-Flight) это метод измерения расстояний. Он основан на оптике, измеряющей время, прошедшее между испусканием светового луча и приемом. Это могут быть датчики CCD, CMOS, а импульсы могут быть инфракрасными, лазерными и т. Д. Система будет синхронизирована, чтобы начать измерение времени как раз при срабатывании импульса и остановить счетчик, когда они получат дребезг от датчика.

Таким образом расстояние можно рассчитать довольно точно. Требуется только дополнительная логическая схема, встроенная в микросхему, чтобы выполнять вычисления с момента запуска луча до момента его получения и, таким образом, определять расстояние. Принцип довольно прост.

ESP8266
Теме статьи:
ESP8266: модуль WIFI для Arduino

Этот тип устройства используется в робототехника чтобы позволить роботу или дрону избегать препятствий, знать, как далеко они находятся от цели, обнаруживать движение или приближение, для автомобильных датчиков, используемых для различных приложений, для реализации электронного счетчика, такого как привод для Arduino, чтобы что-то делать когда он обнаруживает определенную близость объекта и т. д.

Что такое VL53L0X и техническое описание

ВЛ53Л0Х

El VL53L0X использует этот принцип для измерения расстояний с помощью инфракрасного лазера. последнее поколение. Вместе с процессором, таким как Arduino, он может быть мощным инструментом для измерения. В частности, чип может захватывать расстояния от 50 мм до 2000 мм, то есть от 5 сантиметров до 2 метров.

Для измерения более близких расстояний вам, вероятно, понадобится вариант этого чипа под названием VL6180X, который позволяет измерять диапазон от 5 до 200 мм, то есть от полусантиметра до 20 сантиметров. Если по какой-либо технической причине вы хотите найти аналогичное устройство на базе ультразвука, вам следует обратить внимание на HC-SR04, еще один довольно дешевый модуль, популярный у производителей.

El Микросхема VL53L0X был разработан для работают даже при достаточно ярком окружающем освещении. Имейте в виду, что при оптической работе, чем больше световое «загрязнение» окружающей среды, тем сложнее будет адекватно уловить отраженный сигнал. Но в данном случае это не представляет особой проблемы. Кроме того, система компенсации, которую он объединяет, позволяет измерять, даже если вы используете его за защитным стеклом.

Это делает его одним лучших датчиков расстояния что вы найдете на рынке. С гораздо большей точностью, чем датчики на основе ультразвука или инфракрасного (ИК) диапазона. Причина такой точности в том, что на лазер не будут влиять эхо или отражение от объектов, как в других случаях.

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

El ВЛ53Л0Х Внутри чипа находится излучатель лазерного импульса и датчик для захвата отраженного луча. В данном случае эмиттером является лазер с длиной волны 940 нм и лазером типа VCSEL (лазер с вертикальной полостью, излучающий поверхность). Что касается датчика захвата, то это SPAD (Single Photon Avalanche Diodes). Он также включает внутреннюю электронику FlightSenseTM, которая рассчитывает расстояние.

El угол измерения или FOV (поле зрения) в данном случае это 25º. Это соответствует площади измерения 0,44 м в диаметре на расстоянии 1 м. Хотя диапазон измерения будет зависеть от окружающих условий. Если это делается в помещении, оно немного выше, чем если бы это было сделано на открытом воздухе. Это также будет зависеть от отражательной способности объекта, на который вы указываете:

Целевое отражение Условия контракта Дизайн Экстерьер
Белая мишень типичный 200см 80см
Мимика 120см 60см
Серая цель типичный 80см 50см
MiniMo 70см 40см

Кроме того, VL53L0X имеет несколько режимы работы это может повлиять на результаты. Эти режимы приведены в следующей таблице:

Режим тайминг Сфера прецизионный
по умолчанию 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%

Распиновка и подключение

Схема микросхемы VL53L0X

Для того, чтобы все это работало, вам необходимо интерфейс с внешним миром. И это достигается с помощью каких-то контактов или соединений. Распиновка VL53L0X довольно простая, всего 6 контактов. Для его интеграции с Arduino связь может осуществляться через I2C.

Чтобы накормить его, вы можете соединить контакты Так:

  • VCC на 5 В от Arduino
  • GND к GND Arduino
  • SCL к аналоговому выводу Arduino. Например A5
  • SDA к другому аналоговому выводу. Например А4
  • Выводы 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.