дальномер ультразвуковой что это такое
Модуль подводного ультразвукового дальномера
Это устройство появилось на свет в процессе работы над проектом компьютера для дайвинга, который в своём составе должен был иметь узколучевой сонар-дальномер. То ли мы плохо искали, то ли, действительно, на рынке ничего подходящего по параметрам нет в продаже, но в итоге, вместо приобретения готового модуля, решили мы для дайвинг-компьютера изобрести свой дальномер. Тем более, что процесс интеграции в компактный корпус компьютера казался проще при разнесении излучателя и электронной схемы в соответствие со свободным пространством внутри корпуса.
Пока дайвинг-компьютер ожидает своего часа, нам пришла в голову мысль: а что если дальномер выделить в отдельный проект? Поскольку у нас возникли сложности с поиском подходящего модуля подводного дальномера, наверняка ещё кто-нибудь сталкивался с подобными трудностями поиска.
Первоначальные требования к модулю были обозначены следующие:
Как видно, схема представляет собой классический вариант, условно разделенный на три основных блока:
Передающий блок содержит в себе: драйвер затворов, силовые ключи, согласующий-повышающий трансформатор, встречно-параллельная сборка диодов. Последний элемент, вообще говоря, не обязателен в подобных схемах, но, в нашем случае, выполняет важную роль по “отключению” трансформатора на этапе приёма, когда значение действующего напряжения на пьезоэлементе ниже напряжения открытия диодов, что помогает изолировать входной каскад усилителя принимаемого сигнала от трансформатора.
Принимающий блок — самый требовательный к качеству исполнения, от работы которого зависит практически всё. С одной стороны, должен переварить сотни вольт на входе на этапе генерации зондирующего импульса. С другой стороны, обеспечить усиление сигнала амплитудой порядка микровольт с приемлемым соотношением сигнал/шум и до уровня уверенного детектирования и захвата на АЦП. За способность оставаться целым и невредимым при сотнях вольт на входе отвечают два компонента: высоковольтный конденсатор C2, на котором происходит ограничение переменного тока и встречно-параллельная сборка диодов, ограничивающая напряжение до приемлемых значений. Стоит отметить, что эта цепь способна выполнять свою задачу только в импульсном режиме длительностью порядка десятков микросекунд.
За усиление сигнала отвечают три каскада активных полосовых фильтров, из которых два последних являются узкополосными фильтрами второго порядка, обеспечивающих хорошую избирательность по частоте. Однако, ценой хорошей избирательности по частоте является более строгий подход выбору погрешностей для частотозадающих компонентов, иначе не обеспечить стабильность параметров от экземпляра к экземпляру. В рамках бюджетности устройства оптимальным для нашей задачи оказались погрешности 0,1% для резисторов и 0,5% для конденсаторов. Далее по схеме: амплитудный детектор и пассивный ФНЧ, для подавления остатков несущей, прошедшей через детектор.
Что касается акустической части устройства, которая не видна на принципиальной схеме, то здесь базовый элемент – это пьезоэлектрический диск ДЖГК.757681.008-172, диаметром 12,9мм, толщиной 3,1мм, резонансной частотой 640кГц. Этот элемент является одновременно и излучателем зондирующего импульса, и приёмником отражённого сигнала. Со стороны водной среды он изолирован четвертьволновым согласующим элементом (полиуретановая смола). Вместе с аналоговой схемой, конструкция излучателя/приёмника вносит большой вклад в качество устройства в целом. Скорость звука в пластике, который используется в излучателе как согласующий/изолирующий элемент, составляет 2400 м/с. Это определило толщину согласующего элемента – 0,9 мм.
В прототипе печатной платы присутствовали некоторые недочёты, но навесным монтажом мы заставили это устройство работать в минимально приемлемом режиме. Этого оказалось достаточно, чтобы снять характеристики диаграммы направленности.
В качестве стенда для измерения направленности мы не придумали ничего лучше, кроме как использовать пластиковое корыто полное воды, в котором установлен наш модуль-дальномер в качестве излучателя, и на небольшом расстоянии от него приёмник – пьезоэлемент, подключенный к осциллографу. Модуль-дальномер может поворачиваться влево-вправо от 0 до 180°, в это время с приёмника мы снимаем осциллограмму и определяем амплитуду принятого сигнала в зависимости от угла поворота излучателя.
Ниже приведен график итоговой диаграммы направленности.
Дальнейшие измерения проводились в импровизированном бассейне – пластиковой трубе, заполненной водой на высоту 1 метр. Кстати, удалось засечь три переотражения от дна и поверхности воды, прежде чем сигнал совсем исчез.
Поскольку мы решили использовать интерфейс UART с простыми текстовыми командами (на первом этапе), то не составило большого труда реализовать связку модуля дальномера с ГУИ на компьютере, выполненном на Processing.
На фото — попытка сканирования дна местного водоёма с помощью кораблика с установленным модулем дальномера и радиопередатчиком для получения данных с модуля на ноутбук. К сожалению, в моменты волнительного испытания железки, меньше всего думаешь о качестве фотографий процесса.
А используя приложение для смартфона Bluetooth Electronics и преобразователь USB->UART можно реализовать более мобильный вариант тестовой установки.
В данный момент мы работаем над следующим прототипом модуля дальномера, поскольку улучшать, на самом деле, есть что.
Например, реализовать постепенное усиление входного сигнала, чтоб отражение от ближайших объектов не зашкаливало, а от дальних объектов усиление было максимальным. Может, применить более дешёвую элементную базу. Продумать вариант заполнения внутреннего пространства каким-нибудь компаундом или силиконовым маслом для герметизации и противостоянии большому давлению.
Ультразвуковой дальномер
Минимальное расстояние до объекта должно быть не меньше 50 см, максимальное до 18 м. Погрешность производитель указал ± 1 см, такая же и цена деления — 1 см. Округляет значение больше границы в 0,5 см в большую сторону и при значении меньше границы в 0,5 см в меньшую сторону.
Погрешность ни разу не проявилась, честно пыталась ее поймать, но не удалось. В подобном обзоре кто-то нашел помещение, где можно измерить максимальное расстояние, оказалось у прибора максимум — 12 м.
В рабочем состоянии:
К сожалению мой прибор измеряет он не от дальней своей стенки, а где то 2 см от нее, поэтому от измерения нужно отнимать еще 2 см, калибровки у него нет. Но это только у моего дальномера, видимо магазин избавился так от бракованного товара, у других владельцев данного устройства такой проблемы нет. Решение предлагают — приклеить к нему 2 см брусок, но так как у меня нет необходимости считать площадь и объем помещения, мне не сложно в уме вычитать 2 см.
Инструкция была не правильная, по ней ничего не получалось, поэтому не выкладываю, а разобралась сама, все как в калькуляторе:
На видео нет сложения и вычитания, забыла, но оно происходит как на калькуляторе: М1 + М2, и тут же выдает результат, также при вычитании из меньшего большее рисует знак «-«.
+ Удобный инструмент для работы в небольших помещениях, логично и хорошо налажены функции вычисления,
+ Есть измерение в футах и дюймах,
+ Есть лазерная точка и температурный датчик.
— Приходится вычитать 2 см, нет калибровки чтобы убрать эти 2 см, из-за этого он сводит на нет остальные удобные функции сложения, вычитания и умножения, но, опять же повторюсь, эта проблема только с моим прибором,
— Температуру измеряет только при включении, чтобы снова измерить, необходимо дождаться выключения и включить снова,
— Лазер работает не долго, с котом не поиграешь, нужно постоянно включать его снова,
— На открытом воздухе бесполезен, так как результаты будут неточные из-за ветра
Ультразвуковой дальномер на Arduino
Предисловие
Так получилось, что в университете я изучаю C/C++. Для души пробую делать небольшие проекты на Python. Я много слышал про платформу Arduino, смотрел видео на YouTube, частенько посещал Arduino Project Hub и вот мне стало интересно самому поэкспериментировать, углубясь в разработку под микроконтроллеры. Купив стартовый набор с самой платой и горстью электронных компонентов и попробовав собрать проекты из обучающей брошюры, понял, что надо двигаться дальше. Продумав саму идею следующей самоделки, отправился на просторы Google и обнаружил, что не могу найти всего, что мне нужно на одном ресурсе. Безусловно, мне несложно было посетить несколько сайтитов и блогов с информацией, но я бы сильно сэкономил время, если бы нашел все в одном месте. Так и появилась эта статья-туториал.
Суть проекта
Мне хотелось сделать дальномер. Во-первых, из-за того, что у меня был ультразвуковой датчик и надо было научиться с ним взаимодействовать. Во-вторых, я хотел выводить всю информацию на OLED-дисплей. В статьях, которые я находил, либо рассказывалось про работу с дисплеем и датчиком по отдельности, либо они являлись частью совершенно другого проекта. Я собрал все необходимое тут и надеюсь, что это сможет как-то помочь другим.
Любая плата Arduino (у меня Uno);
Ультразвуковой дальномер HC-SR04;
OLED-дисплей на 0,96 дюймов;
Работа с OLED-дисплеем
OLED-дисплей идеально подходит для DIY-устройств. Во-первых, мы имеем достаточно высокое разрешение экрана — 128×64 пикселя. Во-вторых, дисплей работает без модуля подсветки, что обеспечивает низкое потребление энергии. В-третьих, для подключения используется всего четыре разъема — два для питания и два для обмена информацией. Но несмотря на это, у OLED-дисплеев есть и минусы. Со временем пиксели могут тускнеть и перегорать.
Вот таким образом можно подключить дисплей:
Схема подключения
Есть несколько библиотек для работы с OLED-дисплеями, мне больше нравится OLED_I2C. Мне она кажется очень простой и максимально понятной. Следующим образом выведем классический «Hello, world!» на дисплей:
Если функции без параметров понятны сразу и не вызывают вопросов, то с функциями вывода на дисплей могут быть вопросы. Давайте сразу с ними разберемся, их существует всего три вида:
print(st, x, y) — печать строки на дисплей.
Параметры:
st: строка для печати;
x: координата верхнего левого угла первого символа по горизонтали;
y: координата верхнего левого угла первого символа по вертикали.
В качестве координат можно использовать как сами координаты, так и литералы LEFT, CENTER, RIGHT.
Работа с ультразвуковым дальномером
Ультразвуковой датчик расстояния работает по принципу эхолокации — посылает пучок ультразвука и получает его отражение с некоторой задержкой, с помощью которой и можно высчитать расстояние до объекта. Работает датчик от напряжения в 5V на расстоянии от 2 до 400 сантиметров.
Для получения данных с датчика необходимо:
Подать на выход Trig импульс длительностью 10 микросекунд;
Трансмиттер отправит 8 импульсов с частотой 40 кГц;
Когда импульсы отразятся от препятствия и будут приняты ресивером, то на выходе Echo образуется входной сигнал;
С помощью формулы данные преобразуются в расстояние. Чтоб получить расстояние в сантиметрах, нам необходимо разделить ширину импульса на 58, для получения расстояния в дюймах — на 148.
Подключить датчик к плате можно следующим образом:
Схема подключения
Финальный проект
Теперь, когда мы разобрались с работой с каждого элемента по отдельности, можно перейти к основному проекту дальномера.
Подключим все элементы к плате следующим образом:
Схема проекта
Финальный проект в работе выглядит следующим образом:
Что дальше?
Проект дальномера готов и прекрасно работает, но несмотря на все, он не является идеальным законченным решением. Можно поработать над улучшениями, и сделать следующие:
Перенести все на монтажную плату и избавиться от макетки. Тогда получится цельное устройства без торчащих проводов;
Перейти на Arduino Nano ради более компактного размера;
Добавить автономное питание для работы без кабеля;
Ультразвуковой датчик расстояния Ардуино HC-SR04
Ультразвуковые датчики расстояния Ардуино очень востребованы в робототехнических проектах из-за своей относительной простоты, достаточной точности и доступности. Они могут быть использованы как приборы, помогающие объезжать препятствия, получать размеры предметов, моделировать карту помещения и сигнализировать о приближении или удалении объектов. Одним из распространенных вариантов такого устройства является датчик расстояния, в конструкцию которого входит ультразвуковой дальномер HC SR04. В этой статье мы познакомимся с принципом действия датчика расстояния, рассмотрим несколько вариантов подключения к платам Arduino, схему взаимодействия и примеры скетчей.
Датчик расстояния в проектах Arduino
Способность ультразвукового датчика определять расстояние до объекта основано на принципе сонара – посылая пучок ультразвука, и получая его отражение с задержкой, устройство определяет наличие объектов и расстояние до них. Ультразвуковые сигналы, генерируемые приемником, отражаясь от препятствия, возвращаются к нему через определенный промежуток времени. Именно этот временной интервал становится характеристикой помогающей определить расстояние до объекта.
Описание датчика HC SR04
Датчик расстояния Ардуино является прибором бесконтактного типа, и обеспечивает высокоточное измерение и стабильность. Диапазон дальности его измерения составляет от 2 до 400 см. На его работу не оказывает существенного воздействия электромагнитные излучения и солнечная энергия. В комплект модуля с HC SR04 arduino также входят ресивер и трансмиттер.
Ультразвуковой дальномер HC SR04 имеет такие технические параметры:
Датчик оснащен четырьмя выводами (стандарт 2, 54 мм):
Где купить модуль SR04 для Ардуино
Датчик расстояния – достаточно распространенный компонент и его без труда можно найти в интернет-магазинах. Самые дешевые варианты (от 40-60 рублей за штуку), традиционно на всем известном сайте.
Схема взаимодействия с Arduino
Для получения данных, необходимо выполнить такую последовательность действий:
При делении ширины импульса на 58.2, получим данные в сантиметрах, при делении на 148 – в дюймах.
Подключение HC SR04 к Arduino
Выполнить подключение ультразвукового датчика расстояния к плате Arduino достаточно просто. Схема подключения показана на рисунке.
Контакт земли подключаем к выводу GND на плате Arduino, выход питания соединяем с 5V. Выходы Trig и Echo подсоединяем к arduino на цифровые пины. Вариант подключения с помощью макетной платы:
Библиотека для работы с HC SR04
Для облегчения работы с датчиком расстояния HC SR04 на arduino можно использовать библиотеку NewPing. Она не имеет проблем с пинговыми доступами и добавляет некоторые новые функции.
К особенностям библиотеки можно отнести:
Скачать бибилотеку NewPing можно здесь
Точность измерения расстояния датчиком HC SR04
Точность датчика зависит от нескольких факторов:
В основу принципа действия любого ультразвукового датчика заложено явление отражения акустических волн, распространяющихся в воздухе. Но как известно из курса физики, скорость распространения звука в воздухе зависит от свойств этого самого воздуха (в первую очередь от температуры). Датчик же, испуская волны и замеряя время до их возврата, не догадывается, в какой именно среде они будут распространяться и берет для расчетов некоторую среднюю величину. В реальных условиях из-за фактора температуры воздуха HC-SR04 может ошибаться от 1 до 3-5 см.
Фактор расстояния до объекта важен, т.к. растет вероятность отражения от соседних предметов, к тому же и сам сигнал затухает с расстоянием.
Также для повышения точности надо правильно направить датчик: сделать так, чтобы предмет был в рамках конуса диаграммы направленности. Проще говоря, “глазки” HC-SR04 должны смотреть прямо на предмет.
Для уменьшения ошибок и погрешности измерений обычно выполняются следующие действия:
Примеры использования датчика расстояния
Давайте рассмотрим пример простого проекта с платой Arduino Uno и датчиком расстояния HC SR04. В скетче мы будем получать значение расстояния до предметов и выводить их в монитор порта в среде Arduino IDE. Вы сможете легко изменить скетч и схему подключения, чтобы датчик сигнализировал о приближении или отдалении предмета.
Подключение датчика к ардуино
При написании скетча использовалась следующий вариант распиновки подключения датчика:
Пример скетча
Начнем работу с датчиком сразу с относительного сложного варианта – без использования внешних библиотек.
В данном скетче мы выполняем такую последовательность действий:
Если датчик расстояния не выполняет считывание сигнала, то преобразование выходного сигнала никогда не примет значения короткого импульса – LOW. Так как у некоторых датчиков время задержки варьируется в зависимости от производителя, рекомендуется при использовании указанных скетчей выставлять его значение вручную (мы это делаем в начале цикла).
Если расстояние составляет более 3 метров, при котором HC SR04 начинает плохо работать, время задержки лучше выставлять более 20 мс, т.е. 25 или 30 мс.
Скетч с использованием библиотеки NewPing
Теперь давайте рассмотрим вариант скетча с использованием библиотеки NewPing. Код существенно упростится, т.к. все описанные ранее действия спрятаны внутри библиотеки. Все, что нам нужно сделать – создать объект класса NewPing, указав пины, с помощью которых мы подключаем датчик расстояния и использовать методы объекта. В нашем примере для получения расстояния в сантиметрах нужно использовать ping_cm().
Пример подключения ультразвукового дальномера HC SR04 с одним пином
Подключение HC-SR04 к Arduino может быть выполнено посредством использования одного пина. Такой вариант пригодится, если вы работаете с большим проектом и вам не хватает свободных пинов. Для подключения вам нужно просто установить между контактами TRIGи ECHO резистор номиналом 2.2K и подключить к ардуино контакт TRIG.
Краткие выводы
Ультразвуковые датчики расстояния достаточно универсальны и точны, что позволяет их использовать для большинства любительских проектов. В статье рассмотрен крайне популярный датчик HC SR04, который легко подключается к плате ардуино (для этого следует сразу предусмотреть два свободных пина, но есть вариант подключения и с одним пином). Для работы с датчиком существуют несколько бесплатных библиотек (в статье рассмотрена лишь одна из них, NewPing), но можно обойтись и без них – алгоритм взаимодействия с внутренним контроллером датчика достаточно прост, мы показали его в этой статье.
Исходя из собственного опыта, можно утверждать, что датчик HC-SR04 показывает точность в пределах одного сантиметра на расстояниях от 10 см до 2 м. На более коротких и дальних дистанциях возможно появление сильных помех, что сильно зависит от окружающих предметов и способа использования. Но в большинстве случаев HC-SR04 отлично справлялся со своей работой.
Ультразвуковой дальномер-рулетка CP-3001
Заказал это устройство из-за своей тяги к многофункциональными гаджетам. Дальномер, да еще рулетка для измерений небольших расстояний в одном флаконе – это прикольно! Конечно, я был в курсе, что измерение расстояния ультразвуком имеет множество недостатков и не идет в никакое сравнение с измерением лазерным дальномером, но возможность протестировать новое, да еще не описанное устройство взяла верх, и я его заказал.
Так что, если вам интересно, что из этого получилось…
Дальномер пришел в стандартной для магазина OEM-упаковке – белой картонной коробке. В комплекте был сам дальномер, источник питания (редкая для наших краев батарейка 23A 12V) и инструкция.
По дизайну и размерам дальномер сходен с обычной рулеткой. Только в отличие от рулетки сбоку расположены жидкокристаллический дисплей и функциональные кнопки.
С противоположной стороны – батарейный отсек и кнопка для сворачивания рулетки. Да, здесь в отличие от обычной рулетки лента фиксируется при извлечении.
С лицевой стороны – излучатель / приемник ультразвука, лазерный целеуказатель и кнопка активации измерения.
Сверху — тумблер включения и выход рулетки. Общая длина рулетки – 1 м. Материал – пластик. С одной стороны шкала в миллиметрах, с другой — в дюймах. По сравнению с моей 3-х метровой рулеткой из металлической ленты смотрится довольно скромно.
Вес дальномера с батарейкой – почти 90 г.
Измерения
Заявленные параметры устройства:
Измеряемое расстояние: 0.5 – 18 м.
Точность: 0.5%
Рабочая частота: 40 kHz
Рабочая температура: 0 – +43 градуса Цельсия
В отличие от измерений рулеткой, для осуществления корректных измерений ультразвуком требуется выполнение определенных условий:
1) Так как измерение осуществляется по принципу эхолокации (измеряется время, за которое ультразвуковая волна доходит до препятствия, отражается от него и возвращается назад), необходимо чтобы пространство между прибором и объектом, расстояние до которого измеряется, было свободно. Также нежелательно проводить измерения до предметов, которые могут поглощать звуковую волну (например, штор) и имеют неровную поверхность.
2) Скорость распространения ультразвука в воздухе зависит от температуры. Для оценки температуры в дальномер встроен термодатчик. Поскольку он находится внутри прибора, то при переносе его из одной температурной среды в другую перед измерением следует подождать, чтобы температура прибора сравнялась с температурой окружающей среды.
3) Фронт звуковой волны по мере распространения расширяется, поэтому если объект до которого проводится измерение находится на большем расстояния, он также должен быть достаточно большим (то есть измерение длины узкого и длинного коридора может оказаться некорректным).
4) Атмосферные колебания также оказывают влияние на измерение, поэтому прибор не рекомендуется использовать на открытом воздухе.
Ограничения, накладываемые на измерения, как видите, настолько существенны, что исключают профессиональное использование этого инструмента.
В быту же измерения необходимы довольно редко, они как правило происходят в более комфортных условиях и не требуют точности до миллиметра. Лично я делал их обычной рулеткой. Применимость ультразвукового дальномера для бытовых измерений в моем представление зависело от того, насколько удобным и точным это будет по сравнению с рулеткой.
Прежде всего, проверим точность определения температуры. Думаю приемлемо.
Процесс измерения заключается в наведении прибора на поверхность, до которой измеряется расстояние и нажатии на кнопку «MEAS». Поверхность в месте приложения звуковой волны подсвечивается лазером (это для того чтобы было видно, до куда конкретно мы измеряем расстояние), слышен негромкий щелчок и на экране отображается результат. Все занимает пару секунд.
Что касается точности измерений. В дальномере предусмотрен выбор измерения расстояния от задней (по умолчанию) или передней кромки. Независимо от выбора кромки, прибор почему то прибавляет 2 см. к результату измерения. Судя по схожей проблеме, описанной в обзоре дальномера другой модели, это очевидно какой-то нюанс электроники. Точность, как вы можете убедиться, в обоих случаях соизмерима точности рулетки (естественно учитывая отступ в 2 см). Расстояние между кромками – 7см.
От задней кромки
От передней кромки
Измерения проводились в узком и длинном коридоре, как раз в условиях, где применение ультразвукового дальномера не рекомендуется. По этой причине отправная точка измерений располагалась примерно посередине коридора, расстояния измерялись в обе стороны от нее, а для определения общей длины была использована функция суммирования (кнопка «+/=«).
В одну сторону получилось 5.29 м.
В другую – 9.29 м.
Итого – 14.58 м. Общее время измерений – секунд 30.
В принципе, таким способом можно суммировать любое число расстояний, тут главное не сбиться в процесс измерения.
Длина коридора по замерам рулеткой составила 15 м, а сам процесс измерения 3-х метровой рулеткой – около 5 минут (с учетом простановку пометок карандашом). Этот результат более точен, но трудозатраты значительно выше.
Помимо суммирования, прибор может умножать значения (кнопка «x/=«), что позволяет вычислять площадь
и объем
Выводы
Касательно применения ультразвукового дальномера как такового:
Удобно. Не нужно мотаться с рулеткой по помещению. Процесс измерения занимает считанные секунды.
Низкая точность измерения. На процесс прохождения звука влияет довольно много внешних факторов, поэтому погрешность измерения в различных условиях будет также разная. К тому же, если рулеткой мы можем мерять просто по полу не смотря на его наклон, то дальномер придется фиксировать по уровню чтобы волна не ушла в сторону.
Ограниченная область применения. Расстояния можно измерять только до относительно больших и плоских предметов и только в помещении.
Касательно самой идеи совмещения рулетки и дальномера.
Как обычно у китайцев – отличная идея и хромающая реализация. Сам по себе ультразвуковой дальномер мало востребован из-за низкой точности и ограниченной области применения. Если снабдить его рулеткой, то можно проводить измерения на скорую руку дальномером, а более точные или недоступные дальномеру измерения рулеткой.
В реальности же, область применения измерений рулеткой значительно выше, следовательно, нужно было бы к качественной рулетке приделать дальномер. То есть чтобы в качестве дополнительной опции выступал дальномер, а не посредственная рулетка делала из посредственного дальномера многофункциональное устройство.