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

VL53L0X

У деяких ваших проектах вам знадобиться виміряти відстань. Ну, ви повинні знати, що VL53L0X - це пристрій, що дозволяє вимірювати їх з високою точністю. Крім того, його невеликі розміри та низька ціна роблять його ідеальним для ваших саморобних проектів, особливо для інтеграції з Arduino.

Існує багато приладів, які можуть вимірювати відстані, деякі з них - це вимірювачі відстані на основі ультразвуку, які видають звук, і при стрибках з предметом це дозволяє з достатньою точністю дізнатися відстань, яка існує. Але якщо ви хочете отримати найвищу точність, для цього вам потрібен файл оптичний вимірювач відстані. Цей тип вимірювальних приладів заснована на лазері, як у випадку з VL53L0X.

Що таке ToF?

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

Час польоту або камера ToF (Час польоту) це техніка, що використовується для вимірювання відстаней. Він заснований на оптиці, що вимірює час, що минув між випромінюванням світлового променя та його прийманням. Це можуть бути CCD, CMOS-датчики, а імпульси можуть бути інфрачервоними, лазерними тощо. Система буде синхронізована, щоб почати вимірювання часу саме тоді, коли імпульс спрацьовує, і зупинити лічильник, коли вони отримають відскак від датчика.

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

ESP8266
Пов'язана стаття:
ESP8266: модуль WIFI для Arduino

Цей тип пристроїв використовується в робототехніка дозволити роботу або безпілотнику уникати перешкод, знати, як вони віддалені від цілі, виявляти рух або близькість, для автомобільних датчиків, що використовуються для різних застосувань, впроваджувати електронний лічильник, такий як привід для Arduino, щоб щось робити коли виявляє певну близькість об’єкта тощо.

Що таке VL53L0X та таблиця даних

VL53L0X

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

Для вимірювання ближчих відстаней вам, напевно, потрібен варіант цієї мікросхеми, який називається VL6180X, що дозволяє вимірювати діапазон від 5 до 200 мм, тобто від півсантиметра до 20 сантиметрів. Якщо ви хочете знайти подібний, але пристрій на основі ультразвуку з будь-яких технічних причин, тоді вам слід поглянути на HC-SR04, ще один досить дешевий модуль, популярний серед виробників.

El Мікросхема VL53L0X була розроблена для працювати навіть тоді, коли освітленість досить висока. Майте на увазі, що при оптичній роботі, чим більше світлове «забруднення» навколишнього середовища, тим складніше буде адекватно вловити відбивання сигналу. Але в цьому випадку це не представляє занадто великих проблем. Крім того, інтегрована система компенсації дозволяє вимірювати, навіть якщо ви використовуєте її за захисним склом.

Це робить його одним найкращих датчиків відстані що ви знайдете на ринку. З набагато вищою точністю, ніж датчики на основі ультразвуку або інфрачервоного випромінювання. Причина такої точності полягає в тому, що на лазер не впливатимуть ехо чи відбиття від предметів, як в інших випадках.

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

El VL53L0X Він має всередині мікросхеми випромінювач лазерного імпульсу і датчик для захоплення зворотного променя. У цьому випадку випромінювач - це лазер довжиною хвилі 940 нм і тип VCSEL (лазер з поверхневою випромінюванням вертикальної порожнини). Що стосується датчика захоплення, то це SPAD (Single Photon Avalanche Diodes). Він також інтегрує внутрішню електроніку під назвою FlightSenseTM, яка обчислює відстань.

El кут вимірювання або FOV (поле зору) у цьому випадку це 25º. Це означає область вимірювання 0,44 м у діаметрі на відстані 1 м. Хоча діапазон вимірювання буде залежати від навколишніх умов. Якщо це робиться в приміщенні, це трохи вище, ніж якщо це робиться на відкритому повітрі. Це також буде залежати від відбивної здатності об’єкта, на який ви вказуєте:

Коефіцієнт відбиття Умови Інтер'єр За межами
Біла мішень Типовий 200cm 80cm
Мімік 120cm 60cm
Сіра мішень Типовий 80cm 50cm
Мінімум 70cm 40cm

Крім того, у VL53L0X є кілька режими роботи Це може змінювати результати. Ці режими зведені в наступній таблиці:

Модо Синхронізація Reach прецизійний
За замовчуванням 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 до 5v від Arduino
  • GND в GND Ардуіно
  • SCL на аналоговий штифт Arduino. Наприклад A5
  • SDA на інший аналоговий штифт. Наприклад A4
  • На даний момент шпильки GPI01 та XSHUT не повинні використовуватися.

Інтеграція з Arduino

VL53L0X підключений до Arduino

Як і для багатьох інших модулів, для VL53L0X у вас також є бібліотеки (наприклад, для Адафрут) доступного коду, який можна використовувати для роботи з певними функціями під час написання вихідний код для обробки вашого проекту в 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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.