Еще одна статья из цикла «что я нашел у себя в хламе».
Несколько лет назад одному моему другу нужно было сделать быструю фокусировку камеры. Обычный метод — подкрутить объектив и оценить программно контрастность картинки, не катил по быстродействию. Он обнаружил датчики, которые только начинали выпускаться — VL53L1X: маленькие, экономичные, точность и измеряемое расстояние (до 4м) для него были достаточны и попросил меня разобраться с ними. Датчики были свежие, информации о них было немного и готовых библиотек еще не было. Спустя несколько лет я обнаружил на Али более дешевую версию такого датчика, с меньшей дистанцией. За давностию лет уже не помню, какая мне идея в голову пришла, но я заказал этот датчик. Пока он пришел из Китая, идея уже была забыта, а сам датчик куда-то завалился. И на прошлой неделе, выковыривая пыль из уголков рабочего места, я выковырял и этот датчик.
За прошедшее время он заинтересовал ардуинщиков, появилась библиотеки и теперь, чтобы запустить этот датчик в работу, требуется всего несколько минут. Что и было немедленно сделано. Ну и решил рассказать вам про него — по какой-то причине эти датчики не пользуются такой большой популярностью, как ультразвуковые.
— А это что такое?!
— Фотонный отражатель, товарищ генерал!
— Сам вижу, что фотонный отражатель. Я спрашиваю, почему не покрашен?!
Принцип работы прост, как мыло — почти как ультразвуковой датчик, только используется инфракрасный луч 940 nm.
В корпусе датчика размещен лазер, массив лавинных светодиодов (ultra-fast SPAD Single Photon Avalanche Diodes) и мелкоконтроллер, управляющий всеми этими делами — а куда же без него нынче?
Верхняя сторона платы — сам датчик:
Нижняя сторона — LDO и преобразователи уровня:
Размер датчика по сравнению с ультразвуковым:
Вообще говоря, этот сенсор полагается калибровать с учетом того, что он наверняка расположен в каком-нибудь корпусе с окошечком, но если точность не критична, то можно этот этап опустить.
Датчик VL53L1X хорошо подходит для лидаров пылесосов с картопостроителем, у VL53L0X измеряемая дистанция маловата, он больше подходит для всяких игрушек-роботов, торговых автоматов и бытовой техники типа диспенсеров мыла и тому подобного.
Точностью измерения датчик не отличается, но она не всегда требуется.
Итак, подключаем 4 проводка от Ардуино к платке — I2C и питание.
I2C адрес программируемый, поэтому при желании двумя проводками можно подключить несколько датчиков.
Загружаем библиотеку:
И используем готовый пример для измерения расстояния:
Результат:
Игрушка хорошая и недорогая, рекомендую.
Фототехника имеет фазовый автофокус, даже в смартфонах именно он. И управляет этим делом низкоуровневый софт. При чем тут контрастность? Может проблема таки в кривых руках, а не скорости автофокуса?..
Ну тоесть препятствие на расстоянии 10 см, показания вот — на скрине (плюс что изменяет на 10 мм и 1 м).
Но даже на столе в хороших условиях он «шумит» в пределах 2см
Вроде он умеет работать из-за стекла, + в баке темно. По идее идеальный кандидат, вот только готовых реализаций не видел.
Конкретно по поводу инфракрасного датчика еще должен вставать вопрос о прозрачности топлива.
Пы.сы. Именно так все устроено в современных бензобаках.
только съём показаний всегда обычный
В одном корейском Киа он совсем даже хитроделанный прямоугольник. Когда первый раз увидел очень удивился.
На одном форд мустанге бензобак такой сложной формы, что поплавок тупо не помещается и там таки да стоит ультрозвукой датчик уровня.
А вы говорите все давно придумано.
И сколько ест? Интересно применить её как нижний датчик для квадрокоптера.
Очень даже применяют.
«лет я обнаружил обнаружил на Али»
еще
«и мелкоконтроллер, управляющий» — или так и надо?
но почему-то предполагал что оно не для фокусировки, а как датчик приближения к ушам например.
когда-то давно писал либу для ультразвукового HC-SR04 с компенсацией температуры окружающего воздуха и медианным фильтром для повышения точности и стабильности показаний.
пы.сы. странно, вроде заявлен лазер, а на солнце начинает врать. лазерам обычно на это все равно, они даже через туман и звеси пробивают. похоже лазер то не настоящий! ©
т.е. в теории понятно, что они должны луч отражать, но в какой степени и что будет отражать этот ик — момент не очевидный.
Попытка сколхозить защитное окно (двух-трех-зонное) обречено на провал. Здесь нужно или нормальное производство, или купить нормальный. Видел на али, но всего 1-2 позиции и совершенно невменяемой ценой. Увы, из-за эого пришлось отказаться… хотя столько железа/софта было написано, что Очень обидно.
Ремарк — редакции *0 и *1 отличаются 'принципиально', из одного, другую библиотеку не сделаешь.
А так… не забывайте, что у любого датчика есть еще две характеристики — «шум» и «быстродействие». Для этих датчиков — или «шум» или «быстродействие».
сразу ТБ2.
зана эти регистры. Работать-то, оно работает, но я бы поостерёгся использовать такое в промышленных изделиях.Сижу, собираю «датчик присутствия» для туалета.
Свет раньше включался по микроволновому доплеровскому датчику, но он тоже «датчик движения»
И получалось так:
Датчик будет стоять над бачком, так что если подойти к унитазу или сесть — расстояние будет меньше 1.2 метра и свет не будет гаснуть.
К нему в помощь еще будет подцеплен RCWL-0516 (микроволновый на движение)
Это если руки помыть (да, у меня совмещенный санузел)
И он включает свет заранее, даже через дверь.
Заходишь — свет уже горит, но теперь еще не будет гаснуть пока ты на троне :)
PS Еще можно повесить какое-нибудь действие на поднесение руки на совсем маленькое расстояние к датчику, например ближе 5 см, например, включить вытяжку на 3 минуты… есть у кого идеи чем нагрузить ардуину в сортире? :)
Я юзаю библиотеку DFRobot_VL53L0X — она всего 6 кб памяти отъедает. Адафрут — 17 кб. Это в плане если что-то писать.
Например адресными светодиодами подсветку плавно менять на красную, если засиделся дольше 15 минут
Можно еще подцепить микрофон, анализировать уровень звука и в особо громкие моменты запускать проигрывание улюлюкания и аплодисментов :)
но очень глубоко знаком с этой хренью VL53L0X
если увидете бегите быстрее без оглядки
цыкл программы тормозит нереально много
если использовать на повышеной скорости то он бесполезен по своей точнности даже фильтра не помогают цыкл программы 25мс а точность у меня ультразвук точнее мерил
если использовать повышенную точность то весьма хорош он но цыкл тогда вообще забей болт за 200мс
можно на повышеной точности занизить пороги тогда на выходе у него до полуметра с фильтрами абсолютна прямая но цыкл забей болтяру
мерил уровнь воды в бочке и по дискретизации милилитров похоже что у неё стоит подвид некой адски 1115
так же датчик постоянно зависает
и о 2метрах там и не пахнет максимум 1,2м и то с хреновой точностью
На макетке прекрасно работало, вынес датчик на метровой ленточный провод и началось…
Нет, не ошибки — arduino pro mini просто вешалась в течение нескольких минут, наглухо цикл вис
И питальник менял и емкость по питанию добавил + керамику — вешается
Поставил 2 подтягивающих резистора на А4 и А5 — все работает.
Не очевидно для меня было
Обычно просто мусор с датчика считывался, но не висло ничего.
Возможно, в либах так обработка написана…
На выходе мне нужно что-то типа «Сейчас в камере 58% дыма».
Могу поместить его в саму камеру, а могу прикрутить возле стеклянного окошка, если он умеет работать через стекло…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.