@amperka/multiservo
Библиотека для работы с Multiservo Shield. Библиотека подходит для управления сервомоторами, которые удерживают угол и сервоприводами постоянного вращения, которые удерживают скорость.
// Настраиваем шину I2C PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 400000}); // Создаем новый объект MultiServo var mServo = require('@amperka/multiservo').connect(PrimaryI2C); // Создаем новый объект сервопривода, подключенны к // разъему 0 шилда var s0 = mServo.connect(0); // Устанавливаем привод на угол 0 s0.write(0); setTimeout(function(){ // Устанавливаем привод на угол 90 s0.write(90); setTimeout(function(){ // Устанавливаем привод на угол 180 s0.write(180); }, 2000); }, 2000);
Возвращает новый объект MultiServo
для работы с шилдом, взаимодействующим по шине i2c
. Если параметр i2c
не передан, используется PrimaryI2C
.
Имеет один метод attach
для инициализации сервоприводов.
Возвращает экземпляр объектаMultiServoDevice
для взаимодействия с сервоприводом на разъеме pin
. Опционально можем указать опции конкретного привода в параметре opts
. Параметры передаются в виде объекта со свойствами:
pulseMin
— минимальная поддерживаемая приводом длина импульса в миллисекундах.pulseMax
— максимальная поддерживаемая приводом длина импульса в миллисекундах.valueMin
— значение для методаwrite
, соответствующее минимальной длине импульса.valueMax
— значение для методаwrite
, соответствующее максимальной длине импульса.
Если какие-либо поля не определены или объект opts
вовсе не передан, используются значения по умолчанию. Будьте аккуратны с заданием длины импульсов. Выход за пределы длины, поддерживаемой сервоприводом может привести к его выгоранию.
Для сервоприводов, которые удерживают угол, используйте valueMin
и valueMax
для определения граничных значений поворота вала в градусах.
А для сервомоторов постоянного вращения в valueMin
и valueMax
удобно задавать условные величины -1
и 1
или известную из характеристик привода угловую скорость.
// Настраиваем шину I2C PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 400000}); // Создаем новый объект MultiServo var mServo = require('@amperka/multiservo').connect(PrimaryI2C); // Создаем новый объект сервопривода, подключенны к // разъему 0 шилда var s0 = mServo.connect(0, //добавим изменения в пределы {pulseMin: 0.500, pulseMax: 2.500}); // Устанавливаем привод на угол 0 s0.write(0); setTimeout(function(){ // Устанавливаем привод на угол 90 s0.write(180); setTimeout(function(){ // Устанавливаем привод на угол 180 s0.write(0); }, 2000); }, 2000);
Класс для работы с сервоприводом, создаваемый методом attach
объекта Multiservo
.
Устанавливает угол сервопривода в значение value
, заданное в единицах units
. В качестве units
принимаются значения:
"ms"
— длина пульса в миллисекундах."us"
— длина пульса в микросекундах.- не задано — значение в условных единицах в диапазоне [
valueMin
;valueMax
].