MiniBot-SerControl — различия между версиями
Vooon (обсуждение | вклад) |
Vooon (обсуждение | вклад) м |
||
Строка 24: | Строка 24: | ||
* Если номер ошибки больше X09, то вернется два сообщения об ошибке: | * Если номер ошибки больше X09, то вернется два сообщения об ошибке: | ||
− | + | X{no}{descr} | |
− | + | X09ReqProc | |
== Комманды == | == Комманды == | ||
Строка 46: | Строка 46: | ||
! Параметры | ! Параметры | ||
|- | |- | ||
− | | Отправить по i2c несколько байт и получить несколько байт в ответ | + | | Отправить по i2c несколько байт и |
+ | получить несколько байт в ответ | ||
| <code>Q{adr}{req}({bo})+</code> | | <code>Q{adr}{req}({bo})+</code> | ||
| <code>R({bi})*</code> | | <code>R({bi})*</code> | ||
Строка 55: | Строка 56: | ||
* '''bi''' - '''uint8''' - полученные байты (в ответе будет req байт) | * '''bi''' - '''uint8''' - полученные байты (в ответе будет req байт) | ||
|- | |- | ||
− | | Установить направление вращения двигателя | + | | Установить направление |
+ | вращения двигателя | ||
| <code>QFF00{mot}{dir}</code> | | <code>QFF00{mot}{dir}</code> | ||
| <code>R</code> | | <code>R</code> | ||
Строка 62: | Строка 64: | ||
* '''dir''' - '''uint8''' - направление вращения, 01h - ВПЕРЕД, 02h - НАЗАД, СТОП не поддерживается. | * '''dir''' - '''uint8''' - направление вращения, 01h - ВПЕРЕД, 02h - НАЗАД, СТОП не поддерживается. | ||
|- | |- | ||
− | | Установить скорость вращения двигателя | + | | Установить скорость |
+ | вращения двигателя | ||
| <code>QFF00{mot}{pwm}</code> | | <code>QFF00{mot}{pwm}</code> | ||
| <code>R</code> | | <code>R</code> | ||
Строка 69: | Строка 72: | ||
* '''pwm''' - '''uint8''' - скорость, в точности соответствует скважности выдаваемого на двигатели ШИМ-сигнала. | * '''pwm''' - '''uint8''' - скорость, в точности соответствует скважности выдаваемого на двигатели ШИМ-сигнала. | ||
|- | |- | ||
− | | Управление очередью команд для шасси | + | | Управление очередью |
+ | команд для шасси | ||
| <code>QFF0014[{tim}{ls}{rs}{lf}{rf}]*</code> | | <code>QFF0014[{tim}{ls}{rs}{lf}{rf}]*</code> | ||
| <code>R</code> | | <code>R</code> |
Версия 06:19, 3 октября 2008
MiniBot SerControl
Это порт микропрограммы GATE-A8D8M2 на аппаратную платформу МиниБота. Формат обмена и базовые комманды совпадают.
Возможности
- I2C Шина[1]
- Очередь команд управления моторами с регулированием по встроенным энкодерам.
- Прямое управление моторами[2]
- Опрос датчиков линии[1]
- Опрос бамперов[1]
- Получение RC5 посылок пультов[1]
Отличия
- Отличаются коды/описания ошибок
- Внешний кварц на 14,7456 МГц (необходимо припаять)
- Скорость обмена по USART 115200 бод
- Единица времени не 1/50, а 1/56 секунды
- В одном пакете управления двигателем можно передать 12 комманд (13 если не отправлять
'\n'
) - Очередь комманд хранит до 20-и комманд (можно расширить изменив MOT_MAX_QSIZE)
- В случае, если пришедшие комманды не влезли в очередь будет сообщено начиная с какой комманды не влезло. (
X10MotQueueOvf %d
) - Если номер ошибки больше X09, то вернется два сообщения об ошибке:
X{no}{descr} X09ReqProc
Комманды
Комманды передаются в текстовом режиме.
Формат посылки: Q{adr}{req}[{by}]*
Каждый байт передаетя в шеснадцатеричной записи.
Если в ответе возвращается параметр больше чем один байт, то сначала идут младшие байты (Little Endian)
Принимаемые и возвращаемые типы:
- uint8 - беззнаковне целое 8 бит
00h..FFh
- int8 - знаковое целое 8 бит
-128(80h)..0(0h)..127(7Fh)
- uint16 - беззнаковое целое 16 бит
0000h..FFFFh
- int32 - знаковое целое 32 бита
80000000h..0h..7FFFFFFFh
Команда | Запрос | Ответ | Параметры |
---|---|---|---|
Отправить по i2c несколько байт и
получить несколько байт в ответ |
Q{adr}{req}({bo})+
|
R({bi})*
|
|
Установить направление
вращения двигателя |
QFF00{mot}{dir}
|
R
|
|
Установить скорость
вращения двигателя |
QFF00{mot}{pwm}
|
R
|
|
Управление очередью
команд для шасси |
QFF0014[{tim}{ls}{rs}{lf}{rf}]*
|
R
|
Способ задания скорости с направлением - 0x00 - стоим, 0x01..0x7F - малый..полный вперед, 0xFF..0x80 - малый..полный назад. Максимально можно отправить одновременно 12 команд. Если нужно сбросить очередь команд - отправляем просто |
Получить состояние энкодеров | QFF08F0
|
R{lenc}{renc}
|
|
Получить версию прошивки,
уникальный идентификатор |
QFF08FF
|
R{cn}{mj}{mi}{rv}{dvid}
|
|