Перейти к содержимому

Курс 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 часа удержание высоты и точки в программной имитации, дипломный проект
Главная идея: Слушатель не изучает прошивку по описаниям, а пишет её сам. Каждый урок заканчивается сравнением собственного решения с решением в одной из четырёх крупных открытых прошивок, поэтому после курса исходный код Betaflight, INAV, ArduPilot и PX4 читается как знакомый текст.
↑ К оглавлению

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, отчёт о характеристиках двигателя

Как устроен каждый урок

Каждый урок построен по одному образцу, чтобы слушатель знал, где искать нужную часть.

  1. Цели урока и перечень терминов с расшифровкой сокращений.
  2. Теоретическая часть с фрагментами кода прошивки BeeFC.
  3. Практика: задания в карточках с критериями автоматической проверки.
  4. Разбор решений в исходном коде Betaflight, INAV, ArduPilot и PX4 со ссылками на конкретные файлы в зафиксированных версиях.
  5. Контрольные вопросы, чек-лист самопроверки, список источников.

Ответы на контрольные вопросы собраны в отдельной статье в конце уровня.

↑ К оглавлению

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.

Учебная плата: Номера выводов на платах разных производителей и даже разных ревизий одной платы различаются. Перед первым запуском необходимо выяснить назначение выводов своей платы: это первое практическое задание урока S2.
↑ К оглавлению

5. Как работать с курсом

Код каждого слушателя хранится в собственном репозитории на GitHub, созданном из шаблонного репозитория курса. Ссылка на шаблонный репозиторий выдаётся при записи на курс.

  1. Слушатель изучает теоретическую часть урока и выполняет задания.
  2. Изменения фиксируются в репозитории и отправляются на GitHub.
  3. Служба автоматической проверки собирает прошивку, запускает модульные тесты на компьютере и сообщает результат.
  4. Задание считается выполненным, когда все проверки пройдены.
Безопасность: Двигатель с установленным воздушным винтом запускается только на закреплённом стенде, при ограничении тока источника питания и при отсутствии людей в плоскости вращения винта. До урока S8 воздушные винты не устанавливаются вовсе.

Проверено: 13.10.2026

↑ К оглавлению
  • мод. : Среда, 14 октября 2026