ультразвуковой дальномер SR04 ограничение дальности
- Войдите на сайт для отправки комментариев
Не подскажете, есть ли возможность у SR04 либо изменять частоту с помощью Ардуино, либо как-то ФИЗИЧЕСКИ ограничить его дальность.
Проблема в том, что в проекте зля замера растояния для маленького быстро движущегося объекта использую эти датчики и программно ограничиваю дальность - если не получен эхо в течении определенного времени, то считаю, что объекта нет и сразу послыаю слежующий сигнал. В случе, если перед датчиком на расстоянии 5-6 метров нет препятствий, то все рабеотает хорошо. Если же есть препятствия, то дальномер начинает получать отраженные сигналы и ложно срабатывать.
Просьба порекомендовать, что делать, если у кого-то есть опыт.
Все даташиты читал и знаю про 38 мс и 50 мс, но дело в том, что объекты маленькие и быстрые и за 38 мс проходят расстояние равное почти своему размеру, а за рекомендованные 50 мс успевают проскочить мимо датчика незамеченными.
Соответственно , решение, которое я вижу - либо уменьшать мощность, либо изменять частоту посылаемых сигналов, чтобы избежать срабатываний от сигналов мосланных ранее. Может быть у кого есть опыт использования других ультрозвуковых устройств для подобных целей?
Может, использовать инфракрасный дальномер?
Пробовал. Какой то он медленный, как мне показалось, и я так и не смог шум побороть. Где-то на 8-10 измерений идет одно, которое выходит за рамки
ну так отбрасывай программно все, что выходит за рамки коридора.
Что значит медленный?
Фильтрацию и усреднение еще никто не отменял.
ну так отбрасывай программно все, что выходит за рамки коридора.
Ультразвуковому датчику для расстояний порядка 5 м нужно около 30 мс, за это время можно снять порядка 250 показаний с ИК дальномера.
Элементарно - сравнить это значение с предыдущим и со следующим. Если выброс - значит это значение просто не учитывать. С ИК-дальномером скорости с запасом хватает, чтобы вместо одного замера делать три.
Медианный фильтр:
Алгоритм: http://arduino.ru/forum/apparatnye-voprosy/uluchshenie-tochnosti-pokazanii-hc-sr04-ili-vybor-drugogo#comment-143540
http://learn.linksprite.com/programming-languages/c/median-filtering-method-for-pcduinoarduino-2/
http://arduino.stackexchange.com/questions/246/are-there-any-signal-smoothing-libraries-for-arduino
http://arduino.ru/forum/programmirovanie/rabota-s-atsp-v-spyashchem-rezhime-adc-noise-reduction#comment-58674
разные программные фильтры
http://wiki.ardumower.de/index.php?title=Arduino_code_techniques
http://jeroendoggen.github.io/Arduino-signal-filtering-library/
http://avr.ru/ready/signal/math/proccess_slow_varying_signal
Простой цифровой фильтр
http://chipenable.ru/index.php/programming-avr/item/162-prostoy-cifrovoy-filtr.htm
Ультразвуковому датчику для расстояний порядка 5 м нужно около 30 мс, за это время можно снять порядка 250 показаний с ИК дальномера.
ну не получается у меня с ИК. Ультразвуковой мне понятен - послал сигнал и жди. Я программно ограничиваю полтора метра и успеваю сделать много замеров, если в пределах 5-ти метров нет препятствий. А как с ИК датчиком работать не понимаю ((( Направляешь его в пустоту, а он сыпет непонятно чем (((
Буду изучать ссылки выше про фильтры...
Если ультразвуковой по всем параметрам удовлетворяет - нет вопросов.
Но если в его работе обнаруживаются существенные недостатки, причем эти недостатки являются прямым следствием определенных физическеих ограничений (например, невысокая скорость звука не дает возможности производить измерения достаточно часто), то следует задуматься о датчике, функционирующем на других физических принципах. Не подходит ИК (кстати, какие физические законы ему мешают?), смотрите в сторону лазерных дальномеров и т.п. Может, оптические... Что-нибудь типа видеокамеры или светочувствительной матрицы, например, такие: http://ru.aliexpress.com/item/1PCS-TCD1304AP/32407265249.html?spm=2114.1...