@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);

connect([i2c])

Возвращает новый объект MultiServo для работы с шилдом, взаимодействующим по шине i2c. Если параметр i2c не передан, используется PrimaryI2C.

MultiServo

Имеет один метод attach для инициализации сервоприводов.

connect(pin, opts)

Возвращает экземпляр объекта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);

MultiservoDevice

Класс для работы с сервоприводом, создаваемый методом attach объекта Multiservo.

Servo.write(value[, units])

Устанавливает угол сервопривода в значение value, заданное в единицах units. В качестве units принимаются значения:

  • "ms" — длина пульса в миллисекундах.
  • "us" — длина пульса в микросекундах.
  • не задано — значение в условных единицах в диапазоне [valueMin; valueMax].