Что такое сервопривод (сервомотор) и как им управлять

Сервопривод – это привод, вал которого может встать в заданное положение или поддерживать заданную скорость вращения. Другими словами, валом сервопривода можно управлять, например, задавая ему положение в градусах или определенную частоту вращения.
servo.jpg
Сервоприводы используются в самых разных областях, например, в робототехнике они помогают моделировать различные движения роботов. Сервоприводы – эффективное решение для перемещения механизмов в пространстве.

Устройство сервопривода
Если говорить об основных элементах сервопривода, то он состоит из блока управления, мотора и датчика. 
Управление происходит через печатную плату, к которой подключен мотор постоянного тока и потенциометр (датчик). Внутри блока управления также находятся шестерни редуктора. 
servo2.jpg
Фактически сам привод представляет собой электрический мотор с редуктором, именно электромотор преобразует электричество в механическое действие. Но скорость вращения мотора не всегда подходит для достижения поставленных целей. Чтобы было возможно управлять вращением мотора, используется редуктор. В итоге он понижает скорость вращения выходного вала до нужного значения. Потенциометр контролирует получаемый на выходе результат.

Также из сервопривода выходят три провода. Два из них питают мотор, третий провод используется для подачи сигнала, который несет в себе заданное значение.

servo3.jpg

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

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

Основные технические характеристики сервопривода
Крутящий момент (Усилие на валу). Измеряется в кг/см. Представляет собой произведение силы на длину рычага. На практике крутящий момент отвечает за ускорение выходного вала и его способность преодолевать сопротивление вращению. Чем выше крутящий момент, тем больше возможностей у мотора реализовать свой потенциал.

Скорость поворота. Означает скорость, с которой выходной вал сервопривода меняет свое положение. Угол изменения положения указывается в градусах.

Угол поворота. Это максимальный угол, на который может повернуться выходной вал. Наиболее распространенные значения для этой характеристики: 180° и 360°.

Габариты сервопривода. Сервоприводы бывают маленькие, стандартные и большие. Стандартные сервоприводы самые недорогие. При отклонении габаритов от стандартных значений цена, как правило, меняется пропорционально такому отклонению.


Материал шестерней. Шестерни редуктора производятся из пластика, карбона, металла. Пластиковые шестерни легкие, но не предназначены для серьезных нагрузок. Карбоновые шестерни более прочные, но и более дорогие. Металлические шестерни – самые тяжелые, идеально подходят для максимальных нагрузок.
servo4.jpg

Виды сервоприводов
Сервоприводы бывают цифровые и аналоговые. 
По внешнему виду они почти не отличаются друг от друга. Основное отличие заключается в принципе управления мотором. У аналоговых сервоприводов управление происходит с помощью специальной микросхемы, цифровые сервоприводы обладают микропроцессором. Микросхема и микропроцессор способны принимать и анализировать управляющие импульсы. Только на микросхему они обычно поступают с частотой 50 Гц, а на микропроцессор – с частотой 200 Гц и более. В результате этого цифровой сервопривод мобильнее и четче реагирует на управляющий сигнал.
servo5.jpg
Цифровые сервоприводы – это новый шаг в развитии техники, и они характеризуются рядом преимуществ. К таким преимуществам относятся: высокая точность позиционирования, возможность более быстрого управления приводом, возможность поддержания постоянного крутящего момента.

Подключение к Arduino
Для достижения самых разных целей робототехники к программируемому контроллеру Arduino может быть подключен сервопривод. Подключение осуществляется через кабели, которые выходят из сервопривода. Обычно это три кабеля: красный; коричневый или черный; желтый, оранжевый или белый.

servo12.jpg

Красный кабель отвечает за питание сервопривода. Коричневый - за заземление. Желтый – подключается непосредственно к плате Arduino и предназначен для передачи управляющего сигнала. 
Подключение сервопривода к плате Arduino производится через ШИМ-выводы.
servo7.jpg
Итак, черный провод подключается к любому GND-пину.
Красный кабель питания (VTG) - к соответствующему выводу для подключения питания.
Белый сигнальный кабель – к ШИМ-выводу.

Питание сервоприводов
Большинство плат Arduino рассчитано на 500 мА. Исходя из этого, сервопривод является достаточно энергоемким компонентом, так как потребляет более 100 мА. Если в ходе проекта требуется использование мощного сервопривода или нескольких сервоприводов, то необходимо позаботиться об их дополнительном питании. Проблема дополнительного питания сервоприводов может быть решена следующим образом:
• Обеспечить питание сервопривода от дополнительно приобретенного блока питания, например, 5 или 6 В;
• При отсутствии блока питания с нужным напряжением, можно использовать стабилизатор.
Напрямую к Arduino можно подключать только маломощный сервопривод. В противном случае пользователя ожидают разные побочные эффекты: от перезагрузки платы до перегорания отдельных компонентов.

Количество сервоприводов
Количество подключаемых к плате Arduino сервоприводов ограничено. Большинство моделей Arduino предусматривает подключение 12 сервоприводов, Arduino Mega позволяет подключить до 48 сервоприводов. 

servo8.jpg

Управление сервоприводом

Библиотека Servo
Библиотека для сервопривода содержит в себе набор дополнительных команд, которые позволяют вводить программу в упрощенном виде.
На сегодняшний день уже написаны программы для самых разных целей. Библиотеки можно подобрать по ссылке http://arduino.cc/en/Reference/Libraries.
На платах Arduino за исключением модели Arduino Mega обращение к библиотеке отключает функцию analogWrite(PWM) на пинах 9 и 10. Наличие подключения сервопривода или отсутствие такового при этом роли не играет. На платах Arduino Mega можно подключить до 12 сервомоторов без отключения функции PWM.

Для управления сервоприводом предусмотрена библиотека Servo.h. 
servo9.jpg

Вызывается она через #include <Servo.h>. После подключения библиотеки становится возможным пользоваться списком, содержащихся в ней функций. С функциями библиотеки можно ознакомиться через меню «Файл/примеры». Для каждого сервопривода создается свой «объект» (servo), который прикрепляется к соответствующему цифровому пину. После этого программируемый контроллер Arduino готов отправлять управляющие сигналы на конкретный сервопривод. Передача сигналов производится постоянно, даже при «простое» сервопривода. Для приостановки передачи сигналов нужно отправить команду вручную.

Управляющий сигнал
Для управления сервоприводом управляющий сигнал приобретает решающее значение. Он представляет собой импульс, который имеет нужную ширину и посылается с соответствующей частотой. Ширину импульса можно вбивать в программном коде вручную, методом подбора достигнув точного угла, или использовать команды библиотеки, указывая нужный угол в градусах. У разных марок сервоприводов ширина импульса для поворота выходного вала на определенный угол может быть различна.
Импульсы отвечают как за движение сервопривода, так и за его неподвижное положение. Работа сервопривода происходит в замкнутом цикличном кругу посылаемых импульсов.

Управляющие команды
Управление сервоприводом через библиотеку основано на следующих командах:
• attach() — позволяет подключить определенный сервопривод к соответствующему пину;
• write() — на пин поступают значения для управления им;
• writeMicroseconds() — позволяет управлять сервоприводом путем передачи на него значений в микросекундах; 
• read() — считывает значение текущего положения сервопривода;
• attached() — контролирует подключение сервопривода к пину;
• detach() — отключает сервопривод от конкретного пина.


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

Невозможность поворота на заданный угол
Бывают случаи, когда поворот сервопривода на заданный угол невозможен. Например, на его пути возникает какая-либо преграда. Этой преградой может стать закрепленное на сервоприводе устройство или его часть. Упираясь в преграду, сервопривод начинает характерно жужжать. Чтобы решить данную проблему, в программу вносятся команды, ограничивающие перемещение сервопривода путем изменения угла перемещения.

Настройки начальной и конечной позиции
Иногда необходимо подкорректировать координаты начальной или конечной позиции. Это нужно когда значения датчика и фактического положения выходного вала расходятся относительно конечной позиции последнего. Например, выходной вал находится в конечной позиции, но датчик считает, что он еще ее не достиг и пытается заставить выходной вал продолжить движение. Возникает характерный шум. В этом случае начальная позиция не обязательно должна начинаться с 0°С, а конечная не обязательно должна заканчиваться на 180°C. Эти предельные значения можно немного сдвинуть на 5-10°C, и проблема будет решена.

servo10.jpg
Заключение
На сегодняшний день сервопривод – это необходимый элемент в робототехнике, с помощью которого воплощаются многие творческие проекты. Этот умный управляемый моторчик предназначен для моделирования движения. Пользоваться его функциями достаточно просто, уже написано множество программ, которые могут быть использованы в качестве трафарета для воплощения собственных идей. Сервопривод подключается к программируемому контроллеру Arduino. Все тонкости этого процесса подробно освещены как в этой статье, так и в других статьях, выложенных в сети.
Современные магазины предлагают большой выбор сервоприводов. Зная нужные характеристики, легко подобрать подходящую модель. 
servo11.jpg

Количество показов: 4967
08.08.2016

Возврат к списку