Общение Arduino и Raspberry pi

Тема в разделе "Raspberry Pi", создана пользователем Егор, 10 авг 2014.

  1. Егор

    Егор Нерд

    Подключил к малинке Arduino. Пытаюсь реализовать двухстороннюю связь. Принцип примерно такой: Ардуино шлет на малину по Serial пакет, который содержит показания нескольких датчиков. Малина этот пакет получает, переваривает, и формирует свой пакет, который отсылает на Ардуино. Этот пакет содержит команды для моторов, серв, диодов и другой периферии Ардуино. Ардуино эти команды выполняет, опять собирает показания с датчиков и цикл повторяется. Поковырялся я немного сам и встрял. В связи с чем всплыло несколько вопросов:

    1) Как формировать пакеты и на Ардуино и на малине, так чтобы на другой стороне было понятно что с каких датчиков и какие моторы крутить.

    2) Как реализовать передачу цифр в обе стороны. Вместо цифр приходят какие то каракули.

    3) Как сделать чтобы оба скрипта запускались синхронно и если, например, Ардуино запустилась а малинка еще нет, то Ардуино ждет. и наоборот.

    Заранее благодарю всех за ответ!
     
  2. 1) Все просто... общий принцип как всегда общий..... пакеты у вас формируются Serial соединением, все остальное, а именно то, что вы туда вложите, зависит только от вас. Например:
    Пусть в Дуне за какими то адресами закреплена информация с/для датчиков, за какими то информация для моторов.

    1. - отсылаете команду на чтение или запись из дуни;
    2. - отсылаете адрес из которого или в который будет производиться чтение/запись в дуне;
    3. - отсылаете команду, это может быть , чтение или запись в принципе (что бы дуня либо загружала данные в буфер из указанного адреса, либо готовилась их принимать и переписывать в указанный адрес);
    4. - данные (под данными подразумеваются как в принципе сами данные, так и команды, которые будет выполнять дуня потом);
    5. - проверка правильности приема;
    6. переход в первоначальное состояние.
    Но это только как вариант(ни к чему не обязывающий)....

    2) какие именно каракули ? в ASCII таблице цифры начинаются с '48', так что учитывайте это при оперировании с данными. не забывайте вычитать...

    3)Что за два скрипта ? если вы имеете ввиду программы на малинке и дуне, то дуня у вас слейв по отношению к малине и должна вообще, что то делать только по запросом от мейна(малины) , даже если дуня будет накапливать данные у себя в памяти, то забирать их малина должна сама и ни о каком синхронизме в данном случае и речи нет, но это только из того, что вы написали... или напишите подробнее...
     
    Последнее редактирование: 11 авг 2014