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