No video

Автопилот STM32: Таймеры. ШИМ. Управление BLDC DIY Drone autopilot STM32: Timers and PWM

  Рет қаралды 4,239

Renat Abaydulin

Renat Abaydulin

Күн бұрын

Коллеги, сегодня мы разберем работу с таймерами в HAL, инициализируем нужный ШИМ, тем самым научимся управлять бесколлекторными двигателями из STM32.
Скачать исходный код и помочь проекту:
abaidulin.com/a...
Можно почитать краткое изложение.
abaidulin.com/s...
Today we will work with timers in HAL, initialize the needed PWM, thereby learning how to control the brushless motors from STM32.
Source code of autopilot:
abaidulin.com/a...
Музыка: The Fat Rat / thisisthefatrat

Пікірлер: 18
@tantry3111
@tantry3111 4 жыл бұрын
Есть нюанс. Контроллер для двигателя не сразу на команду реагирует с задержкой 0,15секунды, если движок стоял. Поэтому движот должен вращаться не ниже 10об/сек . И разгоняетя он за 0.2сек до 80-90%
@vilesovds
@vilesovds 6 жыл бұрын
И советую магические числа в дефайны завернуть, чтобы код не переписывать всё время.
@irbiit4910
@irbiit4910 5 жыл бұрын
Кстати, с stm32 хорошо работать в SystemWorkbench ac6. ST делает в кубе проекты под эту среду. Также хорошо то, что эта среда работает под Mac OS. (у меня тоже mac)
@RenatAbaidulin
@RenatAbaidulin 5 жыл бұрын
Спасибо большое! Попробую обязательно)
@MZeroTolerance
@MZeroTolerance 6 жыл бұрын
Я возможно пропустил в видео, но включение моторочиков это просто бинарно (on/off), либо код еще и задает нужную скорость вращения винта?
@RenatAbaidulin
@RenatAbaidulin 6 жыл бұрын
Ну в коде есть некоторая пропорциональная зависимость задаваемой скорости вращения от угла наклона. uint16_t speed = 800+20*abs(roll); Этот код нельзя использовать как регулятор, он более для демонстрации) Вынужден каждый раз это напоминать, чтоб никто не решил так регулировать свой дрон. Велик риск потерять его и покалечиться. Сейчас работаю над математическим следующим выпуском, там уже будет рабочий нечеткий регулятор.
@user-es7sc3vc8s
@user-es7sc3vc8s 11 ай бұрын
Ребят нужны исходники пж кто мне поможет буду очень рад((
@user-mc7kc2bd8b
@user-mc7kc2bd8b 5 жыл бұрын
Какой программой вы пользуетесь для написания кода?
@RenatAbaidulin
@RenatAbaidulin 5 жыл бұрын
Это Visual Studio Code
@vilesovds
@vilesovds 6 жыл бұрын
Так и не понял, почему 5000 и откуда взялись 800 и 2300?
@RenatAbaidulin
@RenatAbaidulin 6 жыл бұрын
Мы установили прескалер в 8, а таймер в 8MHz. Итого счетный регистр инкрементируется 1 раз в микросекунду или 1М раз в секунду(8М / 8 = 1М). Регистр ARR установили в 5000, для того чтоб мы обновляли скважность PWM 200 раз в секунду(1М / 5000 = 200). Длительность импульса 800 соответствует положению стика "газ в ноль", а 2300 - "полный газ". Это так заведено, так управляется ESC. Так понятнее?)))
@vilesovds
@vilesovds 6 жыл бұрын
@@RenatAbaidulin мне кажется, что было бы понятнее, если бы Вы привели пару осциллограмм к чему Вы стремитесь. Почему, например, частота ШИМ 200 Гц?
@RenatAbaidulin
@RenatAbaidulin 6 жыл бұрын
На 9:15 я вроде сказал, что осциллографа у меня нет, поэтому показать импульсы наглядно не могу). Что по поводу частоты. Это временная величина, для объяснения генерации ШИМ и демонстрации места в коде, где можно менять длительность периода PWM. Сейчас стоит 200Гц, кстати от гарнитуры приходит сигнал с длительностью периода чуть ли не 20000 мкс(50Гц). Так что мы можем выставлять ту частоту, которая нам будет нужна исходя из практических реалий, в диапазоне 50-200Гц - быстрее и медленнее наверное нет смысла. Спасибо за хорошие вопросы!)
@vilesovds
@vilesovds 6 жыл бұрын
@@RenatAbaidulin Обычно в радиомоделизме используют сигналы длительностью от 1 до 2 мс при частоте 50 Гц. Конвертер сигналов регулятора бесколлекторного двигателя тоже на это рассчитан. К этим цифрам и надо стремиться. А не на обум что-то городить
@RenatAbaidulin
@RenatAbaidulin 6 жыл бұрын
Кто использует? Производители гарнитуры? Покажите мне даташит в котором написано, что ESC не понимает 200Гц( а некоторые автопилоты и на 250Гц рулят движками) или что они заточены только под 50Гц. Тогда я перепишу код под 50Гц. Пока все отлично работает я буду отталкиваться от реалий данной задачи, а не от вашего субъективного мнения.)))
STM32 PWM на практике.
9:50
Vladimir Medintsev
Рет қаралды 19 М.
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 3,1 МЛН
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 33 МЛН
Make a TINY Arduino Drone with FPV Camera - Will It Fly?
20:26
Max Imagination
Рет қаралды 841 М.
Wave Drive with Rolling Elements. Best Gearbox for 3D Printing?
13:43
TrashRobotics
Рет қаралды 201 М.
Alternative to bearings for tiny robots
12:05
Breaking Taps
Рет қаралды 655 М.
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 3,1 МЛН