梁計(jì)鋒
(西安翻譯學(xué)院,陜西西安 710105)
航模運(yùn)動(dòng)發(fā)源于20 世紀(jì)初,1940 年后在中國(guó)開始興起。隨著整機(jī)的發(fā)展,航模遙控飛機(jī)在通信方式、功能挑戰(zhàn)以及工業(yè)生產(chǎn)方面都得到了快速的發(fā)展。通信方式從單一的FM 低頻模擬通信向2.4G數(shù)字調(diào)制等數(shù)字通信方式發(fā)展。功能方面從單純的左右變向向懸停、翻轉(zhuǎn)以及滑翔等多功能方向發(fā)展[1]。工業(yè)制作方面從手工制作到現(xiàn)代化流水線生產(chǎn)發(fā)展。總體來(lái)說(shuō),航模自身的性能方面得到了較大的發(fā)展,但是在航模操縱方面并未有較大的發(fā)展[2]。在操控方面,通常有速度操縱桿以及方向操縱桿,如果是在較好的飛行環(huán)境或操縱者經(jīng)驗(yàn)充足的情況下,是能夠控制好航模的。但是如果遇上風(fēng)速的突變或者操縱者經(jīng)驗(yàn)不足,則可能會(huì)導(dǎo)致墜機(jī)或炸機(jī)的現(xiàn)象。究其原因,主要是因?yàn)轱L(fēng)向或風(fēng)速的改變以及操縱者的經(jīng)驗(yàn)不足,導(dǎo)致左右舵機(jī)控制不穩(wěn)定,從而使飛行偏離軌道,發(fā)生墜機(jī)或炸機(jī)現(xiàn)象[3]。為解決上述問(wèn)題,該課題使用MPU6050 姿態(tài)傳感器對(duì)航模當(dāng)前姿態(tài)進(jìn)行檢測(cè),然后結(jié)合操縱者的操控指令以及姿態(tài)狀態(tài),輔助固定翼航模飛機(jī)姿態(tài)的矯正,從而防止因外界干擾導(dǎo)致墜機(jī)以及炸機(jī)的現(xiàn)象發(fā)生[4]。
該裝置的設(shè)計(jì)主要由硬件和軟件兩個(gè)部分組成。硬件部分主要包括單片機(jī)最小系統(tǒng)的搭建、姿態(tài)檢測(cè)電路的搭建以及舵機(jī)控制電路的搭建。軟件設(shè)計(jì)主要包括固定翼飛機(jī)當(dāng)前姿態(tài)的獲取以及自動(dòng)調(diào)平信號(hào)的控制。舵機(jī)控制信號(hào)通過(guò)通信模塊傳入固定翼平衡裝置,固定翼平衡裝置將獲取到的姿態(tài)數(shù)據(jù)以及舵機(jī)控制數(shù)據(jù)進(jìn)行整合處理,然后再輸出舵機(jī)信號(hào)控制舵機(jī)的方向[6-8]。整體設(shè)計(jì)方案方框圖如圖1所示。

圖1 整體設(shè)計(jì)方案方框圖
固定翼飛機(jī)平衡裝置主要的作用是輔助飛行姿態(tài)矯正,防止墜機(jī)以及炸機(jī)事故。為此,系統(tǒng)的整體設(shè)計(jì)目標(biāo)主要分為以下幾點(diǎn):
1)高效準(zhǔn)確地檢測(cè)到當(dāng)前的飛行姿態(tài)
固定翼飛機(jī)當(dāng)前的飛行姿態(tài)不僅反映了飛機(jī)當(dāng)前的飛行狀況,而且決定了進(jìn)行輔助矯正的方向。如果飛行姿態(tài)檢測(cè)出現(xiàn)錯(cuò)誤或者延時(shí),那么后果都是不可逆轉(zhuǎn)的。為此,設(shè)計(jì)中要求能夠高效準(zhǔn)確地檢測(cè)當(dāng)前的飛行姿態(tài)。
2)矯正方法
矯正分為有遙控信號(hào)矯正以及無(wú)遙控信號(hào)矯正兩種情況。第一種情況是當(dāng)操縱者進(jìn)行轉(zhuǎn)向操作時(shí),系統(tǒng)會(huì)收到操縱者的遙控信號(hào)以及姿態(tài)偏移信號(hào)。此時(shí),系統(tǒng)要根據(jù)轉(zhuǎn)向的方向進(jìn)行協(xié)助平穩(wěn)轉(zhuǎn)向,不能將操縱者的遙控信號(hào)視為外界干擾而進(jìn)行反向矯正操作。第二種情況是操縱者未操縱轉(zhuǎn)向桿時(shí),遇到風(fēng)速的變化導(dǎo)致飛機(jī)失去平衡的狀況。此時(shí),系統(tǒng)應(yīng)根據(jù)當(dāng)前的干擾姿態(tài)進(jìn)行反方向的矯正,使飛機(jī)回到平衡狀態(tài)。總體來(lái)說(shuō),系統(tǒng)要區(qū)分出當(dāng)飛機(jī)失去平衡時(shí),有無(wú)操縱信號(hào),從而進(jìn)行矯正。
該系統(tǒng)的硬件電路設(shè)計(jì)主要用Altium Designer軟件實(shí)現(xiàn)。Altium Designer 是能夠?qū)⒃O(shè)計(jì)流程、可編程器件(如:FPGA)設(shè)計(jì)、集成化PCB 設(shè)計(jì)和基于處理器設(shè)計(jì)的嵌入式軟件開發(fā)功能整合在一起的產(chǎn)品,是一種同時(shí)進(jìn)行FPGA 和PCB 設(shè)計(jì)以及嵌入式設(shè)計(jì)的解決方案,具有將設(shè)計(jì)方案從概念轉(zhuǎn)變?yōu)樽罱K成品所需的全部功能[9]。該設(shè)計(jì)的硬件電路由單片機(jī)最小系統(tǒng)、電源、舵機(jī)方向電路MPU6050 運(yùn)動(dòng)模塊電路以及按鍵檢測(cè)電路組成。
該裝置的主要信號(hào)處理模塊由單片機(jī)最小系統(tǒng)完成。接收由MPU6050 模塊電路發(fā)回的當(dāng)前飛機(jī)的姿態(tài)數(shù)據(jù)和遙控器的發(fā)射數(shù)據(jù),并進(jìn)行分析處理,給出舵機(jī)控制輸出信號(hào),以決定如何調(diào)整飛行姿態(tài),該部分是整個(gè)設(shè)計(jì)的核心。該設(shè)計(jì)的單片機(jī)最小系統(tǒng)模塊采用STC15W408AS 芯片作為主控芯片,STC15W408AS 芯片利用CCP/PCA高速脈沖輸出功能可實(shí)現(xiàn)3 路9~16 位PWM,能夠很好地對(duì)LED 燈光調(diào)節(jié)起到輔助作用,同時(shí)該單片機(jī)不需要復(fù)位、不需要外部晶振,省略了復(fù)位電路以及外部晶振電路[10]。單片機(jī)最小系統(tǒng)模塊如圖2 所示。

圖2 單片機(jī)最小系統(tǒng)
航模采用的是航空12 V 鋁電池對(duì)電機(jī)進(jìn)行供電。但是單片機(jī)和MPU6050 的電源供電分別是5 V和3.3 V。為此,需要將12 V 電源穩(wěn)壓成5 V 給單片機(jī)最小系統(tǒng)供電,以及穩(wěn)壓成3.3 V 給MPU6050 姿態(tài)傳感器供電。
MPU6050 是一款集成了6 軸MotionTrackingd 的模塊電路[11]。它主要提供飛機(jī)飛行姿態(tài)的各種數(shù)據(jù),并且可以控制飛機(jī)的飛行狀態(tài),是整個(gè)裝置的關(guān)鍵部分。該模塊集成了3 軸MEMS 加速度計(jì)、3 軸MEMS 陀螺儀以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP(Digital Motion Processor),可用IIC 接口連接一個(gè)第三方的數(shù)字傳感器,比如磁力計(jì)[5]。其具有內(nèi)部建有可編程控制、振蕩器誤差范圍小、降低設(shè)定給予的影響與感測(cè)器的飄移以及移除加速器與陀螺儀軸間敏感度等特點(diǎn)。在該設(shè)計(jì)中,MPU6050 姿態(tài)傳感器主要承擔(dān)著檢測(cè)飛行器實(shí)時(shí)姿態(tài)的任務(wù)。姿態(tài)檢測(cè)模塊與單片機(jī)之間通過(guò)IIC 通訊協(xié)議進(jìn)行通信。檢測(cè)電路如圖3 所示。

圖3 PU6050姿態(tài)檢測(cè)電路
在焊接實(shí)物的過(guò)程中應(yīng)遵循小元件先于大元件焊接、貼片元件先于插件元件焊接。固定翼航模飛機(jī)平衡裝置的實(shí)物電路如圖4 所示。

圖4 平衡裝置硬件模塊
該設(shè)計(jì)使用Keil μVision5 軟件進(jìn)行程序編寫,Keil μVision5 軟件使用C 語(yǔ)言,該語(yǔ)言具有功能強(qiáng)大、結(jié)構(gòu)性強(qiáng)、可讀和可維護(hù)性等優(yōu)勢(shì)[6]。主程序流程由定時(shí)器初始化程序、MPU6050 初始化程序、MPU6050 檢測(cè)程序、按鍵掃描程序以及自動(dòng)調(diào)平程序組成。當(dāng)系統(tǒng)上電時(shí),系統(tǒng)會(huì)先進(jìn)行系統(tǒng)定時(shí)器以及MPU6050 初始化,然后判斷是否存在由用戶控制的轉(zhuǎn)向信號(hào)輸出。如果是,則根據(jù)轉(zhuǎn)向的方向進(jìn)行輔助轉(zhuǎn)向;如果不是,則根據(jù)當(dāng)前的姿態(tài)數(shù)據(jù)進(jìn)行自動(dòng)調(diào)平工作,最后控制轉(zhuǎn)向舵機(jī)進(jìn)行相關(guān)操作[12]。系統(tǒng)軟件流程如圖5 所示。

圖5 系統(tǒng)主流程圖
主程序代碼:


MPU6050 通過(guò)IIC(Inter-Integrated Circui)集成電路總線與單片機(jī)通信,IIC 一般有兩個(gè)雙向的信號(hào)線,包括串行數(shù)據(jù)線SDA 和時(shí)鐘線SCL[13]。
當(dāng)MPU6050 與單片機(jī)鏈接時(shí),MPU6050 充當(dāng)了從設(shè)備。該總線的最大傳輸頻率為400 kHz。SCL線為高電平期間,SDA 線由高電平向低電平的變化表示起始信號(hào);SCL 線為高電平期間,SDA 線由低電平向高電平的變化表示終止信號(hào)。IIC 總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線上的信號(hào)為低電平期間時(shí),數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。
自動(dòng)調(diào)平程序主要分為存在方向操縱信號(hào)的調(diào)平與不存在方向操縱信號(hào)的調(diào)平。前者是由于操縱者進(jìn)行左右轉(zhuǎn)向時(shí)導(dǎo)致飛機(jī)姿態(tài)失衡的調(diào)平,后者是由于環(huán)境影響導(dǎo)致飛機(jī)姿態(tài)失衡的調(diào)平。當(dāng)操縱者轉(zhuǎn)向操作時(shí)不能夠?qū)⒆藨B(tài)進(jìn)行反方向的調(diào)整,否則就會(huì)導(dǎo)致飛機(jī)失去控制。系統(tǒng)首先應(yīng)判斷是否存在操控信號(hào)再進(jìn)行自動(dòng)調(diào)平。有操縱信號(hào)的情況下,進(jìn)行輔助轉(zhuǎn)向平衡,在沒(méi)有轉(zhuǎn)向信號(hào)的情況下先進(jìn)行水平輔助平衡。其程序流程如圖6 所示。

圖6 自動(dòng)調(diào)平程序
調(diào)試驗(yàn)證主要采用黑盒驗(yàn)證法,即不考慮程序的寫法以及正確性,只考慮實(shí)際效果的完整性以及正確性[14]。首先進(jìn)行樣板焊接調(diào)試各個(gè)電路模塊的正確性,然后進(jìn)行每一項(xiàng)功能的測(cè)試。
使用串口調(diào)試助手讀取X、Y和Z軸的數(shù)據(jù),在讀取之前應(yīng)進(jìn)行校準(zhǔn),選取一個(gè)水平面作為基礎(chǔ)面,此時(shí)收到的數(shù)據(jù)為初始數(shù)據(jù)。當(dāng)這個(gè)平面傾斜時(shí),串口助手所得到的數(shù)據(jù)也隨之變化。接收到的數(shù)據(jù)如圖7 所示。

圖7 MPU6050讀取數(shù)據(jù)
在讀取的過(guò)程中,要注意串口助手的串口號(hào)要與芯片的端口號(hào)一致,否則所讀取的數(shù)據(jù)會(huì)出錯(cuò)或讀取不成功。在此驗(yàn)證過(guò)程之中,只需驗(yàn)證能夠讀取到數(shù)據(jù)即可,因?yàn)槊總€(gè)MPU6050 出廠之前都經(jīng)過(guò)矯正,選定了一個(gè)基礎(chǔ)平面為參考點(diǎn)。然而這個(gè)參考點(diǎn)在該系統(tǒng)中并不是作為統(tǒng)一參考點(diǎn),所以只要驗(yàn)證能夠讀取到數(shù)據(jù)即可。
自動(dòng)調(diào)平驗(yàn)證主要分為存在遙控信號(hào)的輔助功能以及不存在遙控信號(hào)的調(diào)平測(cè)試驗(yàn)證。測(cè)試通過(guò)兩個(gè)實(shí)驗(yàn)來(lái)進(jìn)行驗(yàn)證,目的都是證明是否符合系統(tǒng)要求。
第一個(gè)實(shí)驗(yàn)進(jìn)行存在遙控信號(hào)驗(yàn)證,首先將固定翼航模飛機(jī)的螺旋槳拆卸下來(lái),防止調(diào)試過(guò)程中出現(xiàn)意外。然后將飛機(jī)平放在一個(gè)平面上進(jìn)行姿態(tài)傳感器校準(zhǔn)。最后一只手操縱左轉(zhuǎn)向桿,另外一只手使飛機(jī)向左或向右傾斜,觀察實(shí)驗(yàn)現(xiàn)象[15]。
實(shí)驗(yàn)現(xiàn)象表明:當(dāng)進(jìn)行左轉(zhuǎn)向,飛機(jī)受外界干擾向左大幅度傾斜時(shí),系統(tǒng)會(huì)自動(dòng)右轉(zhuǎn)向減小干擾;當(dāng)飛機(jī)受外界干擾向右大幅度傾斜時(shí),系統(tǒng)會(huì)自動(dòng)向左轉(zhuǎn)向減小干擾。
第二個(gè)實(shí)驗(yàn)進(jìn)行不存在遙控信號(hào)驗(yàn)證,首先將飛機(jī)平放在校準(zhǔn)的平面之上,然后開啟飛機(jī)加大油門且不操作轉(zhuǎn)向桿,然后用手干預(yù)飛機(jī)的飛行左右輕微的搖擺,觀察實(shí)驗(yàn)現(xiàn)象。
實(shí)驗(yàn)現(xiàn)象表明:當(dāng)飛機(jī)左傾斜時(shí),舵機(jī)會(huì)自動(dòng)調(diào)整向右回。飛機(jī)右傾斜時(shí),舵機(jī)會(huì)自動(dòng)調(diào)整向左回。
綜上所述,存在操控信號(hào)的實(shí)驗(yàn)驗(yàn)證和不存在遙控信號(hào)的實(shí)驗(yàn)驗(yàn)證都符合最初所設(shè)想的系統(tǒng)要求,能夠較好地實(shí)現(xiàn)自動(dòng)調(diào)節(jié)飛機(jī)的平衡狀態(tài),減少墜機(jī)和炸機(jī)的事故發(fā)生。
文中闡述了基于單片機(jī)的固定翼飛機(jī)平衡裝置的研制與研究。首先分析了該系統(tǒng)的國(guó)內(nèi)外現(xiàn)狀以及設(shè)計(jì)的實(shí)際意義,得出了該系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能和要求[16]。系統(tǒng)從硬件原理、軟件設(shè)計(jì)和系統(tǒng)調(diào)試方面進(jìn)行了描述。在設(shè)計(jì)的過(guò)程中,學(xué)習(xí)實(shí)踐了IIC通訊協(xié)議的具體實(shí)現(xiàn)方法,掌握了MPU6050 的使用方法,以及使用這些姿態(tài)數(shù)據(jù)進(jìn)行相關(guān)的應(yīng)用。
該設(shè)計(jì)最大的特色是能夠高效準(zhǔn)確地讀取到固定翼航模飛機(jī)當(dāng)前的實(shí)時(shí)姿態(tài)并根據(jù)姿態(tài)自動(dòng)調(diào)平。該設(shè)計(jì)相對(duì)于市場(chǎng)現(xiàn)有的平衡裝置,具有設(shè)計(jì)簡(jiǎn)單、性價(jià)比高等優(yōu)點(diǎn),有一定的市場(chǎng)價(jià)值。
在設(shè)計(jì)的過(guò)程中對(duì)IIC 通訊協(xié)議的不熟使得程序在調(diào)試的過(guò)程中花費(fèi)較長(zhǎng)的時(shí)間,同時(shí)對(duì)MPU6050 的使用也遇到了一定的瓶頸。系統(tǒng)不足的是,MPU6050 的實(shí)時(shí)工作會(huì)消耗較大的電能,同時(shí)自身的重量也使得飛機(jī)續(xù)航的時(shí)間有所減少。為此,在今后的設(shè)計(jì)過(guò)程中應(yīng)著重低功耗的設(shè)計(jì),減少模塊的耗電量。