高尚+王婷婷+郭煥銀
摘 要:STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核芯片。而且產(chǎn)品產(chǎn)量豐富,應(yīng)用成熟,故用來做控制芯片。本文主要介紹用STM32單片機(jī)控制微型四軸飛行器的電機(jī)轉(zhuǎn)速、6軸運(yùn)動傳感器以及與遙控器的無線傳輸部分。使用PID控制器結(jié)合MPU6050分析比較飛行器的動態(tài)性能,利用PWM調(diào)節(jié)電機(jī)轉(zhuǎn)速。
關(guān)鍵詞:STM單片機(jī);微型四軸飛行器;PID算法;PWM輸出
DOI:10.16640/j.cnki.37-1222/t.2017.08.247
0 引言
微型四軸飛行器屬于旋翼式飛行器,具有體積小、結(jié)構(gòu)簡單、設(shè)計(jì)成本低等優(yōu)點(diǎn),在軍事探測、信息采集、增強(qiáng)通信節(jié)點(diǎn)等方面應(yīng)用廣泛。系統(tǒng)主要由機(jī)架、MCU、傳感器模塊、無線傳輸模塊、電機(jī)和遙控器等部分組成。
1 微型四軸飛行器的結(jié)構(gòu)及原理
微型四軸飛行器屬于多旋翼飛行器,四支旋翼安裝在電機(jī)上,通過分別控制四個電機(jī)的轉(zhuǎn)速達(dá)到飛行器前進(jìn)、后退、轉(zhuǎn)向、爬升、下降等效果。微型四軸飛行器的機(jī)械結(jié)構(gòu)多采用“十字架”型,四個端點(diǎn)安裝電機(jī)中間部分放置控制電路、電源電路等。為保證飛行器機(jī)械結(jié)構(gòu)平衡,本設(shè)計(jì)中電路板的外形使用CAD軟件繪制,絕對的規(guī)則對稱。元器件擺放位置既要考慮布線方便也要考慮機(jī)械結(jié)構(gòu)平衡。
2 微型四軸飛行器的硬件設(shè)計(jì)
本設(shè)計(jì)的硬件結(jié)構(gòu)主要包括兩個部分:飛控板和遙控器。
飛控板采用STM32 MCU作為主控芯片,控制電機(jī)驅(qū)動模塊、MPU6050六軸運(yùn)動傳感器及NRF24L01無線傳輸模塊。飛控板上還包含電源模塊,使用XC6209穩(wěn)壓芯片為主控芯片提供電壓,電機(jī)由電池直接供電。飛控板上設(shè)有SWD下載模塊,方便下載程序和在線調(diào)試程序。
遙控器部分也采用STM32 MCU作為控制芯片,該芯片具有性能高、功耗低、成本較低等特點(diǎn)。遙控板上還有藍(lán)牙模塊、NRF24L01無線通訊模塊,方便與上位機(jī)進(jìn)行通信。本設(shè)計(jì)遙控器部分采用搖桿控制油門,通過搖桿油門控制更加線性。同時增加了微調(diào)按鍵,可以更好的控制油門和機(jī)身方向。
3 微型四軸飛行器的軟件設(shè)計(jì)
本設(shè)計(jì)的程序主要包含兩個部分:遙控器程序和飛控程序。分別都使用STM32芯片作為主控芯片。因?yàn)镵eil5的在線調(diào)試對飛行器參數(shù)修改十分方便。所以使用keil5軟件編程,編程語言為C語言。
3.1 姿態(tài)分析及卡爾曼濾波
本設(shè)計(jì)飛控板上使用的MPU6050六軸運(yùn)動傳感器,3軸加速度計(jì)3軸角速度計(jì)。其體積小巧、功耗低、精度高、成本低,被運(yùn)用在智能手機(jī)、運(yùn)動感測游戲、3D遙控器等眾多場合。微型四軸飛行器采集到加速度計(jì)和陀螺儀的數(shù)據(jù)后,經(jīng)過 數(shù)據(jù)融合、卡爾曼濾波,將兩種數(shù)據(jù)融合在一起計(jì)算出精確的姿態(tài)角數(shù)據(jù),再將 數(shù)據(jù)通過串口發(fā)送到由匿名科創(chuàng)提供的上位機(jī)軟件,將三軸姿態(tài)角用3D效果圖直觀顯示出來,并修改飛行器的參數(shù)。
3.2 NRF24L01無線通信
NRF24L01是常用的無線收發(fā)芯片,體積小、低功耗、工作溫度范圍大、通道多等特點(diǎn)。常用于無線鼠標(biāo)、遙感勘測、工業(yè)傳感器等場合。本設(shè)計(jì)使用兩個NRF24L01模塊,一個用在遙控器上發(fā)送控制電機(jī)的數(shù)據(jù),一個用于飛控板接收遙控器的油門信號。
3.3 PID控制器
在模擬控制系統(tǒng)中,控制器最常用的控制規(guī)律是PID控制。本設(shè)計(jì)采用位置式PID,在設(shè)計(jì)中,外環(huán)采用角度環(huán)進(jìn)行PI控制,內(nèi)環(huán)采用角速度環(huán)進(jìn)行D控制。 設(shè)置這樣的串級PID可以使飛行器在大角度偏差時修正速度快,小角度偏差時修正速度慢。外環(huán)期望角度為設(shè)定值,如懸停的期望值為0°,而實(shí)際角度值由卡爾曼濾波后的角度數(shù)據(jù)提供。外環(huán)PI控制器的輸出值作為內(nèi)環(huán)D控制器的期望值,內(nèi)環(huán)角速度實(shí)際值由傳感器MPU6050內(nèi)部的陀螺儀提供 。
4 系統(tǒng)測試
4.1 硬件測試
遙控器和飛控板焊接完成后需要檢測每個焊盤是否虛焊、短接。上電后用手觸摸各個芯片、元器件是否發(fā)熱,如果有不正常發(fā)熱及時斷電。經(jīng)過檢測,遙控器和飛控板的電路正常,可以使用。
4.2 軟件測試
將程序分別下載到遙控器和飛控板中。先測試飛控板姿態(tài)檢測是否準(zhǔn)確,觀察上位機(jī)顯示的數(shù)據(jù)和飛控板姿態(tài)是否同步。在檢測遙控器和飛控板之間能不能正常通信,給一定的油門量看電機(jī)是否有反應(yīng)。檢測發(fā)現(xiàn)程序可以正常使用,但需要繼續(xù)優(yōu)化。
5 總結(jié)
本設(shè)計(jì)主控使用STM32芯片,用MPU6050姿態(tài)采集,采用NRF24101無線模塊和藍(lán)牙進(jìn)行通信控制,以及SWD調(diào)試模式。最終經(jīng)過對軟硬件的調(diào)試,實(shí)現(xiàn)微型四軸飛行器的人工遙控。系統(tǒng)涉及知識比較多,很適合學(xué)習(xí)研究。
參考文獻(xiàn):
[1]常國權(quán),戴國強(qiáng).基于STM32的四軸飛行器飛控系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(02).
[2]王貞琪,馬潔.四旋翼幾種控制方法比較[J].北京信息科技大學(xué)學(xué)報(bào),2016,31(02):35-39
[3]鮑凱.玩轉(zhuǎn)四軸飛行器[M].北京:清華大學(xué)出社,2015.