Вот список команд, которые сейчас получает ходовой контроллер моего робота с пульта в компе по радиоканалу. Потом он будет получать их от центрального контроллера. Каждой команде на пульте соответствует своя кнопка. Параметры скорости и пути задаются на пульте движками со шкалами, со временем можно будет задавать, например, джойстиками.
Код:
Формат команды: $KХХx
где: $ = "$" (Hex 36) - признак команды
"K" = (Hex 00-FF) - код команды (1й байт)
"X" = (Hex 00-FF) - параметры команды. (2,3й байт). При отсутствии заменяется 0.
"x" = (Hex 00-FF) - параметр команды. (4й байт). При отсутствии заменяется 0. Как вариант - использование как контрольная сумма.
'0' (Hex 30) - Стоп. (Оба). 2,3,4 байт могут задавать дополнительные условия. Пока игнорируются.
'1' (Hex 31) - Оба вперед. 2 и 3 байт - путь левого и правого колеса(пока - время работы двигателей).
'2' (Hex 32) - Оба назад. 2 и 3 байт - путь левого и правого колеса(пока - время работы двигателей).
'3' (Hex 33) - Левый вперед, Правый назад. 2байт - путь левого, 3байт - правого.
'4' (Hex 34) - Правый вперед, Левый назад. 2байт - путь левого, 3байт - правого.
'5' (Hex 35) - Левый вперед, Правый стоп. 2байт - путь.
'6' (Hex 36) - Правый вперед, Левый стоп. 3байт - путь.
'7' (Hex 37) - Левый назад, Правый стоп. 2байт - путь.
'8' (Hex 38) - Правый назад, Левый стоп. 3байт - путь.
'9' (Hex 39) - Скорость, 2байт - скорость (Длит. ШИМ_1), 3байт - скорость (Длит. ШИМ_2).
'B' (Hex 42) - Запрос состояния датчиков бамперов. Измерить и выдать в RS232 (радиоканал)
'V' (Hex 55) - Измерить и выдать в RS232 (радиоканал) напр. аккумулятора.
'Z' (Hex 5A) - Пищим. 2байт - время в 1/100 сек. (макс. 2,55сек).
Пока не подключил еще датчики одометров, поэтому вместо пути левого и правого колеса -задаю время работы двигателей в 1/10сек).
У контроллера поворотной платформы будут свои команды с действиями типа:
"повернуть влево на ххх градусов",
"повернуть вправо на ххх градусов",
"поднять камеру на ххх градусов",
"опустить камеру на ххх градусов",
"измерить расстояние УЗ дальномером",
"измерить расстояние ИК дальномером",
"провести круговое сканирование через х градусов",
"замерить освещенность",
"включить подсветку камеры с яркостью ххх (или до освещенности ххх)",
"включить (выключить) камеру",
"включить (выключить) пиродатчик",
"измерить температуру снаружи (внутри) корпуса",
"измерить уровень шума (звука)",
"взять пеленг (на радио-свето-звуко-магнитный или еще какой маяк, поле или источник)".
И еще в том же духе, пока еще в стадии разработки.