Датчик HC-SR04 + MCP23017

Тема в разделе "Arduino & Shields", создана пользователем ipok, 19 окт 2016.

  1. ipok

    ipok Нуб

    Необходимо к ардуино прикрутить порядка 100 датчиков HC-SR04.

    Кроме как использование MCP23017 в голову ничего не приходит

    Одновременно должно работать 2-3 датчика (какие и в какой момент времени известно)

    я так понимаю, что одну MCP23017 перевожу всю в in и мониторю нужные каналы
    вторую MCP23017 в out и посылаю сигналы на нужных пинах

    как думаете, идея вообще живучая ?
     
  2. rkit

    rkit Гуру

    Точность измерений пострадает, скорее всего. Я бы искал способ переключать активные сенсоры.
     
  3. ipok

    ipok Нуб

    Спасибо за ответ

    как думайте, насколько может пострадать точность, мне погрешности в 10-15 % достаточно.

    понятное дело, что собрать 2 сенсора на двух MCP не проблема и замерить, но где гарантия, что как только повешу еще 15, точность не измениться в разы.

    >Я бы искал способ переключать активные сенсоры.
    простите не понял вообще

    Попробую описать принцип работы:
    стоят все 100 сенсоров, не используются, спят, не посылают не принимают ничего (расстояние до преграды известно). Происходит автоматический запуск двух конкретных сенсоров (допустим 1 и 2), около них должен двигаться предмет. Они запущены ровно до того момента, когда изменяется положение предмета перед ними (т.е. был предмет на расстоянии 100 см, стал на расстоянии 50 сантиметров). В теории это несколько секунд. Как только они зафиксировали измерение расстояния - уснули.

    Смущает то, что SR04 цифровые, шина I2C подключается в аналог. Как из аналога снимать показания для этих датчиков, не понимаю (((
     
  4. rkit

    rkit Гуру

    Для работы этих датчиков нужно измерять время между отправлением сигнала и получением ответа на него. MCP23017 не может моментально уведомлять об изменении отдельного пина, только целого порта. То есть для точности измерений надо, чтобы было активно не более одного датчика на порте ввода. Если это условие соблюсти, то будет норм.
     
  5. rkit

    rkit Гуру

    И если датчики будут рядом, то они начнут ловить сигналы друг друга.
     
  6. ipok

    ipok Нуб

    Ага, именно так и будет. В одной MCP отдновременно только один датчик будет работать. Притом хочу разнести пины на посылку сигнала и принятие по разным MCP.

    Расстояние между датчиками планируется порядка 20-30 см по горизонтали, но это пока приблизительно, возможно скорректирую в момент построения стенда.
     
  7. rkit

    rkit Гуру

    Звуковой импульс уходит метра на четыре, не меньше.
     
  8. rkit

    rkit Гуру

    Ну и что это такое все-таки будет? Я бы перемещения предметов обычной камерой отслеживал, без таких сложностей.
     
  9. ostrov

    ostrov Гуру

    Может попробовать каскады из сдвиговых регистров сделать? Один на подачу импульсов, второй на прием? По 13 регистров надо всего, это не так много.
     
  10. ipok

    ipok Нуб

    Думал над этим, но камер нужно будет ставить 50 штук. Дороговато выходит.

    На этой неделе соберу стенд, посмотрю как работает, вывешу полное описание с картинками ))
     
  11. ipok

    ipok Нуб

    Тоже так же думал, но мне показалось что MCP проще и удобнее. Да и меньше их надо в 2 раза.
    Так же, один на приём, один на подачу.
     
  12. ostrov

    ostrov Гуру

    Регистры дешевле и, по сути, можно ставить лишь на триггер, а эхо связать а одно целое. Сигнал подавать поочередно на определенный датчик и получать ответ по общей шине.
     
  13. qwone

    qwone Гик

    Конечно через регистры. Но самое веселое в том что НС-SR04 это пара- передатчик и приемник. А так как они смотрят в одну сторону, то очень много передатчиков. Проще говоря отправить одним передатчиком и принять кучей приемников. А вот здесь уже вопрос . Надо не только принять матрицу 0 и 1 с приемников, но и перевести в матрицу датчиков и задержки на них.и чем быстрее обработка , тем точнее разрешение.привет ассемблер.
     
  14. ostrov

    ostrov Гуру

    Если предмет который нужно отслеживать один, то работать по нему более чем одним датчиком не получится, если предмет не стенка, например, а датчики не с разных ее сторон. Надеюсь понятно почему. Раз суть задания большой большой секрет, то остается только гадать что там и как.

    А еще можно разделить датчики на группы (по числу или по смыслу) и каждую посадить на свой МК, с которых потом собирать инфо на один главный МК.

    В любом случае не понятно в каком месте может не хватить производительности, так как отслеживание сигнала это довольно неспешная операция по масштабам даже AVR на 16МГц, не говоря уже про STM на 72МГц.

    Вот бы узнать еще что за задание и что за предметы отслеживаются. Выскажу предположение, что это или квест или другая игра, а предметы - участники. )