Колесо с мотором arduino

MECANUM И ARDUINO

Платформа на всенаправленных колёсах под управлением Arduino. Реализовано:

  • Управление с геймпада от второй плойки
  • Поддержка энкодеров. Прошивка от этой версии позволяет четко управлять скоростями моторов и отправлять платформу на указанное расстояние

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

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

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

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

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

Источник

Управление щёточными моторами с Arduino

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

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

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

Купить модуль реле можно на Aliexpress.

Мосфет

Полевой транзистор, он же мосфет, позволяет управлять скорость вращения мотора при помощи ШИМ сигнала. При использовании мосфета обязательно нужно ставить диод, иначе индуктивный выброс с мотора очень быстро убьёт транзистор. Скорость мотора можно задавать при помощи ардуиновской analogWrite(пин, скорость) .

Вместо “голого” мосфета можно использовать готовый китайский модуль:

Купить мосфет модуль можно на Aliexpress.

Реле и мосфет

Если объединить реле и мосфет – получим весьма колхозную, но рабочую схему управления скоростью и направлением мотора:

Специальный драйвер

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

Драйвер Vmot Ток (пик)

Стоимость

Aliexpress
L298N 4-50V 1A (2A) 100р Купить
MX1508 2-9.6V 1.5A (2.5A) 20р Купить
TA6586 3-14V 5A (7A) 100р (чип 30р) Купить, купить, купить чип
L9110S 2.5-12V 0.8A (1.5A) 50р Купить
TB6612 4.5-13.5V 1.2A (3A) 80р Купить
BTS7960 5.5-27V 10A (43A) 300р Купить
Большой 3-36V 10A (30A) 700р Купить

Остальные драйверы смотри у меня вот тут. Схемы подключения и таблицы управления:




Пины направления управляются при помощи digitalWrite(pin, value) , а PWM – analogWrite(pin, value) . Управление драйвером по двум пинам может быть двух вариантов:

Моторы переменного тока

Мотором переменного тока (220V от розетки) можно управлять при помощи диммера на симисторе, как в уроке про управление нагрузкой.

Библиотеки

У меня есть удобная библиотека для управления мотором – GyverMotor, документацию можно почитать вот здесь. Особенности библиотеки:

  • Контроль скорости и направления вращения
  • Работа с ШИМ любого разрешения
  • Программный deadtime
  • Отрицательные скорости
  • Поддержка всех типов драйверов
  • Плавный пуск и изменение скорости
  • Режим “минимальная скважность”

Помехи и защита от них

Индуктивный выброс напряжения

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

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

  • При работе с драйвером и управлением в обе стороны диод ставить не нужно и даже нельзя!
  • При управлении ШИМ сигналом рекомендуется ставить быстродействующие диоды (например серии 1N49xx ) или диоды Шоттки (например серии 1N58xx).
  • Максимальный ток диода должен быть больше или равен максимальному току мотора.
  • Защитный диод, принимающий на себя обратный выброс ЭДС самоиндукции, также называется шунтирующим диодом, снаббером, flyback диодом.
  • В природе существуют мосфеты со встроенным защитным диодом. Этот диод является отдельным элементом и такой мосфет обычно имеет нестандартный корпус, читайте документацию на конкретный транзистор.
  • Диод, который показан на схематическом изображении мосфета, не является защитным диодом: это слабый и медленный “паразитный” диод, образованный при производстве транзистора. Он не защитит мосфет от выброса, нужно обязательно ставить внешний!

Помехи от щёток

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

Помехи по питанию, просадка

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

Разделение питания

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

Экранирование

В отдельных случаях критичными являются даже наводки от питающих проводов моторов, особенно при управлении ШИМ мощными моторами и управлении мощными шаговиками в станках. Такие наводки могут создавать сильные помехи для работающих рядом чувствительных электронных компонентов, на аналоговые цепи, наводить помехи на линии измерения АЦП и конечно же на радиосвязь. Защититься от таких помех можно при помощи экранирования силовых проводов: экранированные силовые провода не всегда удаётся купить, поэтому достаточно обмотать обычные провода фольгой и подключить экран на GND питания силовой части. Этот трюк часто используют RC моделисты, летающие по FPV.

Видео


Источник

Мотор постоянного тока с редуктором 1:48

Товары

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

  • Обзор
  • Технические характеристики
  • Подключению к плате Arduino
  • Пример использования
  • FAQ

Обзор

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

Чтобы привести в движение шасси робота, разработчики, как правило, применяют моторы-редукторы. Они способны при небольших размерах обеспечивать достаточную силу тяги для реализации уверенного движения. Среди любительских легковесных роботов, фаворитом в этом направлении является мотор постоянного тока с редуктором 1:48, внешний вид которого показан на рисунке №1.


Рисунок №1 – мотор постоянного тока с редуктором 1:48

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

Данный класс моторов с редуктором выпускается 4-х типов, а именно:

  • Прямой одноосевой мотор-редуктор;
  • Прямой двухосевой мотор-редуктор;
  • Угловой одноосевой мотор-редуктор;
  • Угловой двухосевой мотор-редуктор.

Рисунок №2 наглядно демонстрирует разницу их конструктивного исполнения. Вне зависимости от внешнего вида, все моторы имеют одинаковые характеристики.

Рисунок №2 – разновидности моторов с редуктором

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

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

  • Диапазон напряжений питания: 3В – 8В;
  • Номинальный ток потребления при напряжении 3,6В: 240 мА;
  • Передаточное число редуктора: 1/48;
  • Скорость вращения при напряжении 3,6В без нагрузки: 170 об/мин.
  • Крутящий момент при напряжении 6В: 800 г/см;
  • Диаметр вала: 5.4 мм;
  • Габариты (для прямой модификации): 64мм х 20мм х 20мм;
  • Масса: 26 грамм.

Подключение к плате Arduino

Как упоминалось в разделе технических характеристик, потребление данного мотора составляет 250 мА (при напряжении 3,6В). Это означает, что прямое управление с выводов Arduino здесь неуместно. А если учесть, что в большинстве проектов необходимо минимум два таких мотора, то задача становиться ещё интереснее. Первое что приходит в голову, это включение и отключение моторов с помощью полевого транзистора с логическим уровнем управления затвором, например IRL540N (рисунок №3).

Рисунок №3 – схема управления мотором при помощи полевого транзистора

Такое подключение даёт возможность включать и отключать двигатель логическим уровнем. Кроме того, можно управлять скоростью его вращения, изменяя уровень ШИМ на выводе D9 Arduino. Резистор 220 Ом ограничивает ток затвора транзистора, а резистор 100 кОм разряжает затвор, когда на выводе D9 установлен низкий логический уровень. Если его не использовать, то существует вероятность, что двигатель продолжит работать при его отключении. Диод 1N4007 защищает управляющую цепь от выброса высоковольтных импульсов самоиндукции, которые может создавать двигатель во время своей работы. Ниже приведён листинг программы, которая демонстрирует плавный разгон и торможение двигателя согласно вышеприведенной схемы.

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

Рисунок №4 – модуль драйвера L298N

Ниже приведён перечень выводов модуля L298N с кратким описанием каждого из них:

  • IN1, IN2 – эти контакты предназначены для управления Мотором №1 (А). В зависимости от логических уровней, установленных на этих контактах, двигатель будет вращаться в ту или иную сторону. Для получения вращения, логические уровни на этих контактах должны быть противоположны друг другу. Например: IN1=1, IN2=0 → двигатель вращается по часовой стрелке; IN1=0, IN2=1 → двигатель вращается против часовой стрелки.
  • IN2, IN3 – функционал контактов аналогичен IN1 и IN2, но только для Мотора №2 (В).
  • ENA – логическая «1» на этом выводе разрешает вращение Мотора №1 (А). Также на этот контакт можно подавать ШИМ-сигнал, что позволит управлять скоростью вращения двигателя.
  • ENB – функционал контакта аналогичен ENA, но только для Мотора №2 (В).
  • OUT1, OUT2 – колодка для подключения Мотора №1 (А).
  • OUT3, OUT4 – колодка для подключения Мотора №2 (В).

На рисунке №5 приведена схема включение двух двигателей при использовании модуля L298N и Arduino Nano.

Рисунок №5 – подключение моторов к Arduino через драйвер L298N

Согласно вышеприведенной схемы, драйвер L298N и Arduino Nano питаются от напряжения 7В. Этого будет достаточно, чтобы крутить два мотор-редуктора. Для возможности регулировки скорости, выводы ENA и ENB модуля L298N подключены к пинам Arduino, которые способны генерировать ШИМ-сигнал.

Ниже приведён тестовый скетч, который продемонстрирует все возможности драйвера, а именно: плавный разгон, торможение и реверс.

Пример использования

Опираясь на полученные в разделе №3 знания, можно собрать небольшой проект радиоуправляемой роботизированной платформы, которою будут приводить в движение два мотор-редуктора.

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

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

Для передатчика актуальными командами будут следующие:

  • движение вперёд;
  • движение назад;
  • движение вправо;
  • движение влево;
  • изменение скорости движения от 0 до 100%

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

Рисунок №6 – схема радиопульта для роботизированной платформы

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

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

Создание и программирование шасси робота

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

  • Arduino Nano – как основной мозг робота;
  • Модуль NRF24L01 – как приёмник сигналов с пульта управления;
  • Два мотор-редуктора для приведения робота в движение;
  • Модуль L298N для полноценного управления моторами;
  • Держатель для аккумуляторов или батареек;
  • Ну и конечно-же основание, на котором всё это необходимо закрепить.

На рисунке №7 показана электрическая схема будущего робота.

Рисунок №7 – схема робота

При монтаже электросхемы следует смотреть за тем, чтобы все выводы GND были соединены между собой. Также вывод GND модуля L298N желательно пустить отдельным проводом прямо к источнику питания, чтобы не пропускать большие токи через плату Arduino. Вместо 4-х пальчиковых батареек можно использовать два Li-Ion аккумулятора, соединённых последовательно. Такое соединение обеспечит достаточное напряжение для уверенного вращения мотор-редукторов.

Электролитический конденсатор, ёмкостью 100 мкФ в цепи питания радиомодуля обязателен. Без него NRF24L01 будет нестабильно работать или вообще не инициализируется.

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

Ниже приведён скетч управления роботом с подробными комментариями.

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

Рисунок №8 – один из вариантов крепления моторов

Источник

Читайте также:  Плохо заводится лодочный мотор салют
Поделиться с друзьями