Самодельная панель управления для авиасимулятора на базе STM32F103C8 (Blue Pill)
Вдохновлено устройствами VKB. Проект в активной разработке.
Проект реализует USB HID-совместимый button box для авиасимуляторов (DCS, MSFS, IL-2 и др.).
Основа — матрица кнопок 4×4, прошивка на bare-metal C, симуляция схемы в Proteus.
Цель: создать полнофункциональную панель управления без использования готовых решений — только свой контроллер, своя прошивка.
| Компонент | Описание |
|---|---|
| Микроконтроллер | STM32F103C8T6 (Blue Pill) |
| Матрица кнопок | 4×4 (16 кнопок) |
| Антигостинг | Программный (опрос матрицы с защитой от фантомных нажатий) |
| Подключение к ПК | USB (HID) |
DIY-panel/
├── buttons/ # Исходный код STM32CubeIDE (bare-metal C)
│ ├── Src/ # main.c, syscalls.c, sysmem.c
│ ├── Startup/ # стартап-файлы
│ ├── Debug/ # артефакты сборки (в .gitignore)
│ └── STM32F401CCUX_FLASH.ld
├── button_box.pdsprj # Proteus-проект (схема + симуляция)
├── buttons.hex # Скомпилированный HEX (последняя стабильная версия)
├── .gitignore
└── README.md
- IDE: STM32CubeIDE
- Язык: C (bare-metal, без RTOS)
- Сканирование матрицы: построчное, polling
- Антигостинг: программный (фильтрация фантомных нажатий при сканировании)
- Открыть папку
buttons/как проект в STM32CubeIDE - Build →
Project > Build All(Ctrl+B) - Прошить через ST-Link:
Run > Runили загрузитьbuttons.hexчерез STM32CubeProgrammer
Файл button_box.pdsprj содержит схему матрицы кнопок с Blue Pill.
Позволяет отлаживать прошивку без физического железа.
Запуск:
- Открыть
button_box.pdsprjв Proteus 8+ - Загрузить
buttons.hexв свойства микроконтроллера - Запустить симуляцию (F12)
- Схема матрицы 4×4 в Proteus
- Сканирование матрицы (bare-metal, polling)
- Программный антигостинг (защита от фантомных нажатий)
- Добавление энкодеров (поворотные переключатели)
- Добавление двухцветных светодиодов (индикация состояния)
- USB HID — прошивка как джойстик (HID дескриптор + репорты)
- Физическая сборка панели
- Workspace-файл Proteus (
.workspace) добавлен в.gitignore— он хранит локальные пути - Папка
Debug/добавлена в.gitignore— туда идут артефакты сборки STM32CubeIDE buttons.hexв репе — актуален для последней стабильной версии прошивки