Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

Ультразвуковой дальномер

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#1

Сообщение Dryundel » 31.07.2019{, 16:42}

Ультразвуковой сенсор V1.0 (дальномер) NewPing
2019-07-31_112206.jpg
2019-07-31_112206.jpg (9.1 КБ) 4738 просмотров
Ультразвуковой_сенсор_V1.0_(CODE).ubi
(243.09 КБ) 324 скачивания
USonicV1.0 - блок для работы с ультазвуковыми датчиками HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax PING
Совместим со всей линейкой Arduino (и клонами), семейством Teensy (включая 96Mhz 32 bit Teensy 3.2) и микроконтроллерами, отличными от AVR.

Особенности:
- Измерение расстояния до 30 раз в секунду (минимальное время паузы между измерениями 29мс)
- Может работать на одном пине (кроме SRF06) для этого в насторйках пользователя для TRIGGER_PIN и ECHO_PIN указать один и тот же пин.
- Может расчитывать медиану (среднее значение) пакета измерений для более точных показаний.

Входы блока:
En - включение блока
maxDist - максимальная дистанция измерения (при превышении дистанции выводится "0")
paus - пауза между измерениями
median - включение функции расчета медианы (среднего значения пакета измерений)
pack - количество измерений в пакете для расчета медианы
reset - сброс показаний (Вход En является приоритетным) *
* Если на входах En и reset одновременно присутствует высокий уровень сброса показаний не происходит.

Выходы блока:
cm - расстояние в сантиметрах
inc - расстояние в дюймах
echo - время пинга (эхо-отклика) в микросекундах

Использована библиотека NewPing v1.9.1 https://bitbucket.org/teckel12/arduino- ... downloads/

Sanbi4
Рядовой
Сообщения: 76
Зарегистрирован: 30.10.2019{, 17:58}
Репутация: 3
Имя: Сергей

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#21

Сообщение Sanbi4 » 15.01.2020{, 09:07}

dizzyy, у меня по данному скетчу работает нормально, можно фильтра прикрутить разные под свои задачи. думаю, что с прерываниями лучше обрабатывается сигнал echo, эксперимент пока отложил, так как запалил контроллер - проморгал по питанию, и влил 12В на питание контроллера :smile171: , на радостях наверно. Задолбался с блоками под него и при отсутствии отраженного сигнала датчик или залипал, или показывал всякую белеберду. как таковой делей не нужен, так как эту функцию выполняет генератор и можно выставить эту задержку длиной импульса триггера датчика (время можно подобрать экспериментально, но в моем случае задержки между измерениями в 200мс хватало за глаза)

Аватара пользователя
ElectronicRTC
Рядовой
Сообщения: 49
Зарегистрирован: 09.07.2019{, 06:13}
Репутация: 1
Откуда: Москва
Имя: Евгений

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#22

Сообщение ElectronicRTC » 02.03.2021{, 10:20}

Dryundel, можно попросить немного скорректировать ПБ ?
В частности после измерения запоминать цифру (расстояние) до следующего измерения или этот параметр сделать регулируемым во избежания погрешностей. Если расстояние большое (нет преграды) то выводить максимальную дистанцию, а сейчас выводит 0 (это не совсем логично). И если добавить мм, то немного лучше смотрелось бы, все же миллиметры это миллиметры.
Промышленная электроника и оборудование

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#23

Сообщение dizzyy » 03.03.2021{, 00:56}

ElectronicRTC писал(а):
02.03.2021{, 10:20}
а сейчас выводит 0 (это не совсем логично).
более как логично..это значит что изменение не входит в рамки датчика ..сделайте сравнение с нулем и будет ерор

zdob
Рядовой
Сообщения: 8
Зарегистрирован: 24.10.2021{, 20:21}
Репутация: 0
Имя: Евгений

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#24

Сообщение zdob » 24.06.2022{, 16:05}

Приветствую всех.
Установил на Wemos LOLIN32 Lite, компилятор ругался на библиотеку, но работает хорошо. Спасибо большое разработчику!
Вопрос - как организовать единичное считывание медианного значения? Какой длительности сигнал на входе EN должен быть, чтобы хватило на измерение и расчеты медианы, или запуск цикла идет по фронту на EN?

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#25

Сообщение Dryundel » 24.06.2022{, 19:28}

zdob писал(а):
24.06.2022{, 16:05}
Вопрос - как организовать единичное считывание медианного значения?
Это как? Не понял вопрос.
zdob писал(а):
24.06.2022{, 16:05}
Какой длительности сигнал на входе EN должен быть, чтобы хватило на измерение и расчеты медианы, или запуск цикла идет по фронту на EN?
По фронту. Короткий импульс.

zdob
Рядовой
Сообщения: 8
Зарегистрирован: 24.10.2021{, 20:21}
Репутация: 0
Имя: Евгений

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#26

Сообщение zdob » 25.06.2022{, 11:26}

Планируется батарейное питание, каждый мкА на счету, задача раз в 6 часов сделать 1 замер(медианный из 4х считываний), отправить данные и уснуть... Из вашего ответа ясно что для этого достаточно короткого импульса на вход, 10мкс допустим, пб сделает 4 замера, высчитает среднее значение, выдаст его на выход и будет ждать следующего импульса. Я правильно понимаю логику работы Вашего ПБ?

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#27

Сообщение Ingwar » 25.06.2022{, 11:37}

zdob писал(а):
25.06.2022{, 11:26}
Из вашего ответа ясно что для этого достаточно короткого импульса на вход, 10мкс допустим
Не автор, но попробую ответить.
Для единичного выполнения задачи, реализуемой пользовательским блоком имеющим вход EN, как правило достаточно импульса длиной по времени в один цикл программы.
Т. е. управлять можете через Rtrig и им подобным.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

zdob
Рядовой
Сообщения: 8
Зарегистрирован: 24.10.2021{, 20:21}
Репутация: 0
Имя: Евгений

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#28

Сообщение zdob » 25.06.2022{, 12:16}

Ingwar писал(а):
25.06.2022{, 11:37}
достаточно импульса длиной по времени в один цикл программы.
Вот и как высчитать оптимальную длинну? учитывая работу медианного фильтра...

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#29

Сообщение Dryundel » 25.06.2022{, 12:54}

zdob писал(а):
25.06.2022{, 12:16}
ответа ясно что для этого достаточно короткого импульса на вход, 10мкс допустим, пб сделает 4 замера, высчитает среднее значение, выдаст его на выход и будет ждать следующего импульса. Я правильно понимаю логику работы Вашего ПБ?
Правильно. Блок посылает пакет импульсов и выбирает медиану. Ничего доп делать не надо.

zdob
Рядовой
Сообщения: 8
Зарегистрирован: 24.10.2021{, 20:21}
Репутация: 0
Имя: Евгений

Ультразвуковой сенсор V1.0 (HC-SR04, SRF05, SRF06, DYP-ME007, JSN-SR04T & Parallax) NewPing

#30

Сообщение zdob » 27.06.2022{, 15:54}

Проверил на железе, достаточно импульса 1мс для запуска пакетного замера...

Ответить

Вернуться в «Датчики и энкодеры»