Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Управление сервоприводом SG90 без микроконтроллера / Хабр

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

Кому интересно, прошу под кат.

Идея

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

Знания

Всем известно, что опыт и знания помогают творить и находить решения. На страницах Гиктаймса немало примеров использования сервопривода с применением контроллеров. В них подробно рассказано про систему управления сервоприводом. Примем этот опыт других разработчиков за знания необходимые нам для решения задачи. Сервопривод SG90 управляется ШИМ сигналом, параметры которого определяют положение ротора. Период ШИМ около 20 мС, длительность сигнала управления от 500 до 2100 мкС.

Задача

Идея и знания порождают задачу, которую необходимо решить. Сформулируем задачу для воплощения идеи. Это что-то вроде Технического Задания. Кажется, все просто, надо взять генератор импульсов с изменяемой скважностью, подключить питание к сервоприводу, а с генератора подать управляющий сигнал. Особо отметим, что в требованиях есть изменения скважности — то есть должны быть органы управления или пользовательский интерфейс.

Реализация

Вот тут и начинаются муки творчества: что взять и где взять? Можно найти готовый лабораторный импульсный генератор, например Г5-54 с ручками, кнопками, выставить нужные параметры, подключить генератор к сервоприводу. Однако это громоздко и не все могут позволить себе такую роскошь. Поэтому разработчики, опираясь на свой опыт и знания, пытаются совместить желание (идею-задачу) и возможности (материальные и творческие) для реализации задачи. Материальные возможности — это

та “жаба”

“А сколько и чего я хочу потратить на реализацию идеи?” Творческие возможности — это, “посмотрю-ка я, что у меня уже есть”. Это не обязательно какие-то материальные ценности, а опыт и знания предыдущих разработок, которые можно приспособить под реализацию. Также не лишним будет поискать (погуглить), что кто-то уже реализовывал что-то подобное. Для сокращения вариантов решения необходимо самому добавлять дополнительные требования, ограничивающие фантазии реализации. Например, добавим к требованиям еще одно условие, пусть это будет материальное ограничение, реализация должна быть

недорогой

.

Поиск альтернатив

Воспользовавшись интернетом, поищем варианты, которые предлагает СЕТЬ. Зададим в поиске: “генератор прямоугольных импульсов с переменной скважностью”. Получим очень много вариантов, как с применением интегральных таймеров NE555 (отечественный аналог КР1006ВИ1), так и на логических микросхемах. Из всего разнообразия я выбрал вариант генератора на инверторе с триггером Шмитта на входе. Во-первых, он самый простой, во-вторых, требует минимум деталей и самое интересное использует единственный логический элемент из шести, если, например, использовать микросхему 74HC14.

Схема такого генератора выглядит так:


Немного теории

Теория гласит, что частота такого генератора равна f = 1/T = 1/(0.8*R*C). Для получения требуемой частоты требуется выбрать номинал одного из элементов, задающих частоту. Так как логический элемент выполнен по технологии КМОП, то имеет большое входное сопротивление, поэтому можно применять элементы задающие небольшие рабочие токи. Выберем емкость С1 из ряда распространенных номиналов, например 0.47 мкФ. Тогда для получения требуемой частоты (50Гц) резистор должен быть приблизительно 53 кОм, но такого резистора в стандартном ряду нет, поэтому выберем 51 кОм.

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

Тогда схема примет следующий вид:

Казалось бы: все, задача решена, но в крайних положениях переменного резистора поведение сервопривода нестабильно. Это связано с тем, что значение длительности импульсов, в крайних положениях переменного резистора, не соответствует требуемым. Лично мне также не по душе применение переменного резистора, поэтому я хочу изменить интерфейс управления, добавив новую “хотелку” в техническое задание, например чтобы скважность менялась в зависимости от освещенности. Для этого есть простое и недорогое решение: применить в качестве регулирующего элемента фоторезистор GL55xx (используют в проектах Arduino), изменение сопротивления которого лежит в широком диапазоне.

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

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


Пояснения к итоговой схеме

Конденсатор С1 номиналом 0.47 мкФ, определяет время перезаряда. Резистор R1 номиналом 51 кОм задает основную частоту повторения импульсов в районе 50 Гц. Комбинация резисторов R2-R4 в сумме будет изменяться в диапазоне от 2.5 кОм до 24 кОм в зависимости от освещенности. Вместе с диодом D1 эти резисторы будут влиять на время перезаряда конденсатора С1 при действии положительного импульса на выходе логического элемента, тем самым определять его длительность.

Результат

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

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

Дерзайте и удачи!

Сервопривод SG90

(1 оценка, рейтинг 5.00 из 5)

Сервопривод Tower Pro 9g SG90 не имеет мощные характеристики (всего 1,2-1,6 кг*см), но имеет недорогую цену. Отлично подходит для несложных задач под управлением контроллеров Arduino.

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

Комплектация серво:
Сервопривод SG-90 9g 1 шт
Пластиковые плечи для сервопривода (см. фото) 3 шт
Винт для крепления 3 шт

Спецификация SG-90:
Вес серво 9 грамм
Размеры 21.5мм X 11.8мм X 22.7мм
Напряжение питания 4,8 … 6 В
Момент (усилие) 1.2 кг*см при напряжении 4,7В
Время поворота на 60° 0,12 сек. при напряжении 4,7В
Рабочая температура -30°C … +60°C
Длина кабеля 23 см
Материал шестерней Нейлон
Механика Аналоговая
Dead-set 7 мкс

 Подключение к контроллеру Arduino:
  • Pin Brown = connect to Arduino – / GND
  • Pin Orange = connect to arduino +5V
  • Pin Yellow = in this example connect to Arduino Digital port 9

Размеры серво TowerPro SG90S:

A – 30 мм
B – 24 мм
C – 27 мм
D – 12 мм
E – 32 мм
F – 16 мм

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

Сервоприводы для ардуино по хорошей цене и с доставкой

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

  • положения;
  • скорости;
  • усилия или т.п.

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

  • Сервопривод получает входное значение в диапазоне какого-то параметра, например, поворот.
  • Блок управления сопоставляет полученное значение с информацией на датчике.
  • Выполняется действие.

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

Как устроены сервоприводы Ардуино

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

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

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

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

Как выбрать сервоприводы для Ардуино

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

  • Скорость вращения — измеряется в интервале времени, необходимом для поворота на определенный градус. Например, сервопривод SG90 повернется на 60° за 0,14 секунд.
  • Крутящий момент — описывает воздействие сил на какое-то твердое тело во время вращения. То есть крутящий момент показывает, какой груз способен удержать модуль. 

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

  • Большие. Имеют массивный корпус длиной до 50 мм, вес может быть различным — от 50 до 90 г.
  • Маленькие сервоприводы. Не превышают веса в 25-30 г, в длину достигают 20-25 мм.
  • Стандартные. Вес этих модулей варьируется от 40 до 80 г, при этом длина устройств может достигать 40 мм.

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

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

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

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

Сервоприводы и Ардуино: особенности подключения

Большинство модулей можно подключить напрямую к Arduino. Стандартное исполнение проводов:

  • красный — для питания;
  • черный (иногда коричневый) — “земля”;
  • белый (оранжевый или желтый) — подключение к плате Arduino.

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

Сервоприводы: цена

Интернет-магазин Ekot предлагает в режиме онлайн подобрать сервоприводы, каталог представляет подробное техническое описание каждого и фото. Цены доступны и зависят от:

  • характеристик выбранного модуля;
  • страны-производителя.

Ekot предлагает сервопривод купить в Украине с доставкой — мы организуем отправку заказа в любой город. Консультанты в режиме онлайн или по телефонам, указанным на сайте, готовы ответить на все вопросы. 

Учебное пособие по

Arduino: Использование сервопривода SG90 с Arduino – education8s.tv

Привет, ребята, еще раз добро пожаловать на education8s.tv, канал, посвященный изучению электронных проектов DIY с использованием популярных плат, таких как платы на базе Arduino, Raspberry pi, Esp и т. Д.

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

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

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

Сервоприводы

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

Микро-серводвигатель SG90

В этом руководстве мы будем использовать популярный и дешевый серводвигатель SG90, и нашей целью будет вращение серводвигателя от одного конца до другого.Вскоре мы обновим этот проект, включив в него цветной TFT-дисплей с диагональю 3,2 дюйма и ультразвуковой датчик.

Необходимые компоненты и где купить

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

1. Сервопривод SG90 ▶ https://educ8s.tv/part/SG90

2. Arduino Due ▶ https: // education8s.телевизор / часть / ArduinoDue

3. Дисплей 3,2 дюйма ▶ https://educ8s.tv/part/32TFT

4. Датчик расстояния ▶ https://educ8s.tv/part/HCSR04

5. Дешевый Arduino Uno ▶ https://educ8s.tv/part/ArduinoUno

6. Провода ▶ https://educ8s.tv/part/Wires

Схемы

Подключите сервопривод к Arduino, как показано на схеме ниже.

Схема

Соединение с Arduino чрезвычайно простое, поскольку сервопривод имеет всего три контакта / вывода, а подключение к Arduino также описано ниже.

  Сервопроводы ▶ Arduino 

Красный (VCC) ▶ 5 В

Черный / коричневый (GND) ▶ GND

Желтый / оранжевый (сигнал) ▶ D8 

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

Код

Код этого проекта, как и схемы, довольно прост. Он сильно зависит от сервопривода.h, которая предустановлена ​​вместе с Arduino IDE. Цель, реализованная в коде, проста: повернуть серводвигатели в другом направлении под разными углами, чтобы продемонстрировать его возможности.

Чтобы сделать объяснение кода, как обычно, первое, что мы делаем, это включаем библиотеки, которые мы будем использовать, то есть библиотеку servo.h.

 #include 
 

Далее мы создаем объект серво библиотеки

 Серво сервопривод;
 

Затем мы переходим к функции настройки пустоты, где мы присоединяем сервообъект к цифровому выводу и устанавливаем угол сервопривода на 0.Это называется центрированием сервопривода.

 void setup () {
  сервопривод (8);
  servo.write (угол);
}
 

Далее идет функция цикла. Чтобы повернуть сервопривод до определенной степени, мы используем функцию servo.write (), чтобы записать желаемую степень вращения сервопривода. Мы использовали функцию для поворота сервопривода от одного к другому и обратно.

 пустая петля ()
{
 // сканирование от 0 до 180 градусов
  для (угол = 10; угол <180; угол ++)
  {
    сервопривод.написать (угол);
    задержка (15);
  }
  // теперь сканирование назад от 180 до 0 градусов
  для (угол = 180; угол> 10; угол -)
  {
    servo.write (угол);
    задержка (15);
  }
}
 

Полный код проекта можно скачать по ссылке ниже.

[AdSense]

——————–


КОД ПРОЕКТА
——————–