Интернет-лаборатория роботов ZiZiBOT.RU

Проектирование и разработки в области робототехники и автоматизации технологических процессов. Производство готовых роботов и конструкторов для творчества. Консультации и обучение по электронике и программированию.

г. Юрга,
ул.Ленинградская 38/83

+7 923-503-6074

Подключаем мотор-колесо от гироскутера к ESP32 (среда программирования Arduino ide)

 

Ссылка для скачивания тестовых программ

Документация на драйвер BLD-300B

Имеем гироскутер  

гироскутер на разбор

 


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

Драйвер мотора используемый в гироскутер
 
Мотор-колесо имеет три силовых фазы (это бесколлекторный трехфазный двигатель) и энкодер в виде трех датчиков Холла (с питанием датчиков это 5 контактов) . Контакты по краям разъема – питание, внутренние сигналы от датчиков Холла.

Мотор-колесо от гироскутера 6 дюймов
Как я уже заметил, подключить к контроллеру имеющийся в комплекте гироскутера драйвер у меня не получилось.
На помощь пришел знаменитый китайский магазин. 
По итогу был выбран драйвер BLD-300B. Особенностью драйвера можно считать «заточенность» на управление через подстроечный резистор  (внутренний либо внешний). Такой драйвер можно использовать для регулировки вращения шпинделя фрезерного станка. Но мне нужно использовать его для управления вращением колеса. При этом должна адекватно работать обратная связь по скорости. Т.е. если сопротивление вращению увеличивается драйвер должен это компенсировать, добавив мощности мотору доведя скорость до заданной. 

DLD-300B
 

Если требуется, чтобы драйвер держал заданную скорость, переключите тумблер в положение ON
BLD-300B 
Если SW2 в положении OFF  , при малых оборотах мотор колесо можно остановить рукой. После включения SW2, это сделать затруднительно.
 
Самая элементарная схема подключения изображена ниже. Нужно заземлить EN и BRK. После этого можно управлять мотором посредством внутреннего подстроечного резистора.

В качестве источника питания для мотора я буду использовать батарею от разобранного гироскутера на 36V емкостью 4 амперчаса. 

Входы драйвера EN, BRK, F/R через резистор подтянуты к 5 вольтам питания, как следствие, если их не подключать никуда, они будут находиться в состоянии высокого сигнала (на них будет 5 вольт).

 BLD-300B простое включение

Аккумулятор от гироскутера
Я протестировал вращение с  использованием внутреннего потенциометра. Единственное, что мне не понравилось, это отсутствие полной блокировки вращения колеса, даже при использовании функции тормоза (колесо можно провернуть). При этом я не тестировал вращения в разные стороны.
Следующая схема позволяет изменять направление вращения и подключать тормоз. Но мне она не интересна, мне требуется научиться управлять  при помощи микроконтроллера.
Простое включение BLD-300B

 

Подключаем микроконтроллер


Первое, что я попробовал сделать, это научить микроконтроллер управлять скоростью мотора. Для этого я подключил вывод  контроллера к SV входу  драйвера. Но согласно документации частота PWM управления должна быть не менее 1Кгц. Стандартный ШИМ от Arduino Nano генерируется на частоте 500Гц. Решено использовать контроллер на базе ESP32
 ESP32
Для согласования уровня сигнала я использовал преобразователь уровней сигнала вроде того, что показан в центре схемы ниже.
Управляем скоростью от МК

Программа содержит два файла, один описывает класс мотора motor_init.h, а второй - главная программа, работающая в цикле testmk1.ino  .
 
Испытания прошли успешно.


Управляю направлением и тормозом


Следующим этапом я подключил контакты направления вращения и тормоза по схеме ниже. В программу также включил возможность управления мотором. Но, к сожалению, схема оказалась не рабочей. Преобразователь уровня стал работать в обратном направлении и передавал напряжение со входов DIR и BREAK драйвера на контроллер. Контроллер зависал, перезагружался – «паниковал».

Программа - управление направлением

 
Поразмыслив, и используя элементарную логику, я составил еще пару схем, первую с использованием полевых транзисторов, а вторую с использование оптопары. Обе они приводили к замыканию/размыканию через полупроводниковый элемент DIR и BREAK  на землю. Обе они оказались работоспособными.
Последняя схема мне нравится больше, т.к. оптопара еще является защитой от высокого потенциала для контроллера. Возможно ШИМ (контакт SV) нужно выполнить в таком же «стиле».
Тестовые программы прикреплены к статье.

Исправная схема 1

Исправная схема опторазвязка ESP32 BLD-300B
 

Характеристики оптопары PC817
 

Характеристики оптопары PC817
 


X

Написать сообщение:

Укажите свой номер телефона или e-mail для обратной связи
- e-mail
ИЛИ
- номер телефона

Текст сообщения: