Управляем сервомашинкой

Для самодельщиков в мире всяких «прибамбасиков» придумана интересная штучка: если надо что-то где-то подвинуть или повернуть очень аккуратненько, то для этого есть сервомашинка.

serv0

Сервомашинка, рулевая машинка или просто «серва» — для «машинки» есть много названий…
На самом деле, это моторчик с редуктором, способный не только поворачивать выходной вал строго в заданное положение (на определенный угол), но и удерживать его там, не обращая внимания на внешние воздействия.
Это нужно многим, но особо ярко наблюдается в потребностях авиа- и авто- моделистов, для управления положениями закрылков, рулей, колес и проч.
На выходной вал обычно, насаживают “качалку” – пластиковый рычаг, диск или крест, с отверстиями для закрепления тяг рулей высоты, глубины или «ног робота».
Чтобы отслеживать изменения положения вала и воспринимать сигналы управления рулевые машинки кроме мотора имеют в своем составе управляющую электронику:
Вал с качалкой жёстко связан с движком переменного резистора. Резистор включен в схему контроля и сообщает ей своим сопротивлением о текущем положении вала. На схему, в свою очередь, поступают сигналы управления, сообщающие в какое положение нужно повернуть выходной вал (а с ним и резистор). Схема подаёт питание на мотор и поворачивает его вал до требуемого положения и удерживает там, даже если что-то извне будет этому препятствовать.

Рассмотрим наиболее массовый (простейший) вариант — аналоговой машинки. В таком варианте угол поворота задаётся длительностью импульсов идущих с определённой частотой. У такой «штучки» есть три провода:
— земля (обычно черный, иногда коричневый),
— питание +5 вольт (красный),
— сигнальный (оранжевый, желтый или белый).

Как указано выше — управление импульсное по сигнальному проводу. Угол поворота вала моторчика пропорционален длительности «единичного» импульса. Чтобы удерживать определённую позицию – импульс должен повторяться. Так как импульс подается на внутреннюю электронику сервомашинки — достаточно обычного ТТЛ сигнала. Так что сигнальный провод можно подключать прямо на выход микроконтроллера.
По питанию ток может быть значительным: моторчик питается от пяти вольт и может потреблять много миллиампер.

Ниже на рисунках показана зависимость угла поворота вала сервомашинки от длительности управляющего импульса. При изменении длительности импульса от 500 до 2000 мкс, вал машинки поворачивается на угол от нуля до 180 градусов.

SG-90 _04

В состав библиотек Arduino IDE входит библиотека Servo, которая минимизирует умственные затраты для программной реализации управления сервомашинкой. Ниже приведен пример Sweep, который реализует циклический поворот вала до 180 градусов с обратным возвращением на 0.

// Sweep
// by BARRAGAN <http://barraganstudio.com> 
// This example code is in the public domain.

#include <Servo.h> 
 
Servo myservo;  // create servo object 
                // maximum 8 servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 
} 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees in steps of 1 degree 
  {                                   
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
} 

В скетче после подключения библиотеки обозначается вывод Arduino, к которому подключен сигнальный вывод серомашинки (в примере это 9).
Далее в цикле (loop()) запускаются по очереди два цикла поворота вала до 180 градусов и обратно.

Стоит обратить внимание на то, что объектов для управления сервомашинками может быть не более восьми.
Так же примечательна пауза между импульсами в 15 мс. Это пауза для отработки мотором поворота. Периодичностью импульсов можно «поиграться» — это будет влиять на стабильность удержания вала машинки в установленном положении.

Управляем сервомашинкой: 1 комментарий

  1. К особенностям качественных рулевых машинок следует отнести наличие в них подшипников качения, а также тип материала, из которого изготовлен редуктор — пластик или металл. Материал корпуса сервомашинки тоже разнится, как и продуманность конструкции, общая прочность и ресурс.

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".