1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/x223222981-VarSpeedServo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.en.md

VarSpeedServo.h

Библиотека Arduino VarSpeedServo.h позволяет использовать до 8 сервоустройств, движущихся асинхронно (поскольку она использует прерывания). Кроме того, можно установить скорость движения, опционально ждать (блокировать) завершение движения сервоустройства и создавать последовательности движений, выполняющиеся асинхронно.

Этот код является адаптацией стандартной библиотеки Arduino Servo.h, которая впервые была адаптирована Корманом и опубликована на форуме Arduino для добавления возможности управления скоростью. Филипп ван Аллен обновил её для совместимости с Arduino 1.0+ и добавил возможность ожидания завершения движения.

  • Поддерживает до 8 сервоустройств
  • Разрешает одновременное асинхронное перемещение всех сервоустройств
  • Скорость движения может быть установлена
  • Функция write() запускает движение и может опционально ждать его завершения перед возвратом
  • Сервоустройству можно отправить последовательность движений (где каждое движение имеет положение и скорость)

Пример кода — одно сервоустройство двигается, ждет завершения первого движения, затем выполняет другое движение

#include <VarSpeedServo.h>

VarSpeedServo myservo;    // создание объекта сервоустройства для управления одним сервоустройством

void setup() {
  myservo.attach(9);  // подключение сервоустройства на пин 9 к объекту сервоустройства
}
``````cpp
void loop() {
  myservo.write(180, 30, true);        // движение до 180 градусов, скорость 30, ожидание завершения движения
  myservo.write(0, 30, true);          // движение до 0 градусов, скорость 30, ожидание завершения движения
}

Пример кода — два сервоустройства двигаются одновременно со различной скоростью, ждут завершения обоих и выполняют ещё одно движение

#include <VarSpeedServo.h>

// Создание объектов сервоустройств
VarSpeedServo myservo1;
VarSpeedServo myservo2;

void setup() {
  myservo1.attach(9);
  myservo2.attach(8);
}

void loop() {

  int LEF = 0;
  int RIG = 180;

  int SPEED1 = 160;
  int SPEED2 = 100;

  myservo1.write(LEF, SPEED1);     
  myservo2.write(LEF, SPEED2);
  myservo1.wait(); // ожидание завершения движения сервоустройства 1
  myservo2.wait(); // ожидание завершения движения сервоустройства 2

  myservo1.write(RIG, SPEED1);     
  myservo1.wait(); // ожидание завершения движения сервоустройства 1

  myservo1.write(LEF, SPEED1); 
  myservo2.write(RIG, SPEED2);  
  myservo1.wait();
  myservo2.wait();    

  myservo1.write(RIG, SPEED1);     
  myservo1.wait();

  delay(1000);

}

Дополнительные примеры включены в распределение и доступны в разделе Примеры Arduino.

Методы класса

Серво активируется путём создания экземпляра класса Servo с передачей желаемого пина методу attach(). Сервы пульсируются в фоновом режиме с использованием последнего записанного значения методом write().

Класс VarSpeedServo предназначен для манипулирования сервомоторами, подключенными к пинам Arduino. Методы: attach(pin) - Подключает сервомотор к пину. attach(pin, min, max) - Подключает к пину, устанавливая минимальное и максимальное значения в микросекундах. По умолчанию min равно 544, max равно 2400.

write(value)     - Устанавливает угол поворота сервы в градусах. Невалидный угол, который является валидным как импульс в микросекундах, рассматривается как импульс в микросекундах.
write(value, speed) - Скорость изменяет скорость перемещения к новому положению от 0 (полная скорость) до 255 (медленнее).
write(value, speed, wait) - Wait — это булево значение; если true, вызов функции блокирует выполнение до завершения движения.

writeMicroseconds() - Устанавливает ширину импульса сервы в микросекундах.
read()      - Получает последний записанный угол поворота сервы между 0 и 180.
readMicroseconds()  - Получает последнюю записанную ширину импульса сервы в микросекундах. (было read_us() в первой версии)
attached()  - Возвращает true, если серва подключена.
detach()    - Останавливает пульсацию подключенной сервы на её входном/выходном пине.

slowmove(value, speed) - То же самое, что write(value, speed), сохранено для совместимости с версией Korman.
stop() - Останавливает серву на текущем положении.```markdown

sequencePlay(sequence, sequencePositions); // воспроизводит циклическую последовательность, начиная с позиции 0 sequencePlay(sequence, sequencePositions, loop, startPosition); // воспроизводит последовательность с указанным количеством позиций; циклический режим, если значение true; начинается с указанной позиции sequenceStop(); // останавливает воспроизведение последовательности на текущей позиции wait(); // ожидает окончания движения isMoving(); // возвращает true, если серва все ещё движется

==========

* Скачайте .zip файл из раздела Releases на GitHub
* В Arduino выберите SKETCH > IMPORT LIBRARY... > ADD LIBRARY... и найдите .zip файл
* Это установит библиотеку в вашем каталоге My Documents (Windows) или Documents (Mac) под каталогом Arduino/libraries
* Вы также можете распаковать файл и установить его в указанный выше каталог libraries вручную
* Дополнительная информация о библиотеках доступна по адресу [arduino.cc/en/Guide/Libraries](http://arduino.cc/en/Guide/Libraries)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Библиотека управления рулевым механизмом Arduino Оптимизация начальной позиции на основе VarSpeedServo с сайта https://github.com/netlabtoolkit/VarSpeedServo. Развернуть Свернуть
LGPL-2.1
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/x223222981-VarSpeedServo.git
git@api.gitlife.ru:oschina-mirror/x223222981-VarSpeedServo.git
oschina-mirror
x223222981-VarSpeedServo
x223222981-VarSpeedServo
master