WeMos D1 Mini Драйвер коллекторных моторов TB6612FNG

Цена:

270 р.
Код товара: 14234
Оригинальное название:
WeMos D1 mini I2C Dual Motor Driver TB6612FNG (1A) V1.0.0 M85

Двухканальный драйвер коллекторных двигателей 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 вольт. Смена направления вращения двигателя, изменение скорости вращения вала, принудительное торможение и свободная остановка — весь набор в одном кристалле!

Изюминкой платы стал именно чип STM32, взявший на себя обязанность командовать драйвером, ведь не стоит забывать о миниатюрных размерах платформы WeMos. Известно, что микроконтроллер WeMos D1 Mini (Pro) не блещет количеством свободных цифровых выходов, а про аналоговые и говорить не стоит — он всего один! В тоже время, чтобы правильно взаимодействовать сразу с двумя независимыми друг от друга двигателями, TB6612FNG требует подключения большого количества контактов от внешнего контроллера. Первый плюс присутствия в модуле процессора STM32F030 заключается в экономии контактов, оставляя пользователю ресурсы для добавления в проект необходимых датчиков, сенсоров или шилдов.

Обратная сторона модуля Dual Motor Shield имеет несколько нераспаянных промаркированных площадок под перемычки, среди которых легко обнаружить надписи AD0 и AD1. Их контакты напрямую соединены с процессором STM32 и служат для изменения адреса обращения к модулю по интерфейсной шине I2C. Второй плюс наличия вспомогательного чипа состоит в возможности включения в WeMos-конструкцию одновременно до четырёх плат. Совершенно не сложно посчитать, над каким количеством единовременно подключенных моторов станет доступно управление.

AD0 AD1 Адрес I2C
- - 0x2D
- x 0x2E
x - 0x2F
x x 0x30

Где "-" — открытая перемычка, "х" — закрытая перемычка. Изначально, обе перемычки открыты, I2C-адрес по умолчанию 0x30.

Третья положительная сторона 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, оставив их открытыми для нужд разработчика. Исходный код программного обеспечения опубликован в свободном доступу. Найти его можно в разделе "Полезные ссылки". Обладая достаточными знаниями, любой пользователь при желании сможет научить контроллер 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);
  
} 

Принципиальная схема Motor Shield

  Wemos Motor Shield V1.0.0  

Техническая информация

Полезные ссылки

 

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2019г https://compacttool.ru