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

藍牙智能騎行頭盔Android終端軟件的設計與實現

2018-12-19 12:44:34黃思遠周淵平苗青
現代計算機 2018年32期
關鍵詞:界面系統

黃思遠,周淵平,苗青

(1.四川大學電子信息科學技術學院,成都610065;2.78167 部隊610017)

0 引言

隨著人們的生活水平不斷提升,街道上的車輛增加許多,道路上騎行的風險也驟增,車禍事故頻發。不少摩托車事故都是因為駕駛員在駕駛過程中操作手機引起的。為了減少這種風險,設計了一款智能騎行頭盔,可以在騎行時便捷地完成一些手機的功能。此頭盔使用藍牙通信技術,將手機端和頭盔端聯系起來,可以在騎行時無需操作手機就可以便捷地通過語音操控手機的一些功能。這樣,既解放了雙手,又可以讓騎行者專注于騎行。對于廣大騎行者,該頭盔有著巨大的市場潛力。

為了滿足頭盔和手機的交互的便利性和功能封裝聚合的需求,本文設計了一款頭盔控制軟件系統。方便頭盔端和手機端的交互,包括數據通信、語音控制、地圖導航、音樂控制等功能,提高了用戶體驗的同時,強化了頭盔的功能,為使用者提供了便利。

1 藍牙智能騎行頭盔Android終端系統概述

本節將簡單介紹系統的操作系統、開發環境、開發語言和使用的工具類,然后介紹系統的主要邏輯結構和功能組成。

1.1 系統集成環境

合適的系統集成環境可以使系統的運行更高效更穩定。Android系統開源免費,是全球使用最廣泛的操作系統,因此本軟件采用了Android系統。本軟件采用Android Studio平臺開發,支持Android 4.0到Android 7.0的系統。語音識別和文本理解使用了科大訊飛的API,地圖導航使用了百度地圖的API,藍牙連接使用了谷歌的android.bluetooth包。

表1 系統集成環境

1.2 系統的總體結構

如圖1所示,一個完整的藍牙智能騎行頭盔An?droid終端系統,主要包括監聽輸入、藍牙通信、語音處理、功能實現。整個藍牙智能騎行頭盔Android終端系統的功能可以分為兩個,一是語音指令的獲取和解析,二是語音指令的具體功能實現。語音指令獲取過程:手機收到我們的按鍵提示后監聽藍牙麥克風的語音輸入,如果監聽到語音信號輸入,則通過藍牙串口傳輸到手機。串口數據進入手機后由后臺線程通過調用訊飛的語音解析接口將語音信號轉成文字形式的字符串,得到文本數據[1],提取其中的關鍵詞,隨即開啟一條線程傳入參數,執行語音命令所對應的功能。系統結構如圖1所示。

圖1 系統結構

2 硬件系統和藍牙連接協議簡介

2.1 硬件系統簡介

硬件系統包括C8051F020單片機和藍牙模塊BK8000L。C8051F020是基于CIP-51的微控制器,比傳統8051系列單片機執行速度提升很大。藍牙模塊BK8000L體積小、重量輕、功能強大,可以跟許多類型手機連接。將藍牙和麥克風分別連在單片機上,將其放置在頭盔上。效果如圖2所示。

圖2 硬件組成

2.2 藍牙連接協議簡介

藍牙連接協議結構可分為底層硬件模塊、中間協議層和高端應用層三大部分,底層硬件模塊為數據的無線傳輸提供硬件支持。中間協議層定義了4個藍牙核心協議,是其他上層協議實現的基礎。高端應用層可以讓開發者自定義各種應用模型的剖面(Profile)。

本系統主要配置了高端應用層中的藍牙鏈路方式。藍牙物理鏈路分兩種,同步鏈路SCO(Synchronous Connection Oriented)和異步鏈路 ACL(Asynchronous Connectionless)。本系統的采用的是SCO方式,此連接類型主要適用于同步語音傳輸。SCO連接為對稱連接,通過有規律的使用保留時隙來維持SCO鏈接,可以傳輸對時間要求很高的數據通信。傳輸即時、快速,符合頭盔傳輸的要求。

在本系統中,通過調用mAudioManager類的start?BluetoothSco()方法打開SCO連接。藍牙SCO連接建立需要時間,連接建立后,使用廣播接收該消息而進入后續邏輯。

3 軟件系統實現

軟件系統主要由兩部分構成:一是手機界面設計,二是后臺線程設計。下面對這兩部分的具體實現做詳細闡述。

3.1 手機界面設計

本軟件的界面主要有四個,分別是初始連接界面,主界面以及導航界面。初始連接界面負責連接藍牙;主界面負責識別語音指令以及響應結果。

系統的界面布局均使用了相對布局RelativeLayout管理器。界面設計使用了XML(Extensible Markup Lan?guage)布局和代碼控制 UI(User Interface)界面相結合。主界面使用了Botton、ImageView、RadioButton等控件,地圖導航使用了MapView、EditText等控件,本系統的主界面如圖3所示。點擊下方正中心的圓圈按鈕即可開始語音識別;點擊上傳聯系人按鈕能將本地通信錄信息上傳,便于撥打電話和發送短信;點擊地圖按鈕或語音識別可以進入地圖界面,開啟導航功能。選項設置可以個性化配置語音識別功能;點擊手機按鈕可以選擇使用手機端還是頭盔端發出語音消息。當使用播放歌曲功能時,歌曲的信息如封面、歌曲名稱、加載進度,播放進度會顯示在上方。

圖3 軟件主界面

3.2 后臺線程實現

后臺線程有藍牙連接、語音識別、音樂播放、地圖導航以及打電話發短信查天氣,等等。其中最核心的是語音識別,依靠快速可靠的語音識別,才能最大地發揮軟件的作用。

(1)藍牙連接模塊

在手機與頭盔的連接中,手機為客戶端,頭盔為服務端,手機端主動請求連接頭盔端。首先調用Blue?toothAdapter檢查當前手機是否支持藍牙,如果不支持的話退出軟件,如果支持藍牙且藍牙未啟用,則請求用戶授權打開藍牙開關。之后獲取BluetoothAdapter對象device,使用藍牙適配器搜索附近藍牙設備信息,因為藍牙在搜索到設備和搜索完畢都是通過廣播發送的,這里我們需要注冊廣播接收器[2]。注冊完畢后,通過廣播接收器獲取搜索得到的藍牙設備信息,然后通過設備MAC(Media Access Control)地址獲取藍牙設備對象。手機作為客戶端,通過 UUID(Universally Unique Identifier)打開一條道服務器的信道來獲取設備的BluetoothSocket對象,通過此對象來連接兩個藍牙設備,語音信息以流的形式傳輸[3]。

在藍牙連接成功后,即可開始藍牙通信,這個線程一直維持到程序退出,隨時等候發送數據到頭盔端或者接受頭盔端傳輸的數據,保障手機端和頭盔端暢通的通信環境。藍牙通信模塊的流程圖如圖4所示。

圖4 藍牙通信流程圖

(2)語音識別模塊

當點擊語音識別按鈕后,頭盔端監聽到的語音信息隨即通過藍牙Socket通信傳輸到手機端的軟件中,語音識別線程在手機端軟件獲取到語音信息后開始執行。

語音識別就是識別語音信號,將其轉變成便于智能終端處理的文字信息。當手機端接收到頭盔端的語音指令開啟監聽信號后,藍牙麥克風將采集到的聲波,通過藍牙發送給手機端,隨后開始語音識別[4]。

首先調用語音接口向服務器請求解析語音信號,服務器驗證通過后將解析語音信息轉換成文字信息,返回 JSON(JavaScript Object Notation,JS對象簡譜)數據包,然后對數據本地解析,獲取文字的字符串。這個過程通過SpeechRecognizer類調用語音識別服務。通過TextUnderstander類調用文本理解服務,自行提取其中的關鍵字。語音識別模塊流程圖如圖5所示。

圖5 語音識別流程圖

(3)音樂播放模塊

考慮到方便使用語音控制,音樂播放模塊是在線實時播放音樂的。開啟音樂線程時會傳入歌曲名字,因為網頁解析和服務器請求都是耗時的網絡請求,在Android 4.0系統之后建議將這些請求放在子線程中,所以在子線程中使用Jsoup類解析地址,獲取網頁上的歌曲 ID(Identification),然后通過 URLConnection(Uni?form Resource Locator)類向網站服務器請求對應歌曲ID的數據,服務器驗證后響應請求返回數據包,本地解析JSON數據,獲取歌曲的在線播放鏈接和封面圖片鏈接,并且設置歌曲的圖片和名字等信息顯示,隨后調用MediaPlayer類,設置好參數后,調用start()方法播放歌曲,播放結束后該線程就會終止。音樂播放模塊的流程圖如圖6所示。

圖6 音樂播放流程圖

(4)地圖導航模塊

地圖導模塊使用了百度地圖的SDK(Software Devel?opment Kit),該SDK小巧方便,功能強大,被大量應用于實際開發。百度地圖GeoCoder類提供從地址到經緯度坐標或者從經緯度坐標到地址的轉換服務。BikeNavi?gateHelper提供路徑規劃和實時導航服務。從語音指令獲取起點終點參數后,首先校驗SDK的版本是否正確。計算出起點和終點的經緯度。在地圖上標記出起點和終點,然后計算起點和終點的經緯度,并且在map中標記。然后進行路徑規劃。規劃好路徑后,即可開始騎行導航。如果要讓導航更精確需要開啟定位服務,默認開啟語音播報。這樣無需查看地圖,騎行者戴著頭盔聽語音即可接受導航[5]。導航過程中會有一些提示,如偏離導航、平均速度等、已行駛路程、距離終點距離等提示音,方便用戶導航。地圖導航流程圖如圖7所示。

圖7 地圖導航流程圖

(5)打電話模塊和發短信模塊

這兩個功能都首先需要獲取聯系人的電話。通過使用ContenResolver類的query()方法查詢保存在An?droid的手機通訊錄中的聯系人,此方法在主線程中查詢數據,使用query()方法后,返回數據庫的游標Cur?sor。通過游標遍歷通訊錄中的所有聯系人信息,匹配聯系人姓名,遍歷完后需要手動關閉Cursor。如果匹配成功,則返回電話號碼,進行下一步打電話或者發短信操作。開啟線程時傳入聯系人名字,和本地存儲的通信錄進行匹配。如果是打電話,則傳入參數,參數為電話號碼,調用系統的線程ACTION_CALL。如果是發短信,則調用短信管理器的sendTextMessage()方法發送短信,傳入參數電話號碼短信內容,值得注意的是,如果發送的內容過大,則需要調用divideMessage()方法將短信內容分段多條發送。如果發送短信成功會通過語音播報出發送詳情。流程圖如圖8所示。

圖8 打電話和發短信流程圖

(6)查詢天氣模塊

查詢天氣時,向天氣網站接口請求對應的城市天氣,返回JSON數據包,經過本地解析后,獲取完整的天氣各項指標,如風向、濕度、溫度、天氣等情況,再通過語音播報出來。

3.3 系統測試

系統測試主要測試以下幾個方面:

(1)藍牙麥克風和手機端的藍牙連接是否能可靠。

(2)語音信號是否足夠清晰,識別足夠準確。

(3)功能執行是否正常,頁面顯示是否正常。

(4)系統長時間運行是否穩定、流暢。

實際測試表明,該軟件能夠對有效、穩定地幫助騎行者減少騎行時操作手機的頻率,能夠做到可靠準確的執行語音指令。部分演示圖如圖9、圖10所示。

圖9 音樂播放流演示

圖10 地圖導航演示

4 結語

本軟件系統基于Android平臺開發,采用了多線程并發技術進行軟件設計。對各個線程之間的執行進行了合理的分配,對不同版本的Android系統有著良好的兼容性,為后續的軟件應用奠定了基礎。

猜你喜歡
界面系統
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
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
人機交互界面發展趨勢研究
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 国产一区免费在线观看| 亚洲国产成人麻豆精品| 欧美一级特黄aaaaaa在线看片| 精品无码国产一区二区三区AV| 亚洲无限乱码一二三四区| 人妻中文久热无码丝袜| 午夜性刺激在线观看免费| 欧美一级在线播放| 久草视频中文| 国产精品亚洲一区二区在线观看| 国产91视频免费观看| 日韩欧美国产精品| 精品人妻一区无码视频| 有专无码视频| 成人亚洲国产| 在线视频一区二区三区不卡| 欧美一级色视频| 92午夜福利影院一区二区三区| 在线观看亚洲人成网站| 欧美午夜视频在线| 成人精品区| 日韩成人高清无码| 91麻豆久久久| 久久特级毛片| 波多野结衣无码视频在线观看| 性做久久久久久久免费看| 国产成年无码AⅤ片在线| 日本a∨在线观看| 国产一级特黄aa级特黄裸毛片| 国产精品青青| 亚洲A∨无码精品午夜在线观看| 思思热精品在线8| 成人永久免费A∨一级在线播放| 视频一区视频二区日韩专区| 在线观看国产精美视频| 久久免费成人| 手机在线国产精品| 女人一级毛片| 十八禁美女裸体网站| 亚洲自拍另类| 亚洲高清在线天堂精品| a国产精品| 欧美日本不卡| 亚洲无码免费黄色网址| 国产午夜不卡| 国产特级毛片| 国产h视频在线观看视频| 色综合天天综合| 黄色三级毛片网站| 国产区网址| 欧洲av毛片| 91精品国产麻豆国产自产在线| 伊人丁香五月天久久综合| 一级片一区| 免费99精品国产自在现线| 亚洲人成网址| 狠狠色丁香婷婷| 亚洲国产成人精品无码区性色| 欧美日韩一区二区三区四区在线观看| 日韩精品无码免费专网站| 亚洲欧美精品一中文字幕| 在线人成精品免费视频| 拍国产真实乱人偷精品| 精品小视频在线观看| 欧美a网站| 亚洲天堂视频网站| 美女无遮挡被啪啪到高潮免费| 亚洲欧洲一区二区三区| 在线观看视频99| a毛片在线免费观看| 四虎AV麻豆| 日本成人精品视频| 国内精品久久久久久久久久影视| 日韩精品亚洲精品第一页| 午夜限制老子影院888| a毛片免费在线观看| 日本欧美精品| 免费无遮挡AV| 91免费精品国偷自产在线在线| 亚洲日本精品一区二区| 亚洲欧美综合精品久久成人网| 国产成人久视频免费|