田紅鵬 范振可 馮健



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