邢靜+龔啟智+李春梅
摘 要:該設(shè)計(jì)以小車為控制對(duì)象,以Android手機(jī)APP為控制平臺(tái),通過藍(lán)牙通信協(xié)議,設(shè)計(jì)和實(shí)現(xiàn)對(duì)小車的實(shí)時(shí)運(yùn)動(dòng)控制,其中移動(dòng)小車由控制器,電機(jī)驅(qū)動(dòng)模塊,藍(lán)牙通信模塊等硬件電路組成,手機(jī)APP以基于Android系統(tǒng)的APP Inventor在線平臺(tái)進(jìn)行開發(fā)設(shè)計(jì);該系統(tǒng)通過軟硬件調(diào)試結(jié)果表明:小車可以接收手機(jī)APP的遙控信號(hào)并實(shí)時(shí)響應(yīng)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)或停止命令,而且還有避障功能,為未來智能控制提供了一定的參考依據(jù)。
關(guān)鍵詞:Android 手機(jī)APP 藍(lán)牙通信 智能小車
中圖分類號(hào):TP242.6 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)02(c)-0027-02
隨著移動(dòng)互聯(lián)網(wǎng)的快速崛起,手機(jī)客戶端應(yīng)用軟件(Application,簡稱APP)為代表的智能終端應(yīng)用的快速普及,給人們的工作和生活帶來了更多的便捷,也加快了物聯(lián)網(wǎng)的發(fā)展步伐[1]。Android系統(tǒng)作為手機(jī)的主流操作系統(tǒng),由于其操作性和開源性,為手機(jī)應(yīng)用程序控制系統(tǒng)的開發(fā)提供了很大的優(yōu)勢,并將各類控制系統(tǒng)融為一體提供了可能[2]。該文以Android手機(jī)應(yīng)用程序APP為客戶端,借助藍(lán)牙無線通信技術(shù),移動(dòng)小車作為服務(wù)器端接收手機(jī)的控制信號(hào)并驅(qū)動(dòng)直流電機(jī)靈活做出命令動(dòng)作,小車遇到前方障礙物時(shí),自動(dòng)測量離障礙物的距離,并將實(shí)時(shí)距離值上傳手機(jī)APP顯示,當(dāng)和障礙物的距離達(dá)到一定值時(shí)小車停車等待指令,具有自動(dòng)避障功能。該設(shè)計(jì)為智能控制方式提供一種新的設(shè)計(jì)思路。
1 總體方案設(shè)計(jì)
該設(shè)計(jì)主要由小車和手機(jī)控制平臺(tái)組成,小車由控制器部分,直流電機(jī)模塊,超聲波測距模塊,藍(lán)牙通信模塊,電源模塊及相應(yīng)的硬件電路組成,手機(jī)控制平臺(tái)是開發(fā)該控制系統(tǒng)的APP軟件,安裝在Android手機(jī)上,兩者的通信采用無線藍(lán)牙技術(shù),系統(tǒng)結(jié)構(gòu)框圖如圖1所示;系統(tǒng)操作流程:首先啟動(dòng)手機(jī)APP控制端,由手機(jī)和移動(dòng)小車上的藍(lán)牙模塊建立通信鏈接,鏈接成功后觸碰手機(jī)端的動(dòng)作按鈕發(fā)出前進(jìn),后退,左右轉(zhuǎn)彎命令,移動(dòng)小車接收到指令并進(jìn)行分析,驅(qū)動(dòng)直流電機(jī)進(jìn)行相應(yīng)動(dòng)作,在行進(jìn)過程中由超聲波模塊自動(dòng)檢測前方是否有障礙物,當(dāng)前方有障礙物時(shí)將測得障礙物的距離數(shù)值通過藍(lán)牙模塊上傳至手機(jī)APP端實(shí)時(shí)顯示,距離值超過20 cm時(shí),移動(dòng)小車停車等待手機(jī)指令,做到自動(dòng)避障。為了保證小車的穩(wěn)定性,采用四輪驅(qū)動(dòng),系統(tǒng)的控制范圍在0~10 m之間。
2 硬件電路設(shè)計(jì)
移動(dòng)小車硬件電路主要單片機(jī)最小系統(tǒng)電路,電機(jī)驅(qū)動(dòng)電路,藍(lán)牙模塊電路,超聲波測距電路和電源電路組成;單片機(jī)最小系統(tǒng)電路包括控制芯片,時(shí)鐘電路,復(fù)位電路,控制器采用STC89C52芯片,STC89C52是STC公司生產(chǎn)的一種低功耗,高性能的COMS8位微控制器,8K字節(jié)FLASH,512字節(jié)RAM,32位I/O口,3個(gè)定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,全雙工串行口,滿足系統(tǒng)需求;時(shí)鐘采用內(nèi)部時(shí)鐘,晶振規(guī)格為11.0592 MHz,機(jī)器周期為1μs;復(fù)位電路采用手動(dòng)按鍵復(fù)位,將各元器件各引腳數(shù)值恢復(fù)到初始狀態(tài)[3-4]。
2.1 電機(jī)驅(qū)動(dòng)電路
該系統(tǒng)采用4WD電機(jī)驅(qū)動(dòng),采用雙L298N芯片驅(qū)動(dòng),雙L298N由兩個(gè)大功率的L298N芯片組成,能提供8路最大2 A的電流輸出,供電電壓0~24 V,能夠獨(dú)立驅(qū)動(dòng)4個(gè)直流電機(jī),采用標(biāo)準(zhǔn)TTL邏輯電平信號(hào)控制;具有四個(gè)使能控制端和四組邏輯控制輸入端,分別控制四個(gè)電機(jī)的轉(zhuǎn)動(dòng);采用6 V電源為該電路供電,值得注意的是驅(qū)動(dòng)電路的GND端要和單片機(jī)的GND共地。
2.2 超聲波測距模塊
該模塊利用超聲波的發(fā)射到接收的時(shí)間差來檢測障礙物和計(jì)算障礙物距離,超聲波測距模塊選用HC-SR04芯片,探測距離2~450 cm,感應(yīng)角度不大于15°,測距精度可達(dá)高到3 mm;模塊包括超聲波發(fā)射器、接收器與控制電路。芯片TRIG端口加上大于10 us高電平來觸發(fā)測距功能,然后在ECHO端口等待高電平出現(xiàn),一有輸出開定時(shí)器計(jì)時(shí),當(dāng)ECHO端口變?yōu)榈碗娖綍r(shí)讀取定時(shí)器的值,該值就是由開始發(fā)送超聲波到接收到返回超聲波時(shí)間之和。故可以得到距離=高電平持續(xù)時(shí)間×聲速/2 ,如此不斷測量前方障礙物距離。
2.3 藍(lán)牙通信模塊
該模塊的主要功能是完成手機(jī)APP和控制器之間數(shù)據(jù)和命令的傳輸,手機(jī)內(nèi)置的藍(lán)牙為主機(jī),移動(dòng)小車的藍(lán)牙模塊作為從機(jī),主機(jī)發(fā)起呼叫,尋找附近藍(lán)牙設(shè)備,和從機(jī)配對(duì)成功后,主機(jī)從兩端可以傳輸數(shù)據(jù)。
藍(lán)牙模塊選用HC-06芯片,該芯片的RXD,TXD端口為接收和發(fā)送端,其中RXD端口負(fù)責(zé)接收外來數(shù)據(jù),芯片接口電平3.3 V,可以與控制器STC89C52的TXD端口直接相連,通過該接口STC89C52將需要發(fā)的數(shù)據(jù)傳給HC-06;通路芯片的TXD端口可以和STC89C52的RXD相連接,負(fù)責(zé)向控制器傳遞數(shù)據(jù)。
2.4 電源部分
系統(tǒng)電源采用干電池供電,小車單片機(jī)外接3節(jié)1.5 V的干電池供電,由于藍(lán)牙模塊配對(duì)后的電流約為8 mA,超聲波模塊的靜態(tài)電流大約為2 mA,不大于單片機(jī)允許的最大電流,該電源可同時(shí)為藍(lán)牙模塊和超聲波模塊供電;電機(jī)驅(qū)動(dòng)部分外接4節(jié)1.5 V干電池供電。
3 軟件設(shè)計(jì)
3.1 主控程序設(shè)計(jì)
主控程序采用C語言針對(duì)單片機(jī)開發(fā),首先程序參數(shù)初始化,觸發(fā)超聲波模塊開始工作,檢測藍(lán)牙模塊相連接的串口是否有命令輸入,如有進(jìn)行命令解析,跳轉(zhuǎn)到不同的子程序驅(qū)動(dòng)電機(jī)動(dòng)作,否則一直在循環(huán)檢測,運(yùn)行中超聲波模塊檢測到前方有障礙物,程序計(jì)算距離值并發(fā)送至串口,如果距離值小于20 cm,觸發(fā)中斷,調(diào)用停車程序,等待用戶指令輸入[5]。
3.2 手機(jī)APP程序設(shè)計(jì)
手機(jī)APP的開發(fā)采用APP Inventor在線開發(fā)平臺(tái),APP Inventor是由谷歌公司和一些程序愛好者聯(lián)合開發(fā)的一款完全開放源代碼的在線開發(fā)的Android編程環(huán)境,使用邏輯模塊和界面設(shè)計(jì)就能完成用戶Android程式針對(duì)控制要求,操作性強(qiáng)易開發(fā)[6-7]。該設(shè)計(jì)手機(jī)APP主要任務(wù)是:(1)界面設(shè)計(jì);(2)藍(lán)牙通信和后臺(tái)邏輯程序設(shè)計(jì)。
首先在開發(fā)平臺(tái)上“新建項(xiàng)目”,填寫項(xiàng)目名稱,系統(tǒng)會(huì)自動(dòng)建立一個(gè)應(yīng)用工程,在Screen工作面板添加相應(yīng)的控件并進(jìn)行布局,其中五個(gè)按鈕分別為前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止按鈕,一個(gè)列表選擇框用來顯示附件藍(lán)牙設(shè)備地址,兩個(gè)標(biāo)簽顯示障礙物距離值和連接狀態(tài),并添加藍(lán)牙客戶端控件。藍(lán)牙客戶端的通信協(xié)議和HC06的通信協(xié)議設(shè)置一致, “搜索設(shè)備”按鈕搜索手機(jī)附近已開啟的藍(lán)牙設(shè)備,配對(duì)成功后,五個(gè)運(yùn)動(dòng)按鈕可用,同時(shí)藍(lán)牙客戶端將接受的數(shù)據(jù)在距離標(biāo)簽中顯示。
4 實(shí)驗(yàn)測試和結(jié)果分析
(1)在開闊平整的場地,給小車上電,啟動(dòng)手機(jī)APP,點(diǎn)擊“搜索設(shè)備”按鈕,程序顯示可匹配的設(shè)備的地址,選擇HC06藍(lán)牙地址,進(jìn)行配對(duì),配對(duì)成功后觸碰命令按鈕,小車按照命令正常行駛,小車前方障礙物距離值實(shí)時(shí)更新顯示,小車運(yùn)行圖和手機(jī)APP控制界面如圖2所示。
(2)小車前方范圍內(nèi)放置障礙物,當(dāng)小車運(yùn)行接近障礙物距離至20 cm左右時(shí),小車停車,手機(jī)APP上只有“后退、左轉(zhuǎn)、右轉(zhuǎn)”按鈕可用。
(3)受到制作工藝和環(huán)境等因素影響,小車測距存在4 cm左右的誤差,小車遇到避障物停車時(shí)的距離值的誤差在4~6 cm之間。
5 結(jié)語
該設(shè)計(jì)基于Android手機(jī)APP,通過藍(lán)牙通信技術(shù),控制移動(dòng)小車的運(yùn)動(dòng)以及實(shí)現(xiàn)避障功能的軟硬件設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,小車可以接收手機(jī)APP命令并靈活地實(shí)現(xiàn)前進(jìn)、后退、左右轉(zhuǎn)彎功能,小車檢測前方障礙物并實(shí)時(shí)發(fā)送與障礙物距離值,做到了自動(dòng)避障,達(dá)到了預(yù)期的設(shè)計(jì)效果,為智能控制方式提供了一個(gè)范例,并為智能家居控制以及物聯(lián)網(wǎng)的應(yīng)用提供了一定的依據(jù)。
參考文獻(xiàn)
[1] 劉敏.智能手機(jī)APP應(yīng)用前景及發(fā)展瓶頸探析[J].電子技術(shù)與軟件工程,2015(10):69.
[2] 聶茹.基于Android 手機(jī)藍(lán)牙控制的智能小車設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2015,31(9):68-69,74.
[3] 張毅剛,彭喜元,彭宇.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2010.
[4] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航天航空大學(xué)出版社,2009.
[5] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2009.
[6] 瞿紹軍.App Inventor移動(dòng)應(yīng)用開發(fā)標(biāo)準(zhǔn)教程[M].人民郵電出版社,2016.
[7] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2010