Авторизация
Зарегистрироваться

VL53L0X - измеряем расстояние фотонным отражателем

Еще одна статья из цикла «что я нашел у себя в хламе».

Несколько лет назад одному моему другу нужно было сделать быструю фокусировку камеры. Обычный метод — подкрутить объектив и оценить программно контрастность картинки, не катил по быстродействию. Он обнаружил датчики, которые только начинали выпускаться — VL53L1X: маленькие, экономичные, точность и измеряемое расстояние (до 4м) для него были достаточны и попросил меня разобраться с ними. Датчики были свежие, информации о них было немного и готовых библиотек еще не было. Спустя несколько лет я обнаружил на Али более дешевую версию такого датчика, с меньшей дистанцией. За давностию лет уже не помню, какая мне идея в голову пришла, но я заказал этот датчик. Пока он пришел из Китая, идея уже была забыта, а сам датчик куда-то завалился. И на прошлой неделе, выковыривая пыль из уголков рабочего места, я выковырял и этот датчик.



За прошедшее время он заинтересовал ардуинщиков, появилась библиотеки и теперь, чтобы запустить этот датчик в работу, требуется всего несколько минут. Что и было немедленно сделано. Ну и решил рассказать вам про него — по какой-то причине эти датчики не пользуются такой большой популярностью, как ультразвуковые.

— А это что такое?!
— Фотонный отражатель, товарищ генерал!
— Сам вижу, что фотонный отражатель. Я спрашиваю, почему не покрашен?!

Принцип работы прост, как мыло — почти как ультразвуковой датчик, только используется инфракрасный луч 940 nm.



В корпусе датчика размещен лазер, массив лавинных светодиодов (ultra-fast SPAD Single Photon Avalanche Diodes) и мелкоконтроллер, управляющий всеми этими делами — а куда же без него нынче?



Верхняя сторона платы — сам датчик:



Нижняя сторона — LDO и преобразователи уровня:



Размер датчика по сравнению с ультразвуковым:



Вообще говоря, этот сенсор полагается калибровать с учетом того, что он наверняка расположен в каком-нибудь корпусе с окошечком, но если точность не критична, то можно этот этап опустить.

Датчик VL53L1X хорошо подходит для лидаров пылесосов с картопостроителем, у VL53L0X измеряемая дистанция маловата, он больше подходит для всяких игрушек-роботов, торговых автоматов и бытовой техники типа диспенсеров мыла и тому подобного.
Точностью измерения датчик не отличается, но она не всегда требуется.



Итак, подключаем 4 проводка от Ардуино к платке — I2C и питание.



I2C адрес программируемый, поэтому при желании двумя проводками можно подключить несколько датчиков.





Загружаем библиотеку:



И используем готовый пример для измерения расстояния:



Результат:



Игрушка хорошая и недорогая, рекомендую.
Добавить в избранное +85 +114
свернуть развернуть
Комментарии (61)
RSS
+
avatar
0
А что и как по этому датчику фокусируется? Из моих устройств самая удобная фокусировка у Nikon D7000 — даже ручная вполне удобна, в отличие от мыльницы Canon G9X.
+
avatar
0
Объект был очень шустрый — скажем, птичка. Пока фокусируешься — уже улетит.
+
avatar
  • BARS_
  • 20 мая 2022, 16:29
+1
И как фотографы обходятся без каких-то левых приблуд? Даже у полупрофи фототехники начального уровня фокус очень быстрый, да еще и следящий. И как вообще этот датчик поможет ускориться фокусу, когда он сам медленный?

Обычный метод — подкрутить объектив и оценить программно контрастность картинки, не катил по быстродействию.
Фототехника имеет фазовый автофокус, даже в смартфонах именно он. И управляет этим делом низкоуровневый софт. При чем тут контрастность? Может проблема таки в кривых руках, а не скорости автофокуса?..
+
avatar
+3
Фазовый автофокус еще относительно недавно был только в зеркалках. К примеру, купленная 6 лет назад компактная топ камера Sony RX100 IV имеет только контрастный АФ. Судя по рассказу, у автора эта история и была N лет назад.
+
avatar
+1
А при том, что сейчас для реализации автофокуса в смартфонах в основном используют три метода: контрастный, фазовый и лазерный.
+
avatar
+16
Я понимаю что всё можно нагуглить, но раз уж «стенд» собран — неплохо какие то измерения с помощью линейки произвести.
Ну тоесть препятствие на расстоянии 10 см, показания вот — на скрине (плюс что изменяет на 10 мм и 1 м).
+
avatar
  • tklim
  • 20 мая 2022, 18:01
0
Работает точно. В том плане что 1м и 10см будут отличаться именно в 10 раз.
Но даже на столе в хороших условиях он «шумит» в пределах 2см
+
avatar
+6
В том плане что 1м и 10см будут отличаться именно в 10 раз.
Если мне неизменяет память — это называется относительной точностью. А вот с абсолютной непонятно, автор дал мало информации. Имхо весь обзор какой-то недобзор.
+
avatar
+1
Насколько реально из него сделать датчик топлива?
Вроде он умеет работать из-за стекла, + в баке темно. По идее идеальный кандидат, вот только готовых реализаций не видел.
+
avatar
+3
У меня знакомый по работе чем-то подобным занимался, ему было грустно. Наклоны-крены, не говоря уж о плесканиях туда-сюда от ускорения и замедления. Нужна серьезная постобработка.
Конкретно по поводу инфракрасного датчика еще должен вставать вопрос о прозрачности топлива.
+
avatar
  • Gidof
  • 20 мая 2022, 15:38
+1
Ну плескания легко устраняются трубкой, а крены можно минимизировать если забабахать всё это дело в центр бака.
+
avatar
+1
Подтвеждаю, метод рабочий.

Пы.сы. Именно так все устроено в современных бензобаках.
+
avatar
+1
Знаю про ёмкостные. Конденсатор из двух трубок друг в друге медных. В зависимости от степени погружения меняется емкость. Датчик — проще некуда. Обработка сигнала — тоже на архи сложная.
+
avatar
0
скорее стаканом и соразмерным поплавком на штоке. всё уже придумано пол века назад инженерами.
только съём показаний всегда обычный
+
avatar
+1
Непонятно что вы имеете ввиду под стаканом?

В одном корейском Киа он совсем даже хитроделанный прямоугольник. Когда первый раз увидел очень удивился.

На одном форд мустанге бензобак такой сложной формы, что поплавок тупо не помещается и там таки да стоит ультрозвукой датчик уровня.

А вы говорите все давно придумано.
+
avatar
0
Придумано. Стиральные машины со своим вакуумным датчиком остатка воды в баке рулят.
+
avatar
0
Плюс измерение при нулевом ускорении или нулевой скорости, т.е. устоявшемся уровне в баке.
+
avatar
+4
Интересная штучка, не знал о таких. А что у неё с помехозащищённостью? На прямом солнце будет работать?
И сколько ест? Интересно применить её как нижний датчик для квадрокоптера.
+
avatar
+2

Интересно применить её как нижний датчик для квадрокоптера.
Очень даже применяют.
+
avatar
0
Да, спасибо, я уже нашёл и почитал даташит. Ест весьма мало. При засветке дальность резко падает. То есть скорее как дополнение к УЗ датчику на финальной стадии. Учитывая почти нулевой вес и малое потребление — интересный вариант.
+
avatar
  • slv55
  • 20 мая 2022, 12:15
+1
Ультразвуковой датчик на коптере работает крайне херово из за вибраций
+
avatar
+1
а под водой их можно использовать в герметичном корпусе через стекло?
+
avatar
0
Заметил опечатки:
«лет я обнаружил обнаружил на Али»
еще
«и мелкоконтроллер, управляющий» — или так и надо?
+
avatar
+9
Первое поправил, спасибо. Второе из разряда «мелкомягких окошек» :)
+
avatar
0
подобные собратья во всяких ипхонах используются? там ведь где-то в инструкции есть четкое предостережение о наличие лазерного излучения.
+
avatar
0
Сейчас они много где используются для фокусировки. Импульс очень короткий и маломощный, вреда вряд ли больше, чем от самого телефона.
+
avatar
+1
просто было внезапно обнаружить стандартное предостерение Class X Laser product в телефоне. Раньше такие надписи были только на дисковых приводах и проигрывателях дисков.

но почему-то предполагал что оно не для фокусировки, а как датчик приближения к ушам например.
+
avatar
0
Для этого они тоже предназначены
+
avatar
0
Ага, это TOF датчик для фокусировки в телефонах
+
avatar
  • ResSet
  • 20 мая 2022, 11:39
0
Как всегда было интересно почитать об очередной полезной поделке, спасибо )
+
avatar
+3
Да это даже не поделка, а просто информация — есть такая штука, которая может быть полезной.
+
avatar
  • ResSet
  • 20 мая 2022, 12:27
-1
Да это даже не поделка, а просто информация — есть такая штука, которая может быть полезной.
Есть измерения на практике, значит поделка, а не только теория )
+
avatar
+1
Как-то заказал себе такой побаловаться, до сих пор так руки и не дошли.
+
avatar
+14
Не переживайте, 90% покупаемого на ali у 99% покупателей идёт «в ящик». :)
+
avatar
+1
интересно, а как парктроник будет работать?
+
avatar
+5
Не уверен, грязью закидает быстро.
+
avatar
0
уже было потянулся к кнопке купить, но почитал коменты и понял, что недостатков больше чем достоинств.

когда-то давно писал либу для ультразвукового HC-SR04 с компенсацией температуры окружающего воздуха и медианным фильтром для повышения точности и стабильности показаний.

пы.сы. странно, вроде заявлен лазер, а на солнце начинает врать. лазерам обычно на это все равно, они даже через туман и звеси пробивают. похоже лазер то не настоящий! ©
+
avatar
0
Лазер, возможно, и настоящий, а вот по приёмнику могут быть вопросы.
+
avatar
+3
Чтоб через туман пробиваться длина волны другая нужна, например 1550нм. А на 940нм туман будет работать как отражатель.
+
avatar
0
Ну в ПНВ с подсветкой 940нм через туман неплохо видно, да даже 850нм нормально пробивает морось.
+
avatar
  • Gidof
  • 20 мая 2022, 13:47
0
Видит ли он расстояние до воды? Т.е. можно ли из него сделать электронный поплавок?
+
avatar
+7
Только что поэкспериментировал стаканом воды — видит, но врет. Возможно, калибровать надо.
+
avatar
  • vlo
  • 20 мая 2022, 14:00
+4
несколько расширяя предыдущие вопросы — было бы интересно рассмотреть вопрос, на какие именно преграды он реагирует, жидкости, материалы разные, да даже и стекло под разными углами.
т.е. в теории понятно, что они должны луч отражать, но в какой степени и что будет отражать этот ик — момент не очевидный.
+
avatar
  • u3712
  • 20 мая 2022, 16:58
0
У этого датчика, как *0, так и у *1, есть одна общая беда — нет защитных «стекол». А в «голом» виде они 'слабо пригодны'.
Попытка сколхозить защитное окно (двух-трех-зонное) обречено на провал. Здесь нужно или нормальное производство, или купить нормальный. Видел на али, но всего 1-2 позиции и совершенно невменяемой ценой. Увы, из-за эого пришлось отказаться… хотя столько железа/софта было написано, что Очень обидно.

Ремарк — редакции *0 и *1 отличаются 'принципиально', из одного, другую библиотеку не сделаешь.
А так… не забывайте, что у любого датчика есть еще две характеристики — «шум» и «быстродействие». Для этих датчиков — или «шум» или «быстродействие».
+
avatar
+2
А выдрать из китайского дальномера за $10? Там уже нормальный лазер и оптика. Даже кто-то уже протокол реверсил и вроде писали софт под stm32 для увеличения функционала. Погуглите.
+
avatar
  • u3712
  • 20 мая 2022, 17:40
+1
Спасибо, хороший вариант. Увы, но всё это для производства, и на один комплект нужно порядка 15 датчиков. Полный «колхоз» не пройдет.
+
avatar
0
Для автоматизации производства, увеличение стоимости разработки на $10 х 15 = $150 — это копейки. Хотя я не знаю всех условий тз и предполагаю что могут быть подводные камни.
+
avatar
0
Для производства, подозреваю, лучше купить
сразу ТБ2.
+
avatar
0
С таким датчиком не знаком.
+
avatar
  • D_K_
  • 20 мая 2022, 19:48
+1
Удобный датчик для запуска каких-нибудь устройств при приближении человека. Например рекламного экрана. Когда нужно игнорировать потоки людей идущих чуть поодаль, а срабатывать на подходящих. На ультразвуковом зависит от материала предмета. Одни увидит с полутора метров, а другие больше полуметра уже не реагирует. Инфракрасный вообще не имеет четкой границы расстояния. Тут же точность 5%.Если его использовать по назначению как датчик приближения предмета то вполне адекватный прибор. А если использовать не по назначению, пытаясь создать «лазерный» дальномер — то конечно выйдет игрушка
+
avatar
0
Согласен. Но мархетологи так хотели продать VL53L0X, что впихнули в datasheet строчку которая вводит в заблуждение — laser assisted auto focus… бла-бла-бла.
+
avatar
+2
По опыту — это сырая поделка. Год назад я её раскуривал — в библиотеке куча регистров без малейшего описания, запись кучи магических значений. При этом в даташите нет никакого намёка за на эти регистры. Работать-то, оно работает, но я бы поостерёгся использовать такое в промышленных изделиях.
+
avatar
0
Ну так это же Adafruit. У них все такое — запись кучи магических значений.
+
avatar
+2
Adafruit то тут при чём. Насколько я помню, это разработка ST и либа от них же.
+
avatar
0
Тысяча извинений!!!
+
avatar
+2
использовал такой для планшета, висящего на стене от умного дома
+
avatar
0
От умного дома осталась лишь одна стена? :))
+
avatar
  • tbnk
  • 09 июня 2022, 09:37
0
Спасибо что напомнили про датчик, тоже был заказан «на всякий случай»
Сижу, собираю «датчик присутствия» для туалета.
Свет раньше включался по микроволновому доплеровскому датчику, но он тоже «датчик движения»
И получалось так:

Датчик будет стоять над бачком, так что если подойти к унитазу или сесть — расстояние будет меньше 1.2 метра и свет не будет гаснуть.
К нему в помощь еще будет подцеплен RCWL-0516 (микроволновый на движение)
Это если руки помыть (да, у меня совмещенный санузел)
И он включает свет заранее, даже через дверь.
Заходишь — свет уже горит, но теперь еще не будет гаснуть пока ты на троне :)

PS Еще можно повесить какое-нибудь действие на поднесение руки на совсем маленькое расстояние к датчику, например ближе 5 см, например, включить вытяжку на 3 минуты… есть у кого идеи чем нагрузить ардуину в сортире? :)

Я юзаю библиотеку DFRobot_VL53L0X — она всего 6 кб памяти отъедает. Адафрут — 17 кб. Это в плане если что-то писать.
Например адресными светодиодами подсветку плавно менять на красную, если засиделся дольше 15 минут
Можно еще подцепить микрофон, анализировать уровень звука и в особо громкие моменты запускать проигрывание улюлюкания и аплодисментов :)
+
avatar
  • ybxtuj
  • 19 июня 2022, 17:15
0
читать не стал
но очень глубоко знаком с этой хренью VL53L0X
если увидете бегите быстрее без оглядки

цыкл программы тормозит нереально много
если использовать на повышеной скорости то он бесполезен по своей точнности даже фильтра не помогают цыкл программы 25мс а точность у меня ультразвук точнее мерил
если использовать повышенную точность то весьма хорош он но цыкл тогда вообще забей болт за 200мс
можно на повышеной точности занизить пороги тогда на выходе у него до полуметра с фильтрами абсолютна прямая но цыкл забей болтяру
мерил уровнь воды в бочке и по дискретизации милилитров похоже что у неё стоит подвид некой адски 1115

так же датчик постоянно зависает
и о 2метрах там и не пахнет максимум 1,2м и то с хреновой точностью
+
avatar
  • Nixoid
  • 08 июля 2022, 02:08
0
Эх… мне бы подобный с рабочим расстоянием в 10 миллиметров и которой может отловить 0.5 мм… хочу сортировку автоматизировать чуть.
+
avatar
  • tbnk
  • 12 сентября 2022, 11:25
0
Может кому интересно — в датчике нет подтягивающих резисторов на шине I2C
На макетке прекрасно работало, вынес датчик на метровой ленточный провод и началось…
Нет, не ошибки — arduino pro mini просто вешалась в течение нескольких минут, наглухо цикл вис
И питальник менял и емкость по питанию добавил + керамику — вешается
Поставил 2 подтягивающих резистора на А4 и А5 — все работает.
Не очевидно для меня было
Обычно просто мусор с датчика считывался, но не висло ничего.
Возможно, в либах так обработка написана…

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.