Илья Черенков grumman351 Сбер ID
STM32 и RF/LoRa под ключ: схемы и PCB в KiCad, прошивки C
Рейтинг
1 716
№ 608 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Опыт работы
12 лет
На сайте с
2026 года
Юридический статус
Частное лицо

PilotPro V5 — прошивка многофункционального пульта управления дроном на STM32H743

Описание

Требовалось разработать основную прошивку многофункционального пульта управления на STM32H743 с графическим интерфейсом, поддержкой нескольких источников команд и различными каналами связи с внешним оборудованием.
Пульт должен работать с USB HID-джойстиком, принимать данные проводного и беспроводного ретрансляторов, взаимодействовать с беспроводным хедтрекером и формировать выходные сигналы управления PPM, CRSF и SBUS. Для каждого профиля требовались собственные настройки каналов, расходы, экспоненты, триммирование, реверс, назначение кнопок, полётные режимы и безопасные значения Failsafe.
Отдельной задачей было обеспечить несколько способов обслуживания и обновления устройства: загрузку firmware.bin с USB-накопителя, обновление через BLE-загрузчик, а также получение новой прошивки через ESP32 с защищённого HTTPS-сервера. Система должна сохранять параметры в энергонезависимой памяти, контролировать целостность прошивки и корректно восстанавливаться после сбоя обновления.

Решение

Разработана многозадачная прошивка для STM32H743ZIT6 на базе FreeRTOS. Реализован графический интерфейс для цветного дисплея ILI9341 с управлением энкодером, русской и английской локализацией, светлой и тёмной темами. Созданы меню настройки моделей, каналов, полётных режимов, триммеров, экспонент, Failsafe, хедтрекера и ретрансляторов. Параметры разделены по профилям и сохраняются во внешней I2C EEPROM.
Для USB Host разработана обработка HID-джойстика: декодирование осей, HAT и 12 кнопок, масштабирование значений, реверс каналов и преобразование данных в управляющие диапазоны. Поддержана работа USB Mass Storage для загрузки файла firmware.bin. USB-загрузчик выполняет проверку файла, запись основной программы во Flash STM32 и запуск приложения из отдельной области памяти.
Интегрирован беспроводной хедтрекер на SX1280/FLRC 2,4 ГГц. Реализованы привязка устройств, приём Yaw/Pitch/Roll и кватерниона, настройка чувствительности, экспонент, мёртвой зоны и ограничений, команды калибровки, контроль состояния радиоканала и автоматический переход в безопасное центральное положение при потере связи.
Для передачи команд предусмотрены проводной ретранслятор по RS-485 и беспроводной вариант на SX1280. Выходной тракт поддерживает PPM, CRSF и SBUS. Добавлены профили, контроль подключения источников, Watchdog и обработка Failsafe.
Для ESP32-WROOM-32 реализованы управление питанием и сбросом, сервисный режим прошивки и двусторонний обмен со STM32H743 по UART4 с DMA. ESP32 используется как сетевой шлюз для получения обновлений с HTTPS-сервера. Дополнительно предусмотрен BLE-загрузчик, позволяющий обслуживать и обновлять пульт со смартфона без кабеля.

Результат

Получилась комплексная прошивка пульта управления, объединяющая пользовательский интерфейс, обработку USB-джойстика, формирование управляющих каналов, профили моделей, Failsafe, проводной и беспроводной ретрансляторы, SX1280-хедтрекер и несколько способов обновления программного обеспечения.
Пульт может использовать USB HID-джойстик как основной источник управления, принимать положение головы от беспроводного хедтрекера и добавлять каналы Pan/Tilt к общему потоку. Команды передаются на внешнее оборудование через проводной RS-485 либо беспроводной SX1280-ретранслятор, а выходной протокол выбирается между PPM, CRSF и SBUS.
Обновление возможно тремя способами: локально с USB-накопителя, по BLE или через ESP32 с HTTPS-сервера. Такое резервирование упрощает обслуживание устройства как в мастерской, так и непосредственно на объекте. Разделение загрузчика и основной прошивки, проверка целостности и безопасный запуск приложения уменьшают риск получить неработоспособное устройство после неудачного обновления.
Проект демонстрирует разработку законченной embedded-системы: от низкоуровневых интерфейсов, DMA и радиопротокола до многозадачной архитектуры, графического меню и практических сценариев эксплуатации.

Оценили проект:

Другие проекты

Все проекты →
Инженерия и Проектирование Метеостанция
Метеостанция
27
Инженерия и Проектирование Беспроводной хедтрекер на lora 2.4 ghz
Беспроводной хедтрекер на lora 2.4 ghz
20
Инженерия и Проектирование Радиомодуль для управления дроном  - шестислойный RF-модуль 868 МГц на SX1262 и QPA9510 со встроенным усилителем на 2 ВТ
Радиомодуль для управления дроном - шестислойный RF-модуль 868 МГц на SX1262 и QPA9510 со встроенным усилителем на 2 ВТ
18
Инженерия и Проектирование AirService — BLE-модуль для диагностики и прошивки STM32
AirService — BLE-модуль для диагностики и прошивки STM32
13