Программный модуль для работы с шаговыми двигателями, через сигналы step/dir. Реализованы режимы работы с линейным ускорением и замедлением. Поддерживает работу с одним или двумя концевыми датчиками.
Принцип работы
При старте модуль ищет верхний и нижний концевые датчики если они сконфигурированы. По окончанию инициализации датчик ждет команды для управления по положению или скорости вращения. Рапортует текущее положение не чаще 30-ти раз в секунду.
Аппаратные модули:
Топик
Стандартный топик событий и действий:
- “deviceName/stepper_{slot_num}” - {slot_num} номер слота
- пример: “moduleBox/stepper_0”
Команды
- moveTo - Установка целевой позиции. В качестве значения может быть передано целочисленное число шагов или число с плавающей точкой от нуля до единицы, важно чтобы был задан параметр maxPos.
- setMaxSpeed - Установка максимальной скорости вращения двигателя, целочисленное число .
- setAcceleration - Установка ускорения. Целочисленное число .
- runSpeed - Режим работы с постоянной скоростью. Целочисленное число
- stop - Команда для остановки двигателя. Пример:
;уствновить целевую позицию в 10000 шагов
moduleBox/stepper_0/moveTo:10000
;установить максимальное ускорение в 1000 шаг/сек^2
moduleBox/stepper_0/setAcceleration:1000
;остановть двигатель
moduleBox/stepper_0/stopОпции
Доступные опции:
- sensorNum - число(int), количество концевых датчиков, один или два.
- sensorSlot - число(int), слот к которому подключены концевые датчики.
- sensorDownInverse - флаг, инверсия нижнего датчика.
- sensorUpInverse - флаг, инверсия верхнего датчика.
- dirInverse - флаг, инверсия направления вращения двигателя.
- maxSpeed - число(int), максимальная скорость вращения двигателя в .
- acceleration - число(int), установка ускорения. Единица измерения .
- maxPos - число(int), максимальная позиция в шагах. Программное ограничение хода, также применяется при управлении позицией через переменную с плавающей точкой.
- floatReport - флаг, модуль будет рапортовать в виде числа с плавающей точкой, от нуля до единицы.
- topic - строка, нестандартный топик событий и действий. Пример
;максимальная корость 5000 шагов в секунду, ускорение 5000 шаг/сек^2, соответсвенно для достижения максимальной скорости потребуется 1 секунда. Два датчика подключен к слону номер 1.
options = max_speed:5000, acceleration:5000, sensor_num:2, sensor_slot:1