Модуль RA0124. HW-648. Драйвер коллекторных моторов для WeMos D1 Mini
Юридические лица получат счёт по запросу на наш e-mail. Присылайте ваши реквизиты, наши коды товаров и их количества.
Стоимость доставки по вашей просьбе можем включить в стоимость товаров. Работаем без НДС.
|
|
Двухканальный драйвер коллекторных двигателей TB6612FNG для WeMos D1 Mini
Одновременно с выходом в недалёком 2014 году чипа беспроводной связи ESP8266EX с интерфейсом WiFi, набравшего по-настоящему оглушительную популярность в кругу любителей собирать самодельные устройства, компания WEMOS Electronics представила общественности большую линейку собственных модульных электронных плат под одноимённой торговой маркой WeMos, задав новый вектор развития ардуино-совместимых платформ. Взяв за основу микроконтроллер от компании Espressif Systems, разработчики значительно потрудились не только над уменьшением размеров базовых модулей, сделав их максимально компактными, но и над выпуском целого спектра расширений, предложив пользователям богатый функционал, способный помочь в реализации задач различного уровня сложности при проектировании и конструировании разнообразных полезных изобретений.
Современные электронные продукты WeMos входят в категорию эффективных низкоценовых решений и позиционируются создателями как открытая платформа для самостоятельной разработки многоцелевых устройств на основе беспроводной связи с технологией WiFi. При этом основной упор сделан на создание и развитие изделий с поддержкой сетей нового поколения "Интернет вещей" (англ. - Internet of Things, IoT), чему активно способствуют существующие возможности облачных вычислений и межмашинных взаимодействий.
Чтобы потребитель не смог запутаться в физической совместимости плат, каждая серия обладает своими отличительными особенностями. Например, серия WeMos D1 Mini, к которому принадлежит Драйвер моторов WeMos, имеет синий цвет поверхности текстолита и небольшой скруглённый угловой вырез рядом с маркировкой 3V3. Вырез служит ориентиром, гарантирующим правильное совмещение нескольких плат между собой.
Технические характеристики
- Модель: v1.0.0
- Совместимость: WeMos D1 mini / WeMos D1 mini PRO
- Питание: модуля - 3.3 В, моторов - 4.5-13.5 В
- Контроллер: STM32F030, 32-битный Cortex-M0
- Драйвер: TB6612FNG
- Каналов: 2, (Мотор А, Мотор Б)
- Макс.продолжительный ток каждого канала: 1 А
- Макс.пиковый ток на канал: 3 А
- Частота ШИМ-модуляции: до 100 кГц
- Основные выводы:
- D1 (SCL), D2 (SDA) — интерфейс I2C
- RST - сброс
- Дополнительные выводы:
- VM+GND — питание моторов
- А1+А2 — Мотор А
- B1+B2 — Мотор Б
- S — режим ожидания Standby (STBY)
- Управление моторами:
- вращение по часовой стрелке
- вращение против часовой стрелки
- принудительное торможение
- свободная остановка
- скорость вращения вала
- Защита от обратной полярности, перегрева, пониженного напряжения
- Поддержка обновления прошивки
- Размер: 28 х 25.6 х 2.6 мм
- Температура эксплуатации: -20°С...+85°С
Функционал модуля драйвера моторов WeMos I2C Dual Motor Driver
Как и любая другая уважающая себя микроконтроллерная платформа, WeMos не обошла стороной и разработала под "себя" очень полезный модуль, применение которому обязательно найдётся при конструировании всевозможных проектов подвижных моделей или роботоподобных механизмов. Причём такие устройства могут обладать не только простой и привычной системой радиоуправления, но и всеми достоинствами современной популярной технологии WiFi. В качестве элементарного примера, достаточно представить робота-машинку, управляемую со смартфона или планшета.
Плата Motor Shield Wemos представляет из себя удачный симбиоз двух контроллеров STM32F030 и TB6612FNG, каждый из которых занимается выполнением возложенных на него задач. Сама по себе микросхема TB6612FNG, на которой собрано много аналогичных драйверов, вполне способна справиться с управлением одним или двумя небольшими коллекторными моторами, работающими на напряжении от 4.5 до 13.5 вольт. Смена направления вращения двигателя, изменение cкopocти вpaщeния вала, принудительное торможение и свободная остановка — весь набор в одном кристалле!
Изюминкой платы стал именно чип STM32, взявший на себя обязанность командовать драйвером, ведь не стоит забывать о миниатюрных размерах платформы WeMos. Известно, что микроконтроллер WeMos D1 Mini (Pro) не блещет количеством свободных цифровых выходов, а про аналоговые и говорить не стоит — он всего один! В тоже время, чтобы правильно взаимодействовать сразу с двумя независимыми друг от друга двигателями, TB6612FNG требует подключения большого количества контактов от внешнего контроллера. Первый плюс присутствия в модуле управляющего процессора STM32F030 заключается в экономии контактов, оставляющие пользователю свободные ресурсы для интеграции в проект необходимых датчиков, сенсоров или wилдoв.
Обратная сторона модуля Dual Motor Shield имеет несколько нераспаянных промаркированных площадок под перемычки, среди которых легко обнаруживаются надписи AD0 и AD1. Их контакты напрямую соединены с процессором STM32, и служат для изменения адреса обращения к модулю по шине интерфейсна I2C. Второй плюс наличия вспомогательного управляющего чипа состоит в возможности включения в WeMos-конструкцию одновременно несколько одинаковых плат. Совершенно не сложно посчитать, над каким количеством единовременно подключенных моторов станет доступно управление.
AD0 | AD1 | Адрес I2C |
- | - | 0x2D |
- | x | 0x2E |
x | - | 0x2F |
x | x | 0x30 |
Где "-" — закрытая перемычка, "х" — открытая перемычка. В исходном состоянии, обе перемычки открыты, I2C-адрес по умолчанию - 0x30h.
Третья положительная сторона наличия STM32 определена в предварительно незамкнутой перемычке STBY с тремя площадками, устанавливающей способ обработки логической команды при переходе драйвера в режим ожидания и выходе из него. Средний контакт STBY, совмещённый с площадками I2C или IO, определяет путь к источнику входного логического сигнала управления. В первом положении, команда будет поступать по последовательной асимметричной шине связи IIC, во втором — от внешнего генератора соответствующего сигнала, подключенного через вывод "S" в линейке выводов подключения моторов. В обоих вариантах подключения, TB6612FNG переводится в режим ожидания низкоуровневым сигналом, возвращается в рабочий режим высокоуровневым импульсом.
Четвёртая, и последняя, особенность модуля относится к упрощению написания программного кода управления моторами. Нет необходимости подробного изучения логики работы TB6612FNG. Распределение сигналов высокого и низкого уровня по входным контактам драйвера осуществляется набором простых текстовых команд, определённых для всех возможных действий управления над двигателями.
Перезагрузка двухканального модуля WeMos Motor Shield реализована отдельной перемычкой RST, размещённой на тыльной стороне платы. В замкнутом состоянии, сброс контроллера STM32 осуществляется через стандартный вывод RST. Напротив, в открытом положении, перезапуск выполняется контактом DTR, используемым в процессе обновления прошивки STM32.
Кроме обычных коллекторных моторов, драйвер TB6612FNG способен управлять одним биполярным шаговым двигателем. Первая обмотка двигателя соединяется с выводами А1 и А2, вторая обмотка к выводам B1 и B2.
Во время тестирования драйвера расширения, производителем WeMos были замечены единичные случаи нестабильной работы схемы модуля контроллера моторов, в следствии которых требовалась перезапись прошивки в STM32. Было принято решение не убирать с платы ряд контактов GND, RTS, 3V, R(x), T(x), DTR, и оставит их открытыми для нужд разработчика. Исходный код программного обеспечения драйвера моторов WeMos опубликован в свободном доступе. Найти его также можно в разделе "Полезные ссылки". Обладающий достаточными знаниями, любой пользователь сможет научить контроллер STM32 дроблению шагов при подключении настоящего драйвера к шаговому мотору.
Методы программирования
Специально для драйвера I2C Dual Motor Driver, WeMos подготовила ардуино-совместимую библиотеку Wemos Motor Shield Arduino Library. Загрузить её можно из раздела "Полезные ссылки".
Для каждого мотора в тексте программы инициализируется отдельная копия основного класса Motor, как с переходом в режим ожидания через вывод S, так и без него. Значения по умолчанию устанавливаются пользователем:
- Motor(address, motor, freq) — I2C-адрес, _MOTOR_A/_MOTOR_B, частота в Гц
- Motor(address, motor, freq, STBY_IO)
Функции управления мотором:
- setmotor(dir) — направление вращения
- setmotor(dir, pwm_val) — направление вращения с заданной частотой в диапазоне от 0 до 100%
- setfreq(freq) — зарезервирована
Команды управления, передаваемые в функцию setmotor:
- _SHORT_BRAKE — принудительное торможение
- _STOP — свободная остановка
- _CCW — обратное вращение
- _CW — прямое вращение
- _STANDBY — режим ожидания
Нижеприведённый пример скетча демонстрирует все команды управления для двух моторов
#include "WEMOS_Motor.h"
int pwm;
//Motor shiled I2C адрес: 0x30
//ШИМ частота: 1000Гц(1кГц)
Motor M1(0x30,_MOTOR_A, 1000); // Мотор A
Motor M2(0x30,_MOTOR_B, 1000); // Мотор B
void setup() {
Serial.begin(250000);
}
void loop() {
for (pwm = 0; pwm <= 100; pwm++)
{
// Первый мотор разгоняем от 0 до 100
M1.setmotor(_CW, pwm);
// Второй мотор замедляем от 100 до 0
M2.setmotor(_CW, 100-pwm);
// Печатаем направление и скорость вращения в последовательный порт
Serial.printf("A:%d%, B:%d%, DIR:CW/r/n", pwm,100-pwm);
}
// Свободный выбег обоих моторов
M1.setmotor(_STOP);
M2.setmotor(_STOP);
Serial.println("Motor A&B STOP");
delay(200);
for (pwm = 0; pwm <=100; pwm++)
{
// Первый мотор разгоняем в обратном направлении от 0 до 100
M1.setmotor(_CCW, pwm);
// Второй мотор замедляем в обратном направлении от 100 до 0
M2.setmotor(_CCW, 100-pwm);
// Печатаем направление и скорость вращения в последовательный порт
Serial.printf("A:%d%, B:%d%, DIR:CCW/r/n", pwm,100-pwm);
}
// Свободный выбег обоих моторов
M1.setmotor(_STOP);
M2.setmotor(_STOP);
delay(200);
Serial.println("Motor A&B STOP");
// Принудительное торможение
M1.setmotor(_SHORT_BRAKE);
M2.setmotor(_SHORT_BRAKE);
Serial.println("Motor A&B SHORT BRAKE");
delay(1000);
// оба мотора в режиме ожидания
M1.setmotor(_STANDBY);
M2.setmotor(_STANDBY);
Serial.println("Motor A&B STANDBY");
delay(1000);
}
------------------
СЕЕД14234:285
Доставка может производиться различными по Вашему выбору способами. Это и самовывоз, и курьерские службы по г. Москве, и транспортные компании по России. Также мы можем выслать этот товар Почтой России. Если размеры, вес товара Модуль RA0124. HW-648. Драйвер коллекторных моторов для WeMos D1 Mini или соображения удароустойчивости находятся в разрешённых Почтой России пределах.