Страница 2 из 2

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

Добавлено: 31.07.2019{, 16:42}
Dryundel
Ультразвуковой сенсор V1.0 (дальномер) NewPing
2019-07-31_112206.jpg
2019-07-31_112206.jpg (9.1 КБ) 4810 просмотров
Ультразвуковой_сенсор_V1.0_(CODE).ubi
(243.09 КБ) 326 скачиваний
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/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 27.06.2022{, 15:54}
zdob
Проверил на железе, достаточно импульса 1мс для запуска пакетного замера...