李佐彪,陳海娃
(華南農(nóng)業(yè)大學(xué)珠江學(xué)院,廣東 廣州 510900)
基于Android的智能控制小車APP
李佐彪,陳海娃
(華南農(nóng)業(yè)大學(xué)珠江學(xué)院,廣東 廣州 510900)
本設(shè)計(jì)是開發(fā)一個(gè)可以通過用戶自己部署或者連接AnyChat視頻云平臺(tái)的服務(wù)器登錄進(jìn)入到功能主界面,通過藍(lán)牙串口通信技術(shù)實(shí)現(xiàn)視頻監(jiān)控、視頻參數(shù)設(shè)置及控制小車行駛等功能的智能APP.視頻監(jiān)控可以實(shí)時(shí)在線遠(yuǎn)程監(jiān)控小車狀況;視頻參數(shù)設(shè)置體現(xiàn)視頻信息設(shè)置的管理;無(wú)線控制是APP終端發(fā)送指令實(shí)現(xiàn)對(duì)小車的運(yùn)動(dòng)控制.本項(xiàng)目軟件部分是基于Android平臺(tái)下通過Java語(yǔ)言編寫程序,通過APP驅(qū)動(dòng)智能小車的硬件電路,最終實(shí)現(xiàn)對(duì)小車的各種控制.
Android APP;軟件編程;硬件電路
隨著科技的進(jìn)步,手機(jī)的各項(xiàng)技術(shù)給人們帶來(lái)極大地便利,小車的遙控技術(shù)運(yùn)用在手機(jī)上將會(huì)方便人們對(duì)小車的控制.本項(xiàng)目是通過軟件編程來(lái)控制小車的硬件電路進(jìn)而實(shí)現(xiàn)對(duì)小車的控制.藍(lán)牙是一種支持短距離通信的無(wú)線電技術(shù),本項(xiàng)目的APP是通過手機(jī)藍(lán)牙控制小車運(yùn)動(dòng).
安卓手機(jī)普遍使用之前,大部分智能小車是通過計(jì)算機(jī)進(jìn)行控制的,但是計(jì)算機(jī)不方便攜帶,可操作性低且開發(fā)成本高,因此隨著安卓手機(jī)的流行,以APP形式控制小車運(yùn)動(dòng)越來(lái)越廣泛.本設(shè)計(jì)占用手機(jī)內(nèi)存少、執(zhí)行效率高、攜帶方便、操作簡(jiǎn)單.通過該APP用戶既可以控制小車運(yùn)行又可以監(jiān)控小車的狀態(tài).
本系統(tǒng)主要分為四個(gè)模塊:APP登錄、視頻監(jiān)控、視頻參數(shù)設(shè)置和無(wú)線控制小車.用戶通過服務(wù)器登錄操作進(jìn)入到主界面即可對(duì)小車進(jìn)行控制.研究的內(nèi)容如下:
2.1 APP登錄
設(shè)計(jì)登錄界面輸入框,包括服務(wù)器的IP,端口號(hào)和用戶名設(shè)計(jì),未點(diǎn)擊“登錄”按鈕時(shí)顯示的按鈕是登錄狀態(tài)的標(biāo)識(shí),點(diǎn)擊“登錄”按鈕之后,顯示的是“登錄”按鈕等待狀態(tài)的標(biāo)識(shí).登錄時(shí)可以連接自主部署的服務(wù)器,也可以連接AnyChat視頻云平臺(tái),連接自主部署服務(wù)器的地址為自設(shè)的服務(wù)器IP地址或域名、端口,連接AnyChat視頻云平臺(tái)的服務(wù)器地址為:cloud.anychat.cn;端口為:8906,用戶名可以任意輸入.
2.2 視頻監(jiān)控
攝像頭采集模塊和視頻處理模塊通過WiFi藍(lán)牙串口通信技術(shù),實(shí)現(xiàn)攝像頭遠(yuǎn)程監(jiān)控智能小車等功能.
2.3 視頻參數(shù)設(shè)置
視頻參數(shù)設(shè)置主要包含視頻清晰度的設(shè)置,視頻旋轉(zhuǎn)模式設(shè)置等等.
2.4 無(wú)線控制小車
首先,手機(jī)和迅為4412-A8 ARM開發(fā)板上的藍(lán)牙進(jìn)行配對(duì),迅為4412-A8 ARM開發(fā)板和小車上的藍(lán)牙也進(jìn)行匹配,匹配成功后手機(jī)APP,開發(fā)板和小車之間就能相互通信了.然后利用Android終端APP發(fā)送控制指令給開發(fā)板,然后開發(fā)板通過藍(lán)牙對(duì)轉(zhuǎn)發(fā)控制指令給小車,最終實(shí)現(xiàn)控制小車前進(jìn)、后退、向左向右行駛和停止的功能.
3.1 軟件設(shè)計(jì)思路
系統(tǒng)軟件設(shè)計(jì)功能結(jié)構(gòu)圖見圖1所示.APP設(shè)計(jì)包括APP登錄、視頻監(jiān)控、視頻參數(shù)設(shè)置和無(wú)線控制小車四個(gè)模塊的設(shè)計(jì).
圖1 軟件設(shè)計(jì)功能結(jié)構(gòu)框圖
3.2 硬件藍(lán)牙模塊設(shè)計(jì)思路
系統(tǒng)控制核心是小車上的K60單片機(jī),k60單片機(jī)外接的模塊主要有藍(lán)牙通信模塊,電機(jī)驅(qū)動(dòng)模塊,以及電機(jī)模塊.K60單片機(jī)通過外接藍(lán)牙從機(jī)模塊,APP發(fā)送指令給同時(shí)也具備藍(lán)牙功能的4412-A8 ARM開發(fā)板,然后K60單片機(jī)通過藍(lán)牙接收到4412-A8 ARM開發(fā)板發(fā)送的指令,K60單片機(jī)根據(jù)相關(guān)指令進(jìn)行相應(yīng)處理,接著輸出控制信號(hào)利用電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)小車運(yùn)轉(zhuǎn),K60單片機(jī)接藍(lán)牙模塊如圖2所示.藍(lán)牙從機(jī)接上K60后,LED燈常亮,表示藍(lán)牙連接狀態(tài),閃爍表示沒有藍(lán)牙連接.
圖2 藍(lán)牙接口
3.3 系統(tǒng)工作流程
用戶通過服務(wù)器成功登錄本系統(tǒng)后,可以進(jìn)行APP登錄、視頻監(jiān)控、視頻參數(shù)設(shè)置和無(wú)線控制小車等操作.在登錄時(shí),用戶可以用自主部署的服務(wù)器IP和端口登錄,也可以連接AnyChat視頻云平臺(tái)的服務(wù)器登錄,用戶名可以任意輸入.在進(jìn)行藍(lán)牙配對(duì)時(shí),如果是已配對(duì)的則略過,得到顯示,否則把需要配對(duì)的藍(lán)牙添加到列表中進(jìn)行顯示.藍(lán)牙配對(duì)成功以后便可以通過手機(jī)APP終端對(duì)小車進(jìn)行操作.智能控制小車APP系統(tǒng)的系統(tǒng)流程圖如圖3所示.
圖3 系統(tǒng)流程圖
4.1 環(huán)境及平臺(tái)搭建
4.1.1 系統(tǒng)主要軟件環(huán)境
本系統(tǒng)采用Java語(yǔ)言的安卓技術(shù)為開發(fā)環(huán)境,其運(yùn)行環(huán)境是:使用Windows 2007,Android手機(jī)4.0以上的系統(tǒng),IIS 5.1(信息服務(wù)管理器5.1)以及帶有藍(lán)牙設(shè)備的真機(jī).
4.1.2 系統(tǒng)主要硬件環(huán)境
安卓APP的硬件運(yùn)行環(huán)境主要是目前流行的安卓手機(jī)以及燒寫有安卓系統(tǒng)的4412-A8 ARM開發(fā)板,與之匹配的機(jī)器人小車硬件環(huán)境有K60單片機(jī)、機(jī)器人小車底盤、藍(lán)牙串口模塊、電機(jī)驅(qū)動(dòng)模塊、機(jī)器人小車電源模塊、7.2V鎳鎘電池等組成.
4.2 功能模塊實(shí)現(xiàn)
本設(shè)計(jì)主要涵蓋四個(gè)模塊:APP登錄、視頻監(jiān)控、視頻參數(shù)設(shè)置和無(wú)線控制小車.后面三個(gè)模塊是基于WiFi藍(lán)牙模塊的連接實(shí)現(xiàn)的.連接藍(lán)牙時(shí)先初始化設(shè)備存儲(chǔ)數(shù)組,注冊(cè)接收查找到設(shè)備action接收器,得到本地藍(lán)牙句柄,通過句柄去獲取已配對(duì)藍(lán)牙的設(shè)備列表.
4.2.1 APP登錄
本次設(shè)計(jì)登錄界面的服務(wù)器IP和端口號(hào)主要以AnyChat視頻云平臺(tái)的服務(wù)器為主,連接Any-Chat視頻云平臺(tái)的服務(wù)器地址為:cloud.anychat. cn;端口為:8906,用戶名可以任意輸入.本次設(shè)計(jì)用戶名以Android為例,ip輸入框?yàn)閏loud.anychat. cn,端口為8906.
4.2.2 視頻監(jiān)控
用戶通過自己部署或者連接AnyChat視頻云平臺(tái)的服務(wù)器登錄成功以后,點(diǎn)開視頻監(jiān)控界面,通過藍(lán)牙串口通信技術(shù)連接攝像頭,實(shí)現(xiàn)對(duì)小車的視頻監(jiān)控.
4.2.3 視頻參數(shù)設(shè)置
可以設(shè)置視頻清晰度,視頻旋轉(zhuǎn)模式信息等等.其中視頻清晰度包括:普通視頻質(zhì)量、中等視頻質(zhì)量和較好視頻質(zhì)量.
4.2.4 無(wú)線控制
通過藍(lán)牙串口通信技術(shù)對(duì)小車進(jìn)行匹配,匹配成功后利用Android終端APP發(fā)送控制指令對(duì)小車進(jìn)行操作.實(shí)現(xiàn)控制小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止和行駛的功能.用戶點(diǎn)擊“up”按鈕,小車向前行駛,點(diǎn)擊“down”,小車后退,點(diǎn)擊“l(fā)eft”,小車向左,點(diǎn)擊“right”,小車向右,點(diǎn)擊“stop”,小車停止.
5.1 軟件調(diào)試
完成調(diào)試的步驟:(1)判斷藍(lán)牙的匹配、小車正常行駛的動(dòng)作、方向及APP對(duì)小車的監(jiān)控等情況.(2)處理登錄界面輸入框出現(xiàn)服務(wù)器IP和端口號(hào)不匹配時(shí)是否能夠登錄,用戶名登錄成功以后,用戶是否出現(xiàn)在設(shè)備列表里面等情況.(3)登陸APP成功之后出現(xiàn)沒有自動(dòng)跳轉(zhuǎn)到首頁(yè)的情況時(shí),點(diǎn)開測(cè)試的每個(gè)模塊,檢查是否有bug存在,直到每一項(xiàng)都通過為止.
5.2 硬件電路調(diào)試
在調(diào)試過程中,第一,檢查對(duì)應(yīng)模塊的原理圖接線是否正確;第二,檢查原理圖與所用器件的引腳是否吻合,進(jìn)而排除邏輯上的錯(cuò)誤;第三,用萬(wàn)用表檢查是否出現(xiàn)虛焊,短路或者開路的現(xiàn)象,進(jìn)而排除線路問題和電源故障問題;第四,利用IAR下載調(diào)試K60過程中,最容易出現(xiàn)下載不了的情況,這時(shí)要注意Jlink的接線是否正確,查看驅(qū)動(dòng)Jlink固件有沒有解鎖.
該系統(tǒng)通過結(jié)合硬件調(diào)試,整體達(dá)到了預(yù)想的效果,APP無(wú)線監(jiān)控可以控制小車的行駛狀態(tài)和方向,視頻監(jiān)控可以捕捉到小車的周圍環(huán)境,視頻參數(shù)設(shè)置模塊實(shí)現(xiàn)了對(duì)視頻清晰度和旋轉(zhuǎn)方向的調(diào)整.只是開發(fā)的時(shí)候登錄界面使用的是公共服務(wù)器,可以在列表里面看到其他用戶的信息,今后會(huì)繼續(xù)完善.
〔1〕王國(guó)輝,李永強(qiáng).視頻學(xué)Java Web[M].北京:人民郵電出版社,2010.
〔2〕王瑛,張玉花,李祥勝,等.Oracle數(shù)據(jù)庫(kù)基本教程[M].北京:人民郵電出版社,2008.
〔3〕Thomas Kyte.Oracle Database 9i/10g/11g編程藝術(shù):深入數(shù)據(jù)庫(kù)體系結(jié)構(gòu)[M].北京:人民郵電出版社,2011.
〔4〕斳巖,姚尚朗.Android開發(fā)入門與實(shí)踐[M].北京:人民郵電出版社,2009.
〔5〕吳善財(cái).Android基礎(chǔ)開發(fā)與實(shí)踐[M].北京:清華大學(xué)出版社,2012.
〔6〕張躍平.JSP程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2009.
〔7〕黃敏偉.Android平臺(tái)的即時(shí)通信系統(tǒng)客戶端設(shè)計(jì)方案[D].陜西渭南:陜西鐵路工程事業(yè)技術(shù)院校,2011.
〔8〕任趙強(qiáng).網(wǎng)頁(yè)制作與JSP技術(shù)[M].北京:機(jī)械工業(yè)出版社,2009.
TP242.6
A
1673-260X(2017)06-0029-03
2017-04-19
2016年廣東大學(xué)生科技創(chuàng)新培育專項(xiàng)資金(攀登計(jì)劃)支持項(xiàng)目(pdjh2016b0972)
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2017年11期