Содержание

@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. Параметры передаются в виде объекта со свойствами:

Если какие-либо поля не определены или объект 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 принимаются значения: