У деяких ваших проектах вам знадобиться виміряти відстань. Ну, ви повинні знати, що VL53L0X - це пристрій, що дозволяє вимірювати їх з високою точністю. Крім того, його невеликі розміри та низька ціна роблять його ідеальним для ваших саморобних проектів, особливо для інтеграції з Arduino.
Існує багато приладів, які можуть вимірювати відстані, деякі з них - це вимірювачі відстані на основі ультразвуку, які видають звук, і при стрибках з предметом це дозволяє з достатньою точністю дізнатися відстань, яка існує. Але якщо ви хочете отримати найвищу точність, для цього вам потрібен файл оптичний вимірювач відстані. Цей тип вимірювальних приладів заснована на лазері, як у випадку з VL53L0X.
Що таке ToF?
Час польоту або камера ToF (Час польоту) це техніка, що використовується для вимірювання відстаней. Він заснований на оптиці, що вимірює час, що минув між випромінюванням світлового променя та його прийманням. Це можуть бути CCD, CMOS-датчики, а імпульси можуть бути інфрачервоними, лазерними тощо. Система буде синхронізована, щоб почати вимірювання часу саме тоді, коли імпульс спрацьовує, і зупинити лічильник, коли вони отримають відскак від датчика.
Таким чином відстань можна розрахувати досить точно. Потрібні лише додаткові логічні схеми, інтегровані в мікросхему, для виконання обчислень з моменту випуску пучка до його отримання і, таким чином, визначення відстані. Принцип досить простий.
Цей тип пристроїв використовується в робототехніка дозволити роботу або безпілотнику уникати перешкод, знати, як вони віддалені від цілі, виявляти рух або близькість, для автомобільних датчиків, що використовуються для різних застосувань, впроваджувати електронний лічильник, такий як привід для Arduino, щоб щось робити коли виявляє певну близькість об’єкта тощо.
Що таке 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 досить простий, він має лише 6 висновків. Для його інтеграції з Arduino спілкування може здійснюватися через I2C.
Годувати його можна підключіть шпильки Так:
- VCC до 5v від Arduino
- GND в GND Ардуіно
- SCL на аналоговий штифт Arduino. Наприклад A5
- SDA на інший аналоговий штифт. Наприклад A4
- На даний момент шпильки GPI01 та XSHUT не повинні використовуватися.
Інтеграція з 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 ви маєте більше прикладів використання, якщо вам це потрібно ...