Модуль для работы с сервоприводами. Библиотека позволяет управлять привычными сервомоторами с интерфейсом 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);
Возвращает новый объект Servo для работы с сервомотором подключённому к пину pin.
Параметр opts задаёт характеристики сервопривода. Ожидается объект с полями:
pulseMin — минимальная поддерживаемая приводом длина импульса в миллисекундах.pulseMax — максимальная поддерживаемая приводом длина импульса в миллисекундах.valueMin — значение для метода write, соответствующее минимальной длине импульса.valueMax — значение для метода write, соответствующее максимальной длине импульса.
Если какие-либо поля не определены или объект opts вовсе не передан, используются значения по умолчанию. Будьте аккуратны с заданием длин импульсов. Выход за пределы длин, поддерживаемых сервоприводом может привести к его сгоранию.
valueMin и valueMax для определения граничных значений поворота вала в градусах.valueMin и valueMax удобно задавать условные величины -1 и 1 или известную из характеристик привода угловую скорость.
Класс для работы с сервоприводом. Чтобы создать экземпляр класса, используйте функцию connect.
Устанавливает угол сервопривода в значение value, заданное в единицах units. В качестве units принимаются значения:
"ms" — длина пульса в миллисекундах."us" — длина пульса в микросекундах.valueMin; valueMax].// Создаём объект для работы с сервоприводом на пине P13 var myServo = require('@amperka/servo').connect(P13); myServo.write(120); myServo.write(900, 'us'); myServo.write(1.15, 'ms');
Отпускает сервопривод. После отключения вал сервопривода вращается свободно под действием внешних сил.
// Создаём объект для работы с сервоприводом на пине P13 var myServo = require('@amperka/servo').connect(P13); // Устанавливаем вал сервопривода в угол 90° myServo.write(90); // Ждём пять секунд перед следующим действием setTimeout(function() { // Отпускаем сервопривод myServo.release(); // Ждём ещё пять секунд перед следующим действием setTimeout(function() { // Устанавливаем вал сервопривода в угол 180° myServo.write(180); }, 5000); }, 5000);