Помогите сделать обмен данными между Arduino Uno

Тема в разделе "Arduino & Shields", создана пользователем Stillyet, 1 фев 2016.

  1. Stillyet

    Stillyet Нуб

    Добрый день, суть проблемы, которая встала передо мной в следующем. Есть некое устройство, в котором есть двигатели коллекторные, шаговые, светодиоды. Есть проводной пульт управления данным устройством (в дальнейшем плюсом к проводному понадобится и беспроводное соединение, но гораздо позже). Когда начал объединять пульт и Arduino UNO, которое стоит на устройстве стало понятно, что понадобится очень много проводов. Понял, что нужно на пульте управления поставить вторую плату Arduino UNO. Нашел в Интернет схему подключения двух плат Arduino UNO, как я теперь с помощью Гугла понял по UART, научился передавать банальные байты и моргать светодиодом на второй плате. Но когда я увидел, что на пульте управления должно находиться несколько джойстиков, управляющих разными парами двигателей - понял, что не могу понять, как отправлять сигнал с джойстика на Arduino UNO, которая стоит на устройстве. Получается, что нужно передавать сразу некий массив данных, где каждая ячейка массива служит сигналом к действию определенного движетеля или светодиода. Помогите, пожалуйста, с кодом отправления/получения данных с массива. Или подскажите правильную дорогу куда смотреть и где искать решение вопроса.
     
  2. Unixon

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

    Придумайте формат сообщения (пакета), которым контроллеры будут обмениваться. Это может быть как текстовый, таки бинарный формат. Например "[len;x,y,z,...;csum]", где "[" стартовый символ, "]" конечный, len/csum длина и контрольная сумма пакета, x,y,z,... поля данных, ","/";" разделители полей. На принимающей стороне должен крутиться конечный автомат по разбору этой строки и распихиванию полей по переменным.
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Как то так http://tinyurl.com/pw5nphz это по радиоканалу а если без него то тупо соединить "земли" и выводы 11 и 12 крест накрест. Можно и через USART тогда соединить RX/TX крест накрест ну и "земли"
     
  4. Onkel

    Onkel Гуру

    можно самому голову не ломать и взять modbus. Он правда половинный (данные только 0-127), но не думаю что это для тс критично.
     
  5. sim31r

    sim31r Нуб

    Не указана длина линии. При малой длине SPI, при большой RS485. Не указана скорость, необходимость гальванической развязки, контрольной суммы. Modbus наверное избыточен будет (можно упростить), проще настроить UART с битом контроля четности и слать даннные в asci формате
    >(начало телеграммы),адрес (1 байт), количество байт (1 байт), данные (1-255 байт);(конец посылки)
     
  6. Airbus

    Airbus Радиохулиган Модератор

    Так может по IR или RF?21 Век на дворе пора от меди отказываться))) Есть ещё ГСМ но цена правда :(
     
  7. Onkel

    Onkel Гуру

    может. я пару лет назад переделал у себя дома на rf simcom sim20. Если бы я делал сейчас, сделал бы на esp.
     
  8. Airbus

    Airbus Радиохулиган Модератор

    О да кстати тоже хорошая штука!:)Правда я не пробовал ещё только читал но впечатлило http://tinyurl.com/zek7s4q
     
  9. Stillyet

    Stillyet Нуб

    Огромное спасибо Airbus
    Программу написал на базе образца с ссылки, Были небольшие неприятности на входе, когда показания потенциометра были меньше 100, меньше 10, но все благополучно разрешилось, Начинаю с джойстиками. Огроменное спасибо!!! Если нужно, код на потенциометр - на одной ардуинке, на второй - светодиодик могу опубликовать.
     
  10. sim31r

    sim31r Нуб

    Именно в 2016 году, в Мегафоне есть бесплатный(!) тариф, 20 мб в день трафика. Для телеметрии самое то. До этого тарифы вытягивали по 100 руб в месяц, хоть с оплатой по трафику, хоть самым дешевым тарифом.