Курс BeeFC: содержание уровня «Старт» … ↩
mod. Среда, 14 октября 2026 11:17 . См. 3
BeeFC · Полётный контроллер на STM32 своими руками · Уровень «Старт»
Курс посвящён разработке собственной прошивки полётного контроллера BeeFC на микроконтроллере STM32F405. Уровень «Старт» состоит из десяти уроков: от первой программы, которая зажигает светодиод, до тягового стенда, который сам снимает характеристику двигателя.
Каждый урок добавляет в прошивку BeeFC новую часть и завершается разбором того, как та же задача решена в исходном коде Betaflight, INAV, ArduPilot и PX4.
Содержание
1. О курсе
Курс предназначен для слушателей, которые хотят понимать, как устроена прошивка полётного контроллера изнутри, а не только настраивать готовую. В течение курса каждый слушатель пишет собственную учебную прошивку BeeFC для микроконтроллера STM32F405. Прошивка растёт от урока к уроку, и к концу третьего уровня она стабилизирует беспилотное воздушное судно (БВС) на испытательном стенде.
Курс состоит из трёх уровней общей продолжительностью 130 часов, из которых около 70 % приходится на практику.
| Уровень | Уроки | Продолжительность | Результат |
|---|---|---|---|
| «Старт» | S1–S10 | 36 часов | BeeFC версии 0.9 и отчёт о характеристиках двигателя с тягового стенда |
| «Полётный контроллер» | P1–P13 | 52 часа | стабилизация на стендах «Качели» и «Карданов подвес» |
| «Автопилот» | A1–A10 | 42 часа | удержание высоты и точки в программной имитации, дипломный проект |
2. Почему стенды, а не полёты
Все упражнения курса выполняются на столе, на испытательных стендах и в программной имитации. Свободный полёт не требуется ни на одном уровне. Такое построение курса имеет три причины.
- Использование воздушного пространства над Москвой и большей частью Московской области ограничено, и режим ограничений может меняться без предварительного уведомления.
- Стенд позволяет повторить один и тот же опыт много раз в одинаковых условиях и сравнить результаты в журнале полёта.
- Ошибка в прошивке на стенде приводит к остановке двигателя, а не к падению аппарата.
Используются три стенда: тяговый стенд для замера тяги и потребляемого тока, стенд «Качели» с одной степенью свободы и карданов подвес с тремя степенями свободы. Конструкции стендов описаны в уроках, где они впервые применяются.
↑ К оглавлению3. Уроки уровня «Старт»
| Урок | Тема | Теория (часы) | Практика (часы) | Результат |
|---|---|---|---|---|
| S1 | Беспилотная авиационная система и место полётного контроллера в ней | 1 | 1 | рабочий репозиторий, первая успешная автоматическая проверка |
| S2 | Инструменты разработки и первая прошивка | 1 | 2 | BeeFC 0.1: мигание светодиода, загрузка по USB и через отладчик |
| S3 | Устройство ядра Cortex-M4F: тактирование, память и запуск программы | 1 | 2 | тактирование 168 МГц, сценарий компоновщика, обработчик аварий |
| S4 | Язык C для встраиваемых систем и архитектура BeeFC | 1 | 3 | слоистая архитектура, первые модульные тесты на компьютере |
| S5 | Порты ввода-вывода, прерывания и контроллер прерываний NVIC | 1 | 2 | прерывание от линии готовности данных, фильтр дребезга, замер задержки |
| S6 | Системное время и планировщик задач | 1 | 2 | системное время, планировщик с приоритетами и замером загрузки |
| S7 | Последовательный порт, прямой доступ к памяти и консоль | 1,5 | 2,5 | консоль с командами, приём через прямой доступ к памяти |
| S8 | Таймеры и широтно-импульсная модуляция: первый запуск двигателя | 1 | 3 | сигналы ШИМ и OneShot125, защита от случайного запуска, первый запуск двигателя |
| S9 | Аналого-цифровой преобразователь: напряжение и ток аккумуляторной батареи | 1,5 | 2,5 | измерение напряжения и тока, фильтр PT1, предупреждение о разряде |
| S10 | Итоговая работа уровня «Старт»: тяговый стенд, версия 1 | 1 | 5 | BeeFC 0.9, отчёт о характеристиках двигателя |
Как устроен каждый урок
Каждый урок построен по одному образцу, чтобы слушатель знал, где искать нужную часть.
- Цели урока и перечень терминов с расшифровкой сокращений.
- Теоретическая часть с фрагментами кода прошивки BeeFC.
- Практика: задания в карточках с критериями автоматической проверки.
- Разбор решений в исходном коде Betaflight, INAV, ArduPilot и PX4 со ссылками на конкретные файлы в зафиксированных версиях.
- Контрольные вопросы, чек-лист самопроверки, список источников.
Ответы на контрольные вопросы собраны в отдельной статье в конце уровня.
↑ К оглавлению4. Что понадобится
| Оборудование | Назначение | Уроки |
|---|---|---|
| Учебная плата полётного контроллера на STM32F405 | основная аппаратная часть курса | S2–S10 |
| Кабель USB с линиями данных | питание платы, загрузка прошивки | S2–S10 |
| Отладчик ST-Link с интерфейсом SWD | пошаговая отладка, рекомендуется | S2–S10 |
| Преобразователь USB–UART с уровнями 3,3 В | консоль BeeFC | S7–S10 |
| Логический анализатор на восемь каналов | замер задержек и сигналов ШИМ | S5–S8 |
| Мультиметр | проверка питания и делителя напряжения | S8–S10 |
| Двигатель, регулятор частоты вращения и воздушный винт | первый запуск двигателя | S8–S10 |
| Тензодатчик с усилителем HX711 | тяговый стенд, версия 1 | S10 |
В качестве учебной платы подходит готовый полётный контроллер для FPV-аппаратов на STM32F405, например платы серий Matek F405, SpeedyBee F405 или Diatone Mamba F405. Такие платы поддерживаются всеми четырьмя прошивками, поэтому слушатель может сравнить поведение BeeFC и готовой прошивки на одной и той же аппаратной части.
Программное обеспечение распространяется бесплатно: компилятор Arm GNU Toolchain, утилиты make, dfu-util и OpenOCD, система контроля версий Git. Программная имитация Renode применяется для автоматической проверки кода, работающего с регистрами. Пакет Proteus используется по желанию: он моделирует близкий микроконтроллер STM32F401, а не STM32F405.
5. Как работать с курсом
Код каждого слушателя хранится в собственном репозитории на GitHub, созданном из шаблонного репозитория курса. Ссылка на шаблонный репозиторий выдаётся при записи на курс.
- Слушатель изучает теоретическую часть урока и выполняет задания.
- Изменения фиксируются в репозитории и отправляются на GitHub.
- Служба автоматической проверки собирает прошивку, запускает модульные тесты на компьютере и сообщает результат.
- Задание считается выполненным, когда все проверки пройдены.
Проверено: 13.10.2026
↑ К оглавлению- мод. : Среда, 14 октября 2026