// Подключаем сервопривод к пину 9 через библиотеку Servo var servo = require("@amperka/servo").connect(P9); // Переменная для хранения ID анимации var idAnimServo; // Создаём объект анимации // для плавного изменения параметров вращения мотора var animServo = require("@amperka/animation") .create({ // Начальное значение в градусах from: 0, // Конечное значение в градусах to: 180, // Продолжительность полного перехода // за 3 секунд мотор пройдёт диапазон значений от 0 до 180 duration: 3, // Шаг обновления: каждые 20 мс updateInterval: 0.02, }) .queue({ // Начальное значение в градусах from: 180, // Конечное значение в градусах to: 0, // Продолжительность полного перехода // за 3 секунд мотор пройдёт диапазон значений от 180 до 0 duration: 3, }); // Запускаем анимацию idAnimServo = animServo.play(); // Обработчик анимации animServo.on("update", function (val) { servo.write(val); // Если анимация закончилась, // Запускаем её повторно if (idAnimServo._intervalID == null) { idAnimServo = animServo.play(); } });