Сеть из arduino

Тема в разделе "Проводная и беспроводная связь", создана пользователем npomax, 29 июл 2014.

  1. npomax

    npomax Нуб

    Суть проекта.
    Есть упарвляющая ардвина (мастер) - 1шт.
    Есть управляемая ардвина (slave) - 50шт.
    Нужно передавать по общему каналу rx-tx массив данных вида "А1T1" где А1 - номер slave а Т1 номер выполняемой команды в loop.
    Для того что бы сигнал приходил в нормальном виде нужна синхронизация тока rx-tx.

    Вопрос: каким образом запитать все ардвины и использовать общую шину rx-tx?
    Расстояние между самми slave не более метра а расстояние от master от 1м. до 20м.
    Буду признателен за схемку )))
     
  2. ALev

    ALev Гик

    Для того, чтобы я смог помочь вам, мне нужно знать ответы на ещё несколько вопросов:
    1. Какая скорость канала вам потребуется? (оцените какой максимальный объём данных вы собираетесь передавать в единицу времени)
    2. Что для вас важнее - скорость решения задачи или дешевизна? Критично ли будет удорожание на 1000 рублей каждого slave'а?
     
  3. Unixon

    Unixon Оракул Модератор

  4. npomax

    npomax Нуб

    1. Какая скорость канала вам потребуется? (оцените какой максимальный объём данных вы собираетесь передавать в единицу времени)
    Скорость канала 9600 в принципе нормально. В секунду примерно будут отправляться данные вида "A1T1" т.е. 4 символа. Эти данные приходят на все слэйвы дальше парсинг и т.д. и т.п.
    2. Что для вас важнее - скорость решения задачи или дешевизна? Критично ли будет удорожание на 1000 рублей каждого slave'а?
    К сожалению критично. Вся схема состоит их одних ардвин.
    Скорее всего дешевизна важнее.

    В общем саму схему почти разработали осталась только общая шина rx-tx но как ее сделать общей при том, что питание у всех слэйвов свое... Сделать общий ток rx-tx канала отдельно запитаным. Вопрос только как...
     
  5. ALev

    ALev Гик

    Запитать 50 штук ардуин при длинах проводов более 30 метров? Ты серьёзно?

    Как раз если бы применить RS485, то плясок с бубном не потребовалось: там канал связи развязан от питания. Но, как я понял, у людей жесткие требования к цене.
     
  6. ALev

    ALev Гик

    Всё понятно, сейчас набросаю схемку, о которой по телефону говорил.
     
  7. Unixon

    Unixon Оракул Модератор

    ТС ничего не сказал про геометрию и топологию, поэтому не факт, что длины нужно суммировать.

    Ну а так... 12V через толстый коаксиал вполне прокатит, даже шиной, не говоря уже о деревьях и звездах. Да, не самый эффективный способ доставить питание до места. Но иначе придется тянуть нечто более высоковольтное и потратиться на мешок БП.

    Тогда чего, UART на оптопарах?
     
    Последнее редактирование: 29 июл 2014
  8. ALev

    ALev Гик

    Он самый. Нет под рукой схемки, которой можно было бы продемонстрировать это решение? Им нужно только TX от мастера к RX слейвов. Обратной связи нету.
     
  9. Unixon

    Unixon Оракул Модератор

    Такой? opt_uart.png
     
  10. ALev

    ALev Гик

    Это неправильная опторазвязка :) Хорошо, когда линия передачи имеет своё питание. Вот, что я набросал по-быстрому. Снимок экрана - 29.07.2014 - 17:01:02.png
    Только стрелочки у транзисторов в опторазвязках надо переставить на противоположный контакт :) Нет времени перерисовывать ещё и компонент в библиотеке, должно быть и так понятно. Элементы опторазвзяки стоят по 50 руб/шт в Чип-Дипе.
     

    Вложения:

  11. Unixon

    Unixon Оракул Модератор

    Ну это уже совсем шик и маньячество :D Но по сути верно.
    А зачем земля у линии передачи и у приемника связаны на этой схеме?
     
    Последнее редактирование: 29 июл 2014
  12. ALev

    ALev Гик

    Затем, что я ошибся :) Спасибо, исправил :)
    Снимок экрана - 29.07.2014 - 17:27:29.png
     

    Вложения:

    Desert Ops нравится это.
  13. ANV

    ANV Гуру

    Если данные надо передавать только от ведущей Ардуино к ведомым, то на ebay покупаются 51 штука готовых плат TTL -RS-485 по 42 рубля за штуку (искать по "RS-485 Arduino"). 50 ставятся как есть в ведомые, а в ведущей MAX485 перепаивается на MAX487
     
  14. npomax

    npomax Нуб

    Хммм TTL вариант.
    Ребят а не подскажите, а если нужно синхронизировать время на всех слэйвах, можно обойтись одним шилдиком с реальным временем?
    Или по другому вопрос поставлю сильно ли будет отличаться время пришедшей команды на первый слэйв (1м) и на последний (30м)?
     
  15. ALev

    ALev Гик

    Не будет отличаться :) Время распространения сигнала по кабелю - около 200 тыс. км./сек:)
     
  16. npomax

    npomax Нуб

    Это здорово. Значит синхронизировать можно )))
     
  17. Unixon

    Unixon Оракул Модератор

    Под синхронизацию времени отдельную линию?
     
  18. npomax

    npomax Нуб

    Вот думаю как бы поменьше проводов, но если нельзя то значит отдельно линию...
     
  19. ALev

    ALev Гик

    Да не надо там ничего синхронизировать! Погрешность будет сопоставима с длительностью тактового импульса.
     
  20. Unixon

    Unixon Оракул Модератор

    А точка привязки?

    Может я чего не понял... ТС нужна синхронизация таймеров МК или нет?