Связь Arduino Uno с другим контроллером

alexey00
Offline
Зарегистрирован: 21.09.2012

Доброго времени суток, господа!

Имеется Arduino Uno + шилд Pololu Dual VNH5019 Motor Driver Shield.

Необходимо управлять движками с помощью Arduino Uno + Pololu Dual VNH5019 Motor Driver Shield с "другого" контроллера (модель пока не известна). Т.е., как я понимаю, необходимо слать данные в Arduino, которыми будут объявляться переменные в софте (вкл./откл. движков, скорость движков, направление вращения). Так же необходимо обрабатывать значение тока движков и слать сигнал об ошибке (зашита по току) на "другой" контроллер.

Суть вопроса.

Как лучше (по какой шине, в каком формате) принимать необходимые значения и как их присваивать моим переменным в прошивке Arduino?

Т.е. мне нужно мне обьяснить "тем" программистам ("другого" контроллера) в каком формате и как слать мне эти данные.

Может есть какие-то примеры таких решений.

Заранее спасибо.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Слать наверно по UART, формат определяйте как Вам удобнее. Лучше с подтверждением для контроля ошибок.

alexey00
Offline
Зарегистрирован: 21.09.2012

AlexFisher пишет:

Слать наверно по UART, формат определяйте как Вам удобнее. Лучше с подтверждением для контроля ошибок.

А как Arduino будет определять, какая именно команда приходит по последовательному порту?

Т.е. вкл/откл двигателя, значение скорости, и для какого именно движка это значение?

alexey00
Offline
Зарегистрирован: 21.09.2012

И еще такое вопрос. Может будет проще команды на вкл/откл движков слать просто как цифровые входы? Т.е. лог.1 или 0 (вкл или откл), а значения скоростей уже по Serial?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

1. Как будете парсить принятое, так Ардуино и будет определять.

2. Уверен, что Вам с самим собой не составит труда договориться о кодах :)

alexey00
Offline
Зарегистрирован: 21.09.2012

Как я понимаю, нужно слать команды с каким-то префиксом. И обьявлять нужные переменные исходя из префикса.

Может есть какие-то варианты легче это сделать?

Zhmak
Offline
Зарегистрирован: 08.11.2012

А что тут сложного? Протокол взаимодействия вы же сами придумываете.

В моем понимании вопроса достаточно посылок из двух байт.

Первый байт - значение, указывающее, какую машинку подключить, второй байт, указывает действие. Данные передаются через UART (по bluetooth или еще каким радиоустройством).

На принимающей стороне конструкция из case, переваривающая команды соответствующими процедурами.