田紅鵬 范振可 馮健
摘 要:大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)以及“互聯(lián)網(wǎng)+”等的提出,標(biāo)志著中國正在進(jìn)入萬眾創(chuàng)新創(chuàng)業(yè)時代。文中設(shè)計(jì)了一種基于WiFi控制的四旋翼飛行器。該飛行器由遙控手柄通過網(wǎng)絡(luò)來控制四旋翼的運(yùn)動,在四旋翼上添加了一個信息接收模塊,該模塊為運(yùn)行嵌入式Linux操作系統(tǒng)的RT5350,其帶有WiFi模塊,可與遙控手柄通過PC機(jī)建立無線連接,從而控制飛行器的運(yùn)動。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)可成功地用傳統(tǒng)遙控手柄通過網(wǎng)絡(luò)傳輸信號控制四旋翼的上下左右飛行,可以達(dá)到預(yù)期的目標(biāo),因而對四旋翼和物聯(lián)網(wǎng)都有一定的研究意義。
關(guān)鍵詞:物聯(lián)網(wǎng);嵌入式開發(fā);四旋翼飛行器;網(wǎng)絡(luò)控制
中圖分類號:TP302 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2015)08-00-03
0 引 言
2014年11月,李克強(qiáng)總理出席首屆世界互聯(lián)網(wǎng)大會時指出,互聯(lián)網(wǎng)是大眾創(chuàng)業(yè)、萬眾創(chuàng)新的新工具。2015年3月,李克強(qiáng)總理在十二屆全國人大三次會議上首次提出“互聯(lián)網(wǎng)+”行動計(jì)劃,推動移動互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等與現(xiàn)代制造業(yè)結(jié)合,引導(dǎo)互聯(lián)網(wǎng)企業(yè)拓展國際市場[1]。
基于以上背景,本文設(shè)計(jì)一個基于WiFi控制的四旋翼飛行器控制系統(tǒng),將網(wǎng)絡(luò)通信TCP協(xié)議運(yùn)用到系統(tǒng)中。該系統(tǒng)用傳統(tǒng)的遙控手柄模擬標(biāo)準(zhǔn)的遙控器,遙控手柄與PC機(jī)相連,四旋翼上添加帶有WiFi模塊的RT5350,該設(shè)備運(yùn)行嵌入式Linux操作系統(tǒng),可與PC機(jī)建立無線連接,從而遙控手柄通過網(wǎng)絡(luò)通信將遙控信號傳遞給四旋翼飛控系統(tǒng),達(dá)到控制四旋翼飛行的目的。本研究對計(jì)算機(jī)網(wǎng)絡(luò)的學(xué)習(xí)有一定的指導(dǎo)意義。
1 系統(tǒng)方案
本系統(tǒng)的總體結(jié)構(gòu)圖如圖1所示,系統(tǒng)可分為用戶PC客戶端、服務(wù)器、PWM控制器和飛控板四個部分。用戶將控制信號通過客戶端發(fā)給服務(wù)器,服務(wù)器接收到信號后通過串口通信將信號轉(zhuǎn)給PWM控制器,PWM控制器生成輸入信號,飛控板收到信號后控制電機(jī)旋轉(zhuǎn)。
2 整體設(shè)計(jì)
系統(tǒng)劃分為兩部分,一部分為硬件設(shè)計(jì),另一部分為軟件設(shè)計(jì)。其中硬件部分主要是各模塊的開發(fā)板的選擇及開發(fā)和組裝,軟件部分主要實(shí)現(xiàn)控制端和服務(wù)器端的通信以及各模塊之間的通信。
2.1 硬件總體結(jié)構(gòu)
本系統(tǒng)的硬件總體結(jié)構(gòu)設(shè)計(jì)如圖2所示,硬件總體結(jié)構(gòu)是按照模塊化思想設(shè)計(jì)的。服務(wù)器端主要由RT5350模塊和PWM控制器組成,飛行器主要由飛控板、電機(jī)驅(qū)動和直流電機(jī)組成 ,客戶端主要由PC和遙控手柄組成。
飛行器驅(qū)動層的主要設(shè)備是飛控板和PWM控制器,其中飛控板采用簡單的KK飛行控制板。其功能簡單,易于調(diào)節(jié),價(jià)格便宜,便于二次開發(fā)。PWM控制器主要作用是向飛控板發(fā)送指定的PWM波形,飛控板根據(jù)PWM脈沖波對利用I/O口直接控制電機(jī)。由于飛控板的I/O口輸出電流為mA級,無法驅(qū)動直流電機(jī)轉(zhuǎn)動,因此需要使用電機(jī)驅(qū)動模塊驅(qū)動電機(jī)。 直流電機(jī)選用的是減速直流電機(jī),因?yàn)闇p速直流電機(jī)的輸出力矩較大,可以適應(yīng)復(fù)雜地形。調(diào)節(jié)四個電機(jī)不同轉(zhuǎn)速用來改變飛行器的飛行動作。
服務(wù)器端的主要任務(wù)是接收客戶端的控制信號,并將信號傳給PWM控制器,PWM控制器將信號傳給飛控板。其中開發(fā)板選用RT5350,如圖3左所示。其運(yùn)行的是一個嵌入式Linux操作系統(tǒng),帶有WiFi模塊和RS 232串口模塊,便于和客戶端以及PWM控制器進(jìn)行通信。PWM控制器使用的是艾爾賽舵機(jī)控制器(LCSC),如圖3右邊所示。LCSC擁有16路舵機(jī)PWM脈沖信號輸出,可以同時對16個舵機(jī)進(jìn)行任意角度和精確時間的控制。該舵機(jī)控制器可以接收串口命令,適合任何含標(biāo)準(zhǔn)串口(RS 232 電平)的系統(tǒng),如個人電腦、PLC、51系列單片機(jī)、DSP、FPGA,ARM 等等。
客戶端主要由遙控手柄和PC組成,PC需帶有無線網(wǎng)卡,便于和服務(wù)器進(jìn)行通信。標(biāo)準(zhǔn)遙控器采用2.4 GHz無線通信,可以提供8通道甚至16通道的控制選擇。其功能強(qiáng)大、性能穩(wěn)定、操作方便,缺點(diǎn)是價(jià)格昂貴。本文采用市面上常見的遙控手柄,價(jià)格便宜,可以模擬出4個通道信號并產(chǎn)生控制信號。
2.2 軟件設(shè)計(jì)
軟件的總體結(jié)構(gòu)主要包括3個部分:搖桿客戶端、服務(wù)器端和PWM控制器。遙感控制客戶端主要是將搖桿的模擬信號轉(zhuǎn)化成數(shù)字信號并通過TCP協(xié)議發(fā)送給服務(wù)器,服務(wù)器端接收客戶端發(fā)送的命令并轉(zhuǎn)發(fā)給PWM控制器,PWM控制器將其轉(zhuǎn)化為PWM信號傳給飛控端,飛行控制端收到PWM信號后控制電機(jī)轉(zhuǎn)動。
2.2.1 客戶端控制算法設(shè)計(jì)
客戶端主要產(chǎn)生飛行器的飛行信號。游戲手柄客戶端的實(shí)現(xiàn)原理是在Linux系統(tǒng)下讀取手柄的鍵碼值[2],再通過一定的數(shù)學(xué)計(jì)算,將鍵碼值映射PWM模塊可識別的指令。首先在Linux系統(tǒng)下安裝驅(qū)動后會在/dev/input生成js0。然后通過js0接口來獲取遙控手柄的控制信息。當(dāng)用戶操作手柄時,驅(qū)動發(fā)送js_event的結(jié)構(gòu)給應(yīng)用程序以通知用戶做了哪些操作。
對于左側(cè)四個鍵,有兩種情況:
當(dāng)ANALOG鍵關(guān)閉時:上鍵和下鍵的number值均為1,左鍵和右鍵的number值為0。其他值不變。
當(dāng)ANALOG鍵按下時,鍵值會隨著手指按下和松開的不同狀態(tài)來做出相應(yīng)的分布。不同狀態(tài)下的鍵值分布如表2所列。
根據(jù)以上原理,系統(tǒng)可以獲取手柄的按鍵值以及搖桿的位置,得到手柄的遙控信息,并將此信息封裝為固定的格式傳給服務(wù)器。
2.2.2 服務(wù)器設(shè)計(jì)
服務(wù)器運(yùn)行在嵌入式Linux操作系統(tǒng)中,采用Linux C語言編程實(shí)現(xiàn),與客戶端之間建立TCP通信協(xié)議[4]??蛻舳送ㄟ^掃描手柄設(shè)備文件讀出手柄按鍵碼,將其映射為PWM指令發(fā)送至服務(wù)器。服務(wù)器收到指令后通過串口通信將指令發(fā)送給PWM控制器,PWM產(chǎn)生指定波形驅(qū)動飛控板,從而改變飛控4個電機(jī)轉(zhuǎn)速,控制飛行器飛行動作。
其客戶端與服務(wù)器之間的通信流程圖如圖4所示。
2.2.3 PWM控制器
PWM控制器接收到服務(wù)器的控制指令后,通過解析控制指令產(chǎn)生PWM信號,并將此信號發(fā)送給飛控輸入端。
本系統(tǒng)產(chǎn)生4路控制信號,分別控制四旋翼的四個電機(jī),其中
3 系統(tǒng)測試結(jié)果與分析
3.1 測試環(huán)境
本系統(tǒng)的測試環(huán)境如下:
系統(tǒng)環(huán)境:嵌入式Linux、Linux mint 17、Windows7;
硬件環(huán)境:嵌入式Linux開發(fā)板、PC、游戲手柄、四旋翼、PWM控制器;
網(wǎng)絡(luò)環(huán)境:WiFi網(wǎng)絡(luò),IP地址塊192.168.1.0/24。
3.2 測試結(jié)果
經(jīng)過測試系統(tǒng)達(dá)到設(shè)計(jì)需求。在WiFi網(wǎng)絡(luò)環(huán)境下,游戲手柄能控制飛行器的飛行,并能在空中完成懸停、旋轉(zhuǎn)、起伏、跌落、翻轉(zhuǎn)等動作。飛行器具有拋出之后保持平衡懸停,連續(xù)飛行時間達(dá)到10min左右,載重輕量物體等性能。
3.3 結(jié)果分析
本系統(tǒng)最終能夠通過遙控手柄控制四旋翼飛行,達(dá)到預(yù)期的目的。但是本系統(tǒng)還存在以下幾個問題:手柄控制飛行器穩(wěn)定性較差,由于手柄自身按鍵原因和數(shù)據(jù)處理的誤差因素,致使不能精確地映射出遙控器的所有行程;手柄靈活性也次于遙控器,從而使得手柄的控制精準(zhǔn)度低于遙控器;KK飛控板相對簡單,易操作,但其對飛行器姿態(tài)控制要求較低,自穩(wěn)能力差;無線網(wǎng)絡(luò)覆蓋范圍小,造成控制范圍小,易于失控。
由于本系統(tǒng)存在上述幾個問題,所以后期將對本系統(tǒng)做進(jìn)一步的更改。首先,將搖桿手柄換成標(biāo)準(zhǔn)的遙控器或進(jìn)一步優(yōu)化手柄控制算法,使其控制更加準(zhǔn)確靈活。其次,可以使用性能更好的飛控板,提高飛行器的自我調(diào)節(jié)能力。另外,建立無線局域網(wǎng),擴(kuò)大飛行器的飛行范圍。
4 結(jié) 語
本次設(shè)計(jì)采用模塊化的硬件和軟件設(shè)計(jì)方法,成功實(shí)現(xiàn)了使用搖桿手柄,通過網(wǎng)絡(luò)傳遞控制信息來控制飛行器的飛行,實(shí)現(xiàn)了預(yù)期的功能。
本設(shè)計(jì)的創(chuàng)新點(diǎn)具有以下幾點(diǎn):
(1)通過搖桿手柄替代標(biāo)準(zhǔn)的遙控器,操作簡單,并且大大降低了開發(fā)成本。
(2)采用無線網(wǎng)絡(luò)通信協(xié)議來完成遙控信息的傳遞,成功將物聯(lián)網(wǎng)技術(shù)運(yùn)用到本課題中。
(3)將嵌入式Linux操作系統(tǒng)運(yùn)用到飛行器上,可以在其中添加其它應(yīng)用,比如加載攝像頭用于航拍等。
參考文獻(xiàn)
[1]程曼,王讓會.物聯(lián)網(wǎng)技術(shù)的研究與應(yīng)用[J].地理信息世界,2010 (5):22-27.
[2]戴燁飛,殳偉群.基于Linux的游戲桿控制的實(shí)現(xiàn)方法[J].計(jì)算機(jī)工程與科學(xué), 2008(7):131-132.
[3]曹恒林.用JoyStick游戲手柄控制LED顯示屏視頻處理器及專用播放軟件[J].現(xiàn)代顯示,2010(11):48-52.
[4]陳相寧.網(wǎng)絡(luò)通信原理[M].北京:科學(xué)出版社,2014.
[5]黃溪流.一種四旋翼無人直升機(jī)飛行控制器的設(shè)計(jì)[D].南京:南京理工大學(xué),2010.
[6]李石磊.Quad-rotor飛行器控制系統(tǒng)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[7]馬海琴,葉俊明,蘇鵬鑒.基于ARM的四旋翼飛行器設(shè)計(jì)[J].電子技術(shù)與軟件工程,2015(10):127-128.
[8]李澤州,張東升. 四旋翼飛行器姿態(tài)的自適應(yīng)反演滑??刂蒲芯縖J].計(jì)算機(jī)仿真,2015(3):42-47.
[9]龐慶深,李家文.黃文浩.四旋翼飛行器設(shè)計(jì)與平穩(wěn)控制仿真研究[J].電光與控制, 2012,19(3): 51-55.