[SLOT_n] ;доступные слоты: 6-9
mode = tankControlВиртуальный модуль танкового микшера: смешивает «газ» и «руль» в скорости левой и правой гусениц.
Совместимость
Виртуальный модуль, аппаратной части не требует. Доступные слоты: 6-9.
Принцип работы
Модуль принимает команды accel (газ) и steering (руль) и рассчитывает
скорости двух бортов, рапортуя их событиями ch_0 (левый) и ch_1 (правый).
Входные значения центрированы: середина диапазона inputMinVal–inputMaxVal соответствует нулевой скорости. Опция deadBand задаёт мёртвую зону газа вокруг центра, outputMaxVal ограничивает выходную скорость.
Применяется для гусеничных и колёсных машин с бортовым поворотом.
Топики
База топика события:
<deviceName>/tankControl_<slot>— напримерmoduleBox/tankControl_0
База топика действия:
<deviceName>/tankControl_<slot>— напримерmoduleBox/tankControl_0
Полный топик — база плюс направление и имя: moduleBox/tankControl_6/event/ch_0.
Опции
Доступные опции:
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу. - deadBand — число(int), мертвая зона газа. Диапазон 0–4096. По умолчанию 10.
- inputMinVal — число(int), минимальное входное значение. Диапазон 0–4096. По умолчанию 0.
- inputMaxVal — число(int), максимальное входное значение. Диапазон 0–4096. По умолчанию 255.
- outputMaxVal — число(int), максимальное выходное значение. Диапазон 0–4096. По умолчанию 255.
События
| Топик | Payload | Описание |
|---|---|---|
tankControl_<slot>/event/ch_0 | целое | Скорость левой гусеницы |
tankControl_<slot>/event/ch_1 | целое | Скорость правой гусеницы |
tankControl_<slot>/event/enable | 0 / 1 | Состояние модуля - активен 1 или спит 0 |
Пример: топик moduleBox/tankControl_6/event/ch_0, payload 180.
Команды
| Топик | Payload | Описание |
|---|---|---|
tankControl_<slot>/action/accel | целое | Газ — центрированное входное значение |
tankControl_<slot>/action/steering | целое | Руль — центрированное входное значение |
tankControl_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Примеры
[SLOT_6]
mode = tankControl
options = inputMinVal:0, inputMaxVal:255, outputMaxVal:255, deadBand:15
;два аналоговых входа - газ и руль, выходы - на драйверы бортов
crosslink = analog_0/event/rawVal:@->tankControl_6/action/accel:@, analog_1/event/rawVal:@->tankControl_6/action/steering:@Мёртвая зона газа 15 единиц вокруг центра (128). События ch_0 и ch_1
передают скорости левого и правого двигателей.
Подробнее — внутренние связи (crossLink).