[SLOT_n] ;доступные слоты: 6-9
mode = tankControl

Виртуальный модуль танкового микшера: смешивает «газ» и «руль» в скорости левой и правой гусениц.

Совместимость

Виртуальный модуль, аппаратной части не требует. Доступные слоты: 6-9.

Принцип работы

Модуль принимает команды accel (газ) и steering (руль) и рассчитывает скорости двух бортов, рапортуя их событиями ch_0 (левый) и ch_1 (правый).

Входные значения центрированы: середина диапазона inputMinValinputMaxVal соответствует нулевой скорости. Опция 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/enable0 / 1Состояние модуля - активен 1 или спит 0

Пример: топик moduleBox/tankControl_6/event/ch_0, payload 180.

Команды

ТопикPayloadОписание
tankControl_<slot>/action/accelцелоеГаз — центрированное входное значение
tankControl_<slot>/action/steeringцелоеРуль — центрированное входное значение
tankControl_<slot>/action/enable0 / 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).