Содержание

@amperka/servo

Модуль для работы с сервоприводами. Библиотека позволяет управлять привычными сервомоторами с интерфейсом PDM (Pulse Duration Modulation) двух видов:

// Создаём объект для работы с сервоприводом на пине P13
var myServo = require('@amperka/servo').connect(P13);
 
// Устанавливаем вал сервопривода в угол 0°
myServo.write(0);
 
// Ждём две секунды перед следующим действием
setTimeout(function() {
  // Устанавливаем вал сервопривода в угол 90°
  myServo.write(90);
  // Ждём ещё две секунды перед следующим действием
  setTimeout(function() {
    // Устанавливаем вал сервопривода в угол 180°
    myServo.write(180);
  }, 2000);
}, 2000);

connect(pin[, opts])

Возвращает новый объект Servo для работы с сервомотором подключённому к пину pin.

Параметр opts задаёт характеристики сервопривода. Ожидается объект с полями:

Если какие-либо поля не определены или объект opts вовсе не передан, используются значения по умолчанию. Будьте аккуратны с заданием длин импульсов. Выход за пределы длин, поддерживаемых сервоприводом может привести к его сгоранию.

Servo

Класс для работы с сервоприводом. Чтобы создать экземпляр класса, используйте функцию connect.

Servo.write(value[, units])

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

// Создаём объект для работы с сервоприводом на пине P13
var myServo = require('@amperka/servo').connect(P13);
 
myServo.write(120);
myServo.write(900, 'us');
myServo.write(1.15, 'ms');

Servo.release()

Отпускает сервопривод. После отключения вал сервопривода вращается свободно под действием внешних сил.

// Создаём объект для работы с сервоприводом на пине P13
var myServo = require('@amperka/servo').connect(P13);
 
// Устанавливаем вал сервопривода в угол 90°
myServo.write(90);
 
// Ждём пять секунд перед следующим действием
setTimeout(function() {
  // Отпускаем сервопривод
  myServo.release();
  // Ждём ещё пять секунд перед следующим действием
  setTimeout(function() {
    // Устанавливаем вал сервопривода в угол 180°
    myServo.write(180);
  }, 5000);
}, 5000);