謝義建,陳躍東,舒圣焱
(安徽工程大學(xué)安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000)
四旋翼飛行器是一種配有4個(gè)螺旋槳且螺旋槳呈十字形交叉的飛行器。與傳統(tǒng)的直升機(jī)不同,四旋翼飛行器只能通過(guò)改變螺旋槳的速度來(lái)實(shí)現(xiàn)各種動(dòng)作。由于它是一種六自由度的垂直起降機(jī),非常適合靜態(tài)和準(zhǔn)靜態(tài)條件下飛行,所以它在軍事和民用領(lǐng)域有廣闊的應(yīng)用[1]。但是四旋翼飛行器只有四個(gè)輸入力,同時(shí)卻有六個(gè)狀態(tài)輸出,所以它又是一種欠驅(qū)動(dòng)系統(tǒng),這使得飛行控制器的設(shè)計(jì)變得非常困難。因此,本文設(shè)計(jì)了一種基于STM32的四旋翼飛行器,由于STM32具有低功耗、高性能、外設(shè)資源豐富、處理速度快、開(kāi)發(fā)效率高并且還可以嵌入實(shí)時(shí)操作系統(tǒng)等優(yōu)點(diǎn),使得四旋翼飛行器的設(shè)計(jì)變得相對(duì)簡(jiǎn)單[2]。
四旋翼飛行器通常有兩種模式,即十字模式和X模式,其中X模式的結(jié)構(gòu)如圖1所示。在四個(gè)旋翼的頂端,均勻分布著四個(gè)電機(jī),其中同一條直線上的電機(jī)旋轉(zhuǎn)方向相同。即:電機(jī)1、3按照逆時(shí)針?lè)较蛐D(zhuǎn),電機(jī)2、4按照順時(shí)針?lè)较蛐D(zhuǎn)。在空間中,四旋翼飛行器一共具有6個(gè)自由度(分別沿著X、Y、Z三軸平移和旋轉(zhuǎn)),規(guī)定沿著Z軸正向運(yùn)動(dòng)為垂直運(yùn)動(dòng),則其他的五個(gè)自由度分別為俯仰運(yùn)動(dòng)、偏航運(yùn)動(dòng)、滾轉(zhuǎn)運(yùn)動(dòng)、前后運(yùn)動(dòng)、側(cè)向運(yùn)動(dòng),通過(guò)控制4個(gè)電機(jī)的旋轉(zhuǎn)速度即可控制這六個(gè)自由度[3]。例如:(1)垂直運(yùn)動(dòng):在圖1中,因?yàn)殡姍C(jī)1和電機(jī)3按照逆時(shí)針?lè)较蛐D(zhuǎn),電機(jī)2和電機(jī)4按照順時(shí)針?lè)较蛐D(zhuǎn),所以它們對(duì)飛行器自身的反扭矩相互抵消。當(dāng)同時(shí)增加四個(gè)電機(jī)的旋轉(zhuǎn)速度時(shí),飛行器總的拉力增大,若此時(shí)總拉力大于飛行器總重量時(shí),飛行器便離開(kāi)地面并垂直上升,反之,當(dāng)同時(shí)減小四個(gè)電機(jī)的旋轉(zhuǎn)速度時(shí),飛行器垂直下降直至平衡落地,因此便實(shí)現(xiàn)了沿Z軸的垂直運(yùn)動(dòng)。(2)滾轉(zhuǎn)運(yùn)動(dòng):改變電機(jī)2、4的旋轉(zhuǎn)速度,并且保持電機(jī)1、3的旋轉(zhuǎn)速度不變,飛行器即可繞X軸旋轉(zhuǎn),實(shí)現(xiàn)了滾轉(zhuǎn)運(yùn)動(dòng)。在無(wú)外界干擾的情況下,當(dāng)旋翼產(chǎn)生的總拉力等于飛行器的自身總重量時(shí),飛行器保持懸停狀態(tài)[4]。
圖1 X模式飛行器結(jié)構(gòu)示意圖
四旋翼飛行器控制系統(tǒng)采用模塊化設(shè)計(jì),如圖2所示,分別由數(shù)據(jù)采集模塊,電源管理模塊,控制器模塊,串口通信模塊,遙控控制模塊,電機(jī)驅(qū)動(dòng)模塊,電機(jī)模塊等部分組成。其中,數(shù)據(jù)采集模塊由三只傳感器組成,負(fù)責(zé)采集飛行器的姿態(tài)信號(hào),并通過(guò)I2C總線將數(shù)據(jù)傳送到控制器模塊,其中,控制器模塊采用了意法半導(dǎo)體公司的STM32F103VET6作為系統(tǒng)的主控芯片,STM32系列是基于ARM Cortex-M3內(nèi)核的處理器,低功耗,處理速度快,最高工作頻率達(dá)到72 MHz。同時(shí),遙控控制模塊將通過(guò)RC接口,發(fā)送遙控信號(hào)給控制器,控制器接收到姿態(tài)信號(hào)和遙控信號(hào)后,快速進(jìn)行姿態(tài)的解算和處理,產(chǎn)生PWM方波信號(hào)給電機(jī)驅(qū)動(dòng)模塊,從而驅(qū)動(dòng)電機(jī)旋轉(zhuǎn),改變電機(jī)的轉(zhuǎn)速,控制飛行器的姿態(tài);整個(gè)系統(tǒng)由電源管理模塊提供電力[5]。
圖2 控制系統(tǒng)的結(jié)構(gòu)框圖
為了提高系統(tǒng)的穩(wěn)定性和測(cè)量精度,本模塊選用MPU-6050,采用多傳感器設(shè)計(jì)。MPU-6050是全球首例9軸運(yùn)動(dòng)處理傳感器,集成了3軸MEMS陀螺儀,3軸加速度計(jì),以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器 DMP(Digital Motion Processor),可用 I2C接口連接一個(gè)第三方的數(shù)字傳感器。本方案將這個(gè)I2C接口與三軸數(shù)字羅盤(pán)HMC5883L相連接,擴(kuò)展之后就可以通過(guò)其 I2C接口輸出一個(gè)9軸的信號(hào),其中陀螺儀輸出飛行器的姿態(tài)角速率(偏航角速率、俯仰角速率、橫滾角速率),加速度計(jì)分別輸出X、Y、Z軸加速度,數(shù)字羅盤(pán)配合加速度計(jì)為飛行器導(dǎo)航提供可靠的方向信息。同時(shí),采用了MEAS(瑞士)公司推出的一款高分辨率氣壓傳感器MS5611,分辨率可達(dá)10 cm,它通過(guò)I2C總線與控制器STM32進(jìn)行通信,實(shí)現(xiàn)飛行器的氣壓定高。具體硬件電路如圖3所示[6]。
圖3 數(shù)據(jù)采集模塊硬件電路
電源管理模塊主要負(fù)責(zé)給各個(gè)模塊提供電能,本系統(tǒng)使用了3S、2200 mAh、25C的11.1 V鋰電池作為總電源,它通過(guò)電調(diào)將11.1 V轉(zhuǎn)換成5 V電壓,并送給四個(gè)電機(jī)和飛行控制器,飛行控制器再通過(guò)電源芯片AMS1117-3.3 V,將 5 V 轉(zhuǎn)換為 3.3 V,送給處理器STM32F103VET6和串口通信模塊。具體硬件電路如圖4 所示[7]。
圖4 電源管理模塊硬件電路
飛行器在靜止?fàn)顟B(tài)下,需要與PC上位機(jī)進(jìn)行通信來(lái)配置飛行器的參數(shù),串口通信模塊可實(shí)現(xiàn)這一功能。它采用美信公司的電平轉(zhuǎn)換芯片MAX3232,MAX3232采用專(zhuān)有低壓差發(fā)送器輸出級(jí),利用雙電荷泵在3.0 V至5.5 V電源供電時(shí)能夠?qū)崿F(xiàn)真正的RS-232性能,器件僅需四個(gè) 0.1 μF的外部小尺寸電荷泵電容。MAX3232確保在120 kbps數(shù)據(jù)速率的同時(shí)保持RS-232輸出電平,具體硬件電路如圖5所示。
圖5 串口通信模塊硬件電路
針對(duì)飛行器設(shè)計(jì),選用了無(wú)刷電機(jī),由于飛行器的姿態(tài)控制需要快速響應(yīng),所以針對(duì)無(wú)刷電機(jī),使用了無(wú)刷電調(diào)。利用STM32的PWM通道輸出1~2 ms的方波脈沖,重復(fù)頻率為20~50 Hz,輸出到電調(diào)的油門(mén)線(控制線)。由于是單向電調(diào),1 ms表示0%的油門(mén),2 ms表示100%的油門(mén),從而實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的控制。
本模塊選用了天地飛七通道遙控器,同時(shí)將接收機(jī)上的油門(mén)、副翼、升降舵、方向舵通道分別與飛行控制器上的RC接口連接,通過(guò)接收機(jī),操縱遙控器上的搖桿便可實(shí)現(xiàn)飛行器的姿態(tài)控制[8]。
根據(jù)以上的硬件描述,所設(shè)計(jì)的飛行控制器實(shí)物如圖6所示。
飛行控制器的軟件程序事是在MDK4.12開(kāi)發(fā)環(huán)境下采用C語(yǔ)言編寫(xiě),其流程如圖7所示[9]。程序的開(kāi)始先對(duì)整個(gè)系統(tǒng)的硬件進(jìn)行初始化以及完成各傳感器的校準(zhǔn),并判斷系統(tǒng)是否正常。若系統(tǒng)正常,則從各傳感器獲取姿態(tài)數(shù)據(jù),并讀取遙控器信號(hào),控制器再解算姿態(tài)信號(hào)、解碼遙控信號(hào)、控制電機(jī)轉(zhuǎn)速等步驟,直到遙控發(fā)送停機(jī)信號(hào)結(jié)束飛行。
圖6 飛行控制器實(shí)物
圖7 飛行控制器的軟件流程圖
本文所設(shè)計(jì)的飛行器能完成幾種基本的姿態(tài)控制,并能負(fù)載攝像頭進(jìn)行航拍,如圖8所示,在風(fēng)速4~5級(jí)、相對(duì)濕度70%的環(huán)境下進(jìn)行航拍,所得航拍圖片表明,飛行器在空中能進(jìn)行穩(wěn)定的航拍,抖動(dòng)小,抗干擾能力強(qiáng)。
圖8 航拍圖片
本文設(shè)計(jì)了一種基于STM32的四旋翼飛行器,它的高性能、低功耗、處理速度快等特點(diǎn)克服了以往使用單片機(jī)作為控制器的缺點(diǎn),實(shí)驗(yàn)證明,本系統(tǒng)的軟硬件設(shè)計(jì)合理,基本能完成飛行器各種姿態(tài)的控制;同時(shí),它也為后續(xù)的研究提供了一個(gè)平臺(tái),可以在這基礎(chǔ)上對(duì)系統(tǒng)建模、姿態(tài)解算、濾波算法等方面作進(jìn)一步的研究。
[1]梁延德,程 敏,何福本,等.基于互補(bǔ)濾波器的四旋翼飛行器姿態(tài)解算[J].傳感器與微系統(tǒng),2011,30(11):56-59.
[2]劉乾,孫志鋒.基于ARM的四旋翼無(wú)人飛行器控制系統(tǒng)[J].機(jī)電工程,2011,28(10):1237-1240.
[3]侯永鋒,陸連山,高尚德,等.基于PD算法的四旋翼飛行器控制系統(tǒng)研究[J].機(jī)械科學(xué)與技術(shù),2012,31(3):359-362.
[4]楊明志,王敏.四旋翼微型飛行器控制系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2008,16(4):485-490.
[5]郭曉鴻,楊忠,楊成順,等.一種基于STM32的四旋翼飛行器控制器[J].應(yīng)用科技,2011,38(7):35-40.
[6]呂 強(qiáng),郭善亮,王冬來(lái).基于DSP四旋翼飛行器姿態(tài)控制系統(tǒng)硬件設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)學(xué)工程,2011,39(7):144-146.
[7]劉峰,呂強(qiáng),王國(guó)勝,等.四旋翼飛行器姿態(tài)控制系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2011,19(3):583-585.
[8]龐慶霈,李家文,黃文浩.四旋翼飛行器設(shè)計(jì)與平穩(wěn)控制仿真研究[J].電光與控制,2012,19(3):51-55.
[9]李 寧.基于MDK的STM32處理器開(kāi)發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.