@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);
Возвращает новый объект 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);