- Сервопривод для Ардуино
- Схема и типы сервоприводов
- Сервопривод непрерывного вращения 360, 180 и 270 градусов
- Материалы шестерней сервопривода
- Преимущества серводвигателей
- Отличия серво и обычного двигателя
- Отличия серво и шагового мотора
- Сравнение с шаговым двигателем
- Где купить популярные серво SG90, MG995, MG996
- Управление сервоприводом
- Сервопривод постоянного вращения
- Области использования устройства
- Дополнительные примеры скетчей
- Подключение серводвигателя к ардуино
- Скетч для управления сервоприводом в Arduino
- Пример простого скетча для работы с сервоприводом
- Скетч для двух сервпоприводов
- Управление сервоприводом с помощью потенциометра
- ДОКУМЕНТАЦИЯ
- Документация
- Инициализация
- Плавный пуск (new!)
- Управление
- Расширитель серво PCA9685
- Библиотека Servo
- Сервопривод SG90
- Характеристики и подключение SG-90
- Описание SG90
- Сервоприводы MG995 и MG996 tower pro
- Характеристики MG995
- Описание MG995
- Конструкция
- Принцип работы цифровой конструкции
Сервопривод для Ардуино
Сервопривод — это тип привода, который может точно управлять параметрами движения. Другими словами, это двигатель, который может вращать свой вал на определенный угол или поддерживать непрерывное вращение с точным периодом.
Схема сервопривода основана на использовании обратной связи (замкнутый контур, в котором входные и выходные сигналы не согласованы). В качестве сервопривода может выступать любой тип механического привода, который включает в себя датчик и блок управления, который автоматически поддерживает все параметры, установленные на датчике.
Конструкция сервопривода состоит из двигателя, датчика положения и системы управления. Основная задача таких устройств — реализация в области сервомеханизмов. Сервоприводы также часто используются в таких областях, как погрузочно-разгрузочные работы, производство транспортного оборудования, деревообработка, производство листового металла, производство строительных материалов и др.
В проектах робототехники Arduino сервопривод часто используется для простейших механических действий:
- Поверните дальномер или другие датчики на определенный угол, чтобы измерить расстояние в узком поле зрения робота.
- Сделайте небольшой шаг ногой, пошевелите конечностью или головой.
- Создавать роботов-манипуляторов.
- Реализовать рулевой механизм.
- Откройте или закройте дверь, дверь или другой объект.
Конечно, сфера применения сервопривода в реальных проектах намного шире, но приведенные примеры являются наиболее популярными схемами.
Схема и типы сервоприводов
Принцип работы сервопривода основан на обратной связи одного или нескольких системных сигналов. Индикатор вывода отправляется на вход, где его значение сравнивается с эталонным действием и выполняются необходимые действия, например, двигатель выключается. Самая простая реализация — переменный резистор, управляемый валом: при изменении параметров резистора изменяются параметры тока, который подает двигатель.
В реальных сервоприводах механизм управления намного сложнее и использует встроенные контроллеры. В зависимости от типа используемого механизма обратной связи бывают аналоговые и цифровые сервоприводы. Первые используют что-то похожее на потенциометр, вторые используют контроллеры.
Вся схема сервоуправления расположена внутри корпуса, управляющие сигналы и питание подаются, как правило, по трем проводам: заземление, напряжение питания и управляющий сигнал.
Сервопривод непрерывного вращения 360, 180 и 270 градусов
Существует два основных типа серводвигателей: с непрерывным вращением и с фиксированным углом (чаще всего 180 или 270 градусов). Разница между сервоприводом ограниченного вращения заключается в механических элементах конструкции, которые могут блокировать движение вала за пределами заданных углов. Достигнутый угол 180, вал будет воздействовать на ограничитель и давать команду на остановку двигателя. Непрерывные серводвигатели таких ограничителей не имеют.
Материалы шестерней сервопривода
В большинстве сервомашинок соединение между валом и внешними элементами представляет собой шестерню, поэтому очень важно, из какого материала она сделана. Наиболее доступных вариантов два: металлические или пластиковые шестерни. В более дорогих моделях можно встретить элементы из карбона и даже титана.
Варианты из пластика, конечно, дешевле, проще в производстве и часто используются в недорогих моделях сервоприводов. Для образовательных проектов, когда слуга делает несколько движений, это не имеет большого значения. Но в серьезных проектах использование пластика невозможно, так как такие шестерни очень быстро изнашиваются под нагрузкой.
Металлические шестерни более надежны, но это однозначно сказывается как на цене, так и на весе модели. Экономные производители могут делать некоторые детали из пластика, а некоторые из металла, об этом тоже нужно помнить. И, конечно же, в более дешевых моделях даже наличие металлической шестерни не является гарантией качества.
Если у вас ограниченный бюджет, предпочтительны шестерни из титана или углерода. Легкие и надежные, эти сервоприводы широко используются для создания моделей автомобилей, дронов и самолетов.
Преимущества серводвигателей
Широкое распространение сервоприводов связано с тем, что они обладают стабильной работой, высокой помехоустойчивостью, небольшими размерами и широким диапазоном регулирования скорости. Важными особенностями сервоприводов являются способность увеличивать мощность и обеспечивать обратную связь по информации. Отсюда следует, что в прямом направлении схема представляет собой передатчик энергии, а в обратном направлении — передатчик информации, который используется для повышения точности управления.
Отличия серво и обычного двигателя
Включая или выключая обычный электродвигатель, мы можем создать вращательное движение и заставить двигаться колеса или другие объекты, прикрепленные к валу. Это движение будет непрерывным, но чтобы понять, на какой угол повернулся вал или сколько оборотов он сделал, необходимо будет установить дополнительные внешние элементы: энкодеры. Сервопривод уже содержит все необходимое для получения информации о текущих параметрах вращения и может отключиться при повороте вала на требуемый угол.
Отличия серво и шагового мотора
Важное различие между серводвигателем и шаговым двигателем — это способность работать при высоких ускорениях и при переменной нагрузке. К тому же серводвигатели более мощные. У шаговых двигателей нет обратной связи, поэтому эффект потери шага можно наблюдать, в серводвигателе потеря шага исключена — все нарушения будут фиксироваться и исправляться. При всех этих очевидных преимуществах серводвигатели дороже шаговых двигателей, имеют более сложную проводку и системы управления и требуют более квалифицированного обслуживания. Важно отметить, что шаговые двигатели и сервоприводы не являются прямыми конкурентами — каждое из этих устройств имеет свою специфическую область применения.
Сравнение с шаговым двигателем
Другой вариант точного позиционирования ведомых элементов без датчика обратной связи — использование шагового двигателя. В этом случае схема управления отсчитывает необходимое количество импульсов (шагов) от исходного положения (эта характеристика обусловлена характерным шумом шагового двигателя в 3,5-дюймовых приводах и CD / DVD при повторной попытке его чтения). В этом случае точное позиционирование обеспечивается параметрическими системами с отрицательной обратной связью, которые образуются взаимодействием соответствующих полюсов статора и ротора шагового двигателя.Опорный сигнал для соответствующей параметрической системы генерируется системой управления шаговым двигателем система, которая активирует соответствующий полюс статора.
Поскольку датчик обычно управляет ведомым элементом, электрический сервопривод имеет следующие преимущества перед шаговым двигателем
- не предъявляет особых требований к электродвигателю и коробке передач — они могут быть практически любого желаемого типа и мощности (а шаговые двигатели, как правило, бывают маломощными и тихоходными);
- гарантирует максимальную точность, автоматически компенсируя: механические (люфт в приводе) или электронные неисправности в приводе;
- постепенный износ привода, при этом шаговый двигатель требует для этого периодической регулировки;
- тепловое расширение накопителя (во время работы или сезонное), что стало одной из причин перехода на сервопривод для позиционирования головок в жестких дисках;
- обеспечить немедленное обнаружение неисправности (выхода из строя) привода (механического или электронного);
- максимально возможная скорость движения элемента (у шагового двигателя самая низкая максимальная скорость по сравнению с другими типами электродвигателей);
- затраты энергии пропорциональны сопротивлению элемента (шаговый двигатель постоянно запитан номинальным напряжением с запасом на возможную перегрузку);
Недостатки по сравнению с шаговым двигателем
- необходимость в дополнительном элементе — датчике;
- блок управления и логика его работы более сложны (требуется обработка результатов датчиков и выбор управляющего воздействия, а в центре контроллера шагового двигателя находится только счетчик);
- проблема фиксации: обычно она решается постоянным торможением подвижного элемента или вала электродвигателя (что приводит к потерям энергии) или использованием червячных / винтовых передач (конструктивное усложнение) (в шаговом двигателе каждый шаг задается сам мотор).
- сервоприводы обычно дороже, чем шаговые.
Однако возможно использование сервопривода на базе шагового двигателя или в дополнение к нему, в некоторой степени объединив их преимущества и исключив конкуренцию друг с другом (сервопривод выполняет грубое позиционирование в зоне покрытия соответствующая система шагового двигателя, причем последний выполняет окончательное позиционирование с относительно большим крутящим моментом и фиксирует положение).
В сервоприводе нет проблем с ремонтом, в отличие от шагового. Высокоточное позиционирование и поддержание в заданном положении обеспечивается работой электрической машины в клапанном режиме, суть которого сводится к ее работе в качестве источника энергии. В зависимости от несовпадения положения (и других координат электропривода) формируется силовая задача.
При этом несомненным плюсом сервопривода является энергоэффективность — ток подается только в том объеме, который необходим для удержания рабочего органа в определенном положении. В отличие от пошагового режима, когда применяется максимальное значение тока, определяющее угловую характеристику станка. Угловая характеристика станка аналогична небольшим отклонениям механической пружины, которая пытается «подтянуть» рабочий орган в нужную точку. В шаговом приводе чем больше смещение положения, тем больше сила при постоянном токе.
Где купить популярные серво SG90, MG995, MG996
Более дешевый сервопривод SG90 1,6 кг | Сервопривод SG90 и MG90S для Arduino по цене ниже 70 рублей |
Еще одна версия сервопривода SG90 Pro 9g от проверенного поставщика на Али | Сервопривод SG90 от надежного поставщика RobotDyn |
Серво-тестер | Несколько вариантов тестеров сервоприводов |
Защищенный сервопривод с крутящим моментом 15 кг | JX DC5821LV 21KG Servo Водонепроницаемый Core Full Mental Gear 1/8 1/10 RC Car Scaler Buggy Crawler TRAXXAS RC4WD TRX-4 SCX10 D90 |
MG996R MG996 Servo Metal Gear Servo для Futaba JR | Сервоприводы 13 кг 15 кг цифровые MG995 MG996 MG996R Servo Metal Gear |
Управление сервоприводом
Решающим фактором в управлении сервоприводами является управляющий сигнал, который представляет собой постоянную частоту и импульсы различной длительности. Длина импульса — один из важнейших параметров, определяющих положение сервопривода. Эту длину можно установить вручную в программе с помощью метода выбора угла или с помощью библиотечных команд. Для каждой марки устройства длина может быть разной.
При поступлении сигнала в схему управления генератор издает свой импульс, длительность которого определяется с помощью потенциометра. В другой части схемы сравнивается длительность подаваемого сигнала и сигнала от генератора. Если эти сигналы имеют разную длительность, включается электродвигатель, направление вращения которого определяется тем, какой из импульсов короче. Если длительность импульса такая же, двигатель останавливается.
Стандартная частота, с которой доставляются импульсы, составляет 50 Гц, то есть 1 импульс каждые 20 миллисекунд. При этих значениях продолжительность составляет 1520 микросекунд, а сервопривод находится в центральном положении. Изменение длительности импульса приводит к вращению сервопривода — при увеличении длительности вращение выполняется по часовой стрелке, при уменьшении — против часовой стрелки. Есть ограничения по длительности: в Arduino в библиотеке Servo для 0 ° значение импульса установлено на 544 мкс (нижний предел), для 180 ° — 2400 мкс (верхний предел).
важно учитывать, что настройки на конкретном устройстве могут незначительно отличаться от общепринятых значений. Для некоторых устройств среднее положение и длительность импульса могут составлять всего 760 мкс. Все принятые значения также могут незначительно отличаться из-за ошибки, которая может быть допущена при изготовлении устройства.
Метод управления приводом часто ошибочно называют ШИМ / ШИМ, но это не совсем правильно. Контроль напрямую зависит от длительности импульсов, частота их появления не так уж и важна. Правильная работа будет обеспечена как на 40 Гц, так и на 60 Гц, только резкое уменьшение или увеличение частоты будет способствовать. В случае резкого падения сервопривод начнет работать рывками; если частота завышена выше 100 Гц, устройство может перегреться. Поэтому правильнее называть его PDM.
Внутренний интерфейс можно разделить на аналоговые и цифровые сервоприводы. Внешних отличий нет — все отличия только во внутренней электронике. Аналоговый сервопривод внутри содержит специальную микросхему, цифровую — микропроцессор, который принимает и анализирует импульсы.
Получив сигнал, аналоговый сервопривод решает, менять положение или нет, и, при необходимости, посылает на двигатель сигнал с частотой 50 Гц.В течение времени реакции (20 мс) могут возникать внешние воздействия, которые будут измените положение сервопривода и устройство не успеет среагировать. Цифровой сервопривод использует процессор, который подает и обрабатывает сигналы с более высокой частотой — от 200 Гц, чтобы он мог быстрее реагировать на внешние воздействия, быстрее развивать требуемую скорость и крутящий момент. В результате цифровой сервопривод лучше удерживает заданное положение. Однако цифровой сервопривод требует большей мощности для работы, что увеличивает стоимость. Сложность их изготовления также сильно влияет на цену. Единственным недостатком цифровых сервоприводов является высокая стоимость, технически они намного лучше аналоговых устройств.
Демонстрационнаяпрограмма приведена ниже, показано, как использовать сервомоторов смикроконтроллером AVR. Работы программы очень проста, она начинается синициализации таймера и PWM.В начале фиксируеться сервопривод на 0 градусов, азатем перемещается на 90 градусов и подождатв некоторое время перемещается на135 градусов, и наконец, на 180градусов. Этот процесс повторяется до тех пор, пока привод подключен к питанию.
Параметры для корректного функционирования программы.
- Предохранитель LOW = 0xFF и предохранитель HIGH = 0xC9
- Частота = 16 МГц.
- Серводвигатель Futaba S3003 .
- MCU — это однокристальный микроконтроллер AtMega32 или ATmega16.
Сервопривод постоянного вращения
Сервоприводы обычно имеют ограниченный угол поворота 180 градусов, что они называют «сервоприводом на 180 градусов°».
Но есть сервоприводы с неограниченным углом поворота оси. Это сервоприводы постоянного вращения или «сервоприводы на 360 градусов°».
Функция Arduino: сервопривод 180 °, сервопривод 360°
Серво. Запись (0) | Крайняя левая позиция | Полный ход в одном направлении |
Сервопривод. Запись (90) | Центральное положение | Остановить сервопривод |
Серво. Запись (180) | Крайняя правая позиция | Полный ход в обратном направлении |
Для иллюстрации работы с постоянно вращающимися сервоприводами мы собрали двух мобильных роботов: на Arduino Uno и Iskra JS. Инструкции по сборке и примеры эскизов см. В статье Сборка ИК-бота.
Области использования устройства
В современном мире, когда автоматизация заняла прочное место во всех областях машиностроения, конструкция всех механизмов стала удивительно унифицированной. В этом случае используются современные одинарные приводы.
Чтобы понять, что такое сервопривод, вы должны знать диапазон действия устройства.
Устройства содержат прецизионные конструкции для поддержания скорости промышленных роботов и станков с высокой точностью. Их устанавливают на буровое оборудование, в различные транспортные системы и вспомогательные механизмы.
Наибольшее распространение устройства получили в следующих областях:
- производство бумаги и упаковки;
- производство листового металла;
- погрузочно-разгрузочные работы;
- производство транспортных средств;
- деревообрабатывающая промышленность;
- производство строительных материалов.
Дополнительные примеры скетчей
Следующий код позволяет вам управлять серводвигателем на контакте 2 с помощью потенциометра на аналоговом 0.
Следующий код представляет собой вывод пинг / понга на выводе A0 с регулируемой скоростью.
Подключение серводвигателя к ардуино
Сервопривод имеет три контакта, которые имеют разную окраску. Коричневый провод ведет к массе, красный провод к источнику питания + 5В, оранжевый или желтый провод — сигнальный. Устройство подключается к Arduino через макетную плату, как показано на рисунке. Оранжевый (сигнальный) провод подключается к цифровому, черному и красному контактам, соответственно, к заземлению и питанию. Для управления серводвигателем нет необходимости подключаться к выводам ШИМ: принцип работы сервомотора мы уже описали ранее.
Не рекомендуется подключать мощные сервоприводы напрямую к плате, так как они создают ток для цепи питания Arduino, несовместимый с жизнью — повезло, если защита сработает. Наиболее частыми симптомами перегрузки сервопривода и неправильного питания являются рывки сервопривода, неприятный звук и перезагрузка платы. Для питания лучше использовать внешние источники, обязательно совмещая мотивы двух схем.
Скетч для управления сервоприводом в Arduino
Непосредственное управление сервоприводом путем изменения ширины импульса в эскизе — довольно нетривиальная задача, но, к счастью, у нас есть большая библиотека сервоприводов, встроенная в среду разработки Arduino. Все нюансы программирования и работы со слугами мы рассмотрим в отдельной статье. Вот простейший пример использования сервопривода.
Алгоритм работы прост:
- Во-первых, давайте включим Servo.h
- Создайте объект класса Servo
- В блоке конфигурации укажите, к какому выводу подключен сервопривод
- Мы используем методы объекта обычным для C ++ способом. Самым популярным является метод записи, в который мы вводим целочисленное значение в градусах (для сервопривода 360 эти значения будут интерпретироваться по-разному).
Пример простого скетча для работы с сервоприводом
Пример проекта, в котором мы сначала сразу устанавливаем серводвигатель на нулевой угол, а затем поворачиваем его на 90 градусов.
#включать Слуга слуга; // Создаем объект void setup () {servo.attach (9); // Сообщаем сервообъекту, что сервопривод подключен к выводу 9 servo1.write (0); // Устанавливаем начальную позицию} void loop () {servo.write (90); // Повернуть сервопривод на 90 градусов delay (1000); серво запись (1800); задержка (100); серво запись (90); задержка (1000); servo.write (0); задержка (1000); }
Скетч для двух сервпоприводов
И в этом примере мы работаем с двумя слугами одновременно:
Управление сервоприводом с помощью потенциометра
В этом примере мы поворачиваем сервопривод в соответствии со значением, полученным от потенциометра. Мы читаем значение и преобразуем его в угол с помощью функции карты:
ДОКУМЕНТАЦИЯ
Документация
Эта библиотека является «надстройкой» к стандартной библиотеке Servo.h и позволяет плавно управлять сервоприводом. Суть работы заключается в методе tick (), который должен вызываться постоянно в цикле (или прерывании по таймеру); внутри галочки есть алгоритм со своим таймером, который немного поворачивает сервопривод в нужное положение. Библиотека дублирует несколько методов из Servo.h (прикрепление имеет расширенную инициализацию):
- write () и writeMicroseconds () — вращали вал сервопривода на максимальную скорость
- attach () и detach () — подключает и отключает сервопривод от управления
Инициализация
Объект создается как в Servo.h, без параметров. Также можно передать рабочий угол сервопривода (в противном случае он будет равен стандартным 180 градусам.)
Есть несколько вариантов инициализации присоединения:
- прикрепить (булавка); — подключит сервопривод к указанному штифту, угол поворота будет установлен в градусах. Длительность импульса * мин-макс будет стандартной, 500-2400 мкс
- атака (опорная, цель); — подключит сервопривод к указанному выводу, угол поворота ** будет установлен на целевые градусы. Длительность импульса * мин-макс будет стандартной, 500-2400 мкс
- подключить (пин, мин, макс); — подключит сервопривод к указанному штифту, угол поворота будет установлен в градусах. Длина импульса * будет установлена на минимальную и максимальную соответственно.
- прикрепить (пин, минимум, максимум, цель); — подключит сервопривод к указанному выводу, угол поворота будет установлен на целевые градусы. Длина импульса * будет установлена на минимальную и максимальную соответственно.
* Длина импульса: сервопривод управляется сигналом PWM, где длина импульса напрямую управляет углом поворота, то есть, обеспечивая минимальную и максимальную длину, мы получаем рабочий угол 180 градусов. По умолчанию установлены минимальная и максимальная длина, длина установлена на 500 и 2400 соответственно, что подходит для большинства сервоприводов, но рекомендуется проверить и «откалибровать» устройство так, чтобы он работал при 180 градусах, минимальное и максимальное время импульса отличается от производителя сервопривода и модель.
** Указание угла поворота во время инициализации устанавливает сервопривод на желаемый угол сразу после сигнала, а также устанавливает текущее положение и целевое положение, равные этому.
Плавный пуск (new!)
Сервопривод не имеет обратной связи по углу (для программы), поэтому он будет повернут «резко» на начальный угол при запуске («на ноль» по умолчанию или на тот, который указан во вложении (штифт, цель). Есть два варианта чтобы избежать резких щелчков в механизме во время выполнения программы:
- Заранее знайте, на какой угол физически поворачивается привод при запуске, и передайте его для его подключения (штифт, цель). Как узнать? Это зависит от конкретной задачи и логики работы программы. Вы можете сохранить положение сервопривода в EEPROM и восстановить его при запуске, вы можете установить сервопривод на тот же угол перед выключением / перезапуском системы и т.д.
- Воспользуйтесь функцией smoothStart (), появившейся в версии 3.2 этой библиотеки. Работает он очень просто: подключаете и отключаете сервопривод с периодом в пару десятков миллисекунд, после чего привод плавно перемещается на определенный угол из любого исходного положения. Вам нужно вызвать smoothStart () один раз (при запуске программы) сразу после подключения (pin, target) в блоке setup (). Внимание! Функция блокирующая, выполнение занимает 900 миллисекунд. Период рывка сервопривода установлен на минимум, при котором сервопривод начинает понимать, чего он от него хочет. Период довольно большой, поэтому движение в заданную позицию происходит рывками, но в целом оно намного плавнее, чем без smoothStart (). В массивном механизме рывки практически незаметны!
Управление
Движение сервопривода происходит автоматически в методе tick (), нам просто нужно вызывать его как можно чаще в loop () (tick () имеет встроенный таймер на 20 мс). Существует также метод tickManual (), который переводит сервопривод на следующий «шаг» каждый раз, когда он вызывается (тот же tick (), но не имеет собственного таймера). Оба метода tick () возвращают false, когда сервопривод движется, и true, когда сервопривод достигает заданного угла, это можно использовать. Кроме того, сервопривод автоматически отключается от управления при достижении заданного угла поворота (это снижает шум сервопривода на холостом ходу). Эту функцию можно отключить, вызвав setAutoDetach (false). Инструменты для управления движением привода:
- setTarget (длина); — задает целевое положение сервопривода в значении длительности импульса, мкс (500-2400)
- setTargetDeg (угол); — установить целевое положение сервопривода в градусах (0-180)
- setSpeed (скорость); — установка максимальной скорости (больше нуля) в градусах в секунду
- setAccel (ускорение); — настройка ускорения (числа с плавающей запятой 0,01 — 1,0). Можно больше 1, будет еще резче. Если вы установите ускорение на 0, оно будет отключено, и сервопривод будет двигаться по профилю постоянной скорости (с бесконечным ускорением)
- Если передавать ускорение в целые числа (из версии библиотеки 3.7) — ускорение будет задано в градусах / сек / сек. Рабочий диапазон ускорений от 1 до 1500, чем больше — резче. Если установлено значение 0, ускорение будет отключено.
- начинать (); — автоатака + позволяет тикать — сервопривод перемещается в заданное положение
- останавливаться (); — отсоединить + отключить тиканье — сервопривод останавливается
Полезные методы поддержки в различных ситуациях:
- setDirection (например); — принимает NORMAL (ложь) или REVERSE (true), изменяет направление сервопривода
- setCurrent (длина); — установка текущей позиции в мкс (500 — 2400). Это может быть полезно в ситуации, когда мы знаем фактический угол сервопривода и хотим сообщить программе, чтобы алгоритм не изменил привод.
- setCurrentDeg (угол); — установка текущего положения в градусах (0-180). Это зависит от мин. И макс.
- getCurrent (); — получить текущую позицию в мкс (500 — 2400)
- getCurrentDeg (); — получить текущую позицию в градусах (0-180). Зависит от мин. И макс
- getTarget (); — получить целевую позицию в мкс (500 — 2400)
- getTargetDeg (); — получить целевую позицию в градусах (0-180). Зависит от мин. И макс
- setMaxAngle (); — установка максимального угла сервопривода, по умолчанию 180. Позволяет комфортно работать с различными сервоприводами (270 и 360 градусов).
Расширитель серво PCA9685
В версии библиотеки 3 и выше добавлена поддержка драйвера PCA9685, вам необходимо включить файл #include «ServoDriverSmooth.h»
- ServoDriverSmooth servo; // по умолчанию (адрес 0x40, угол 180)
- Сервопривод ServoDriverSmooth (0x40); // указываем адрес драйвера
- Сервопривод ServoDriverSmooth (0x40, 270); // с указанием адреса и максимального угла
Метод подключения (контактный) принимает номер контакта на драйвере. В остальном все работает точно так же, как с обычным сервоприводом.
Библиотека Servo
Вы можете генерировать управляющие импульсы самостоятельно, но это настолько распространенная задача, что для ее упрощения существует стандартная библиотека сервоприводов.
Сервоприводом постоянного вращения можно управлять с помощью библиотек Servo или Servo2. Разница в том, что функция Servo.write (angle) устанавливает не угол, а скорость вращения привода.
Библиотека сервоприводов позволяет программно управлять сервоприводами. Управление осуществляется следующими функциями:
- attach () — прикрепить объект к определенной булавке на доске. Есть два возможных синтаксиса для этой функции: servo.attach (pin) и servo.attach (pin, min, max). В этом случае штифт — это номер штифта, к которому подключен сервопривод, min и max — длины импульсов в микросекундах, отвечающие за углы поворота 0 ° и 180 °. По умолчанию они установлены на 544 мкс и 2400 мкс соответственно. Нет возвращаемого значения.
- write () — инструктирует сервопривод принять значение параметра. Синтаксис: servo.write (угол), где угол — это угол, на который сервопривод должен повернуть
- writeMicroseconds () — дает команду на отправку импульса определенной длины на сервопривод, это низкоуровневый аналог предыдущей команды. Синтаксис: servo.writeMicroseconds (uS), где uS — длина импульса в микросекундах. Нет возвращаемого значения.
- read () — считывает текущее значение угла, в котором находится сервопривод. Синтаксис: servo.read (), возвращается целочисленное значение от 0 до 180
- прикрепленный () — проверяет, был ли объект прикреплен к конкретному выводу. Синтаксис следующий: servo.attached (), boolean возвращается, если объект был прикреплен к какому-либо контакту, или false в противном случае
- detach () — выполняет действие, противоположное fixed (), т.е отсоединяет объект от булавки, к которой он был прикреплен. Синтаксис: servo.detach()
В библиотеке серво для Arduino по умолчанию установлены следующие длительности импульса: 544 мкс для 0 ° и 2400 мкс для 180°.
Пример подключения двух сервоприводов.
Библиотека сервопривода несовместима с библиотекой VirtualWire для передатчика и приемника 433 МГц, поскольку они используют одно и то же прерывание. Это означает, что их нельзя использовать в одном проекте одновременно. Существует альтернативная библиотека для сервоуправления: Servo2. Все методы библиотеки Servo2 такие же, как и методы Servo.
Функции работают по-разному при работе с сервоприводами на 360 градусов.
Функция Arduino: сервопривод 180 °, сервопривод 360°
Серво. Запись (0) | Крайняя левая позиция | Полный ход в одном направлении |
Сервопривод. Запись (90) | Центральное положение | Остановить сервопривод |
Серво. Запись (180) | Крайняя правая позиция | Полный ход в обратном направлении |
Сервопривод SG90
Характеристики и подключение 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
Подключение к Arduino также осуществляется по трем проводам. Как правило, для хобби-проектов разрешается подключать MG995 напрямую к Arduino, но ток двигателя всегда будет создавать опасную нагрузку для входов платы, поэтому по-прежнему рекомендуется подключать сервопривод отдельно, не забывая подключать заземление обе цепи питания. Еще один вариант, облегчающий жизнь, — это использование готовых сервоприводов и экранов, обзор которых мы подготовим в отдельной статье.
MG996R по своим характеристикам похож на MG995, только выполнен в металлическом корпусе.
Конструкция
Устройство современных сервоприводов достаточно простое и в то же время эффективное, поскольку создает условия для точной настройки их работы. В рисунок входят:
- привод. Это может быть электродвигатель с коробкой передач или пневмоцилиндр. Редуктор нужен для снижения скорости вращения мотора до тех значений, которые необходимы в работе. На выходной вал коробки передач прикладывается необходимая нагрузка: качалка, вращающийся вал, тяговые или толкающие устройства;
- датчик обратной связи. Это датчик угла поворота выходного вала (энкодер) или потенциометр. Функция — преобразовать угол поворота в электрический сигнал;
- блок питания и управления (сервоусилитель, преобразователь частоты, инвертор). Этот элемент принимает и анализирует управляющие импульсы, сравнивает их с показаниями датчиков и отвечает за запуск и остановку двигателя. В состав блока управления может входить преобразователь (управляющий сигнал или датчик действия).
Принцип работы цифровой конструкции
Слуга линейного движения: что это такое? Фактически указанное устройство представляет собой регулятор с обратной связью. Сегодня модели пользуются большим спросом. Они идеально подходят для различных систем отопления. Содержащиеся в них преобразователи часто используются на три контакта. Ящики статора устанавливаются разной мощности. Двигатели могут использоваться только синхронного типа.
В противном случае блоки питания не выдержат предельного напряжения. В этой ситуации редукторы используются как единое целое. Шестерни используются для передачи крутящего момента от двигателя. Да, сегодня на рынке много модификаций с выходным валом. В этом случае скорость оборотов можно регулировать с помощью контроллера.
Несколько лет назад все сервоприводы были аналоговыми. Теперь появился и цифровой дизайн. В чем разница между их работами? Перейдем к информации официального характера.
Из отчета Futaba следует, что за последнее десятилетие сервоприводы стали более производительными, чем раньше, так же как и небольшие размеры, высокие уровни скорости и крутильные элементы.
Последний этап развития — появление цифрового устройства. Эти агрегаты также имеют значительные преимущества перед коллекторными двигателями. Однако есть и недостатки.
Внешне аналоговые и цифровые устройства ничем не отличаются. Различия фиксируются только на карточках устройств. Вместо микросхемы на цифровом блоке можно увидеть микропроцессор, анализирующий сигнал с приемника. Он проверяет двигатель.
совершенно неправильно говорить, что аналоговые и цифровые модификации принципиально отличаются в работе. У них могут быть одинаковые двигатели, механизмы и потенциометры
Основное различие заключается в способе обработки входного сигнала приемника и управлении двигателем. Оба сервопривода получают одинаковый сигнал мощности от радиоприемника.
Итак, становится ясно, слуга, что это?
Читайте также: Ардуино для начинающих: программирование для чайников с нуля