[筆記] 以 STM32 為核心的四軸無人機套件

        最近買一套無人機套件,並研究其原理。套件包含一個遙控器,以及無人機主體,如下圖所示。系統架構與先前的平衡車系統類似,MCU 為控制與運算的核心,周邊搭配一顆 MPU6050 重力加速計,用來偵測系統的軸向變化,再來就是控制馬達驅動的模組。從系統原理來看,無人機比平衡車的運算更為複雜,建議可以先從平衡車的系統開始學習,然後再來研究無人機的系統。

圖一:無人機的套件

        遙控器的電路,由 STM32F103 為核心,搭配 NRF24L01 做為無線傳輸的模組,以及周邊的數個按鈕和兩顆搖桿頭。飛行器的電路,同樣以 STM32F103 為控制核心,搭配 NRF24L01 透過 SPI 介面控制,一顆 MPU6050 加速度計透過 I2C 介面控制,然後利用 PWM 訊號控制四軸的馬達。另外,STM32 的 USB 介面可以連接到電腦,電腦端會顯示一個 HID 裝置。這套件的資料中,提供 PC 上面的監控軟體,如下圖所示,能顯示目前飛行器的三軸情況,以及遙控器傳給飛行器的數值。不得不說這整套系統,從硬體到韌體,再到電腦端的監控軟體都非常專業,適合想進入這領域的人員好好學習。

圖二:PC 端的監控軟體

        再來,韌體的開發,該套件提供完整的原始碼,遙控器和飛行器都是用 KEIL 工具來開發和編譯程式碼。要留意的是有的套件上面焊的是 F103C6,有的是 F103C8,這兩者晶片內部的 Flash 配置不同,前者是 Low Density 核心,後者是 Medium Density 核心,因此在編譯程式碼時要注意。

        無人機的操作比起平衡車更需要安全性,畢竟平衡車是在二軸平面上運行,但是無人機是三軸空間的運行,危險性更高。當遙控器與飛行器主體建立連線後,飛行器的螺旋槳還處在鎖定狀態,不會旋轉。解鎖的方式需要遙控器的油門,油門壓到最低,再將油門加到最高,最後再將油門壓到最低後,螺旋槳便會開始轉動,此時慢慢增加油門,飛行器就會慢慢上升。



留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] Android APP 藍芽範例說明 -- BluetoothChat

[應用] 藍芽 BLE client/server 架構:BLE remote controller

[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸