無人機飛控自學課程¶
從一台真實能飛的四軸飛行器原始碼,反推「無人機是怎麼設計出來的」。
這份教材不是從理論教科書開始,而是從你手上這台 STM32F103 四軸飛控的完整原始碼出發。 每一章都遵循同一個節奏:
本課程的教學方法:四層對照
- 原理 — 這件事背後的物理 / 控制理論是什麼
- 晶片 / 電路 — 對應到哪顆感測器、哪條匯流排、哪幾隻腳
- 程式碼 — 這份韌體實際上是怎麼寫的(逐段帶讀,標出檔名與行號)
- 動手 / 驗證 — 怎麼用上位機看波形、怎麼調參、怎麼確認你理解對了
學完之後,你不只「看得懂這份程式」,而是能把任何一台多旋翼的原理、硬體、程式三者對起來。
這台飛機是什麼¶
| 項目 | 規格 |
|---|---|
| 主控晶片 | STM32F103C8(Cortex-M3 / 72 MHz) |
| 開發環境 | Keil µVision 5(MDK-ARM)+ 標準外設庫(非 HAL/Cube) |
| 慣性感測 | MPU6050(三軸陀螺儀 + 三軸加速度計) |
| 氣壓計 | SPL06-001(定高用) |
| 光流 | PMW3901(室內定點懸停用) |
| 遙控通訊 | nRF24L01+(2.4G)、ELRS 接收機 |
| 控制架構 | 串級 PID(內環角速度 + 外環角度)+ 定高 + 光流定點 + 特技模式 |
| 地面站 | ANO_TC 匿名科創上位機(看波形、調 PID) |
你已經有的學習資料(資料地圖)¶
你手上的資料夾 C:\github\drone 是一整套教學套件。下面把它對應到本課程會用到的地方:
| 資料夾 | 內容 | 在課程中的角色 |
|---|---|---|
4.四轴飞机资料/飞控_1代码 |
飛控原始碼(本課程主角) | 每一章逐段帶讀 |
4.四轴飞机资料/飞控_2电路图 |
飛控電路圖 PDF | 對照腳位、匯流排、馬達接線 |
4.四轴飞机资料/飞控_3PCB |
PCB 正反面圖 | 把程式裡的腳位定義對到實體位置 |
4.四轴飞机资料/飞控_4BOM清单 |
零件清單 | 認識每顆料件的型號與用途 |
5.四轴遥控器资料 |
遙控器的程式碼 / 電路圖 / PCB | 教「遙控端怎麼發訊號」 |
6.视频教程/代码讲解 |
官方解說影片(工程結構、工作流程、PID) | 每章附上對應影片,邊看邊對照 |
7.芯片PID资料 |
晶片手冊 + 大量理論 PDF(四元數、互補濾波、卡爾曼、串級 PID) | 各章「原理」段落的延伸閱讀 |
3. / 8.匿名上位机 |
ANO_TC 地面站 + 通訊協議表 | 看波形、調參的實作 |
1.烧录软件 / 12.程序代码的下载 |
FlyMcu、Betaflight + 下載教學 | 環境建置章 |
10.飞行说明书 / 11.PID调节 / 13.偏飞微调 |
飛行、調參、偏飛微調文件 | 安全與調參章 |
9.OLED显示屏资料 |
OLED 取模資料 | 顯示模組章 |
強烈建議的搭配方式
讀每一章時,把對應的官方影片、電路圖 PDF、晶片手冊開在旁邊。 本教材的價值在於把這些散落的資料串成一條學習路線——告訴你「先看哪個、它對到程式哪一段、為什麼這樣設計」。
課程地圖(規劃中)¶
- 第 0 章 開發環境與資料地圖
- 第 1 章 系統架構與排程器 — 飛控如何「分時做事」
- 第 2 章 感測器驅動:I2C 怎麼讀 MPU6050、原始值換算、濾波
- 第 3 章 姿態解算:互補濾波 → 四元數 + Mahony
- 第 4 章 串級 PID:內環角速度 + 外環角度(含數字逐拍演示)
- 第 5 章 馬達混控與 PWM 輸出
- 第 6 章 遙控與飛行模式切換
- 第 7 章 氣壓定高
- 第 8 章 光流定點懸停
- 第 9 章 特技(空翻)模式怎麼實現
- 第 10 章 上位機調參與安全機制
✅ 全 11 章(第 0~10 章)已完成。影片需在 NAS 跑一次
transcode-videos.sh才會顯示。
安全第一
無人機的螺旋槳會傷人。任何「上電測試」「調參試飛」務必先拆槳,在確認馬達轉向與基本控制正確後,再到安全空曠的場地、戴護目鏡測試。本教材所有「動手做」段落都假設你已了解並遵守基本飛行安全。