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

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

А двигатели? А двигатели в пролёте в прокруте (на первый взгляд)…:-B 

Ниже я рассмотрел пару решений, которые нашёл для себя в разные моменты времени в прошлом — возможно, они, в чём-то, будут полезны и для вас! ;-) 

Но, до начала рассмотрения, я хотел бы ответить на вопрос, поставленный выше и пояснить, что я имею в виду… 

Когда я говорю нечто подобное тому, что двигатели как будто бы «остались вне внимания производителей», я просто хочу сказать, что лично меня, с годами, довольно-таки утомила потребность соединять микроконтроллер и управляющую плату для двигателей (некий motor shield) каким-то безумным количеством проводов и, всё-таки хотелось бы какой-то «простоты и лёгкости в мыслях и делах». :-B

То есть: просто взять микроконтроллер. Просто вставить туда motor shield. Просто подсоединить двигатель. На этом всё! :-B

Понимаю, что те, кто тоже имел дело с микроконтроллерами, скажут: «дядь, ну ты чегооо! Всё есть давно…» :-))) 

Поэтому, я хотел бы тут немного конкретизировать свою мысль: дело в том, что на те же Arduino Uno давным-давно есть motor shield-ы. Однако, их наличие, на данный момент, никоим образом не облегчает задачу: сами Arduino Uno достаточно давно не являются флагманами, и, к тому же — на них нет беспроводных интерфейсов (wi-fi, bluetooth), а, в данное время, с момента появления тех же самых esp32 (ранее esp8266), подобные интерфейсы, наверное, можно считать просто необходимостью (разбаловались мы удобством удалённого мониторинга и даже прошивки (привет технологии OTAOn-The-Air, прошивка по wi-fi)). Да и, к тому же, можно сказать, что Arduino Uno довольно габаритны (и даже дороги по цене). 

И, опять же, если взять те же самые esp32, казалось бы, для них то уж должны быть motor shield-ы?! Как показывает практика — ничуть не бывало! :-B  

Так что, в этой области, мы наблюдаем явный пробел… 

Нет, я, конечно, понимаю, почему ситуация обстоит таким образом — «на каждого не угодишь», и двигатели, это как раз та область, где у практически каждого будут свои потребности — сложно создать нечто универсальное… 

Тем не менее, как показывают предыдущие работы в этой области (те же самые arduino'вские motor shield-ы) — всё вполне реально, при желании…Так что ситуация довольно странная (на мой взгляд). 

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

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

Итак, вариант номер один: плата размером примерно 58х44 мм, NodeMCU:

Как мы видим, при рассмотрении этой платы, сразу бросается в глаза, что она построена на базе старого чипа от компании Espressif — esp8266. 

По размерам она довольно компактная, если сравнивать, с той же самой Arduino Uno, имеющей примерные размеры в 69х53 мм. 

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

Сразу хочу отметить, что, частенько, эти платы продаются под названиями что-то типа «NodeMCU v.3, Lua» — в результате чего, вы, впервые увидев подобное название, естественно, начинаете искать в интернете, что такое Lua (если до этого не сталкивались), узнаёте, что «это такой язык, которого вы не знаете» и на вас накатывает лёгкая паника…:-)

Но переживать, если вы не знаете Lua, не нужно, так как эта плата без проблем программируется и прошивается в стандартной Arduino IDE, на стандартном языке Wiring (то бишь, читай C++). 

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

Остановлюсь только на некоторых, неочевидных моментах касательно всей системы в целом, которые могут быть для вас полезны…

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

Момент второй: плата NodeMCU, как правило, продаётся отдельно, то есть, motor shield не является её приложением, и нужно его приобретать его отдельно. 

Момент третий: для этой платы есть похожая на motor shield плата, которая является всего лишь платой расширения, так что надо не ошибиться. Например, на фото ниже, это плата расширения показана слева, а motor shield — справа: 

                                                                                                                                                                                                                                      SAMIORE Store

Как мы видим по фото выше, показанная справа плата motor shield-a имеет две клеммные колодки для подключения:

  • Двух коллекторных двигателей (или одного шагового);

  • Питания для двигателей;

  • Питания для логической части.

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

При этом, что интересно, в некоторых ситуациях бывает нужно запитать и микроконтроллер (NodeMCU) и motor shield (с подключенными двигателями) — напрямую от USB-порта.

Для чего это может быть нужно: например, при том же самом программировании, и тестировании каких-то параметров. 

Для этого на плате есть следующая возможность: втыкаемый/вытыкаемый джампер и кнопка включения/выключения:

Джампер нужен, чтобы и motor shield и NodeMCU были запитаны от одного и того же источника — например, если плата подключена по USB и никакого источника питания больше нет, то они оба будут запитаны от USB; если используется внешний источник питания, например, аккумулятор, то этот джампер позволяет запитать их обоих от этого внешнего источника.

При этом, есть ещё один нюанс: если джампер поставлен в положение VIN/VM, а вся система запитана от внешнего аккумулятора, то подключать систему к USB не стоит, так как есть гипотетический риск сжечь порт компьютера — поэтому, имеет смысл сначала разъединить питание (выдернуть джампер). 

Равно как и наоборот: если система подключена к USB порту, то нельзя подключать ещё и внешнее питание, если джампер установлен на VIN/VM — опять же, можно сжечь USB-порт компьютера…

Из интересных полезностей этой платы ещё можно отметить наличие нажимаемой и «залипающей» (не знаю, как правильно назвать) кнопки включения прямо на плате (показана на фото выше, белого цвета) — штука удобная, в том смысле, что если на этой системе собран робот, то не нужно будет выдёргивать провода питания — достаточно только включать/выключать всю систему кнопкой*…

*Это касается только того случая, если и motor shield и NodeMCU запитаны от одного и того же внешнего источника, например, аккумулятора. 

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

Ну и, напоследок, ещё раз повторю (хотя это уже было, на принтскрине выше, где был показан кусок из документации), что motor shield поддерживает максимальный ток до 1,2А — то бишь, штука относительно слабенькая, но, «для комнатных роботов сойдёт» … :-) 

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

Это был относительно известный широкой публике вариант. ;-) 

А теперь — гораздо менее известный: в результате долгих поисков, я нашёл весьма интересную штуку, которая компактна, современна (это уже не esp8266!) И может быть собрана в своеобразный «бутерброд»: микро OLED монитор-микроконтроллер-motor shield! 

Это блок плат от компании Wemos и выглядит всё это добро примерно так (я специально рядом на бумаге поставил размеры, так как вам наверняка будет интересно):

Где, слева-направо:

  • 1: motor shield (Wemos D1 motor shield):
    Здесь уже насчёт пропускной способности по току всё гораздо интереснее: вплоть до 3,2А, с напряжением питания до 15В (напряжение питания правда поддерживает меньше — у прошлой платы было до 36В).

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

  • 2: esp32 s2 mini:
    Все её характеристики описывать, наверное, не имеет смысла, вместо этого, желающие могут посмотреть полный комплект документации, например вот здесь.

    Только скажу, зачем я её брал: мне она приглянулась тем, что она имеет аппаратную поддержку выбора режима USB Host/USB Device — то есть, она очень маленькая и, на её базе можно собирать как разнообразные клавиатуры, джойстики и т.д, так и она может выступать главной в USB-соединении, таким образом, уже к ней можно подключать что-нибудь из USB-девайсов (например, запилить USB-удлинитель для принтера и не только: одна плата подключается к компьютеру, а вторая плата подключается к принтеру(или другому USB-устройству), а затем, обе платы устанавливают между собой беспроводное соединение по wi-fi).
    Ещё из интересного, что на ней можно сделать, можно назвать, например, wi-fi-флешку.
    Сама плата есть вот здесь.

  • OLED монитор 0.66’’, 64х48 точки:
    Его я просто взял, чтобы можно было состыковать с предыдущими двумя платами :-).

Таким образом, если делать какую-либо самоделку, — можно собрать своеобразную «этажерку» или «бутерброд», весьма маленького размера. Ещё немного информации по монитору есть здесь

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

Тем не менее, как мы видим, эта сборка гораздо более компактная, мощная и современная, что, соответственно, даёт возможность поискать для неё и гораздо более интересные применения… ;-) 

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

P.S. Меня тут всё занимает идея возможности сборки микро-радиоуправляемой машинки, которая помещается фаланге указательного пальца (т.е. размеры машинки по XY примерно 20х10 мм). Готовых решений для таких микроразмеров, конечно, не видел, но было бы интересно…Кто его знает? :-) 

P.P.S. Но в сети такое видел. Кто-то из Японии делал, если память не изменяет. Правда там всё кастомное, готовых компонентов не было. 


Размещайте облачную инфраструктуру и масштабируйте сервисы с надежным облачным провайдером Beget.
Эксклюзивно для читателей Хабра мы даем бонус 10% при первом пополнении.

Воспользоваться

Комментарии (5)


  1. shadrap
    26.06.2026 07:40

    разнообразие шильдов пропорционально разнообразию двигателей, как и их "много-проводность". Например у меня компактный биполярный шаговик, ни одна из ваших универсалок под него не пойдёт, а еще и питанием 3в... Наверное поэтому нет одной универсальной платы)


  1. Wosk1947
    26.06.2026 07:40

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


  1. ch1971
    26.06.2026 07:40

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


  1. PEMOK
    26.06.2026 07:40

    Esp32 c3 + tmc2209. На обратной стороне экран. Собственная разработка, ble на борту, контроллер уровня заряда акб, если на акб юзать + можно подключить 2 датчика и 1 кнопку, ну или датчики на кнопки заменить. Напряжение питания до 24В. Все это прекрасно управляется и обновляется с телефона. Это старая версия, тестовая, Новая выглядит немного иначе, реализовано включение и отключение одной кнопкой (не спящий режим).


  1. DieSlogan
    26.06.2026 07:40

    А в сторону M5Stack смотрели?