孔繁云川 王娜
摘 要:伴隨著物聯(lián)網(wǎng)的興起,Android系統(tǒng)平臺(tái)以其獨(dú)有的開(kāi)放性優(yōu)勢(shì)正在為我們提供更多優(yōu)質(zhì)便捷的技術(shù)成果。該次設(shè)計(jì)是基于安卓手機(jī)藍(lán)牙控制的太陽(yáng)能智能小車設(shè)計(jì),借助手機(jī)平臺(tái)和藍(lán)牙技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了一種無(wú)線遙控太陽(yáng)能供電小車新的解決方案。本次設(shè)計(jì)是以手機(jī)控制平臺(tái)、藍(lán)牙模塊、太陽(yáng)能供電板、電機(jī)驅(qū)動(dòng)模塊等硬件模塊所組成的遙控小車。實(shí)現(xiàn)了小車的前進(jìn)、后退、前左轉(zhuǎn)彎、前右轉(zhuǎn)彎、后左轉(zhuǎn)彎、后右轉(zhuǎn)彎等實(shí)時(shí)得控制功能。
關(guān)鍵詞:太陽(yáng)能 藍(lán)牙 避障
中圖分類號(hào):TP368 文獻(xiàn)識(shí)別碼:A 文章編號(hào):1672-3791(2014)09(c)-0008-03
1 產(chǎn)品的整體設(shè)計(jì)
太陽(yáng)能智能藍(lán)牙小車的整體結(jié)構(gòu)由太陽(yáng)能供電系統(tǒng)、MCU、電機(jī)驅(qū)動(dòng)模塊、藍(lán)牙模塊、避障模塊、復(fù)位電路構(gòu)成,如圖1所示。
手機(jī)與藍(lán)牙模塊互相配對(duì)并向單片機(jī)發(fā)送控制信號(hào),使單片機(jī)控制左右兩臺(tái)直流減速電機(jī)的正反轉(zhuǎn)以實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止的功能。藍(lán)牙模塊起接受信號(hào)的作用,單片機(jī)接收到信號(hào)以后通過(guò)分析傳遞過(guò)來(lái)的數(shù)據(jù),并跳轉(zhuǎn)到相應(yīng)的子程序來(lái)控制電機(jī)驅(qū)動(dòng),進(jìn)而實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等不同的動(dòng)作。當(dāng)小車的前進(jìn)方向上遇到障礙物時(shí),小車前方的避障模塊做出反應(yīng),向單片機(jī)發(fā)送信號(hào),單片機(jī)通過(guò)分析信號(hào)來(lái)執(zhí)行不同指令,通過(guò)L298N驅(qū)動(dòng)模塊來(lái)控制電機(jī)是小車對(duì)障礙物進(jìn)行規(guī)避,從而實(shí)現(xiàn)自動(dòng)避障功能。
2 藍(lán)牙技術(shù)組成
藍(lán)牙,能在包括智能手機(jī)、MID、平板、筆記本、無(wú)線耳機(jī)、無(wú)線音箱等移動(dòng)通信終端設(shè)備間無(wú)線互聯(lián)。利用“藍(lán)牙”技術(shù),能夠使得各個(gè)終端設(shè)備之間的連接更簡(jiǎn)單,也能夠使終端設(shè)備與網(wǎng)絡(luò)之間的通信更快捷,使數(shù)據(jù)傳輸更高效,拓寬無(wú)線通信的道路。藍(lán)牙特點(diǎn)有:采用了分散式網(wǎng)絡(luò)結(jié)構(gòu)、快跳頻和短包技術(shù)、支持點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)通信、工作在全球通用的2.4 GHz ISM頻段。
2.1 藍(lán)牙的基本特點(diǎn)
藍(lán)牙技術(shù)利用了短距離、低成本的無(wú)線連接替代了傳統(tǒng)的電纜連接方式,從而為現(xiàn)存的數(shù)據(jù)網(wǎng)絡(luò)和小型外圍設(shè)備接口提供了統(tǒng)一的連接方式。以下介紹一些它具有的主要的技術(shù)性能及特點(diǎn)。
(1)射頻特性。
藍(lán)牙設(shè)備選用段全球通用的2.4 GHz ISM工作頻段,這讓藍(lán)牙使用更方便、應(yīng)用更自由,也使得藍(lán)牙技術(shù)在用戶交互使用上更容易使用,對(duì)用戶也更具有粘性。藍(lán)牙2.0或藍(lán)牙3.0設(shè)備之間的有效通訊距離大約為10~30 m比較短,現(xiàn)在最先進(jìn)的藍(lán)牙4.0技術(shù)將這一范圍拓展到了100 m以上,這一跨越使得。
(2)TDMA結(jié)構(gòu)。
藍(lán)牙數(shù)據(jù)的傳輸速率是1 Mb/s,采取數(shù)據(jù)短包的方式按時(shí)隙傳送,每時(shí)隙0.625μs。
(3)使用跳頻技術(shù)。
跳頻是藍(lán)牙的關(guān)鍵技術(shù)之一。對(duì)于單時(shí)隙包,藍(lán)牙的跳頻速率為1600跳/秒;對(duì)于多時(shí)隙包,跳頻速率有所降低;但在建鏈時(shí)則提高為3200跳/s。這樣高的調(diào)頻速率,使得藍(lán)牙系統(tǒng)擁有相當(dāng)高的抗干擾性能,且硬件設(shè)備簡(jiǎn)單、性能優(yōu)越。
(4)藍(lán)牙設(shè)備的組網(wǎng)。
藍(lán)牙的組網(wǎng)有點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)兩種連接方式,在有效通訊范圍之中,所有的移動(dòng)終端通信設(shè)備都是平等的,并且遵循統(tǒng)一的工作方式。
(5)軟件的層次結(jié)構(gòu)。
藍(lán)牙的通訊協(xié)議采用多層次式結(jié)構(gòu)。其底層是各種應(yīng)用都可以使用的,高層則不同,大體分為兩種方式分別是計(jì)算機(jī)背景、非計(jì)算機(jī)背景。
2.2 藍(lán)牙模塊的選擇
藍(lán)牙模塊一般分主機(jī)和從機(jī),主機(jī)能和從機(jī)配對(duì)通信,而從機(jī)與從機(jī)之間或者主機(jī)與主機(jī)之間不能通信,其中從機(jī)能和電腦、手機(jī)等的藍(lán)牙配對(duì)通信,購(gòu)買時(shí)默認(rèn)為從機(jī)。此外,市場(chǎng)上還有一種藍(lán)牙模塊是屬于主從機(jī)一體的。
我在做智能小車控制時(shí),藍(lán)牙模塊主要是實(shí)現(xiàn)接收從手機(jī)端發(fā)送過(guò)來(lái)的指令,所以我們需要的是從機(jī)模塊。
在該次設(shè)計(jì)中我們只需實(shí)現(xiàn)簡(jiǎn)單的通信,因此選用HC-06模塊。
3 硬件電路的設(shè)計(jì)
3.1 紅外線避障模塊
紅外線避障模塊對(duì)環(huán)境光線有著較強(qiáng)的適應(yīng)能力,它具有一對(duì)紅外線發(fā)射與接收管,發(fā)射管會(huì)發(fā)射紅外線,當(dāng)傳感器前方遇到反射面時(shí),紅外線通過(guò)反射面反射回來(lái)后被接收管接收,經(jīng)過(guò)比較器電路處理之后,紅色指示燈會(huì)發(fā)光,同時(shí)信號(hào)輸出接口輸出數(shù)字信號(hào)。
該傳感器的探測(cè)距離可以通過(guò)電位器調(diào)節(jié)、具有干擾小、便于裝配、使用方便等特點(diǎn)。
當(dāng)模塊接收管接收到前方障礙物反射回來(lái)的紅外線信號(hào)時(shí),電路板上紅色指示燈發(fā)光,同時(shí)OUT端口持續(xù)輸出低電平信號(hào),該模塊檢測(cè)距離2~30 cm,檢測(cè)角度35°,檢測(cè)距離可以通過(guò)電位器進(jìn)行調(diào)節(jié),順時(shí)針調(diào)電位器,檢測(cè)距離增加;逆時(shí)針調(diào)電位器,檢測(cè)距離減少。
紅外模塊采用LM393電壓比較器,使得檢測(cè)距離可以被調(diào)節(jié),輸出為TTL電平,使得單片機(jī)編程更加方便。
3.2 藍(lán)牙模塊
3.2.1 藍(lán)牙模塊HC-06介紹
(1)采用CSR主流藍(lán)牙芯片如圖2,藍(lán)牙V2.0協(xié)議標(biāo)準(zhǔn)。
(2)核心串口模塊工作電壓3.3 V。帶底板的可以為3.1~6.5 V之間。
(3)波特率為1200,2400,4800,9600, 19200,38400,57600,115200用戶可設(shè)置。
(4)核心模塊尺寸大小為:28 mm×15 mm×2.35 mm。底板尺寸27 mm×47 mm。
(5)電流:配對(duì)過(guò)程中為50 mA,通信過(guò)程中為28 mA。
(6)休眠電流:不休眠。
(7)出廠默認(rèn)參數(shù):從機(jī),波特率:9600,N,8,1。配對(duì)密碼:1234。
3.2.2 AT命令集
(1)測(cè)試通訊。
發(fā)送:AT(返回OK,一秒左右發(fā)一次) 返回:OK
(2)修改藍(lán)牙串口波特率。
發(fā)送:AT+BAUD1 返回:OK1200 發(fā)送:AT+BAUD2 返回:OK2400
1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
9---------230400
A---------460800
B---------921600
C---------1382400
一般情況選用9600的波特率完全可以滿足操作需要。
(3)改藍(lán)牙名稱。
發(fā)送:AT+NAMEname
返回:OKname
參數(shù)name:所要設(shè)置的當(dāng)前名稱(20個(gè)字符以內(nèi))。例:發(fā)送AT+NAMEbill_gates
返回OKname
這時(shí)藍(lán)牙名稱改為bill_gates,參數(shù)可以掉電保存,只需修改一次。
(4)改藍(lán)牙配對(duì)密碼。
發(fā)送:AT+PINxxxx
返回:OKsetpin
參數(shù)xxxx:所要設(shè)置的配對(duì)密碼,4個(gè)字節(jié),此命令可用于從機(jī)或主機(jī)。例:發(fā)送AT+PIN2345
返回OKsetpin
這時(shí)藍(lán)牙配對(duì)密碼改為2345,模塊在出廠時(shí)的默認(rèn)配對(duì)密碼是1234。
3.3 太陽(yáng)能供電系統(tǒng)
該次設(shè)計(jì)使用較為成熟的薄膜太陽(yáng)能技術(shù),能將光能有效的轉(zhuǎn)化為電能,通過(guò)使用7805穩(wěn)壓管將輸出的電壓穩(wěn)定輸出在5 V。其提供的電能足以驅(qū)動(dòng)智能小車,使其完成各種動(dòng)作。
4 軟件設(shè)計(jì)
該次設(shè)計(jì)應(yīng)用C語(yǔ)言編程序。此次設(shè)計(jì)所選用的單片機(jī)是STC89C52RC單片機(jī),其C語(yǔ)言語(yǔ)法和結(jié)構(gòu)和標(biāo)準(zhǔn)C語(yǔ)言基本相同,只是有了相應(yīng)的擴(kuò)充,用到的編譯軟件是Keil uVision2。
Keil uVision2軟件提供了十分豐富的庫(kù)函數(shù),以及功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試軟件。Keil uVision2在使用前一定要先進(jìn)行注冊(cè),否則程序過(guò)大會(huì)造成編譯時(shí)出現(xiàn)地址使用錯(cuò)誤。在程序編譯過(guò)程中就遇到過(guò)這種問(wèn)題。單個(gè)程序運(yùn)行時(shí)沒(méi)有錯(cuò)誤,但一整合編譯后就會(huì)出現(xiàn)地址沖突的現(xiàn)象。這個(gè)問(wèn)題困擾了很長(zhǎng)一段時(shí)間,通過(guò)查資料發(fā)現(xiàn)若是Keil uVision2軟件沒(méi)有注冊(cè)的話使用時(shí)當(dāng)程序過(guò)大就會(huì)出現(xiàn)地址沖突現(xiàn)象。在注冊(cè)完成后,程序編譯能順利通過(guò)。
4.1 上位機(jī)控制程序
該設(shè)計(jì)的功能之一是由手機(jī)平臺(tái)通過(guò)藍(lán)牙控制小車的行動(dòng)。
手機(jī)軟件通過(guò)Eclipse進(jìn)行開(kāi)發(fā),程序流程圖,如圖3所示,基于Android SDK和JAVA開(kāi)發(fā)環(huán)境,主要通過(guò)手機(jī)藍(lán)牙通訊方式,對(duì)驅(qū)動(dòng)電機(jī)進(jìn)行控制。開(kāi)發(fā)完成后用Android的模擬器即可進(jìn)行程序的調(diào)試,當(dāng)調(diào)試成功之后,就可以下載到手機(jī)上進(jìn)行運(yùn)行了。
編譯后通過(guò)下載至手機(jī)安裝后,打開(kāi)可見(jiàn)到如圖4界面。
如圖4可見(jiàn)四個(gè)箭頭標(biāo)志,上下兩個(gè)箭頭標(biāo)志可以控制小車前進(jìn)與后退,左右兩個(gè)箭頭標(biāo)志可以控制小車向左轉(zhuǎn)和向右轉(zhuǎn)。右邊的數(shù)字鍵可以用來(lái)修改藍(lán)牙的密碼。點(diǎn)擊藍(lán)牙連接后會(huì)出現(xiàn)如圖5的界面。
在圖5中的LH1234就是我的藍(lán)牙模塊,可以看到其已經(jīng)實(shí)現(xiàn)了藍(lán)牙的配對(duì)。藍(lán)牙配對(duì)成功后我們就可以通過(guò)手機(jī)完成對(duì)智能小車的一系列控制。
4.2 電機(jī)控制程序
單片機(jī)的I/O的驅(qū)動(dòng)能力不足以驅(qū)動(dòng)電機(jī),因此選擇L298N電機(jī)驅(qū)動(dòng)模塊來(lái)實(shí)現(xiàn)電機(jī)的驅(qū)動(dòng)。單片機(jī)通過(guò)I/O口的數(shù)據(jù)來(lái)改變L298N驅(qū)動(dòng)的信號(hào)輸入端的數(shù)據(jù),進(jìn)而可以對(duì)電機(jī)實(shí)現(xiàn)正轉(zhuǎn)、反轉(zhuǎn)、停止的操作控制。
表1所示為輸入引腳與輸出引腳的邏輯關(guān)系。
L298N電機(jī)驅(qū)動(dòng)模塊性能特點(diǎn):
(1)可實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)及調(diào)速。
(2)啟動(dòng)性能好,啟動(dòng)轉(zhuǎn)矩大。
(3)工作電壓可達(dá)到36 V,4 A。
(4)可同時(shí)驅(qū)動(dòng)兩臺(tái)直流電機(jī)。
(5)適合應(yīng)用于機(jī)器人設(shè)計(jì)及智能小車的設(shè)計(jì)。
控制代碼:
void GO(void) //直行
{ OUT1=0;
OUT2=1;
OUT3=0;
OUT4=1;}
void Back(void) //后退
{ OUT1=1;
OUT2=0;
OUT3=1;
OUT4=0;}
void TR(void) //右轉(zhuǎn)
{ OUT1=1;
OUT2=0;
OUT3=0;
OUT4=0;}
void STR(void) //右大轉(zhuǎn)
{ OUT1=1;
OUT2=0;
OUT3=0;
OUT4=1;}
void TL(void) //左轉(zhuǎn)
{ OUT1=0;
OUT2=0;
OUT3=1;
OUT4=0;}
void STL(void) //左大轉(zhuǎn)
{ OUT1=0;
OUT2=1;
OUT3=1;
OUT4=0;}
5 結(jié)論
該文利用太陽(yáng)能提供電源,采用穩(wěn)壓電路,使得小車的控制電路及驅(qū)動(dòng)電路平穩(wěn)運(yùn)行。使用5個(gè)紅外距離傳感器,采用車頭平均分布排列,理論上可以防止小車的碰撞,從測(cè)試結(jié)果來(lái)看,只能車能較為準(zhǔn)確的避開(kāi)障礙物,能獨(dú)立使用太陽(yáng)能運(yùn)行,藍(lán)牙控制較為可靠,因此,該文的設(shè)計(jì)方案可靠性較高,運(yùn)行穩(wěn)定,達(dá)到了設(shè)計(jì)要求。
參考文獻(xiàn)
[1] 孫穎.基于路徑規(guī)劃的智能小車控制系統(tǒng)研究[D].青島大學(xué)博碩論文,2006.
[2] 張麗君.無(wú)線網(wǎng)絡(luò)技術(shù)—— 藍(lán)牙[J].光電技術(shù)應(yīng)用,2003(5):55-58.
[3] 趙亮.跟我學(xué)51單片機(jī)(一)[J].電子制作,2011.
[4] 李森,陶夢(mèng)江,趙繼聰.51單片機(jī)的入門及簡(jiǎn)單應(yīng)用[J].科技與生活,2010(7):13.
[5] 雷紅淼,程耀瑜.基于L298N的直流電機(jī)驅(qū)動(dòng)電路優(yōu)化設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2012(2):118.
[6] 張毅剛,彭喜元,彭宇,著.單片機(jī)原理及應(yīng)用[M].2版.高等教育出版社,2010.