999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android系統的手持式無人機地面控制端的設計

2015-09-18 05:53:57丁夢雨吳嘉揚葛玢
現代計算機 2015年13期
關鍵詞:界面設備系統

丁夢雨,吳嘉揚,葛玢

(1.西安衛星測控中心渭南測控站,渭南714011;2.西安衛星測控中心,西安710043)

基于Android系統的手持式無人機地面控制端的設計

丁夢雨1,吳嘉揚2,葛玢1

(1.西安衛星測控中心渭南測控站,渭南714011;2.西安衛星測控中心,西安710043)

在Android系統下,利用Eclipse開發平臺和藍牙技術,研究并設計實現一個滿足小型無人機飛行需要的地面控制平臺,該平臺要求在手機終端能搜索連接模擬飛機模塊,能對飛行器進行簡單的飛行控制以及對飛行參數數據的顯示,手機終端飛行參數能通過手動更新或自動更新以保持與飛行器參數一致。從而實現無人機地面站的便攜化,為下一步更精準便攜式地面站提供相關依據。

Android;無人機;藍牙;地面控制

0 引言

近年來,無人機的應用與研究在全球范圍內不斷升溫,各個大國也爭前恐后地加緊對無人機及其相關方面的研究與開發。無人機地面控制站是在現代無人機不斷發展和應用的過程中逐步提出的。為了能夠更好地監視無人機的飛行狀況并對其進行遙控操作,人們根據不同需求研究設計了相應類型的地面站,用以輔助操作人員對無人機各種飛行數據和任務設備狀況等的實時監控。

1 系統設計相關技術

1.1Android平臺技術

Android是一款基于Linux開放性內核的開源操作標準平臺,它采用了分層的體系結構,可以分為以下4個部分[4]:

(1)Linux內核(Linux Kernel)

Android的核心系統服務是依賴于Linux 2.6內核的,它作為硬件抽象層在手機物理硬件與Android系統的軟件棧之間處理核心系統服務。

(2)各種程序庫(Libraries)及Android運行環境(RunTime)

Android包含了一組能被Android系統中不同組件所使用的C/C++函數庫,它們通過組件間接提供給開發者。Android的運行環境包含了Dalvik虛擬機及一組Java核心函數庫,它們可以有效地優化Java程序的運行過程。所有的Android項目都運行在它自己的進程里,而該進程就是一個Dalvik虛擬機的實例。

(3)應用程序框架(Application Framework)

應用程序框架是Google在發布核心應用時所使用的API框架,通過提供這個開源的應用程序框架,能夠使Android程序員通過框架直接訪問核心應用程序及系統中的API,從而達到簡化程序設計工作同時又提高編碼效率的目的。

(4)應用程序(Application)

Android應用程序包含了四個構建塊,即:Activity、Intent Receiver、Service以及Content Provider。它并不一定要同時包含這四個構建塊,因為某些程序可能只用到其中幾個構建塊的組合[1]。

1.2藍牙技術

藍牙(Bluetooth),是一種能夠支持設備與設備間短距離通信的無線電技術,是目前使用最為廣泛的無線通訊協議,近距離無線通訊的標準[2]。它使用的是2.4GHz的ISM公用頻道,該頻道可自由使用也不需用戶進行申請,頻道采用跳頻速率為1600跳/秒來進行全雙工工作,如此一來藍牙設備更簡單并且性能優越,同時還具備很強的抗干擾能力。根據它不同的發射功率,藍牙設備之間的有效通訊距離在10m~100m之間不等。藍牙設備具有比較靈活的組網方式,包括點對點和點對多點的無線連接[6]。

1.3Socket網絡編程

藍牙通訊在Android上的實現,實質就是Socket網絡編程的應用。

網絡編程,一定離不開套接字(Socket)的使用。套接字接口是應用程序訪問下層網絡協議的必經之路。套接字是介于應用層和傳輸層之間的編程接口,它提供了大量的系統調用和相應的數據結構功能,用來訪問下層通信協議。套接字在網絡模型中的地位如圖1所示。

圖1 套接字(Socket)在網絡模型中的地位

應用程序可以通過套接字(Socket)進行通信,Android系統中的套接字一般分為兩種類型:TCP套接字和UDP套接字。前者把消息分解成數據包(數據報,datagrams)并在接收端按照規定的正確順序把它們重新裝配起來。而后者UDP則不提供裝配和重傳請求功能,它只是向前傳送信息包。Socket的基本通信模型如圖2所示。

2 系統總體設計

2.1系統設計內容要求

論文設計并制作一款用藍牙來模擬控制飛行器的手持式地面控制平臺,要求在手機終端能搜索連接模擬飛機模塊,能對飛行器進行簡單的飛行控制以及對飛行參數數據的顯示,手機終端飛行參數能通過手動更新或自動更新以保持與飛行器參數一致,能簡單控制飛行器的飛行姿態。

要求:

(1)控制范圍能在5米~20米間,能越過墻壁等障礙物進行監控;

(2)手機端軟件能夠顯示飛機的速度、飛機姿態(有個平衡點,可以看出飛機現在是左偏右偏還是俯視飛行)、飛機的高度等這些參數手機終端數據與飛行器實際參數實時一致;

(3)手機端軟件有個操控界面,需要四個按鈕,表示控制飛行器上下左右的鍵;

(4)手機端軟件有個可以顯示地圖的界面,通過飛行器的經緯度參數,來顯示其地理位置;

(5)手機終端軟件對不同型號的手機兼容性要好;

(6)實現界面簡潔,用戶體驗良好。

圖2 Socket的通信模型

2.2系統總體結構設計

隨著無人機系統的快速應用與發展,它所必備的地面控制系統也被提出并逐步向更多元化發展。當代的無人機已經從最原始的單一戰斗任務中脫身而出,它裝載了各種用途的設備。為了能夠更好地對無人機進行遙控操作,人們相繼采用了不同形式的地面控制站系統,以便對無人機的飛行狀態和任務設備等進行實時的監控[3]。一般而言,地面控制站系統是一個具有遙測數據的實時采集、遙控指令的實時發送和飛行航跡的實時顯示等功能的監控系統。該系統是無人機系統中的重要環節,它的穩定與否直接影響著整個系統的性能實現。

擬定基于Android系統的便攜式無人機地面控制平臺設計的總體框圖如圖3所示,單片機模擬模塊由速度傳感器、位移傳感器、回轉儀感應器、飛機機體部分等組成,主要負責采集飛行器飛行數據和對操控命令作出響應。手機監控終端模塊分為三大功能子塊,分別負責搜索鏈接藍牙設備,顯示飛行數據信息和匹配輸出操控命令。

圖3 系統總體結構圖

2.3Android手機端軟件設計

便攜式無人機地面站,作為連接操作人員與無人機的橋梁,其基本功能要求如下:

(1)能夠實現對飛行器姿態的控制,即在任何時間飛行器的前、后、左、右方向等姿態都是可以通過地面站進行控制的。

(2)可以時刻觀察飛行器即時的滾轉角、俯仰、偏航、高度、速度、經緯度等數據。

(4)對所有飛行數據進行保存,并對歷史數據任務回放功能,方便查看航行軌跡等數據。

(5)保證系統穩定可靠、實時高效的數據傳輸機制,以滿足大數據量的通訊要求。

(6)在滿足可靠性的基礎上,監控數據的直觀性、控制的易操作性也要予以考慮。

手機端地面控制平臺軟件的設計主要實現通過Android手機終端軟件控制飛行器,將從藍牙串口模塊接收的飛行參數信息顯示在手機屏幕上,通過操作界面的按鈕點擊生成響應的操作指令發送給來藍牙串口模塊,以實現對模擬裝置的監控和指令操作。手機端軟件分成藍牙搜索連接、參數顯示以及操作主界面、命令匹配輸出三大子塊,藍牙搜索連接子塊負責手機周邊藍牙設備的搜索,匹配和連接;主界面子塊負責顯示飛行器的飛行速度、高度、滾轉角、俯仰、偏航、經緯度(通過地圖展現)等數據,點擊參數對應的按鈕可實現手動刷新數據,點擊前后左右等按鈕對飛行器進行相應的控制;命令匹配輸出模塊響應主界面按鈕的點擊操作以生成對應的操控指令,然后將指令發送單片機上的藍牙子模塊。

手機端軟件大體可分為以下幾個區域:

數據顯示區:顯示飛行器的滾轉角、俯仰、偏航、高度等數據。

操控區域:包括可點擊的四個按鈕,分別是對飛行器前、后、左、右的行駛控制。

儀表盤顯示區:可以動態顯示飛行器的飛行速度、高度、姿態數據,通過儀表盤的形式來直觀體現。

地圖顯示區:通過上一個界面點擊可以進入地圖顯示區,顯示當前位置信息。

(1)構建項目開發環境

本節對軟件的開發環境及目標平臺進行簡要的介紹[7]。

●開發環境

①Eclipse集成開發環境選擇3.5及以上版本;

②JDK 1.6及以上版本;

③Android SDK;

④Android SDK和Eclipse開發插件ADT;

⑤數據庫:Android自帶的SQLite數據庫,每款Android手機都支持。

●目標平臺

本軟件的目標平臺為Android 2.1、Android 2.2或者更高的版本。

(2)軟件設計框架

手機端地面控制平臺終端整體框架圖如圖4所示:手機終端地面控制平臺軟件操作流程如圖5所示:

圖4 手機地面控制平臺終端框架

圖5 手機終端地面控制平臺軟件操作流程

●布局設計

程序的主體部分大概可劃分三個操作交互界面(即Activity):第一個界面顯示已搜索到或者已配對的藍牙設備列表界面,該界面還包括有搜索藍牙設備以及啟動服務端等按鈕,點擊列表中某一個已配對的設備項,就會跳入數據顯示和操控的界面,若未配對,則會提示,成功后直接跳入第二界面;第二個界面是數據顯示和操控界面,主要顯示數據區、操控區、儀表盤區,通過點擊“地圖顯示”按鈕,跳轉到下一界面:地圖顯示界面。該界面通過不斷接收飛行器發送來的經緯度數據,實時更新飛行器在地圖上的位置顯示。整體布局設計如圖6、圖7所示。

圖6 設備搜索界面設計

圖7 主界面設計

在設置手機界面的時候,選擇Android 2.2版本,工程名命名為Bluetooth-plane,選擇Create Activity,則自動創建了一個Activity。在創建Activity時,需注意一個Activity就是一個類,并且這個類要繼承Activity;需要復寫Oncreate方法;每一個Activity都需要在Androidmanifast.xml文件當中配置。

(4)系統模塊設計

便攜式無人地面控制平臺系統主要功能為通過Android設備的藍牙模塊和模擬無人機藍牙模塊通訊,從而控制無人機的飛行方向,并且接收無人機飛行參數數據,把數據按指定的格式展現出來。做到對數據的實時顯示和存儲,事后可以調取存儲的遙測數據進行回放分析。系統模塊結構如圖8所示。

每個模塊的功能:

●通信控制模塊:

①藍牙的開關:在手機端程序運行開始時,會檢測手機的藍牙模塊是否打開,如果沒有打開,則會彈出提示框,并請求打開藍牙:如果用戶選擇了同意打開,則自動打開藍牙模塊,否則,后續工作無法進行。

②通信角色的分配:手機端便攜無人機地面站既可以當作服務器端來監聽客戶端的連接,也可以作為客戶端去連接服務器端。假如作為服務器端進行監聽,則點擊軟件界面的“啟動服務器端”來進行等待,啟動的同時,會跳到軟件的控制面板界面;假如客戶端要作為客戶端去連接服務器端,則在搜索到的藍牙設備中點擊想要連接的設備,前提是此設備已經是處于等待客戶端連接的狀態。

●藍牙搜索與配對:在軟件的初始界面(設備列表界面),假如藍牙模塊已經被打開,則可以點擊“開始搜索”按鈕來進行設備的搜索,搜索的過程中此按鈕變為“停止搜索”,可以點擊來停止搜索。

●數據傳輸模塊:在已連接好的兩個藍牙設備之間,可以進行數據的相互傳輸。從手機端控制站的角度來看,主要傳輸的數據是對飛機前、后、左、右方向的控制。當用戶點擊不同方向的按鍵時,會發送相應的指令到飛機的藍牙模塊上。同時,飛機也接收手機客戶端手動刷新某項飛行參數的指令,當收到該指令之后,應立即向手機客戶端返回一條相應的參數數據。

●數據接收模塊:手機客戶端也可以實時地接收飛機傳送過來的各種飛行參數,并且對數據進行相應的處理。這些參數包括滾轉角、俯仰、偏航、高度、速度、經緯度等。

圖8 系統模塊結構

●數據的處理:

手機控制站客戶端應包含對接收到數據的處理,包括數據的展示、數據存儲、數據分析等。其中數據的展示有對數據的直觀顯示(滾轉角、俯仰、偏航、高度等)、地圖位置標點顯示(對經緯度的顯示)、儀表盤顯示(速度、高度、姿態)。數據存儲主要把這些數據以SQLite數據庫的方式存儲到手機中,待需要時進行必要的數據分析統計等。

3 編碼實現

3.1UI實現

●設備列表界面:該界面布局比較簡單:包含有一個ListView,該ListView的適配器(Adapter)是使用了自定義的Adapter,用來指定列表中每一項的樣式。

●控制面板主界面:控制面板主界面主要通過一個繼承自SurfaceView的類來實現界面的繪制。SurfaceView是從View基類中派生出來的顯示類,由于本系統的功能要求時事接收數據的同時,將數據反饋到相應的顯示形式上(如儀表盤),所以使用SurfaceView來繪制界面是不二之選。

●地圖顯示界面:這里調用了百度的SDK,可以很方便地創建一張地圖。在建立的Activity中,首先通過findViewById方法找到地圖控件對應的MapView對象,然后初始化MapView的一些屬性。當接收消息的線程接收到飛機發送過來的經緯度數據時,通過Handler對象的sendMessage方法,把經緯度數據發送到UI繪制的線程,從而在地圖上標注出這個點。自定義的地圖標注點的實現是依賴于百度地圖SDK的com.baidu. mapapi.Overlay類:自定義一個類,并且繼承自com. baidu.mapapi.Overlay這個類,并且復寫draw函數,進行地圖點的繪制。

3.2藍牙搜索及配對的實現

首先,獲得系統默認的藍牙適配器,點擊“開始搜索”按鈕,則通過調用mBtAdapter的startDiscovery方法來搜索藍牙設備,在搜索的過程中或發出一系列廣播,我們可以通過接收廣播來獲得搜索的反饋。

當相應的廣播發出之后,在自定義的廣播接收器BroadcastReceiver中進行相關處理;在初始化控件之后,先要檢測是否有已經配對的藍牙設備,如果有,則不需要再配對,直接將此設備列出來。

3.3服務器端的監聽和客戶端的鏈接

3.5數據的保存

作為手機地面控制平臺軟件而言,可以以兩種身份來建立連接:服務器端或者客戶端。如果作為服務器端,則需要啟動一個新線程,去監聽服務器端的連接;而如果作為客戶端,則需要去主動連接一個服務器端。在操作時,需要先啟動服務器端,再啟動客戶端。

3.4藍牙通信的實現

在服務器端與客戶端連接成功之后,就可以進行設備之間的通訊了。手機地面站軟件既要發送數據,又要接收數據。發送數據的機制是監聽四個方向鍵的按下,當按下時,發送相應的指令到飛機設備。接收數據需要新啟動一個線程,通過循環體來不斷地讀取數據,在對方沒有發送數據時,則該次循環阻塞。

由于Android內嵌了功能比其他手機操作系統強大的關系型數據庫SQLite,SQL語句基本都可以使用。所以可以使用這種方法來保存數據[10~11]。只需要自定義一個繼承自SQLiteOpenHelper類,它提供了訪問數據庫、事務等API,使用起來很方便。這里采用DAO模式來封裝數據庫操作。

4 系統測試

4.1測試工具

一臺配有藍牙功能并支持Android系統的手機、裝有藍牙模塊的四旋翼無人飛行器。

圖9 四旋翼飛行器室內飛行圖

圖10 四旋翼飛行器室外短距離飛行圖

圖11 手機端主界面

圖12 地圖顯示界面

4.2測試項目器的控制正常,如圖9~13所示。

測試的項目內容主要有:軟件在Android系統上運行的展示效果、功能效果。功能包括藍牙的正常連接、藍牙通訊的順暢、數據傳輸是否正常、是否可以操控飛行器。

4.3測試結果

在高于2.1版本之上的Android手機上可以正常運行;數據的實時顯示、地圖顯示正常;手機端對飛行

5  結語

本次設計完成了基于Android的藍牙模擬手持式無人機地面控制平臺裝置,它充分發揮了藍牙無線傳輸速度快,距離遠,不受障礙物干擾或干擾很小的優點,可在10m范圍的室內空間實現對飛行器的數據傳輸及簡單飛行操控。

[1]楊越.精通Android[M].北京:人民郵電出版社,2010

[2]劉挺,尤韋彥,王耀明.藍牙系統服務發現協議(SDP)的分析和應用[J].計算機工程,2002,28(6):7~8

[3]寧金星,盧京潮,閆建國.基于VC++的無人機飛控地面站軟件的開發[J].計算機測量與控制,2009,17(3):596~598

[4]李剛.瘋狂Android講義[M].北京:電子工業出版社,2011

[5]FrankAbleson.Introduction to Android Development[J].developerWorks,2009,10(7)

[6]金純,肖玲娜,羅緯,聶增麗.超低功耗(ULP)藍牙技術規范解析[M].北京:國防工業出版社,2010.8

[7]蓋索林.Google Android開發入門指導[M].北京:人民郵電出版社,2007

[8]MP2028 Installation and Operation,Canadian MicroPilot Company,2003

[9]倪天龍,張賢高.數據庫SQLite在嵌入式系統中的應用單片機與嵌入式系統應用[J],2005,10

[10]莊宗輝,薛毓強.嵌入式數據庫SQLite在遠程監控系統中的應用[J].現代電子技術,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

丁夢雨(1989-),女,黑龍江哈爾濱人,碩士研究生,研究方向為無人機地面控制站

2015-05-13

2015-05-19

猜你喜歡
界面設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
人機交互界面發展趨勢研究
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 国产丝袜无码一区二区视频| 免费在线播放毛片| 欧美成人精品一区二区| 亚洲精品中文字幕无乱码| 激情六月丁香婷婷| 老司机午夜精品视频你懂的| 精品国产91爱| 亚洲无码精彩视频在线观看| 99手机在线视频| 九九线精品视频在线观看| 色天天综合| 婷婷色在线视频| 呦视频在线一区二区三区| 日本高清在线看免费观看| 亚洲三级色| 亚洲中文字幕av无码区| 91福利在线观看视频| 72种姿势欧美久久久大黄蕉| 国产福利影院在线观看| 五月婷婷伊人网| 亚洲精品国产成人7777| 久久香蕉国产线看观看亚洲片| 国产三级a| 中文成人在线| 国产极品美女在线观看| 亚洲清纯自偷自拍另类专区| 在线va视频| 亚洲黄色视频在线观看一区| 日本精品视频一区二区| 无码'专区第一页| 国产成人你懂的在线观看| 欧美在线天堂| 亚洲Av激情网五月天| 国产欧美日韩综合一区在线播放| 精品无码人妻一区二区| 亚洲欧美成人| 性欧美久久| 永久免费精品视频| 国产丝袜无码精品| 国产国语一级毛片| 日韩精品高清自在线| 久久久久无码国产精品不卡| 欧美综合中文字幕久久| 亚洲人成成无码网WWW| 黄色污网站在线观看| 亚洲男人在线天堂| 91系列在线观看| www精品久久| 亚洲国产精品无码久久一线| 亚洲无线一二三四区男男| 久久久91人妻无码精品蜜桃HD | 欧美成人免费一区在线播放| 无码免费试看| 日本久久免费| 中国毛片网| 国产日韩欧美中文| 亚洲中文字幕无码mv| 国产精品lululu在线观看| 人妻出轨无码中文一区二区| 国模私拍一区二区三区| 中文纯内无码H| 91免费国产高清观看| 日韩天堂在线观看| 日韩在线视频网| 日韩免费无码人妻系列| 91麻豆精品国产高清在线| 久久综合婷婷| 日韩在线视频网| 午夜精品一区二区蜜桃| 色天天综合久久久久综合片| 国产精品久久久久久久久| 久久6免费视频| 黄色成年视频| 久久激情影院| 无码一区18禁| 国产精品毛片一区| 亚洲人成成无码网WWW| 精品伊人久久大香线蕉网站| 国产在线一二三区| 欧美精品v欧洲精品| 国产香蕉在线视频| 最新国产午夜精品视频成人|