Семейство программных модулей датчиков расстояния. Каждый модуль — драйвер
конкретного датчика, но наружу все они выглядят одинаково: публикуются под
общим именем distanceSens, имеют один набор опций, событий и команд.
Автоматизация, написанная для одного дальномера, работает с любым другим.
| Модуль | Датчик | Принцип | Единицы | Дальность |
|---|---|---|---|---|
| hlk2410 | HLK-LD2410 | радар 24 ГГц, датчик присутствия | см | до 800 см |
| benewakeTOF | Benewake TF-серия | лазерный (ToF) | мм | до 12 м |
| TOFxxxF | TOF050F / TOF200F / TOF400F | лазерный (ToF) | мм | 0,5 / 2 / 4 м |
| sr04m | SR04M | ультразвуковой | мм | до 4500 мм |
Все датчики подключаются через модуль интерфейса UART — одно устройство на модуль.
Общий интерфейс
База топика: <deviceName>/distanceSens_<slot> — и для событий, и для команд.
Два режима работы, выбираются опцией threshold:
- аналоговый (
threshold= 0) — рапортуютсяevent/distance(расстояние в единицах датчика) иevent/ratio(доля от диапазона minVal–maxVal, 0.0–1.0), когда значение изменилось больше, чем на deadBand; - дискретный (
threshold> 0) — рапортуетсяevent/threshold:1, когда объект ближе порога,0, когда дальше. Дребезг у порога гасят debounceGap и cooldownTime.
Шум сглаживает фильтр filterK; модуль поддерживает enable
(команда и рапорт) и флаг disableOnStart.
Единицы расстояния, диапазоны и значения по умолчанию у каждого датчика свои — смотрите страницу модуля.
Пример
[SLOT_3]
mode = sr04m
options = threshold:1000, filterK:0.05
;объект ближе метра - проиграть трек 0
crosslink = distanceSens_3/event/threshold:1->player_0/action/play:0Заменив mode на hlk2410 и порог на 100 (сантиметры), получаем то же
поведение с радаром — crosslink менять не нужно.
Подробнее — внутренние связи (crossLink).