- Необходимые материалы
- Понимание двигателей BLDC
- Почему дроны и другие мультикоптеры используют двигатели BLDC?
- Зачем нам нужен ESC и в чем его функция?
- Некоторые общие термины с BLDC и ESC:
- Схема управления двигателем Arduino BLDC
- Программа для управления скоростью BLDC с использованием Arduino
- Управление двигателем Arduino BLDC
Создавать вещи и заставлять их работать так, как мы хотим, всегда было настоящим развлечением. В то время как это согласовано, конструкторы, которые могут летать, вызывающе вызовут немного больше беспокойства среди любителей и мастеров оборудования. Да! Я говорю о планерах, вертолетах, самолетах и в основном мультикоптерах. Сегодня стало очень легко создать его самостоятельно благодаря поддержке сообщества, доступной в Интернете. Одна общая черта со всеми летающими аппаратами заключается в том, что они используют двигатель BLDC, так что же это за двигатель BLDC? Зачем он нужен, чтобы летать? Что в этом особенного? Как купить подходящий двигатель и связать его с контроллером? Что такое ESC и почему мы его используем? Если у вас есть подобные вопросы, то это руководство - ваше универсальное решение.
Итак, в основном в этом уроке мы будем управлять бесщеточным двигателем с помощью Arduino. Здесь бессенсорный двигатель выдвижного механизма BLDC A2212 / 13T используется с электронным регулятором скорости (ESC) на 20A. Этот двигатель обычно используется для создания дронов.
Необходимые материалы
- Двигатель BLDC A2212 / 13T
- ESC (20A)
- Источник питания (12В 20А)
- Ардуино
- Потенциометр
Понимание двигателей BLDC
BLDC Motor расшифровывается как Brush Less DC motor, он обычно используется в потолочных вентиляторах и электромобилях благодаря своей плавной работе. Использование двигателей BLDC в электромобилях подробно объясняется ранее. В отличие от других двигателей, двигатели BLDC имеют три выходных провода, и каждый провод формирует свою собственную фазу, что дает нам трехфазный двигатель. Чего ждать!!??
Да, хотя двигатели BLDC считаются двигателями постоянного тока, они работают с помощью импульсных волн. Контроллер Электронного регулятора скорости (ESC), преобразует напряжение постоянного тока от батареи, чтобы импульсы и выдает его на 3 -х провода двигателя. В любой момент времени будут запитаны только две фазы двигателя, так что ток входит через одну фазу и уходит через другую. Во время этого процесса катушка внутри двигателя находится под напряжением, и, следовательно, магниты на роторе выравниваются по отношению к катушке под напряжением. Затем на следующие два провода подается питание от ESC, этот процесс продолжается, чтобы двигатель вращался. Скорость двигателя зависит от того, насколько быстро катушка находится под напряжением, а направление двигателя зависит от того, в каком порядке катушки находятся под напряжением. Мы узнаем больше о ESC позже в этой статье.
Доступно множество типов двигателей BLDC, давайте рассмотрим наиболее распространенные классификации.
Внутренний и внешний двигатель BLDC: Двигатели In-Runner BLDC работают как любой другой двигатель. То есть вал внутри двигателя вращается, а корпус остается неподвижным. В то время как двигатели BLDC с внешними рабочими колесами являются прямо противоположными, внешний корпус двигателя вращается вместе с валом, а внутренняя катушка остается неподвижной. Двигатели с внешними рабочими колесами являются большим преимуществом в электрических велосипедах, поскольку внешний кожух (тот, который вращается) сам превращается в обод для шин, и, следовательно, исключается механизм сцепления. Кроме того, двигатели с внешними рабочими колесами, как правило, дают больший крутящий момент, чем в других типах рабочих колес, поэтому они становятся идеальным выбором для электромобилей и дронов. Тот, который мы здесь используем, также является типом бегуна.
Примечание. Существует еще один тип двигателя, называемый двигателями BLDC без сердечника, которые также используются для карманных дронов, у них другой принцип работы, но пока давайте пропустим его ради этого урока.
Сенсорный и бессенсорный двигатель BLDC: для вращения двигателя BLDC без рывков требуется обратная связь. То есть ESC должен знать положение и полюс магнитов в роторе, чтобы соответственно возбуждать статор. Эту информацию можно получить двумя способами; один - путем размещения датчика Холла внутри двигателя. Датчик Холла обнаружит магнит и отправит информацию в ESC. Этот тип двигателя называется двигателем Sensord BLDC и используется в электромобилях. Второй метод заключается в использовании обратной ЭДС, генерируемой катушками, когда магниты пересекают их, это не требует дополнительных аппаратных средств или проводов, фазовый провод сам используется в качестве обратной связи для проверки обратной ЭДС. Этот метод используется в нашем двигателе и распространен для дронов и других летающих проектов.
Почему дроны и другие мультикоптеры используют двигатели BLDC?
Есть много типов крутых дронов, от квадрокоптеров до вертолетов и планеров, у всех есть одно общее оборудование. Это двигатели BLDC, но почему? Почему они используют двигатель BLDC, который немного дороже по сравнению с двигателями постоянного тока?
Для этого есть немало веских причин, одна из которых заключается в том, что крутящий момент, обеспечиваемый этими двигателями, очень высок, что очень важно для быстрого набора / ослабления тяги при взлете или посадке дрона. Также эти двигатели доступны в виде бегунов, что снова увеличивает тягу двигателей. Другой причиной выбора двигателя BLDC является его плавная работа без вибрации, что идеально подходит для нашего дрона, стабильного в воздухе.
Отношение мощности к весу двигателя BLDC очень велико. Это очень важно, потому что двигатели, используемые на дронах, должны быть большой мощности (высокая скорость и высокий крутящий момент), но также должны иметь меньший вес. Двигатель постоянного тока, который может обеспечить такой же крутящий момент и скорость, что и двигатель BLDC, будет в два раза тяжелее двигателя BLDC.
Зачем нам нужен ESC и в чем его функция?
Как мы знаем, каждому двигателю BLDC требуется какой-то контроллер для преобразования постоянного напряжения от батареи в импульсы для питания фазных проводов двигателя. Этот контроллер называется ESC, что означает электронный регулятор скорости. Основная обязанность контроллера - подать питание на фазные провода двигателей BLDC в таком порядке, чтобы двигатель вращался. Это делается путем измерения обратной ЭДС от каждого провода и подачи питания на катушку именно тогда, когда магнит пересекает катушку. Таким образом, внутри ESC есть много блестящего аппаратного обеспечения, которое выходит за рамки этого руководства. Но чтобы упомянуть некоторых, у него есть регулятор скорости и схема удаления батареи.
Управление скоростью на основе PWM: ESC может управлять скоростью двигателя BLDC, считывая сигнал PWM, подаваемый на оранжевый провод. Он работает очень похоже на серводвигатели, предоставляемый сигнал ШИМ должен иметь период 20 мс, а рабочий цикл может быть изменен для изменения скорости двигателя BLDC. Поскольку та же логика применяется и к серводвигателям для управления положением, мы можем использовать ту же библиотеку сервоприводов в нашей программе Arduino. Узнайте, как использовать сервопривод с Arduino здесь.
Цепь выключателя батареи (BEC): почти все ESC идут со схемой исключения батареи. Как следует из названия, эта схема устраняет необходимость в отдельной батарее для микроконтроллера, в этом случае нам не нужен отдельный источник питания для питания нашей Arduino; сам ESC будет обеспечивать регулируемое напряжение +5 В, которое можно использовать для питания нашей Arduino. Существует много типов схем, которые регулируют это напряжение, обычно это будет линейное регулирование на дешевых ESC, но вы также можете найти схемы с переключающими цепями.
Прошивка: каждый ESC имеет программу прошивки, записанную производителем. Эта прошивка во многом определяет реакцию вашего ESC; некоторые из популярных прошивок - Традиционные, Simon-K и BL-Heli. Эта прошивка также программируется пользователем, но мы не будем подробно останавливаться на этом в этом руководстве.
Некоторые общие термины с BLDC и ESC:
Если вы только начали работать с двигателями BLDC, возможно, вы встречали такие термины, как торможение, плавный пуск, направление двигателя, низкое напряжение, время отклика и опережение. Давайте посмотрим, что означают эти термины.
Торможение: Торможение - это способность вашего двигателя BLDC останавливать вращение, как только дроссель снят. Эта способность очень важна для мультикоптеров, поскольку им приходится чаще менять обороты, чтобы маневрировать в воздухе.
Плавный пуск: Плавный пуск - важная особенность, которую следует учитывать, когда ваш двигатель BLDC связан с редуктором. Когда для двигателя включен плавный пуск, он не сразу начинает вращаться очень быстро, он всегда будет постепенно увеличивать скорость, независимо от того, как быстро дросселируется. Это поможет нам снизить износ шестерен, прикрепленных к двигателям (если таковые имеются).
Направление двигателя: направление двигателя в двигателях BLDC обычно не изменяется во время работы. Но при сборке пользователю может потребоваться изменить направление вращения двигателя. Самый простой способ изменить направление двигателя - просто поменять местами любые два провода двигателя.
Останов при низком напряжении: после калибровки нам всегда нужно, чтобы наши двигатели BLDC работали с одной и той же конкретной скоростью для определенного значения газа. Но этого трудно достичь, потому что двигатели имеют тенденцию уменьшать свою скорость при том же значении дроссельной заслонки, когда уменьшается напряжение аккумулятора. Чтобы избежать этого, мы обычно программируем ESC так, чтобы он перестал работать, когда напряжение батареи упадет ниже порогового значения, эта функция называется остановкой по низкому напряжению и полезна в дронах.
Время отклика: способность двигателя быстро изменять свою скорость в зависимости от изменения положения дроссельной заслонки называется временем отклика. Чем меньше время отклика, тем лучше будет контроль.
Advance: Advance - это проблема или больше похоже на ошибку с двигателями BLDC. Все двигатели BLDC имеют небольшой прогресс. Когда катушки статора находятся под напряжением, ротор притягивается к нему из-за присутствующего на них постоянного магнита. После притяжения ротор имеет тенденцию двигаться немного вперед в том же направлении, прежде чем обмотка обесточится, а затем подаст питание на следующую обмотку. Это движение называется «Advance», и оно создает такие проблемы, как дрожание, нагревание, шум и т. Д. Так что это то, чего хороший ESC должен избегать сам по себе.
Хорошо, достаточно теории, теперь давайте начнем с аппаратного обеспечения, подключив двигатель к Arduino.
Схема управления двигателем Arduino BLDC
Ниже приведена принципиальная схема управления бесщеточным двигателем с помощью Arduino:
Подключение двигателя BLDC к Arduino довольно простое. Для ESC требуется источник питания минимум 12 В и 5 А. В этом уроке я использовал свой RPS в качестве источника питания, но вы также можете использовать Li-Po аккумулятор для питания ESC. Трехфазные провода ESC должны быть подключены к трехфазным проводам двигателей, нет порядка подключения этих проводов, вы можете подключать их в любом порядке.
Предупреждение: На некоторых ESC не будет разъемов, в этом случае убедитесь, что ваше соединение надежное, и защитите оголенные провода изоляционной лентой. Поскольку через фазы будет проходить большой ток, любое короткое замыкание приведет к необратимому повреждению ESC и двигателя.
Схема BEC (Battery Eliminator) в самом регуляторе ESC будет регулировать напряжение +5 В, которое можно использовать для питания платы Arduino. Наконец, чтобы установить скорость двигателя BLDC, мы также используем потенциометр, подключенный к выводу A0 Arduino.
Программа для управления скоростью BLDC с использованием Arduino
Нам нужно создать сигнал ШИМ с изменяющимся рабочим циклом от 0% до 100% с частотой 50 Гц. Рабочий цикл следует контролировать с помощью потенциометра, чтобы мы могли контролировать скорость двигателя. Код для этого аналогичен управлению серводвигателями, поскольку им также требуется сигнал ШИМ с частотой 50 Гц; следовательно, мы используем ту же серво-библиотеку от Arduino. Полный код можно найти в нижней части этой страницы, ниже я объясню код в небольших фрагментах. И если вы новичок в Arduino или PWM, тогда сначала воспользуйтесь PWM с Arduino и управляйте сервоприводом с помощью Arduino.
Сигнал ШИМ может генерироваться только на выводах, которые аппаратно поддерживают ШИМ, эти выводы обычно обозначаются символом ~. На Arduino UNO вывод 9 может генерировать сигнал ШИМ, поэтому мы подключаем вывод сигнала ESC (оранжевый провод) к выводу 9, мы также упоминаем тот же код гостиницы, используя следующую строку
ESC.attach (9);
Мы должны генерировать ШИМ-сигнал с изменяющимся рабочим циклом от 0% до 100%. Для рабочего цикла 0% POT будет выводить 0 В (0), а для 100% рабочего цикла POT будет выводить 5 В (1023). Здесь потенциометр подключен к выводу A0, поэтому мы должны считывать аналоговое напряжение с POT, используя функцию аналогового считывания, как показано ниже.
int throttle = аналоговое чтение (A0);
Затем мы должны преобразовать значение из 0 в 1023 в 0 в 180, потому что значение 0 будет генерировать 0% PWM, а значение 180 будет генерировать 100% рабочий цикл. Любые значения выше 180 не имеют смысла. Таким образом, мы сопоставляем значение 0-180 с помощью функции карты, как показано ниже.
дроссель = карта (дроссель, 0, 1023, 0, 180);
Наконец, мы должны отправить это значение серво-функции, чтобы она могла генерировать сигнал ШИМ на этом выводе. Поскольку мы назвали наш сервообъект ESC, код будет выглядеть так, как показано ниже, где переменная дроссельная заслонка содержит значение от 0 до 180 для управления рабочим циклом сигнала ШИМ.
ESC.write (дроссельная заслонка);
Управление двигателем Arduino BLDC
Выполните подключения в соответствии с принципиальной схемой, загрузите код в Arduino и включите ESC. Убедитесь, что вы установили двигатель BLDC на что-то, так как двигатель будет прыгать вокруг при вращении. Как только установка будет включена, ваш ESC издаст приветственный тон и будет продолжать пищать, пока сигнал газа не достигнет пороговых значений, просто постепенно увеличивайте POT с 0 В, и звуковой сигнал прекратится, это означает, что теперь мы предоставляем ШИМ сигнал выше нижнего порогового значения, и при дальнейшем увеличении ваш двигатель начнет медленно вращаться. Чем больше напряжения вы предоставите, тем большую скорость будет набирать двигатель, и, наконец, когда напряжение превысит верхний порог, двигатель остановится. Затем вы можете повторить процесс.
Полную работу этого контроллера Arduino BLDC можно также найти по ссылке на видео ниже. Если у вас возникли какие-либо проблемы с тем, чтобы заставить это работать, не стесняйтесь использовать раздел комментариев или использовать форумы для получения дополнительной технической помощи.