Сервопривод

Сервопривод полезен при построении различных систем в качестве движущегося элемента. В робототехнике используется совместно с ультразвуковым датчиком расстояния для сборки радара. Также может открывать и закрывать крышки, поднимать небольшие грузы или быть стрелочным индикатором.

Принцип работы

Конструктивно, электрический сервопривод состоит из следующих блоков:
1. Мотор
2. Редуктор
3. Потенциометр
4. Управляющая плата

Работает серводвигатель следующим образом. Внешний сигнал поступает на управляющую плату, которая контролирует скорость вращения мотора, преобразуя с его помощью электрическую энергию в механическую и создавая крутящий момент. Как правило, электродвигатели имеют достаточно большую скорость вращения и относительно небольшой крутящий момент. Чтобы снизить скорость и увеличить крутящий момент, исполь- зуют редуктор. Для контроля текущего положения, якорь сервопривода соединен с потенциометром, сопротивление которого зависит от угла поворота. Отклонение якоря от заданного положения, приводит к изменению сопротивления потенциометра. Управляющая плата следит за его сопротивлением и в случае изменения включает электромотор, возвращая якорь в исходное состояние. Обычно, сервоприводы могут поворачивать якорь, или как его еще называют - качалку, от 0° до 180°, как показано на рисунке ниже.

Стоит заметить, что даже параметры двух сервоприводов одного и того же производителя могут быть различны. То есть при подаче одного и того же управляющего импульса, угол поворота якоря будет немного отличаться. Поэтому, если важна точность, обычно подбирают значения отклонения под каждый отдельный сервопривод. Кроме того в положениях близких к крайним (0-10° и 170-180°) сервоприводы могут работать некорректно, издавать рычащий звук и быстро вибрировать. Такие режимы работы могут стать причиной быстрого выхода из строя и их надо избегать.Также стоит избегать чрезмерных механических нагрузок на якорь.

Подключение

Подключается сервопривод с помощью трех проводов, которые, как правило, имеют идентичную цветовую маркировку, вне зависимости от производителя. Иногда цвет может немного отличаться, но принцип маркировки остается неизменным:

G - Ground (земля, минус питания): коричневый/чёрный

V - Voltage (Напряжение, плюс питания) (+5 вольт): красный

S - Signal (Сигнальный): оранжевый/желтый/белый

Управлять сервоприводом можно, подключив сигнальный провод напрямую к выводу микроконтроллера. При этом можно не переживать об ограничении тока, потому что сигнальный провод используется сервоприводом лишь для получения управляющих импульсов. Питающие токи текут по черному и красному проводам. Подключать сервопривод к контроллеру DaVinci удобнее с использованием специальных трехконтактных разъемов, которые имеются как на плате контроллера, так и на шилдах.

Программа

В микроконтроллер необходимо загрузить следующую программу. Обратите внимание, для управления сервоприводом используется встроенная в среду библиотека, которая позволяет только указывать угол поворота сервопривода, а уже внутри идет пересчет в импульсы и передача их сервоприводу. Другие программы в качестве примеров даны в среде Arduino IDE: Файл - Примеры - Servo - Sweep/Knob.

#include "servo.h"

//Создаем объект сервопривода. 
Servo myservo;

 
void setup() {
  // Сервопривод подключен к пину 11.
  myservo.attach(11); 
 
}
 
void loop() {
 
  //Устанавливаем угол 0 градусов
  myservo.write(0);
  delay(1000);
 
  //Устанавливаем угол 90 градусов
  myservo.write(90);
  delay(1000);
 
  //Устанавливаем угол 180 градусов
  myservo.write(180);
  delay(1000);
}

После запуска программы наблюдайте за работой серводвигателя в крайних положениях. Часто он может вибрировать в положении 0° и 180° - это говорит о выходе за границы допустимых углов работы. Если такое происходит, нужно просто подобрать правильную длительность сигнала управляющего сигнала для угла 0° и для угла 180°. Для этого, достаточно явно указать минимальную и максимальную длительность при подключении сервопривода, например так: myservo.attach(11, 544, 2400). Попробуйте изменять значения длительности до тех пор, пока не убедитесь, что сервопривод работает штатно в крайних положениях. Всегда используйте подобранные значения при подключении именно этого сервопривода.