占宏 張祝



摘 要:傳統四軸飛行器的控制多為搖桿遙控器,針對其便攜性差、控制距離受限等問題,采用智能移動終端與3G網絡技術來實現對飛行器的遠程控制。但智能移動終端系統的多樣性給編程帶來一定的難度,采用跨平臺移動應用框架PhoneGap來設計和開發手機APP控制平臺,不僅節約了開發時間和成本,而且有效增加了APP用戶群體。室外測試實驗表明:在3G網絡信號覆蓋下,平臺操作便捷、實時性好,飛行器運行流暢、坐標顯示準確,同時可跨平臺使用,適應性好。
關鍵詞:四軸飛行器;智能移動終端;PhoneGap框架;3G網絡
中圖分類號:TP273
文獻標志碼:A
1 引言
由于微機電控制技術、新型材料以及飛行控制技術的發展,四軸無人飛行器得到迅猛發展。四軸飛行器具有結構簡單、穩定性好、承載能力強、低成本、高效益的特點,有著廣闊的應用前景。
近年來出現通過電腦或手機采用wifi、藍牙或者ZigBee等技術來實現遠程控制飛行器,雖然解決了傳統遙控器的體積大、質量重、不便于攜帶的問題,但仍受到距離的限制。若想實現真正的超遠距離控制,可以采用第三代移動通信技術(3G網絡),就如手機通話般,給四軸飛行器插上一張電話卡,就可以控制飛行器。
要實現手機控制飛行器,必須在手機上編寫應用,通過調用相關組件及功能來實現對飛行器的控制。然而市面上的手機系統的多樣性卻給手機應用的統一編寫帶來了一定的難度。由于移動跨平臺開發框架PhoneGap具有一次開發同時適用于多種不同移動智能終端操作系統的特性[1-2],因此文中采用PhoneGap開發和設計3G網絡的四軸飛行器手機APP控制平臺,不僅大大縮短了開發周期,而且有效增加了APP用戶群體[3]。
2 控制平臺整體框架
本文設計的四軸飛行器控制平臺包括四軸飛行器、智能移動終端(手機)、服務器三部分,詳細框圖如圖1所示。
本設計自行搭建好一臺能實現自主平衡定高飛行的四軸飛行器。該飛行器選用飛思卡爾公司的MK60芯片作為主控芯片,負責高頻的姿態解算、數據接收以及處理等;選用MPU6050姿態模塊并裝載GPS模塊,隨時返回飛行器當前姿態以及坐標位置,保證對飛行器的實時監控;裝載具有3G功能的SIM模塊,將飛行器的各種姿態、坐標等處理后的數據通過3G數據發出,保證了長距離的傳輸。
因為采用PhoneGap跨平臺框架,可在各個平臺運行終端程序,本次移動測試終端選用一款An-droid平臺的手機,采用iQuery Mobile移動web應用開發框架編寫源碼,并采用PhoneGap框架技術生成Android系統下的APK安裝程序,在An-droid手機終端上安裝即可[4]。
該平臺采用服務器加終端的方法來實現手機與四軸飛行器間的數據交換,數據通過3G網絡傳輸。在服務器端用php編寫一個負責數據處理的腳本,再用html建立了一個負責數據交換的純數據網頁,分配以固定的域名并作為數據傳輸的媒介,從而更方便、快速地實現飛行器與手機端的通信。
3 系統設計
3.1 服務器端
服務器端負責飛行器與移動終端(手機)間的數據交互,是數據的中心。在服務器端,采用php語言編寫的腳本與采用HTML編寫的主頁文件是整個控制平臺架構的基礎[5]。
php是一種通用開源腳本語言,主要適用于Web開發領域,可嵌入于HTML中,在此平臺中,php文件負責接收用戶提交數據并加以處理,然后交于主頁顯示。值得注意的是,通常php以post的方式加密傳輸數據,在此平臺中需要用到兩種post數據接收方式,一種為“$ _POST”方式,它可以接受飛行器傳過來的表單數據,另一種是“php://input”方式,用來接收手機端post過來的字符數據[6]。
在HTML編寫的主頁文件中,將php腳本處理后的數據用字符串的方式打印到頁面中,其他平臺通過訪問網頁的方式便可獲取數據。
3.2 四軸飛行器端
四軸飛行器要與此平臺相配合,必須滿足以下條件:
(1)該飛行器要能有效地連接到3G網絡,因此要在四軸飛行器上安裝GPRS模塊。選用SIM900模塊并配置一張聯通3G上網卡,通過3G網絡訪問服務器上的具體域名。
(2)四軸飛行器必須實現自平衡。由于智能移動終端控制信號受3G信號強弱的影響,可能會有一定的延時,因此實際應用時選用MPU6050集成三軸陀螺儀和三軸加速器,來實現飛行器當前姿態的精確檢測并通過PID算法進行姿態控制以保持飛行器的平穩[7]。
(3)為實現超遠距離的飛行,必須在四軸飛行器上裝載GPS模塊。每隔1秒讀取一次當前坐標,并與服務器上讀回的數據進行比較,即可得到飛行器當前需要運動的方向。
(4)要想實現遠距離的飛行,一個大容量的電池也是必不可少的,而且GPRS模塊也需要大量供電,因此采用雙電池模式,飛行器采用大容量聚合物鋰電池供電,GPRS模塊用單獨的手機鋰電池供電[8]。
3.3 智能移動終端
智能移動終端采用PhoneGap框架技術進行開發,PhoneGap框架的開發與其他模塊的配合是本次設計的創新點與難點。
在PhoneGap框架下,使用HTML、CSS、JavaScript等網頁語言即可編寫手機應用,并將源碼打包上傳至其官網的PhoneGap build處,便可自動生成各類手機平臺下的安裝文件,下載相應的文件即可。同時,調試時不需要復雜的手機模擬器,使用瀏覽器打開并調整到手機大小便可完成[9]。因此,在PhoneGap框架下無論開發還是調試都變得更簡單。
該平臺包含坐標控制頁面和直接控制頁面兩個主界面。
(1)坐標控制頁面:此頁面主要完成飛行器坐標的輸入與傳遞。首先,建立一個表單用來輸入經緯度坐標,并用iQuery中的post()方法將該經緯度坐標傳至服務器端。在程序中設置每0.5秒訪問1次之前在服務中編寫的Web Page,便可得到打印在主頁中的各種字符串信息,然后將信息實時顯示在手機APP中。此時調用百度地圖接口,輸入所得到的當前坐標,即可在地圖上顯示飛行器位置。在飛行高度方面可設置一個滑條,通過滑動來控制飛行器高度。
(2)直接控制頁面:直接控制是指在移動端直接通過前后左右鍵控制飛行器的移動,通過四個bool按鍵實現,按鍵按下時向服務器post相應按鍵數據,前進時發送數據“w”,后退“s”,左移“a”,右移“d”,按鍵沒按時post數據“O”。
(3)兩個頁面不僅要實現應有的功能,我們更希望頁面能有非常好的用戶體驗,所以兩個頁面間的相互轉換是必不可少的步驟,不僅如此,還需要在調節飛行器高度等控制參數時,用戶不用反復的通過數字輸入,采用滑條方式以便用戶使用。
3.4 整體設計
將以上三部分整合為一完整的平臺——基于PhoneGap框架與3G網絡的四軸飛行器控制平臺。該控制平臺的工作流程如圖3所示。
4 平臺的實現
4.1 四軸飛行器終端實現
本次設計并實現了基于phonegap框架與3G網絡的四軸飛行器控制平臺,如圖4所示為具有自平衡功能的四軸飛行器,已經裝配有SIM模塊以及GPS模塊,并通過MCU編程實現數據交換。通過服務器到終端的設計,該平臺實現了由手機控制四軸飛行器完成超遠距離飛行。
4.2 服務器端腳本實現
實驗調試中可直接通過瀏覽器訪問服務器上的主頁,如圖5所示。其中,“J”和“W”后的數字分別表示經度和緯度坐標,“H”和“K”后數字分別表示飛行器高度和當前飛行器的運行狀態,當“K”為“O”時,代表無操作,當“K”為“w”“s”“a”“d”時分別表示向前、向后、向左、向右飛行。
4.3
PhoneGap編寫的移動終端應用
圖6和圖7是移動終端的操作界面,分別有坐標控制和直接控制兩種模式供選擇。該兩種模式的上部是飛行器飛行高度的控制,可以通過滑塊的方式設定飛行器高度,也可以直接在滑塊左邊的框內輸入指定高度(單位為“米”);中部是顯示飛行器的當前坐標的,用戶不能更改。在坐標控制界面的下半部分設置好經緯度,點擊“設置坐標”便可以向服務器發送信息,點擊“在地圖上顯示”可在地圖中顯示當前坐標所在地圖的位置(本應用直接鏈接的百度地圖)。直接控制界面的下半部分可以直接對飛行器進行前后左右移動操作。
應用的最底部是飛行器與服務器的連接狀態以及移動終端與服務器的連接狀態,任意一個連接失敗就不能對服務器端進行數據傳輸。
5 小結
通過該平臺的大量室外測試實驗,結果表明:在地勢開闊、3G信號良好的地方,平臺操作非常便捷,實時性高;飛行器運行流暢、坐標顯示準確,使用PhoneGap開發的Andriod手機終端應用運行流暢,顯示正常,并且可跨平臺使用(在電腦端和10s端都可使用),適應性好。但其實時性會受到運營商網絡信號的影響,在3G信號薄弱的地方進行飛行器操作時會出現飛行器無反應或坐標顯示延遲等現象,這些問題后續將做一步深入研究。
平臺采用PhoneGap框架技術與傳統技術相比大大節約了開發時間和成本,采用3G網絡技術實現了超遠距離控制,采用服務器到終端的信息傳遞模式自由度高,不僅可輕松實現一個移動終端控制多臺飛行器,多個移動終端控制一臺飛行器,甚至多個移動終端控制多個飛行器,由此可見此平臺框架有著較大的發展潛力。
參考文獻
[1]楊葉,陳琳,董啟標,基于PhoneGap的跨平臺移動學習資源設計與開發探究[J].現代教育技術,2014,(2):100-107.
[2]王則杰,李艷春,李新,基于PhoneGap的移動課件應用的設計與實現[J].科研信息化技術與應用,2013,(2):67-74.
[3] 陸鋼,朱培軍,李慧云,等,智能終端跨平臺應用開發技術研究[J].電信科學,2012,(5):14-17.
[4] 蘇杰峰,基于PhoneGap的移動資源應用的設計與實現[D].西安:西北大學,2013.
[5]劉歡,盧蓓蓉,使用響應式設計構建高校新型門戶網站[J].中國教育信息化,2013,(5):71- 75.
[6]李青,王濤,基于平板電腦的學習資源設計框架和要點分析[J].遠程教育雜志,2012.(5):35-41.
[7]楊明志,王敏,四旋翼微型飛行器控制系統設計[J].計算機測量與控制,2008,(4):1671-4598.
[8]劉峰,呂強,王國勝,等.四軸飛行器姿態控制系統設計[J].計算機測量與控制,2011,(3):583-585.
[9] 陸鋼,朱培軍,李慧云,等,智能終端跨平臺應用開發技術研究[J].電信科學,2012,(5):14-17.
[10] 樊雷,基于PhoneGap和iQuery Mobile的課程群移動學習平臺構建[J].軟件導刊,2014,(11):56-58.