丁夢(mèng)雨,吳嘉揚(yáng),葛玢
(1.西安衛(wèi)星測控中心渭南測控站,渭南714011;2.西安衛(wèi)星測控中心,西安710043)
基于Android系統(tǒng)的手持式無人機(jī)地面控制端的設(shè)計(jì)
丁夢(mèng)雨1,吳嘉揚(yáng)2,葛玢1
(1.西安衛(wèi)星測控中心渭南測控站,渭南714011;2.西安衛(wèi)星測控中心,西安710043)
在Android系統(tǒng)下,利用Eclipse開發(fā)平臺(tái)和藍(lán)牙技術(shù),研究并設(shè)計(jì)實(shí)現(xiàn)一個(gè)滿足小型無人機(jī)飛行需要的地面控制平臺(tái),該平臺(tái)要求在手機(jī)終端能搜索連接模擬飛機(jī)模塊,能對(duì)飛行器進(jìn)行簡單的飛行控制以及對(duì)飛行參數(shù)數(shù)據(jù)的顯示,手機(jī)終端飛行參數(shù)能通過手動(dòng)更新或自動(dòng)更新以保持與飛行器參數(shù)一致。從而實(shí)現(xiàn)無人機(jī)地面站的便攜化,為下一步更精準(zhǔn)便攜式地面站提供相關(guān)依據(jù)。
Android;無人機(jī);藍(lán)牙;地面控制
近年來,無人機(jī)的應(yīng)用與研究在全球范圍內(nèi)不斷升溫,各個(gè)大國也爭前恐后地加緊對(duì)無人機(jī)及其相關(guān)方面的研究與開發(fā)。無人機(jī)地面控制站是在現(xiàn)代無人機(jī)不斷發(fā)展和應(yīng)用的過程中逐步提出的。為了能夠更好地監(jiān)視無人機(jī)的飛行狀況并對(duì)其進(jìn)行遙控操作,人們根據(jù)不同需求研究設(shè)計(jì)了相應(yīng)類型的地面站,用以輔助操作人員對(duì)無人機(jī)各種飛行數(shù)據(jù)和任務(wù)設(shè)備狀況等的實(shí)時(shí)監(jiān)控。
1.1Android平臺(tái)技術(shù)
Android是一款基于Linux開放性內(nèi)核的開源操作標(biāo)準(zhǔn)平臺(tái),它采用了分層的體系結(jié)構(gòu),可以分為以下4個(gè)部分[4]:
(1)Linux內(nèi)核(Linux Kernel)
Android的核心系統(tǒng)服務(wù)是依賴于Linux 2.6內(nèi)核的,它作為硬件抽象層在手機(jī)物理硬件與Android系統(tǒng)的軟件棧之間處理核心系統(tǒng)服務(wù)。
(2)各種程序庫(Libraries)及Android運(yùn)行環(huán)境(RunTime)
Android包含了一組能被Android系統(tǒng)中不同組件所使用的C/C++函數(shù)庫,它們通過組件間接提供給開發(fā)者。Android的運(yùn)行環(huán)境包含了Dalvik虛擬機(jī)及一組Java核心函數(shù)庫,它們可以有效地優(yōu)化Java程序的運(yùn)行過程。所有的Android項(xiàng)目都運(yùn)行在它自己的進(jìn)程里,而該進(jìn)程就是一個(gè)Dalvik虛擬機(jī)的實(shí)例。
(3)應(yīng)用程序框架(Application Framework)
應(yīng)用程序框架是Google在發(fā)布核心應(yīng)用時(shí)所使用的API框架,通過提供這個(gè)開源的應(yīng)用程序框架,能夠使Android程序員通過框架直接訪問核心應(yīng)用程序及系統(tǒng)中的API,從而達(dá)到簡化程序設(shè)計(jì)工作同時(shí)又提高編碼效率的目的。
(4)應(yīng)用程序(Application)
Android應(yīng)用程序包含了四個(gè)構(gòu)建塊,即:Activity、Intent Receiver、Service以及Content Provider。它并不一定要同時(shí)包含這四個(gè)構(gòu)建塊,因?yàn)槟承┏绦蚩赡苤挥玫狡渲袔讉€(gè)構(gòu)建塊的組合[1]。
1.2藍(lán)牙技術(shù)
藍(lán)牙(Bluetooth),是一種能夠支持設(shè)備與設(shè)備間短距離通信的無線電技術(shù),是目前使用最為廣泛的無線通訊協(xié)議,近距離無線通訊的標(biāo)準(zhǔn)[2]。它使用的是2.4GHz的ISM公用頻道,該頻道可自由使用也不需用戶進(jìn)行申請(qǐng),頻道采用跳頻速率為1600跳/秒來進(jìn)行全雙工工作,如此一來藍(lán)牙設(shè)備更簡單并且性能優(yōu)越,同時(shí)還具備很強(qiáng)的抗干擾能力。根據(jù)它不同的發(fā)射功率,藍(lán)牙設(shè)備之間的有效通訊距離在10m~100m之間不等。藍(lán)牙設(shè)備具有比較靈活的組網(wǎng)方式,包括點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì)多點(diǎn)的無線連接[6]。
1.3Socket網(wǎng)絡(luò)編程
藍(lán)牙通訊在Android上的實(shí)現(xiàn),實(shí)質(zhì)就是Socket網(wǎng)絡(luò)編程的應(yīng)用。
網(wǎng)絡(luò)編程,一定離不開套接字(Socket)的使用。套接字接口是應(yīng)用程序訪問下層網(wǎng)絡(luò)協(xié)議的必經(jīng)之路。套接字是介于應(yīng)用層和傳輸層之間的編程接口,它提供了大量的系統(tǒng)調(diào)用和相應(yīng)的數(shù)據(jù)結(jié)構(gòu)功能,用來訪問下層通信協(xié)議。套接字在網(wǎng)絡(luò)模型中的地位如圖1所示。
圖1 套接字(Socket)在網(wǎng)絡(luò)模型中的地位
應(yīng)用程序可以通過套接字(Socket)進(jìn)行通信,Android系統(tǒng)中的套接字一般分為兩種類型:TCP套接字和UDP套接字。前者把消息分解成數(shù)據(jù)包(數(shù)據(jù)報(bào),datagrams)并在接收端按照規(guī)定的正確順序把它們重新裝配起來。而后者UDP則不提供裝配和重傳請(qǐng)求功能,它只是向前傳送信息包。Socket的基本通信模型如圖2所示。
2.1系統(tǒng)設(shè)計(jì)內(nèi)容要求
論文設(shè)計(jì)并制作一款用藍(lán)牙來模擬控制飛行器的手持式地面控制平臺(tái),要求在手機(jī)終端能搜索連接模擬飛機(jī)模塊,能對(duì)飛行器進(jìn)行簡單的飛行控制以及對(duì)飛行參數(shù)數(shù)據(jù)的顯示,手機(jī)終端飛行參數(shù)能通過手動(dòng)更新或自動(dòng)更新以保持與飛行器參數(shù)一致,能簡單控制飛行器的飛行姿態(tài)。
要求:
(1)控制范圍能在5米~20米間,能越過墻壁等障礙物進(jìn)行監(jiān)控;
(2)手機(jī)端軟件能夠顯示飛機(jī)的速度、飛機(jī)姿態(tài)(有個(gè)平衡點(diǎn),可以看出飛機(jī)現(xiàn)在是左偏右偏還是俯視飛行)、飛機(jī)的高度等這些參數(shù)手機(jī)終端數(shù)據(jù)與飛行器實(shí)際參數(shù)實(shí)時(shí)一致;
(3)手機(jī)端軟件有個(gè)操控界面,需要四個(gè)按鈕,表示控制飛行器上下左右的鍵;
(4)手機(jī)端軟件有個(gè)可以顯示地圖的界面,通過飛行器的經(jīng)緯度參數(shù),來顯示其地理位置;
(5)手機(jī)終端軟件對(duì)不同型號(hào)的手機(jī)兼容性要好;
(6)實(shí)現(xiàn)界面簡潔,用戶體驗(yàn)良好。
圖2 Socket的通信模型
2.2系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
隨著無人機(jī)系統(tǒng)的快速應(yīng)用與發(fā)展,它所必備的地面控制系統(tǒng)也被提出并逐步向更多元化發(fā)展。當(dāng)代的無人機(jī)已經(jīng)從最原始的單一戰(zhàn)斗任務(wù)中脫身而出,它裝載了各種用途的設(shè)備。為了能夠更好地對(duì)無人機(jī)進(jìn)行遙控操作,人們相繼采用了不同形式的地面控制站系統(tǒng),以便對(duì)無人機(jī)的飛行狀態(tài)和任務(wù)設(shè)備等進(jìn)行實(shí)時(shí)的監(jiān)控[3]。一般而言,地面控制站系統(tǒng)是一個(gè)具有遙測數(shù)據(jù)的實(shí)時(shí)采集、遙控指令的實(shí)時(shí)發(fā)送和飛行航跡的實(shí)時(shí)顯示等功能的監(jiān)控系統(tǒng)。該系統(tǒng)是無人機(jī)系統(tǒng)中的重要環(huán)節(jié),它的穩(wěn)定與否直接影響著整個(gè)系統(tǒng)的性能實(shí)現(xiàn)。
擬定基于Android系統(tǒng)的便攜式無人機(jī)地面控制平臺(tái)設(shè)計(jì)的總體框圖如圖3所示,單片機(jī)模擬模塊由速度傳感器、位移傳感器、回轉(zhuǎn)儀感應(yīng)器、飛機(jī)機(jī)體部分等組成,主要負(fù)責(zé)采集飛行器飛行數(shù)據(jù)和對(duì)操控命令作出響應(yīng)。手機(jī)監(jiān)控終端模塊分為三大功能子塊,分別負(fù)責(zé)搜索鏈接藍(lán)牙設(shè)備,顯示飛行數(shù)據(jù)信息和匹配輸出操控命令。
圖3 系統(tǒng)總體結(jié)構(gòu)圖
2.3Android手機(jī)端軟件設(shè)計(jì)
便攜式無人機(jī)地面站,作為連接操作人員與無人機(jī)的橋梁,其基本功能要求如下:
(1)能夠?qū)崿F(xiàn)對(duì)飛行器姿態(tài)的控制,即在任何時(shí)間飛行器的前、后、左、右方向等姿態(tài)都是可以通過地面站進(jìn)行控制的。
(2)可以時(shí)刻觀察飛行器即時(shí)的滾轉(zhuǎn)角、俯仰、偏航、高度、速度、經(jīng)緯度等數(shù)據(jù)。
(4)對(duì)所有飛行數(shù)據(jù)進(jìn)行保存,并對(duì)歷史數(shù)據(jù)任務(wù)回放功能,方便查看航行軌跡等數(shù)據(jù)。
(5)保證系統(tǒng)穩(wěn)定可靠、實(shí)時(shí)高效的數(shù)據(jù)傳輸機(jī)制,以滿足大數(shù)據(jù)量的通訊要求。
(6)在滿足可靠性的基礎(chǔ)上,監(jiān)控?cái)?shù)據(jù)的直觀性、控制的易操作性也要予以考慮。
手機(jī)端地面控制平臺(tái)軟件的設(shè)計(jì)主要實(shí)現(xiàn)通過Android手機(jī)終端軟件控制飛行器,將從藍(lán)牙串口模塊接收的飛行參數(shù)信息顯示在手機(jī)屏幕上,通過操作界面的按鈕點(diǎn)擊生成響應(yīng)的操作指令發(fā)送給來藍(lán)牙串口模塊,以實(shí)現(xiàn)對(duì)模擬裝置的監(jiān)控和指令操作。手機(jī)端軟件分成藍(lán)牙搜索連接、參數(shù)顯示以及操作主界面、命令匹配輸出三大子塊,藍(lán)牙搜索連接子塊負(fù)責(zé)手機(jī)周邊藍(lán)牙設(shè)備的搜索,匹配和連接;主界面子塊負(fù)責(zé)顯示飛行器的飛行速度、高度、滾轉(zhuǎn)角、俯仰、偏航、經(jīng)緯度(通過地圖展現(xiàn))等數(shù)據(jù),點(diǎn)擊參數(shù)對(duì)應(yīng)的按鈕可實(shí)現(xiàn)手動(dòng)刷新數(shù)據(jù),點(diǎn)擊前后左右等按鈕對(duì)飛行器進(jìn)行相應(yīng)的控制;命令匹配輸出模塊響應(yīng)主界面按鈕的點(diǎn)擊操作以生成對(duì)應(yīng)的操控指令,然后將指令發(fā)送單片機(jī)上的藍(lán)牙子模塊。
手機(jī)端軟件大體可分為以下幾個(gè)區(qū)域:
數(shù)據(jù)顯示區(qū):顯示飛行器的滾轉(zhuǎn)角、俯仰、偏航、高度等數(shù)據(jù)。
操控區(qū)域:包括可點(diǎn)擊的四個(gè)按鈕,分別是對(duì)飛行器前、后、左、右的行駛控制。
儀表盤顯示區(qū):可以動(dòng)態(tài)顯示飛行器的飛行速度、高度、姿態(tài)數(shù)據(jù),通過儀表盤的形式來直觀體現(xiàn)。
地圖顯示區(qū):通過上一個(gè)界面點(diǎn)擊可以進(jìn)入地圖顯示區(qū),顯示當(dāng)前位置信息。
(1)構(gòu)建項(xiàng)目開發(fā)環(huán)境
本節(jié)對(duì)軟件的開發(fā)環(huán)境及目標(biāo)平臺(tái)進(jìn)行簡要的介紹[7]。
●開發(fā)環(huán)境
①Eclipse集成開發(fā)環(huán)境選擇3.5及以上版本;
②JDK 1.6及以上版本;
③Android SDK;
④Android SDK和Eclipse開發(fā)插件ADT;
⑤數(shù)據(jù)庫:Android自帶的SQLite數(shù)據(jù)庫,每款A(yù)ndroid手機(jī)都支持。
●目標(biāo)平臺(tái)
本軟件的目標(biāo)平臺(tái)為Android 2.1、Android 2.2或者更高的版本。
(2)軟件設(shè)計(jì)框架
手機(jī)端地面控制平臺(tái)終端整體框架圖如圖4所示:手機(jī)終端地面控制平臺(tái)軟件操作流程如圖5所示:
圖4 手機(jī)地面控制平臺(tái)終端框架
圖5 手機(jī)終端地面控制平臺(tái)軟件操作流程
●布局設(shè)計(jì)
程序的主體部分大概可劃分三個(gè)操作交互界面(即Activity):第一個(gè)界面顯示已搜索到或者已配對(duì)的藍(lán)牙設(shè)備列表界面,該界面還包括有搜索藍(lán)牙設(shè)備以及啟動(dòng)服務(wù)端等按鈕,點(diǎn)擊列表中某一個(gè)已配對(duì)的設(shè)備項(xiàng),就會(huì)跳入數(shù)據(jù)顯示和操控的界面,若未配對(duì),則會(huì)提示,成功后直接跳入第二界面;第二個(gè)界面是數(shù)據(jù)顯示和操控界面,主要顯示數(shù)據(jù)區(qū)、操控區(qū)、儀表盤區(qū),通過點(diǎn)擊“地圖顯示”按鈕,跳轉(zhuǎn)到下一界面:地圖顯示界面。該界面通過不斷接收飛行器發(fā)送來的經(jīng)緯度數(shù)據(jù),實(shí)時(shí)更新飛行器在地圖上的位置顯示。整體布局設(shè)計(jì)如圖6、圖7所示。
圖6 設(shè)備搜索界面設(shè)計(jì)
圖7 主界面設(shè)計(jì)
在設(shè)置手機(jī)界面的時(shí)候,選擇Android 2.2版本,工程名命名為Bluetooth-plane,選擇Create Activity,則自動(dòng)創(chuàng)建了一個(gè)Activity。在創(chuàng)建Activity時(shí),需注意一個(gè)Activity就是一個(gè)類,并且這個(gè)類要繼承Activity;需要復(fù)寫Oncreate方法;每一個(gè)Activity都需要在Androidmanifast.xml文件當(dāng)中配置。
(4)系統(tǒng)模塊設(shè)計(jì)
便攜式無人地面控制平臺(tái)系統(tǒng)主要功能為通過Android設(shè)備的藍(lán)牙模塊和模擬無人機(jī)藍(lán)牙模塊通訊,從而控制無人機(jī)的飛行方向,并且接收無人機(jī)飛行參數(shù)數(shù)據(jù),把數(shù)據(jù)按指定的格式展現(xiàn)出來。做到對(duì)數(shù)據(jù)的實(shí)時(shí)顯示和存儲(chǔ),事后可以調(diào)取存儲(chǔ)的遙測數(shù)據(jù)進(jìn)行回放分析。系統(tǒng)模塊結(jié)構(gòu)如圖8所示。
每個(gè)模塊的功能:
●通信控制模塊:
①藍(lán)牙的開關(guān):在手機(jī)端程序運(yùn)行開始時(shí),會(huì)檢測手機(jī)的藍(lán)牙模塊是否打開,如果沒有打開,則會(huì)彈出提示框,并請(qǐng)求打開藍(lán)牙:如果用戶選擇了同意打開,則自動(dòng)打開藍(lán)牙模塊,否則,后續(xù)工作無法進(jìn)行。
②通信角色的分配:手機(jī)端便攜無人機(jī)地面站既可以當(dāng)作服務(wù)器端來監(jiān)聽客戶端的連接,也可以作為客戶端去連接服務(wù)器端。假如作為服務(wù)器端進(jìn)行監(jiān)聽,則點(diǎn)擊軟件界面的“啟動(dòng)服務(wù)器端”來進(jìn)行等待,啟動(dòng)的同時(shí),會(huì)跳到軟件的控制面板界面;假如客戶端要作為客戶端去連接服務(wù)器端,則在搜索到的藍(lán)牙設(shè)備中點(diǎn)擊想要連接的設(shè)備,前提是此設(shè)備已經(jīng)是處于等待客戶端連接的狀態(tài)。
●藍(lán)牙搜索與配對(duì):在軟件的初始界面(設(shè)備列表界面),假如藍(lán)牙模塊已經(jīng)被打開,則可以點(diǎn)擊“開始搜索”按鈕來進(jìn)行設(shè)備的搜索,搜索的過程中此按鈕變?yōu)椤巴V顾阉鳌?,可以點(diǎn)擊來停止搜索。
●數(shù)據(jù)傳輸模塊:在已連接好的兩個(gè)藍(lán)牙設(shè)備之間,可以進(jìn)行數(shù)據(jù)的相互傳輸。從手機(jī)端控制站的角度來看,主要傳輸?shù)臄?shù)據(jù)是對(duì)飛機(jī)前、后、左、右方向的控制。當(dāng)用戶點(diǎn)擊不同方向的按鍵時(shí),會(huì)發(fā)送相應(yīng)的指令到飛機(jī)的藍(lán)牙模塊上。同時(shí),飛機(jī)也接收手機(jī)客戶端手動(dòng)刷新某項(xiàng)飛行參數(shù)的指令,當(dāng)收到該指令之后,應(yīng)立即向手機(jī)客戶端返回一條相應(yīng)的參數(shù)數(shù)據(jù)。
●數(shù)據(jù)接收模塊:手機(jī)客戶端也可以實(shí)時(shí)地接收飛機(jī)傳送過來的各種飛行參數(shù),并且對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理。這些參數(shù)包括滾轉(zhuǎn)角、俯仰、偏航、高度、速度、經(jīng)緯度等。
圖8 系統(tǒng)模塊結(jié)構(gòu)
●數(shù)據(jù)的處理:
手機(jī)控制站客戶端應(yīng)包含對(duì)接收到數(shù)據(jù)的處理,包括數(shù)據(jù)的展示、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分析等。其中數(shù)據(jù)的展示有對(duì)數(shù)據(jù)的直觀顯示(滾轉(zhuǎn)角、俯仰、偏航、高度等)、地圖位置標(biāo)點(diǎn)顯示(對(duì)經(jīng)緯度的顯示)、儀表盤顯示(速度、高度、姿態(tài))。數(shù)據(jù)存儲(chǔ)主要把這些數(shù)據(jù)以SQLite數(shù)據(jù)庫的方式存儲(chǔ)到手機(jī)中,待需要時(shí)進(jìn)行必要的數(shù)據(jù)分析統(tǒng)計(jì)等。
3.1UI實(shí)現(xiàn)
●設(shè)備列表界面:該界面布局比較簡單:包含有一個(gè)ListView,該ListView的適配器(Adapter)是使用了自定義的Adapter,用來指定列表中每一項(xiàng)的樣式。
●控制面板主界面:控制面板主界面主要通過一個(gè)繼承自SurfaceView的類來實(shí)現(xiàn)界面的繪制。SurfaceView是從View基類中派生出來的顯示類,由于本系統(tǒng)的功能要求時(shí)事接收數(shù)據(jù)的同時(shí),將數(shù)據(jù)反饋到相應(yīng)的顯示形式上(如儀表盤),所以使用SurfaceView來繪制界面是不二之選。
●地圖顯示界面:這里調(diào)用了百度的SDK,可以很方便地創(chuàng)建一張地圖。在建立的Activity中,首先通過findViewById方法找到地圖控件對(duì)應(yīng)的MapView對(duì)象,然后初始化MapView的一些屬性。當(dāng)接收消息的線程接收到飛機(jī)發(fā)送過來的經(jīng)緯度數(shù)據(jù)時(shí),通過Handler對(duì)象的sendMessage方法,把經(jīng)緯度數(shù)據(jù)發(fā)送到UI繪制的線程,從而在地圖上標(biāo)注出這個(gè)點(diǎn)。自定義的地圖標(biāo)注點(diǎn)的實(shí)現(xiàn)是依賴于百度地圖SDK的com.baidu. mapapi.Overlay類:自定義一個(gè)類,并且繼承自com. baidu.mapapi.Overlay這個(gè)類,并且復(fù)寫draw函數(shù),進(jìn)行地圖點(diǎn)的繪制。
3.2藍(lán)牙搜索及配對(duì)的實(shí)現(xiàn)
首先,獲得系統(tǒng)默認(rèn)的藍(lán)牙適配器,點(diǎn)擊“開始搜索”按鈕,則通過調(diào)用mBtAdapter的startDiscovery方法來搜索藍(lán)牙設(shè)備,在搜索的過程中或發(fā)出一系列廣播,我們可以通過接收廣播來獲得搜索的反饋。
當(dāng)相應(yīng)的廣播發(fā)出之后,在自定義的廣播接收器BroadcastReceiver中進(jìn)行相關(guān)處理;在初始化控件之后,先要檢測是否有已經(jīng)配對(duì)的藍(lán)牙設(shè)備,如果有,則不需要再配對(duì),直接將此設(shè)備列出來。
3.3服務(wù)器端的監(jiān)聽和客戶端的鏈接
3.5數(shù)據(jù)的保存
作為手機(jī)地面控制平臺(tái)軟件而言,可以以兩種身份來建立連接:服務(wù)器端或者客戶端。如果作為服務(wù)器端,則需要啟動(dòng)一個(gè)新線程,去監(jiān)聽服務(wù)器端的連接;而如果作為客戶端,則需要去主動(dòng)連接一個(gè)服務(wù)器端。在操作時(shí),需要先啟動(dòng)服務(wù)器端,再啟動(dòng)客戶端。
3.4藍(lán)牙通信的實(shí)現(xiàn)
在服務(wù)器端與客戶端連接成功之后,就可以進(jìn)行設(shè)備之間的通訊了。手機(jī)地面站軟件既要發(fā)送數(shù)據(jù),又要接收數(shù)據(jù)。發(fā)送數(shù)據(jù)的機(jī)制是監(jiān)聽四個(gè)方向鍵的按下,當(dāng)按下時(shí),發(fā)送相應(yīng)的指令到飛機(jī)設(shè)備。接收數(shù)據(jù)需要新啟動(dòng)一個(gè)線程,通過循環(huán)體來不斷地讀取數(shù)據(jù),在對(duì)方?jīng)]有發(fā)送數(shù)據(jù)時(shí),則該次循環(huán)阻塞。
由于Android內(nèi)嵌了功能比其他手機(jī)操作系統(tǒng)強(qiáng)大的關(guān)系型數(shù)據(jù)庫SQLite,SQL語句基本都可以使用。所以可以使用這種方法來保存數(shù)據(jù)[10~11]。只需要自定義一個(gè)繼承自SQLiteOpenHelper類,它提供了訪問數(shù)據(jù)庫、事務(wù)等API,使用起來很方便。這里采用DAO模式來封裝數(shù)據(jù)庫操作。
4.1測試工具
一臺(tái)配有藍(lán)牙功能并支持Android系統(tǒng)的手機(jī)、裝有藍(lán)牙模塊的四旋翼無人飛行器。
圖9 四旋翼飛行器室內(nèi)飛行圖
圖10 四旋翼飛行器室外短距離飛行圖
圖11 手機(jī)端主界面
圖12 地圖顯示界面
4.2測試項(xiàng)目器的控制正常,如圖9~13所示。
測試的項(xiàng)目內(nèi)容主要有:軟件在Android系統(tǒng)上運(yùn)行的展示效果、功能效果。功能包括藍(lán)牙的正常連接、藍(lán)牙通訊的順暢、數(shù)據(jù)傳輸是否正常、是否可以操控飛行器。
4.3測試結(jié)果
在高于2.1版本之上的Android手機(jī)上可以正常運(yùn)行;數(shù)據(jù)的實(shí)時(shí)顯示、地圖顯示正常;手機(jī)端對(duì)飛行
本次設(shè)計(jì)完成了基于Android的藍(lán)牙模擬手持式無人機(jī)地面控制平臺(tái)裝置,它充分發(fā)揮了藍(lán)牙無線傳輸速度快,距離遠(yuǎn),不受障礙物干擾或干擾很小的優(yōu)點(diǎn),可在10m范圍的室內(nèi)空間實(shí)現(xiàn)對(duì)飛行器的數(shù)據(jù)傳輸及簡單飛行操控。
[1]楊越.精通Android[M].北京:人民郵電出版社,2010
[2]劉挺,尤韋彥,王耀明.藍(lán)牙系統(tǒng)服務(wù)發(fā)現(xiàn)協(xié)議(SDP)的分析和應(yīng)用[J].計(jì)算機(jī)工程,2002,28(6):7~8
[3]寧金星,盧京潮,閆建國.基于VC++的無人機(jī)飛控地面站軟件的開發(fā)[J].計(jì)算機(jī)測量與控制,2009,17(3):596~598
[4]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011
[5]FrankAbleson.Introduction to Android Development[J].developerWorks,2009,10(7)
[6]金純,肖玲娜,羅緯,聶增麗.超低功耗(ULP)藍(lán)牙技術(shù)規(guī)范解析[M].北京:國防工業(yè)出版社,2010.8
[7]蓋索林.Google Android開發(fā)入門指導(dǎo)[M].北京:人民郵電出版社,2007
[8]MP2028 Installation and Operation,Canadian MicroPilot Company,2003
[9]倪天龍,張賢高.數(shù)據(jù)庫SQLite在嵌入式系統(tǒng)中的應(yīng)用單片機(jī)與嵌入式系統(tǒng)應(yīng)用[J],2005,10
[10]莊宗輝,薛毓強(qiáng).嵌入式數(shù)據(jù)庫SQLite在遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2007,8
[11]PV.Biyenburgh.UAVs:an Overview.AIR&Space Europe,1999,11(1)
Android;UAV(Unmanned Aerocraft Vehicle);Bluetooth;Ground Control
Design of GCS for UAV Based on Android System
DINGMeng-yu1,Wu Jia-yang2,GE Bin1
(1.Weinan Satellite TT&CStation,Xi'an Satellite Control Center of China,Weinan 714011;2.Xi'an Satellite Control Center of China,Xi'an 710043)
Under the Android system,uses the Eclipse development platform and Bluetooth technology,researches and designs a control p latform whichmeets the needs of small UAV flighton the ground,the platform in themobile terminal can search link simulationmodule,plane to simple aircraft flight control aswell as to the flight parameter data display,mobile terminal flight parameters can be updated bymanual or automatic updates to keep consistentwith the craft parameter.So as to realize the UAV ground stationmore portable,provides the basis of more accurate portable ground station for the next step.
1007-1423(2015)16-0036-07
10.3969/j.issn.1007-1423.2015.16.009
丁夢(mèng)雨(1989-),女,黑龍江哈爾濱人,碩士研究生,研究方向?yàn)闊o人機(jī)地面控制站
2015-05-13
2015-05-19