李朋軒++鄔松杉++郭麗麗++楊晴
摘 要:文章針對(duì)四旋翼飛行器,設(shè)計(jì)了一種基于STM32微控制器的飛行控制板。以ARM cortex-m4內(nèi)核微處理器作為主控單元,對(duì)飛行控制板進(jìn)行了模塊化設(shè)計(jì),并給出了各模塊中芯片的選型依據(jù)。軟件設(shè)計(jì)采用濾波融合算法獲得四旋翼飛行器的姿態(tài),除了基本的姿態(tài)檢測(cè)外,還添加了無線數(shù)據(jù)傳輸、高度測(cè)量的功能。通過ARHS軟件模擬出姿態(tài)融合后圖像,結(jié)果表明設(shè)計(jì)的飛行控制板解算的姿態(tài)誤差較小。
關(guān)鍵詞:四旋翼飛行器;飛行控制板;STM32;濾波融合算法;姿態(tài)控制
四旋翼飛行器是一種具有4個(gè)呈十字形交叉對(duì)稱的螺旋槳,能夠垂直升降的四旋翼直升機(jī)。它通過飛行控制板控制4個(gè)軸上的無刷電動(dòng)機(jī)帶動(dòng)螺旋槳以不同的速度和方向旋轉(zhuǎn),從而實(shí)現(xiàn)其垂直、俯仰、偏航、滾轉(zhuǎn)、前后和側(cè)向6自由度的運(yùn)動(dòng)。由于這是一個(gè)4輸入6輸出的欠驅(qū)動(dòng)系統(tǒng),具有非線性、強(qiáng)耦合、多變量等特點(diǎn),因此對(duì)控制器的要求較高[1]。
1 飛行器控制板的硬件選型與設(shè)計(jì)
飛行器控制板采用模塊化結(jié)構(gòu)設(shè)計(jì),主要由主控模塊、電源管理模塊、數(shù)據(jù)采集模塊、執(zhí)行機(jī)構(gòu)驅(qū)動(dòng)模塊、無線通信模塊。
1.1 主控模塊
主控模塊是飛行器控制板的核心模塊,它由高性能、低功耗的高級(jí)精簡(jiǎn)指令集處理器ARM內(nèi)核STM32F401芯片和其外圍電路組成單片機(jī),通過接口接收其他模塊的數(shù)據(jù)和地面站的指令,并控制輸出電機(jī)驅(qū)動(dòng)數(shù)據(jù),實(shí)現(xiàn)對(duì)飛行器姿態(tài)的調(diào)整。STM32F401芯片的架構(gòu)非常先進(jìn),具有內(nèi)置的浮點(diǎn)處理運(yùn)算模塊以及自適應(yīng)閃存程序執(zhí)行模塊,它的主頻經(jīng)過內(nèi)置的鎖相環(huán)倍頻后可以高達(dá)84 MHz,不僅如此其還具有內(nèi)存保護(hù)單元以及內(nèi)置DSP運(yùn)算指令。
1.2 電源管理模塊
電源管理模塊的作用是向各個(gè)模塊提供電能,由于各個(gè)模塊所需的電壓不盡相同,所以需要設(shè)計(jì)穩(wěn)壓電路[2]。本穩(wěn)壓模塊設(shè)計(jì)輸入電壓為12 V,輸出電壓為3.3 V,采用的F_XT-1WR2芯片作為控制單元。本芯片功率為1 W,輸出電流高達(dá)303 A,轉(zhuǎn)換效率高達(dá)72%,具有可持續(xù)短路保護(hù)、低紋波噪聲、隔離電壓高達(dá)3 000 V直流電、工作溫度低至-40 ℃、高達(dá)+105 ℃等特點(diǎn),并且具有隔離非穩(wěn)壓?jiǎn)温份敵龅墓δ堋?/p>
1.3 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊作用是獲取飛行器的姿態(tài)和位置參數(shù)并將數(shù)據(jù)傳遞給主控電路予以處理。本數(shù)據(jù)采集模塊可分為3個(gè)子模塊,分別是加速度與角速度檢測(cè)模塊、地磁監(jiān)測(cè)模塊、氣壓檢測(cè)模塊。
1.3.1 加速度與角速度檢測(cè)子模塊
本子模塊采用了MPU6050芯片,該芯片是集加速度計(jì)與角速度計(jì)為一體的微型傳感器芯片。它使用了內(nèi)置的16位模擬數(shù)字轉(zhuǎn)換器分別對(duì)測(cè)得角速度和加速度進(jìn)行數(shù)字化。為了適用于不同的場(chǎng)合,傳感器的量程和精度都是可以設(shè)定的,量程越大會(huì)導(dǎo)致精度越小,反之亦然。
1.3.2 地磁檢測(cè)子模塊
本模塊采用HMC5883L芯片,該芯片是一款具有地磁傳感器的測(cè)量芯片,具有低功耗、精度高的特點(diǎn),它具有先進(jìn)的I2C通信接口,達(dá)到了400 bps的通訊速度,可在移動(dòng)領(lǐng)域中弱磁測(cè)量方面廣泛使用。HMC5883L 右這幾部分構(gòu)成:磁阻傳感器單元、放大器單元、自動(dòng)消磁驅(qū)動(dòng)器單元、偏差校準(zhǔn)單元。這些單元協(xié)作工作能使羅盤精度偏差在1°~2°范圍之間。
1.3.3 氣壓檢測(cè)子模塊
四旋翼飛行器具有定高飛行的功能,則必須需要有相應(yīng)的測(cè)量高度的傳感器進(jìn)行檢測(cè),在本設(shè)計(jì)中則使用了BMP180氣壓傳感器芯片來進(jìn)行高度的測(cè)量。BMP180具有許多優(yōu)良特性,例如低功耗、測(cè)量精度高、易于使用等特點(diǎn)。它也采用了I2C接口與主控微控制單元(Micro Control Unit,MCU)進(jìn)行通信,該芯片的I2C傳輸速率達(dá)到了400 kbps。
1.4 無線通信模塊
本模塊采用了NRF24L01芯片實(shí)現(xiàn)無線通信功能,該芯片所使用的頻率為2.4 GHz,具有優(yōu)良的通信速率以及距離,本設(shè)計(jì)除了使用NRF24L01之外還使用了開放式數(shù)控系統(tǒng)(Power Automation,PA)以及低噪聲放大器(Low Noise Amplifier,LNA)這兩種芯片來擴(kuò)大該無線模塊的發(fā)射功率,使其可在3 km距離內(nèi)都可正常通信,其丟包率幾乎為0。NRF24L01芯片與主控芯片的通信通過SPI協(xié)議進(jìn)行,串行外設(shè)接口(Serial Peripheral interface,SPI)協(xié)議速率極快,不會(huì)對(duì)MCU的性能產(chǎn)生影響。
1.5 執(zhí)行機(jī)構(gòu)驅(qū)動(dòng)模塊
本設(shè)計(jì)要求飛行器在最短的時(shí)間內(nèi)回到平衡位置,這就要求飛行器的姿態(tài)控制能夠快速響應(yīng),即能夠快速地增大或減小電機(jī)轉(zhuǎn)速,所以選用了無刷電機(jī),并配以無刷電調(diào)使用[3]。無刷電調(diào)采用了飛利浦公司開發(fā)的PCA9685芯片,可控制信號(hào)的周期和占空比,可實(shí)現(xiàn)多個(gè)模塊級(jí)聯(lián)。該芯片可控制輸出16路精度為12位的脈沖寬度調(diào)制信號(hào),采用I2C通信協(xié)議,通信效率極高。
2 飛行器控制板的軟件設(shè)計(jì)
飛行控制板的軟件部分是采用C語(yǔ)言編制,主要完成硬件平臺(tái)初始化、解碼地面站信號(hào)并設(shè)置相關(guān)參數(shù)、讀取并解算飛行器的姿態(tài)信號(hào),產(chǎn)生脈沖寬度調(diào)制(Pulse Width Modulation,PWM)方波實(shí)現(xiàn)電機(jī)控制等步驟,直到地面站發(fā)出結(jié)束信號(hào)結(jié)束程序。飛行器姿態(tài)控制的核心與關(guān)鍵在于姿態(tài)信號(hào)的獲取與解算,因而軟件上采用了快速融合和長(zhǎng)期融合以及濾波算法獲取四旋翼飛行器的姿態(tài)[4]。
3 飛行器控制板的控制系統(tǒng)測(cè)試與分析
本系統(tǒng)使用串口協(xié)議通過Ahars開源上位機(jī)程序進(jìn)行測(cè)試分析。設(shè)置使用1152 00 bps的波特率、8位數(shù)據(jù)位、無校驗(yàn)以及1位停止位。打開軟件串口接收后將飛行控制板置于水平狀態(tài),從數(shù)據(jù)可知除AZ滿量程外其余方向加速度約為零,且陀螺儀各方向速度約為零。軟件獲取的數(shù)據(jù)如圖1所示。
經(jīng)測(cè)試,本飛行控制板實(shí)現(xiàn)了姿態(tài)解算及姿態(tài)融合功能。
4 結(jié)語(yǔ)
本文設(shè)計(jì)了一種具有姿態(tài)解算及融合功能的飛行器控制板。該控制板的硬件系統(tǒng)采用模塊化結(jié)構(gòu),以嵌入式芯片STMF32F401為控制核心,通過C語(yǔ)言編程并用ARHS軟件進(jìn)行了實(shí)驗(yàn)測(cè)試。實(shí)驗(yàn)表明該飛行控制板能快速執(zhí)行姿態(tài)解算,并能較準(zhǔn)確地融合各項(xiàng)傳感器數(shù)據(jù),通過分布式濾波融合算法較大程度地降低了系統(tǒng)的靜態(tài)誤差和動(dòng)態(tài)誤差,具有良好的性能。
[參考文獻(xiàn)]
[1]劉乾,孫志鋒.基于ARM的四旋翼無人飛行器控制系統(tǒng)[J].機(jī)電工程,2011(10):1237-1240.
[2]謝義建,陳躍東,舒圣炎.基于STM32的四旋翼飛行器的設(shè)計(jì)與實(shí)現(xiàn)[J].四川理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2014(3):42-45.
[3]郭曉鴻,楊忠,楊成順,等.一種基于STM32的四旋翼飛行器控制器[J].應(yīng)用科技,2011(7):35-40.
[4]李偵,田夢(mèng)君,趙菲菲.基于DSP的無人機(jī)飛行器飛行控制系統(tǒng)設(shè)計(jì)[J].微處理機(jī),2010(4):125-128.endprint