роботы робототехника микроконтроллеры

ESP32: УПРАВЛЕНИЕ МОТОРОМ

Электромотор FA-130 с редуктором

Что нам понадобится?

Для экспериментов с мотором нам понадобится плата ESP32 DEVKIT V1, драйвер двигателей L293D, две макетные платы, отсек для четырех батареек AA, соединительные проводники и кабель micro USB для подключения ESP32 к компьютеру. В качестве моторчика можно использовать популярный FA-130 с редуктором.

Электромотор

Обозначение на схемах и внешний вид электромотора FA-130

Обозначение на схемах и внешний вид электромотора FA-130

Электромотор — электрическая машина, преобразующая электрическую энергию в механическую.

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

Одним из наиболее распространенных видов коллекторных моторчиков являются электродвигатели формфактора FA-130. Большинство из них имеют номинальное напряжение, находящееся в диапазоне 3 ~ 6 В. Ток потребления без нагрузки – около 75 мА, а под нагрузкой – около 250 мА (при 5 В). В составе популярного мотор-редуктора с передаточным числом 1:48 (картинка в начале статьи) они способны выдавать крутящий момент до 0,8 кгс·см. Этого достаточно для мобильных роботов с диаметром колес до 10 см.

Драйвер моторов L293D

Микросхема L293D
Самой популярной микросхемой для управления электродвигателями постоянного тока является драйвер моторов L293D. Драйвер необходим для усиления управляющего сигнала от микроконтроллера до тока, достаточного для управления электромотором.

L293D содержит четыре канала усиления, объединенные в два H-моста, для управления двумя моторами с возможностью реверса. Допустимый ток нагрузки – 600 мА на каждый канал. Каждый канал имеет вход (INPUT) для подачи на него управляющего сигнала и выход (OUTPUT) для подключения мотора. Кроме того, у L293D есть два входа (ENABLE) для включения каждого из H-мостов. Эти входы используются для управления скоростью вращения электромоторов с помощью широтно-импульсной модуляции (ШИМ).

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

Распиновка (pinout) драйвера двигателей L293D

Назначение выводов драйвера двигателей L293D


Если широтно-импульсная модуляция не используется, то на выводы ENABLE следует просто подать высокий уровень напряжения (+5 В).

Схема подключения мотора

Для управления мотором будем использовать, например, выводы микроконтроллера D32 (GPIO32) и D33 (GPIO33). Схема подключения представлена на рисунке.


Принципиальная схема подключения мотора к ESP32 DevKit V1


О том, какие еще выводы платы микроконтроллера можно использовать, читайте на wiki-странице "ESP32 распиновка (pinout)".

Когда на вход INPUT4 будет подан сигнал низкого уровня (логический 0), на выходе OUTPUT4 будет присутствовать усиленный сигнал низкого уровня. Если при этом на вход INPUT3 подать сигнал высокого уровня (логическая 1), на выходе OUTPUT3 будет присутствовать усиленный сигнал высокого уровня. В результате вал мотора начнет вращаться. Если поменять уровни сигнала на входах (INPUT4 – 1, INPUT3 – 0), вал мотора начнет вращаться в другую сторону.

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


Монтажная схема подключения мотора к микроконтроллеру


Пример программы для управления мотором

В бесконечном цикле будем подавать на вывод D32 логический 0, а на вывод D33 логическую 1. А затем, подождав 2 секунды, изменим значения на выводах – подадим на D32 логическую 1, а на D33 логический 0. И снова подождем 2 секунды.

Мотор будет вращаться 2 секунды в одну сторону, а потом 2 секунды – в противоположную. Для управления мотором напишем отдельную функцию.

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

# из модуля machine импортируем класс Pin
from machine import Pin
# из модуля time импортируем функцию задержки sleep
from time import sleep

# функция для управления мотором
def motor(a, b):
    motor_pin1.value(a)
    motor_pin2.value(b)

# создаем объекты Pin для мотора
motor_pin1 = Pin(32, Pin.OUT)
motor_pin2 = Pin(33, Pin.OUT)

# организуем бесконечный цикл
while True:
    # включаем мотор
    # передаем в функцию motor 0 и 1
    motor(0, 1)
    # ждем 2 секунды
    sleep(2)
    # делаем реверс мотора
    # передаем в функцию motor 1 и 0
    motor(1, 0)
    # ждем 2 секунды
    sleep(2)

Запустим Iguana IDE – среду программирования для MicroPython. Скопируем в нее текст программы. Подключимся к микроконтроллеру с помощью USB-кабеля или по Wi-Fi и запустим программу. Вал мотора начнет вращаться, меняя направление вращения каждые 2 секунды.

Подробнее о загрузке и запуске программ можно прочитать в статьях "Первый проект на микроконтроллере ESP32" и "Программируем микроконтроллер ESP32 по Wi-Fi".

Использование стоп-скрипта

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

Напишем небольшую программу и загрузим ее в микроконтроллер, например, под именем "stop.py" (или любым другим).
motor_pin1.value(0)
motor_pin2.value(0)
Чтобы установить файл с программой в качестве стоп-скрипта, нужно выделить файл в списке на панели менеджера файлов, который находится слева в Iguana IDE, и нажать на находящуюся внизу кнопку
То же самое можно сделать при помощи команды "Set Stop-Script" в меню "Run". Рядом с выбранным в списке файлом появится маленький зеленый квадратик. Отменить установку стоп-скрипта можно с помощью этой же кнопки.

Теперь, когда мы нажмем на кнопку "STOP", программа завершится и будет запущен файл, помеченный как стоп-скрипт. Мотор остановится.

Удачный Вам экспериментов!



myROBOT.ru Хотите узнать больше об использовании и программировании микроконтроллеров? Попробуйте посмотреть другие статьи в разделе "Шаг за шагом" для создания полезных и забавных проектов!
Как сделать робота
ПОПУЛЯРНЫЕ СТАТЬИ
Драйвер двигателей L293D
Драйвер двигателей L293D
Для управления двигателями мини робота необходимо устройство, которое бы преобразовывало управляющие сигналы малой мощности в токи, достаточные для управления моторами. Такое устройство называют драйвером двигателей.
Как сделать простейшего робота
Как сделать простейшего робота
О том, как сделать робота в домашних условиях, используя лишь микросхему драйвера моторов и пару фотоэлементов. В зависимости от способа соединения моторов, микросхемы и фотоэлементов робот будет двигаться на свет или, наоборот, прятаться в темноту, следовать по линии или бежать за вашей рукой.
Первые проекты на микроконтроллере ESP32
Первые проекты на микроконтроллере ESP32
В качестве первых проектов на ESP32 рассмотрим примеры мигания светодиодами и напишем программу "бегущие огни". Это классика при изучении микроконтроллеров.
Как сделать простого робота на микроконтроллере (Часть 1). Управляем электромоторами
Как сделать простого робота на микроконтроллере (Часть 1). Управляем электромоторами
Как самому сделать робота, используя драйвер управления двигателями L293D и микроконтроллер ATmega8. Схема робота и примеры простейших программ для управления моторами.
НОВЫЕ СТАТЬИ
Можно ли сделать BEAM-робота на Raspberry Pi?
Можно ли сделать BEAM-робота на Raspberry Pi?
Ответ Марка Тилдена с уникальной фотографией одной из новых работ маэстро.
Изучаем Python: TOP-5 лучших сайтов для изучения Питона
Изучаем Python: TOP-5 лучших сайтов для изучения Питона
Самоучитель, интерактивный учебник, наглядные задачи и примеры программ.
Роботы на одной микросхеме своими руками
Роботы на одной микросхеме своими руками
Подборками статей myROBOT.ru. Практика создания роботов: схемы и советы по изготовлению. Чтобы сделать роботов, нет необходимости даже писать программы. Все роботы начнут работать сразу же, как только Вы подключите к ним питание.
ПОПУЛЯРНОЕ НА САЙТЕ
Драйвер программатора USBASP для Windows 7, 8, 10
Драйвер программатора USBASP для Windows 7, 8, 10
Универсальный драйвер программатора USBasp v 2.0 USB ISP без необходимости принудительного отключения сертификата драйвера или использования Zadig, достаточно скачать драйвер USBasp и запустить файл InstallDriver.exe.
Учимся программировать.<BR>Среда программирования на ЛОГО
Учимся программировать.
Среда программирования на ЛОГО
GAME LOGO — бесплатная среда программирования для увлекательного путешествия в мир программирования и информатики. Программирование на русском языке, удобный и красивый интерфейс, продуманный синтаксис.




Copyright © myrobot.ru, 2005-2023


Яндекс.Метрика   Рейтинг@Mail.ru