Управление сервоприводом потенциометром. Подключаем сервопривод к Arduino. Переделка сервопривода в серво непрерывного вращения

Управление сервоприводом потенциометром. Подключаем сервопривод к Arduino. Переделка сервопривода в серво непрерывного вращения

26.04.2019

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

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

Но если мы хотим управлять серводвигателем «вручную», например, с помощью потенциометра, нам необходим генератор импульсного управления. Ниже представлена достаточно простая схема генератора на основе интегральной микросхемы 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 мм. Монтаж очень простой, так что со сборкой устройства вполне может справиться даже начинающий радиолюбитель.

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

Устройство и работа

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

1 — Шестерни редуктора
2 — Выходной вал
3 — Подшипник
4 — Нижняя втулка
5 — Потенциометр
6 — Плата управления
7 — Винт корпуса
8 — Электродвигатель постоянного тока
9 — Шестерня электродвигателя

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

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

Такой датчик получил название энкодера. В качестве энкодера может применяться потенциометр. Если бегунок потенциометра поворачивать, то будет изменяться его сопротивление. Значение этого сопротивления прямо пропорционально зависит от угла поворота потенциометра. Таким образом, есть возможность добиться установки определенного положения механизма.

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

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

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

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

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

При необходимости создания управления несколькими группами сервоприводов используют контроллеры с ЧПУ, которые собраны на схемах программируемых логических контроллеров. Такие сервоприводы способны обеспечить крутящий момент 50 Н*м, мощностью до 15 киловатт.

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

Асинхронные способны точно выдерживать скорость даже на очень низких оборотах.

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

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

Рассмотрим основные параметры, которые характеризуют сервоприводы:

  • Усилие на валу . Этот параметр является крутящим моментом. Это наиболее важный параметр сервопривода. В паспортных данных чаще всего указывается несколько значений момента для разных величин напряжения.
  • Скорость поворота также является важной характеристикой. Она указывается в эквиваленте времени, необходимом для изменения позиции выходного вала привода на 60 градусов. Этот параметр также могут указывать для нескольких значений напряжения.
  • Тип сервоприводов бывает аналоговый или цифровой.
  • Питание . Основная часть сервоприводов функционирует на напряжении 4,8-7,2 вольта. Питание подается чаще всего по трем проводникам: белый – сигнал управления, красный – напряжение работы, черный – общий провод.
  • Угол поворота – это наибольший угол, на который выходной вал способен повернуться. Чаще всего этот параметр равен 180 или 360 градусов.
  • Постоянного вращения . При необходимости обычный сервопривод можно модернизировать для постоянного вращения.
  • Материал изготовления редуктора сервоприводов бывает различным: карбон, металл, пластик, либо комбинированный состав. Шестерни, выполненные из пластика, не выдерживают ударных нагрузок, однако обладают высокой износостойкостью. Карбоновые шестерни намного прочнее пластмассовых, но имеют высокую стоимость. Шестерни из металла способны выдержать значительные нагрузки, падения, но имеют низкую износостойкость. Выходной вал редуктора устанавливают по-разному на разных моделях: на втулках скольжения, либо на шариковых подшипниках.


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

Применение

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

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

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

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

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

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

Сервопривод отопления

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


1 — Блок питания
2 — Комнатные термостаты
3 — Коммутационный блок
4 — Серводвигатели
5 — Подающий коллектор
6 — Обход
7 — Водяной теплый пол
8 — Обратный коллектор
9 — Датчик температуры воды
10 — Циркулярный насос
11 — Шаровый клапан
12 — Регулировочный клапан
13 — Двухходовой термостатический клапан

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

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

Привод механически соединен с клапаном для его управления. Клапаны могут быть двух- и трехходовыми. Двухходовой клапан может изменять температуру воды в системе. Трехходовой клапан способен поддерживать температуру неизменной, однако изменяет потребление горячей воды, которая подается в контуры. В устройстве трехходового клапана имеется два входа для горячей воды (трубы подачи) и выход обратной воды, через который подается смешанная вода с заданной температурой.

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

Сервоприводы багажника

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

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

Электрический привод выполняется с разными способами управления:

  • Рукояткой на крышке багажника.
  • Кнопкой на панели двери водителя.
  • С пульта сигнализации.

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

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

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

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

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

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

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

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

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

Иными словами:

    Сервопривод получает на вход значение управляющего параметра. Например, угол поворота

    Блок управления сравнивает это значение со значением на своём датчике

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

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

Типичный хобби-сервопривод изображён ниже.

Каким же образом устроены сервоприводы?

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

Сервоприводы имеют несколько составных частей.

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

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

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

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

Теперь давайте посмотрим, как управлять сервоприводом извне.

Управление сервоприводом. Интерфейс управляющих сигналов

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

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

Чаще всего в хобби-сервах импульсы производятся с частотой 50 Гц. Это значит, что импульс испускается и принимается раз в 20 мс. Обычно при этом длительность импульса в 1520 мкс означает, что сервопривод должен занять среднее положение. Увеличение или уменьшение длины импульса заставит сервопривод повернуться по часовой или против часовой стрелки соответственно. При этом существуют верхняя и нижняя границы длительности импульса. В библиотеке Servo для Arduino по умолчанию выставлены следующие значения длин импульса: 544 мкс - для 0° и 2400 мкс - для 180°.

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

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

На что ещё стоит обратить внимание, так это на путаницу в терминологии. Часто способ управления сервоприводами называют PWM/ШИМ (Pulse Width Modulation) или PPM (Pulse Position Modulation). Это не так, и использование этих способов может даже повредить привод. Корректный термин - PDM (Pulse Duration Modulation). В нём крайне важна длина импульсов и не так важна частота их появления. 50 Гц - это норма, но сервопривод будет работать корректно и при 40, и при 60 Гц. Единственное, что нужно при этом иметь в виду - это то, что при сильном уменьшении частоты он может работать рывками и на пониженной мощности, а при сильном завышении частоты (например, 100 Гц) может перегреться и выйти из строя.

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

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

Крутящий момент и скорость поворота

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

Момент силы, или крутящий момент - векторная физическая величина, равная произведению радиус-вектора, проведенного от оси вращения к точке приложения силы, на вектор этой силы. Характеризует вращательное действие силы на твёрдое тело.

Проще говоря, эта характеристика показывает, насколько тяжёлый груз сервопривод способен удержать в покое на рычаге заданной длины. Если крутящий момент сервопривода равен 5 кг×см, то это значит, что сервопривод удержит на весу в горизонтальном положении рычаг длины 1 см, на свободный конец которого подвесили 5 кг. Или, что эквивалентно, рычаг длины 5 см, к которому подвесили 1 кг.

Скорость сервопривода измеряется интервалом времени, который требуется рычагу сервопривода, чтобы повернуться на 60°. Характеристика 0,1 с/60° означает, что сервопривод поворачивается на 60° за 0,1 с. Из неё несложно вычислить скорость в более привычной величине, оборотах в минуту, но так сложилось, что при описании сервоприводов чаще всего используют такую единицу.

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

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

Форм-фактор

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

    маленькие

    стандартные

Обладают они при этом следующими характерными габаритами:

Бывают ещё так называемые сервоприводы «специального вида» с габаритами, не попадающими в данную классификацию, однако процент таких сервоприводов весьма мал.

Внутренний интерфейс

Сервоприводы бывают аналоговые и цифровые. Так в чём же их отличия, достоинства и недостатки?

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

Оба типа сервопривода принимают одинаковые управляющие импульсы. После этого аналоговый сервопривод принимает решение, надо ли изменять положение, и в случае необходимости посылает сигнал на мотор. Происходит это обычно с частотой 50 Гц. Таким образом получаем 20 мс - минимальное время реакции. В это время любое внешнее воздействие способно изменить положение сервопривода. Но это не единственная проблема. В состоянии покоя на электромотор не подаётся напряжение, в случае небольшого отклонения от равновесия на электромотор подаётся короткий сигнал малой мощности. Чем больше отклонение, тем мощнее сигнал. Таким образом, при малых отклонениях сервопривод не сможет быстро вращать мотор или развивать большой момент. Образуются «мёртвые зоны» по времени и расстоянию.

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

Материалы шестерней

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

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

Карбоновые шестерни более долговечны, практически не изнашиваются, в несколько раз прочнее нейлоновых. Основной недостатой - дороговизна.

Металлические шестерни являются самыми тяжёлыми, однако они выдерживают максимальные нагрузки. Достаточно быстро изнашиваются, так что придётся менять шестерни практически каждый сезон. Шестерни из титана - фавориты среди металлических шестерней, причём как по техническим характеристикам, так и по цене. К сожалению, они обойдутся вам достаточно дорого.

Коллекторные и бесколлекторные моторы

Существует три типа моторов сервоприводов: обычный мотор с сердечником, мотор без сердечника и бесколлекторный мотор.

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

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

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

Многие сервоприводы могут быть подключены к Arduino непосредственно. Для этого от них идёт шлейф из трёх проводов:

    красный - питание; подключается к контакту 5V или напрямую к источнику питания

    коричневый или чёрный - земля

    жёлтый или белый - сигнал; подключается к цифровому выходу Arduino.

Для подключения к Arduino будет удобно воспользоваться платой-расширителем портов, такой как Troyka Shield . Хотя с несколькими дополнительными проводами можно подключить серву и через breadboard или непосредственно к контактам Arduino.

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

Ограничение по питанию

Обычный хобби-сервопривод во время работы потребляет более 100 мА. При этом Arduino способно выдавать до 500 мА. Поэтому, если вам в проекте необходимо использовать мощный сервопривод, есть смысл задуматься о выделении его в контур с дополнительным питанием.

Рассмотрим на примере подключения 12V сервопривода:

Ограничение по количеству подключаемых сервоприводов

На большинстве плат Arduino библиотека Servo поддерживает управление не более 12 сервоприводами, на Arduino Mega это число вырастает до значения 48. При этом есть небольшой побочный эффект использования этой библиотеки: если вы работаете не с Arduino Mega, то становится невозможным использовать функцию analogWrite() на 9 и 10 контактах независимо от того, подключены сервоприводы к этим контактам или нет. На Arduino Mega можно подключить до 12 сервоприводов без нарушения функционирования ШИМ/PWM, при использовании большего количества сервоприводов мы не сможем использовать analogWrite() на 11 и 12 контактах.

Функционал библиотеки Servo

Библиотека Servo позволяет осуществлять программное управление сервоприводами. Для этого заводится переменная типа Servo . Управление осуществляется следующими функциями:

    attach() - присоединяет переменную к конкретному пину. Возможны два варианта синтаксиса для этой функции: servo.attach(pin) и servo.attach(pin, min, max) . При этом pin - номер пина, к которому присоединяют сервопривод, min и max - длины импульсов в микросекундах, отвечающих за углы поворота 0° и 180°. По умолчанию выставляются равными 544 мкс и 2400 мкс соответственно.

    write() - отдаёт команду сервоприводу принять некоторое значение параметра. Синтаксис следующий: servo.write(angle) , где angle - угол, на который должен повернуться сервопривод.

    writeMicroseconds() - отдаёт команду послать на сервоприводимульс определённой длины, является низкоуровневым аналогом предыдущей команды. Синтаксис следующий: servo.writeMicroseconds(uS) , где uS - длина импульса в микросекундах.

    read() - читает текущее значение угла, в котором находится сервопривод. Синтаксис следующий: servo.read() , возвращается целое значение от 0 до 180.

    attached() - проверка, была ли присоединена переменная к конкретному пину. Синтаксис следующий: servo.attached() , возвращается логическая истина, если переменная была присоединена к какому-либо пину, или ложь в обратном случае.

    detach() - производит действие, обратное действию attach() , то есть отсоединяет переменную от пина, к которому она была приписана. Синтаксис следующий: servo.detach() .

Все методы библиотеки Servo2 совпадают с методами Servo.

Пример использования библиотеки Servo

Вместо заключения

Сервоприводы бывают разные, одни получше - другие подешевле, одни надёжнее - другие точнее. И перед тем, как купить сервопривод, стоит иметь в виду, что он может не обладать лучшими характеристиками, главное, чтобы подходил для вашего проекта. Удачи в ваших начинаниях!

Опубліковано 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; } } } }

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

Обычно сервоприводы не расчитаны на полный оборот, вал может поворачиваться на ограниченный угол (чащевсего 180 градусов). Этого вполне достаточно, чтобы управлять рулевыми колесами или магипулятором. Поэтому и примеяют сервоприводы чаще всего для шарниров. Основным показателем мощности сервопривода является крутящий момент, обычно выражается в кг⋅см. Для длинных манипуляторов, которые должны подымать приличный вес, уже потребуются сервоприводы с крутящим моментом 30-40 кг⋅см и больше. Если же мы хотим с помощью нашего сервопривода совершать не очень тяжелую работу, то вполне достаточно самых простейших, на 1,8 или 3,2 кг⋅см.

Вообще, крутящий момент выражается в Н⋅м. Но для большей простоты вычислений его часто приводят к в кг⋅см (1 кг⋅см ~ 0.01 кг⋅м ~ 0.098 Н⋅м) Это усилие, которое может обеспечить сервопривод на определенном расстоянии от оси вращения. Т.е, например сервопривод с моментом 4 кг⋅см может поднять груз в 4 кг, в 1см от оси, или 400 грамм, но уже на расстоянии 10 см от оси. Если мы хоти сделать манипулятор, то нужно прикинуть вес движущихся частей и подбирать соответствующие сервоприводы для каждого сустава.

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

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

Запитываем сервопривод от пина “5V” (красный провод), землю подключаем к пину “Gnd” (черный провод). Управление (белый провод) можно подключить к любому из свободных выходов, например к пину номер 2 (выходов контроллера 0 и 1 используются для связи по последовательному интерфейсу, поэтому использовать их не рекомендуется)

Для управления сервоприводом используется стандартынй класс Servo . Нам требуется процедура attach() , которая служит для инициализации сервопривода и write() , для управления его движением:

#include // Подключаем библиотеку для работы с сервоприводом

servo1.write(90); // Даем команду сервоприводу принять положение в 90 градусов,которое соответствует среднему положению

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

Servo servo1; // Создаем один объект типа «сервопривод»

int angle = 0; // Переменная,в которой хранится положение сервопривода

servo1.attach(2); // Объясняем контроллеру, что управляющий провод сервопривода подключен к пину 2



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows