Программный модуль для работы с шаговыми двигателями, через сигналы 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

Пример подключения