Avr и серво что можно сделать. Простой контроллер управления серводвигателем

Опубліковано 25.07.2012

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

Как устроена сервомашинка

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

Характеристики сервоприводов

Размер и вес

Размеры бывают: “микро”, “мини”, “стандартный” и “гигант”. В пределах каждого класса размеры могут немного меняться. Средние размеры сервоприводов для справки:

  • Микро: 24мм x 12мм x 24мм, вес: 5-10 г.
  • Мини: 30мм x 15мм x 35мм, вес 25 г.
  • Стандарт: 40мм x 20мм x 37мм, вес: 50-60 г.

Скорость

Скорость сервоприводов измеряется временем поворота качалки сервопривода на угол 60 градусов при напряжении питания 4.8В и 6В. Например, сервопривод с параметром 0.22с/60° при 4.8В поворачивает вал на 60 градусов за 0.22с при напряжении питания 4.8В. Это не так быстро, как может показаться. Наиболее быстрые сервоприводы имеют время перемещения от 0.06 до 0.09с.

Угол поворота

Сервоприводы могут иметь угол поворота вала 60, 90, 180 градусов. Угол поворота ограничивается электроникой и механически. Существуют сервоприводы без ограничения, т.е. вращающиеся на 360 градусов. Если у Вас имеется сервопривод с рабочим диапазоном 60 градусов, то расширить его можно только изменив конструкцию сервомашинки. Иногда можно увеличить диапазон специальным образом исказив управляющий сигнал. Но это нестандартный и ненадежный способ.

Момент на валу

Момент сервопривода измеряется по весу груза в кг, который сервопривод может удерживать неподвижно на качалке с плечом 1 см. Указывают две цифры, для напряжения питания 4.8В и 6В. Например, если указано, что сервопривод развивает 10кг/см, значит, что на качалке длиной 1см сервопривод может развить усилие 10 кг, прежде чем остановится. Для качалки в 2см такой сервопривод сможет развить усилие 5кг, а на 5мм 20кг.

Цифровые и аналоговые сервоприводы

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

Управляющий сигнал

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

Таким образом, для управления сервоприводом нам потребуется формировать ШИМ с частотой 50 герц. При этом для положения “0” длительность импульса должна составлять 1000 микросекунд, а для положения “максимум” – 2000 микросекунды. Среднее положение – 1500 микросекунд.

Финалом наших изысканий будет плата сервотестера, работающая с двумя сервоприводами. Светодиоды отображают режим сервотестера. Формировать ШИМ будем использовать аппаратные возможности микроконтроллера ATMega8, а задающий сигнал будем формировать с учетом положения потенциометра.
Управляющие сигналы для сервоприводов формируются на ногах OC1A , OC1B .
Режимы переключаются кнопкой. Три светодиода отображают режим работы сервотестера.

  • Режим 1 – положение сервомашинок задается потенциометром
  • Режим 2 – задается среднее положение сервоприводов
  • Режим 3 – задающий сигнал циклически изменяется от одного крайнего положения к другому.

Питание сервотестера осуществляется от батарей напряжением 6..12В.

Исходный код

#include #include #include //=================================== АЦП ================================== //Инициализация АЦП: void adc_init(void){ ADCSRA = _BV(ADEN) | _BV(ADPS0) | _BV(ADPS1) | _BV(ADPS2); // prescaler = 128 } //Чтение канала АЦП: uint32_t adc_read(uint8_t ch){ ADMUX = _BV(REFS0) | (ch & 0x1F); // set channel (VREF = VCC) ADCSRA &= ~_BV(ADIF); // clear hardware "conversion complete" flag ADCSRA |= _BV(ADSC); // start conversion while(ADCSRA & _BV(ADSC)); // wait until conversion complete return ADC; // read ADC (full 10 bits); } int main() { char mode=0; // Режим - по умолчанию 0 int direct=0; uint16_t adc_result; #define ICR_MAX F_CPU/50 // ICR1(TOP) = fclk/(N*f) ; N-Делитель; f-Частота; 1000000/1/50 = 20000 #define OCR_MIN ICR_MAX/20 #define OCR_MAX ICR_MAX/10 #define OCR_CENTER (ICR_MAX/4/10)*3 // На порту кнопки включаем подтягивающий резистор DDRB &= ~(1<<4); PORTB |= (1<<4); // Настраиваем порт светодиодов DDRC = (1<<1) | (1<<2) | (1<<3); PORTC |= (1<<(mode+1)); // Настраиваем PWM на таймере 1 (выход на ногах PB1, PB2) TCCR1A = 0; // Отключаем PWM пока будем конфигурировать ICR1 = ICR_MAX; // Частота всегда 50 Гц // Включаем Fast PWM mode via ICR1 на Таймере 1 без делителя частоты TCCR1A = (1< 2) { mode = 0; } // Включаем нужный светодиод PORTC &= ~((1<<1) | (1<<2) | (1<<3)); PORTC |= (1<<(mode+1)); } switch (mode){ case 0:{ // Задаем положени сервомеханизма, в зависимости от положения потенциометра adc_result adc_result=adc_read(0); OCR1A = OCR_MIN+(adc_result * (OCR_MAX-OCR_MIN)/1024); OCR1B = OCR1A; break; } case 1:{ // Задаем центральное положение сервомеханизма direct=0; OCR1A = OCR_CENTER; OCR1B = OCR1A; break; } case 2:{ // Циклическое изменение положения сервомашинки if (direct==0){ OCR1A++; OCR1B++; if (OCR1A >= OCR_MAX) { direct=1; } } if (direct==1){ OCR1A--; OCR1B--; if (OCR1A <= OCR_MIN) { direct=0; } } _delay_ms(1); break; } } } }

В этой статье мы поговорим о сервоприводах в проектах Ардуино. Именно благодаря серводвигателям обычные электронные проекты становятся робототехническими. Подключение серво к Arduino проекту позволяет реагировать на сигналы датчиков каким-то точным движением, например, открыть дверцу или повернуть в нужную сторону сенсоры. В статье рассмотрены вопросы управления сервоприводами, возможные схемы подключения серво к ардуино, а также примеры скетчей.

Сервопривод – это такой вид привода, который может точно управлять параметрами движения. Другими словами, это двигатель, который может повернуть свой вал на определенный угол или поддерживать непрерывное вращение с точным периодом.

Схема работы сервопривода основана на использовании обратной связи (контура с замкнутой схемой, в котором сигнал на входе и выходе не согласован). В качестве сервопривода может выступать любой тип механического привода, в составе которого есть датчик и блок управления, который автоматически поддерживает все установленные параметры на датчике. Конструкция сервопривода состоит из двигателя, датчика позиционирования и управляющей системы. Основной задачей таких устройств является реализация в области сервомеханизмов. Также сервоприводы нередко используются в таких сферах как обработка материалов, производство транспортного оборудования, обработка древесины, изготовление металлических листов, производство стройматериалов и другие.

В проектах ардуино робототехники серво часто используется для простейших механических действий:

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

Конечно, сфера применения серво в реальных проектах гораздо шире, но приведенные примеры являются самыми популярными схемами.

Схема и типы сервоприводов

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

В реальных сервоприводов механизм управления гораздо сложнее и использует встроенные микросхемы-контроллеры. В зависимости от типа используемого механизма обратной связи выделяют аналоговые и цифровые сервоприводы. Первые используют что-то, похожее на потенциометр, вторые – контроллеры.

Вся схема управления серво находится внутри корпуса, управляющие сигналы и питание подаются, как правило, идут по трем проводам: земля, напряжение питания и управляющий сигнал.

Сервопривод непрерывного вращения 360, 180 и 270 градусов

Выделяют два основных вида серводвигателей – с непрерывным вращением и с фиксированным углом (чаще всего, 180 или 270 градусов). Отличие серво ограниченного вращения заключается в механических элементах конструкции, которые могут блокировать движение вала вне заданных параметрами углов. Достигнув угла 180, вал окажет воздействие на ограничитель, а тот отдаст команду на выключение мотора. У серводвигателей непрерывного вращения таких ограничителей нет.

Материалы шестерней сервопривода

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


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

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

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

Преимущества серводвигателей

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

Отличия серво и обычного двигателя

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

Отличия серво и шагового мотора

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

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

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

Стандартная частота, с которой подаются импульсы, равна 50 Гц, то есть 1 импульс в 20 миллисекунд. При таких значениях длительность составляет 1520 микросекунд, и сервопривод занимает среднее положение. Изменение длины импульса приводит к повороту сервопривода – при увеличении длительности поворот осуществляется по часовой стрелке, при уменьшении – против часовой стрелки. Имеются границы длительности – в Ардуино в библиотеке Servo для 0° установлено значение импульса в 544 мкс (нижняя граница), для 180° – 2400 мкс (верхняя граница).

(Использовано изображение с сайта amperka.ru)

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

Способ управления приводом часто по ошибке называют PWM/ШИМ, но это не совсем корректно. Управление напрямую зависит именно от длины импульса, частота их появления не так важна. Корректная работа будет обеспечена как при 40 Гц, так и при 60 Гц, вклад внесет только сильное уменьшение или увеличение частоты. При резком спаде сервопривод начнет работать рывками, при завышении частоты выше 100 Гц устройство может перегреться. Поэтому правильнее называть PDM.

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

При получении сигнала аналоговый сервопривод принимает решение, менять или нет положение, и по необходимости подает на мотор сигнал с частотой 50 Гц. За время реакции (20 мс) могут произойти внешние воздействия, которые изменят положение сервопривода, и устройство не успеет среагировать. Цифровой сервопривод использует процессор, который подает и обрабатывает сигналы с большей частотой – от 200 Гц, поэтому он может быстрее отреагировать на внешние воздействия, быстрее развивать нужную скорость и крутящий момент. Следовательно, цифровой сервопривод будет лучше удерживать заданное положение. При этом для работы цифрового сервопривода требуется больше электроэнергии, что повышает их стоимость. Большой вклад в цену делает и сложность их производства. Высокая стоимость – единственный недостаток цифровых сервоприводов, в техническом плане они намного лучше аналоговых устройств.

Подключение серводвигателя к ардуино

Сервопривод обладает тремя контактами, которые окрашены в разные цвета. Коричневый провод ведет к земле, красный – к питанию +5В, провод оранжевого или желтого цвета – сигнальный. К Ардуино устройство подключается через макетную указанным на рисунке образом. Оранжевый провод (сигнальный) подключается к цифровому пину, черный и красный – к земле и питанию соответственно. Для управления серводигателем не требуется подключение именно к шим-пинам – принцип управления серво мы уже описывали ранее.

Не рекомендуется подключать мощные серво напрямую к плате, т.к. они создают для схемы питания Arduino ток, не совместимый с жизнью – повезет, если сработает защита. Чаще всего симптомы перегрузки и неправильного питания сервопривода заключаются в “дергании” серво, неприятному звуку и перезагрузке платы. Для питания лучше использовать внешние источники, обязательно объединяя земли двух контуров.

Скетч для управления сервоприводом в Arduino

Управление сервоприводом напрямую через изменение в скетче длительности импульсов – достаточно нетривиальная задача, но у нас, к счастью, есть отличная библиотека Servo, встроенная в среду разработки Arduino. Все нюансы программирования и работы с сервоприводами мы рассмотрим в отдельной статье. Здесь же приведем простейший пример использования Servo.

Алгоритм работы прост:

  • Для начала мы подключаем Servo.h
  • Создаем объект класса Servo
  • В блоке setup указываем, к какому пину подключен серво
  • Используем методы объекта обычным для C++ способом. Самым популярным является метод write, которому мы подаем целочисленное значение в градусах (для сервопривода 360 эти значения будут интерпретироваться по-другому).

Пример простого скетча для работы с сервоприводом

Пример проекта, в котором мы сразу сначала устанавливаем серводвигатель на нулевой угол, а затем поворачиваем на 90 градусов.

#include Servo servo; // Создаем объект void setup() { servo.attach(9); // Указываем объекту класса Servo, что серво присоединен к пину 9 servo1.write(0); // Выставляем начальное положение } void loop() { servo.write(90); // Поворачиваем серво на 90 градусов delay(1000); servo.write(1800); delay(100); servo.write(90); delay(1000); servo.write(0); delay(1000); }

Скетч для двух сервпоприводов

А в этом примере мы работаем сразу с двумя сервоприводами:

#include Servo servo1; // Первый сервопривод Servo servo2; // Второй сервопривод void setup() { servo1.attach(9); // Указваем объекту класса Servo, что серво присоединен к пину 9 servo2.attach(10); // А этот servo присоединен к 10 пину } void loop() { // Выставялем положения servo1.write(0); servo2.write(180); delay(20); // Меняем положения servo2.write(0); servo1.write(180); }

Управление сервоприводом с помощью потенциометра

В этом примере поворачиваем серво в зависимости от значения, полученное от потенциометра. Считываем значение и преобразовываем его в угол с помощи функции map:

//Фрагмент стандартного примера использования библиотеки Servo void loop() { val = analogRead(A0); // Считываем значение с пина, к которому подключен потенциометр val = map(val, 0, 1023, 0, 180); // Преобразуем число в диапазоне от 0 до 1023 в новый диапазон - от 0 до 180. servo.write(val); delay(15); }

Характеристики и подключение SG-90

Если вы собрались купить самый дешевый и простой сервопривод, то SG 90 будет лушим вариантом Этот серво чаще всего используется в управлении небольшими легкими механизмами с углом поворота от 0° до 180°.

Технические характеристики SG90:

  • Скорость отработки команды 0,12с/60 градусов;
  • Питание 4,8В;
  • Рабочие температуры от -30С до 60 С;
  • Размеры 3,2 х 1,2 х 3 см;
  • Вес 9 г.

Описание SG90

Цвета проводов стандартные. Сервопривод стоит недорого, он не обеспечивает точных настроек начальных и конечных позиций. Для того, чтобы избежать лишних перегрузок и характерного треска в положении 0 и 180 градусов лучше выставлять крайние точки в 10° и 170°. При работе устройства важно следить за напряжением питания. При сильном завышении этого показателя могут повредиться механические элементы зубчатых механизмов.

Сервоприводы MG995 и MG996 tower pro

Серво MG995 является второй по популярности моделью сервоприводов, чаще всего подключаемых к проектам Arduino. Это относительно недорогие сервомоторы, обладающие гораздо лучшими характеристиками по сравнению с SG90.

Характеристики MG995

Выходной вал у MG995 поворачивается на 120 градусов (по 60 в каждом направлении), хотя многие продавцы указывают на 180 градусов. Устройство выполняется в пластиковом корпусе.

  • Вес 55 г;
  • Крутящий момент 8,5 кг х см;
  • Скорость 0,2с/60 градусов (при 4,8В);
  • Рабочее питание 4,8 – 7,2В;
  • Рабочие температуры – от 0С до -55С.

Описание MG995

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

MG996R похож на MG995 по своим характеристикам, только он выполняется в металлическом корпусе.

Переделка сервопривода в серво непрерывного вращения

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

Чтобы произвести вышеописанные действия, придется разобрать устройство и внести изменения в конструкцию.

В Ардуино IDE нужно создать небольшой скетч, который поставит качалку в среднее положение.

#include Servo myservo; void setup(){ myservo.attach(9); myservo.write(90); } void loop(){ }

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

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

Любой из методов переделки сервопривода в серво непрерывного вращения имеет свои недостатки. Во-первых, сложно настроить нулевую точку, любое движение может ее сбить. Во-вторых, диапазон регулирования мал – при небольшом изменении ширины импульса скорость может значительно измениться. Расширить диапазон можно программно в Ардуино.

Заключение

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

В этой статье мы постарались раскрыть разные аспекты использования сервоприводов в проектах arduino: от подключения до написания скетчей. Выбрав самую простую модель серво (например, sg 90) вы сможете без труда повторить приведенные примеры и создать свои первые проекты, в которых что-то движется и изменяется. Надеемся, эта статья поможет вам в этом.

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

Совместное применение серводвигателей с радиомодулями примема-передачи не создает никаких трудностей, достаточно на стороне приемника просто подключить к серводвигателю соответствующий разъем, содержащий питающее напряжение и управляющий сигнал, и дело сделано.

Но если мы хотим управлять серводвигателем «вручную», например, с помощью потенциометра, нам необходим генератор импульсного управления. Ниже представлена достаточно простая схема генератора на основе интегральной микросхемы 74HC00.

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

Управления серводвигателем. Описание контроллера

Основой схемы является микросхема 74HC00 (IC1) представляющая собой 4 логических элемента И-НЕ. На элементах IC1A и IC1B создан генератор, на выходе которого образуются импульсы с частотой 50 Гц. Эти импульсы активируют RS-триггер, состоящий из логических элементов IC1C и IC1D.

С каждым импульсом идущим с генератора выход IC1D устанавливается в «0» и конденсатор С2 разряжается через резистор R2 и потенциометр P1. Если напряжение на конденсаторе С2 снижается до определенного уровня, то RC-цепь переводит элемент в противоположное состояние. Таким образом, мы на выходе получаем прямоугольные импульсы с периодом 20 мс. Ширина импульсов устанавливается потенциометром P1.

Например, сервопривод Futaba S3003 изменяет угол вращения вала на 90 градусов за счет управляющих импульсов продолжительностью от 1 до 2 мс. Если мы изменим ширину импульса от 0,6 до 2 мс, то угол поворота составит до 120 °. Компоненты в схеме подобраны таким образом, что выходной импульс находится в диапазоне от 0,6 до 2 мс, и поэтому угол установки составляет 120 °. Серводвигатель S3003 от Futaby имеет достаточно большой крутящий момент, и ток потребления может составлять от десятков до сотен мА в зависимости от механической нагрузки.

Конструкция

Схема управления серводвигателем собрана на двусторонней печатной плате размером 29 х 36 мм. Монтаж очень простой, так что со сборкой устройства вполне может справиться даже начинающий радиолюбитель.

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

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


Устройство сервопривода

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

Управление происходит через печатную плату, к которой подключен мотор постоянного тока и потенциометр (датчик). Внутри блока управления также находятся шестерни редуктора.



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


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





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

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


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


Основные технические характеристики сервопривода

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


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


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


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


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




Виды сервоприводов

Сервоприводы бывают цифровые и аналоговые.

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



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


Подключение к Arduino

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





Красный кабель отвечает за питание сервопривода. Коричневый - за заземление. Желтый – подключается непосредственно к плате Arduino и предназначен для передачи управляющего сигнала.

Подключение сервопривода к плате Arduino производится через ШИМ-выводы.



Итак, черный провод подключается к любому GND-пину.

Красный кабель питания (VTG) - к соответствующему выводу для подключения питания.

Белый сигнальный кабель – к ШИМ-выводу.


Питание сервоприводов

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

Обеспечить питание сервопривода от дополнительно приобретенного блока питания, например, 5 или 6 В;

При отсутствии блока питания с нужным напряжением, можно использовать стабилизатор.

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


Количество сервоприводов

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





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


Библиотека Servo

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

На сегодняшний день уже написаны программы для самых разных целей. Библиотеки можно подобрать по ссылке .

На платах Arduino за исключением модели Arduino Mega обращение к библиотеке отключает функцию analogWrite(PWM) на пинах 9 и 10. Наличие подключения сервопривода или отсутствие такового при этом роли не играет. На платах Arduino Mega можно подключить до 12 сервомоторов без отключения функции PWM.


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



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


Управляющий сигнал

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

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


Управляющие команды

Управление сервоприводом через библиотеку основано на следующих командах:

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


Невозможность поворота на заданный угол

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


Настройки начальной и конечной позиции

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




Заключение

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

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



В данной статье рассмотрим устройство, принцип работы, характеристики и габаритные размеры сервоприводов.

Определение понятия сервопривод

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

Используемые компоненты (купить в Китае):

Полезная вещь для проверки сервориводов

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

Приступим к разбору.
Для подключения к контроллеру от сервопривода тянется 3 провода обжатых чаще всего стандартным 3 пиновым разъемом с шагом 2.54мм (1). Цвета проводов могут варьироваться. Коричневый или черный - земля (минус), красный - плюс источника питания, оранжевый или белый - управляющий сигнал. Об управляющих сигналах расскажу чуть позже.
Итак, сигнал приходит на плату которая и будет данный сигнал преобразовывать в импульсы посылаемые непосредственно на двигатель (2). К ней мы вернемся чуть позже.
Наконец-то мы дошли до той детали, благодаря которой мы и можем считывать и задавать угол поворота сервопривода (3). В интернете нашел отличную GIFку демонстрирующую принцип работы потенциометра.

Принцип работы потенциометра прост. Потенциометр имеет 3 вывода. На крайние выводы подается плюс и минус питания (полярность не имеет значения), между выводами имеется резистивное вещество, по которому и движется ползунок соединенный со средним выводом. В нашем случае договоримся что на крайнем левом у нас плюс, на крайнем правом минус. Вращая крутилку из левого крайнего положения в крайнее правое положение мы увеличиваем сопротивление, а вместе с тем и уменьшаем напряжение от входного до условно минимального, которое будем снимать со среднего вывода. Значение минимального напряжения будет зависеть от величины максимального сопротивления у конкретно взятого потенциометра. В рассматриваемых нами сервоприводах чаще всего устанавливают потенциометры на 5 килоОм.
С устройством мы разобрались, теперь вернемся к сервоприводу. Крутилка сервопривода у нас состыкована с выходным валом сервопривода, следовательно при повороте выходного вала мы меняем значение на потенциометре. Условно примем входное напряжение (ручка потенциометра в крайнем правом положении) равное пяти вольтам, пускай при крайнем левом положении потенциометр погасит все напряжение и минимальное напряжение будет равным нулю, а в средней точке тогда у нас будет два с половиной вольта. Из данных условий у нас получается что при угле в 180° на выходе потенциометра у нас 5 вольт, при 90° 2,5 вольта, а при 0° 0 вольт. Для чего я это так подробно рассказываю? Возвращаемся снова к управляющей плате.
Сервопривод находится в положении 0°. На вход платы управления мы подаем управляющий сигнал который несет в себе информацию о повороте сервопривода на 90°. Электронная начинка платы считывает показания потенциометра, на потенциометре видит 0 вольт, а в программе забито что должно быть 2,5. Вот и весь смысл. Плата анализирует разницу, затем выбирает направление вращения мотора и будет вращать его до тех пор пока напряжение на выходе потенциометра не станет равным двум с половиной вольтам.
Едем дальше. Чтоб не листать страницу снова вверх, в поисках картинки, приведу её ещё раз.

Микромоторчик (4) не в состоянии развить мощное усилие на валу (момент), однако обладает высокой скоростью вращения. Для преобразования высокой угловой скорости с малым моментом в низкую с высоким, которая нам как раз и нужна, следует использовать редуктор. Редуктор представлен шестернями соединяющими вал моторчика и выходной вал (5). Шестерня с меньшим количеством зубцов ведет шестерню с большим. от этого снижается скорость но повышается момент, Более наглядно понять принцип работы редуктора можно взяв в руки сервопривод и попытаться повернуть качалку сервопривода. Сложно? Конечно, ведь с обратной стороны редуктор превращается в мультипликатор, механическое устройство которое наоборот преобразует низкооборотный мощный момент в высокооборотный слабый.


Основные характеристики сервоприводов:

. Усилие на валу

Усилие на валу, он же момент это один из самых важных показателей сервопривода и измеряется в кг/см. В характеристиках обычно указывается для двух вариантов напряжения питания, чаще всего для 4.8В и 6.0В.
Момент в 15 кг/см означает что сервопривод способен удержать неподвижно в горизонтальном положении качалку с плечом в 1 см и подвешенным к ней грузом массой 15 кг либо же удержать груз в 1 кг на качалке с плечом в 15 см.
Длина плеча качалки обратно пропорциональна массе удерживаемого груза. Для данного привода при длине в 2 см мы получим 7.5 кг, а уменьшив длину рычага до 0,5 см получим уже целых 30кг

. Скорость поворота

Скорость поворота также является одной из самых важных характеристик. Ее принято указывать во временном эквиваленте требуемом для изменения положения выводного вала сервопривода на 60°. Данную характеристику также чаще всего указывают для 4.8В и 6.0В.
Например характеристика 0.13сек/60° означает что поворот данной сервы на 60° может быть совершен минимум за 0.13 секунды.

. Тип сервоприводов

Цифровые либо аналоговые

. Напряжение питания

Для большинства хоббийных сервоприводов колеблется в диапазоне от 4.8 до 7.2В

. Угол поворота

Это максимальный угол на который может повернуть выходной вал. Сервоприводы по углам поворота в основном бывают на 180° и 360°.

. Сервопривод постоянного вращения

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

. Тип редуктора

Редукторы сервопривода выполняют из металла, карбона, пластика либо компонуют из металлических и пластиковых шестерней.

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

Типоразмеры сервоприводов:

Сервоприводы делятся на 4 основных типоразмера. Далее приводятся типы сервоприводов с указанием веса и размеров. Размеры различных сервоприводов могут незначительно откланяться от приведенных ниже.

Микро: 24мм x 12мм x 24мм, вес: 8-10 г.

Мини: 30мм x 15мм x 35мм, вес 23-25 г.

Стандарт: 40мм x 20мм x 37мм, вес: 50-80 г.

Гигант: 49x25x40 мм, вес 50-90 г.

Цикл статей о сервоприводах:

Купить в России



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: