王思婷,錢奕辰
(廣東水利電力職業(yè)技術(shù)學(xué)院,廣東 廣州 510635)
單片機(jī)相關(guān)課程作為電子專業(yè)的核心課程,是電子專業(yè)學(xué)生必須熟練掌握的知識(shí)。一直以來,單片機(jī)教學(xué)的實(shí)踐環(huán)節(jié)主要基于單片機(jī)開發(fā)板和其外圍器件,實(shí)踐條件單一且內(nèi)容枯燥。學(xué)生學(xué)習(xí)時(shí)苦于沒有有趣的實(shí)驗(yàn),學(xué)習(xí)積極性不高,課堂參與度不強(qiáng)。為了豐富學(xué)生的實(shí)踐開發(fā)經(jīng)驗(yàn),拓展學(xué)生單片機(jī)應(yīng)用知識(shí),提高學(xué)生學(xué)習(xí)興趣,本文設(shè)計(jì)開發(fā)了一套基于單片機(jī)的藍(lán)牙控制智能小車。
本文設(shè)計(jì)的藍(lán)牙小車,以ATMega328p芯片作為核心控制器,包含了主控模塊、藍(lán)牙模塊、電機(jī)模塊、巡線模塊、避障模塊和供電模塊。能連接手機(jī)藍(lán)牙并響應(yīng)智能手機(jī)發(fā)出的指令,能通過手機(jī)APP實(shí)現(xiàn)前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn),停止等多種動(dòng)作,能通過避障模塊自主巡線或避障,具有強(qiáng)大的開發(fā)潛力,擴(kuò)展性強(qiáng),適合各種單片機(jī)實(shí)踐教學(xué)課程。
本設(shè)計(jì)的基于單片機(jī)的藍(lán)牙智能小車系統(tǒng)框圖如圖1所示。小車采用ATMEGA328P-AU芯片作為主控芯片,該芯片具有32 KB的閃存容量,2 KB的RAM容量,還具有1 KB的EEPROM容量,足夠智能小車的程序存儲(chǔ)及運(yùn)行使用。使用HC-05藍(lán)牙模塊作為藍(lán)牙通信設(shè)備,使用紅外開關(guān)模塊作為小車的巡線裝置,使用SG90舵機(jī)和HC-SR04超聲波模塊的組合作為小車的避障模塊,使用L298N作為電機(jī)驅(qū)動(dòng),使用TT電機(jī)作為小車的執(zhí)行電機(jī),通過4節(jié)干電池作為動(dòng)力電源。整套小車的成本很低,功能豐富,性價(jià)比較高。
圖1 系統(tǒng)框圖
本設(shè)計(jì)采用HC-05藍(lán)牙模塊作為藍(lán)牙通信設(shè)備,HC-05是一套高集成的藍(lán)牙通信模塊,可以將藍(lán)牙通信協(xié)議轉(zhuǎn)為串行通信協(xié)議,實(shí)現(xiàn)透明傳輸。模塊通過AT指令集進(jìn)行功能設(shè)置,兼容3~5 V工作電壓,配置簡(jiǎn)單,使用方便。
藍(lán)牙HC-05是主從一體的藍(lán)牙串口模塊,HC-05的特點(diǎn)是,當(dāng)藍(lán)牙設(shè)備與手機(jī)配對(duì)連接成功后,在應(yīng)用層,我們可以忽視藍(lán)牙內(nèi)部的通信協(xié)議,直接將藍(lán)牙當(dāng)作串口用。建立連接時(shí),我們只需要將數(shù)據(jù)發(fā)送到單片機(jī)串口,數(shù)據(jù)便會(huì)從藍(lán)牙設(shè)備中傳送出去,在另一端的串口輸出。
HC-05模塊具有2種工作模式:命令響應(yīng)工作模式和自動(dòng)連接工作模式。在自動(dòng)連接工作模式下模塊又可分為主(Master)、從(Slave)和回環(huán)(Loopback)3種工作角色。當(dāng)模塊處于自動(dòng)連接工作模式時(shí),將自動(dòng)根據(jù)事先設(shè)定的方式連接數(shù)據(jù)傳輸。模塊可以通過AT指令集進(jìn)行設(shè)置,當(dāng)模塊處于命令響應(yīng)工作模式時(shí),能執(zhí)行內(nèi)置的AT命令,用戶可向模塊發(fā)送各種AT指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。
本設(shè)計(jì)使用5個(gè)紅外開關(guān)作為巡線裝置,紅外開關(guān)可調(diào)節(jié)發(fā)射功率,從而適應(yīng)不同的巡線場(chǎng)地。根據(jù)其安裝尺寸,循跡范圍在1~40 mm,循跡時(shí)有LED燈提示。模塊接通電源后,紅色指示燈亮起,模塊內(nèi)置多對(duì)紅外線發(fā)射與接收管,發(fā)射管發(fā)射出一定頻率的紅外線,當(dāng)檢測(cè)方向遇到障礙物(反射面)時(shí),紅外線反射回來被接收管接收,經(jīng)過比較器LM393電路處理之后,綠色指示燈會(huì)亮起,同時(shí)信號(hào)輸出接口輸出數(shù)字信號(hào)(一個(gè)低電平信號(hào)),可通過電位器旋鈕調(diào)節(jié)檢測(cè)距離,有效距離范圍2~30 cm,檢測(cè)角度35°,工作電壓為3.3~5 V。
循跡模塊可以檢測(cè)到黑色或偏深色的循跡線,當(dāng)檢測(cè)到黑線時(shí),紅外模塊發(fā)射的紅外線被黑線吸收,傳感器接收不到反射的紅外線,因此循跡模塊燈不亮;當(dāng)檢測(cè)到白色地面時(shí),紅外模塊發(fā)射的紅外線被地面反射,傳感器接收到反射的紅外線,因此循跡模塊燈常亮。循跡模塊被安裝在車頭位置,共4個(gè)紅外開關(guān),每個(gè)開關(guān)間距3 cm。通過判斷模塊經(jīng)過黑白線時(shí)的電平變化,小車可以判斷車頭是否偏離循跡線,從而控制電機(jī)轉(zhuǎn)速,讓小車車頭保持在循跡線范圍內(nèi)。
小車還使用了舵機(jī)和超聲波的組合作為避障模塊,可以有效探測(cè)小車前方180°的障礙物。此外,通過超聲波模塊還可以實(shí)現(xiàn)智能跟隨等功能。超聲波模塊采用HC-SR04模塊,模塊可提供2~400 cm的距離感測(cè)功能,測(cè)量精度可以達(dá)到3 mm。模塊包括超聲波發(fā)射器,接收器與控制電路。采用Trig引腳觸發(fā),給至少10μs的高電平脈沖信號(hào)。模塊自動(dòng)發(fā)送8個(gè)40 kHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回。當(dāng)有信號(hào)返回,通過Echo引腳輸出一個(gè)高電平脈沖,高電平脈沖持續(xù)的時(shí)間就是超聲波從發(fā)射到反射返回的時(shí)間。通過如下公式可以計(jì)算出超聲波模塊離前方障礙物的距離。其中340表示超聲波在空氣中的傳輸速率。
避障模塊除了可以規(guī)避障礙物外,還可以進(jìn)行跟隨。當(dāng)小車進(jìn)入跟隨模式時(shí),若有一個(gè)物體放在超聲波探測(cè)范圍內(nèi),超聲波會(huì)控制小車電機(jī)前進(jìn)或后退,以保證小車離物體始終保持在10 cm范圍內(nèi)。當(dāng)物體緩慢移動(dòng)時(shí),小車也會(huì)一直跟隨物體移動(dòng)。
本文設(shè)計(jì)的藍(lán)牙小車具有4種工作模式,分別是藍(lán)牙模式、循跡模式、避障模式和跟隨模式,程序流程如圖2和圖3所示。
圖2 藍(lán)牙模式和循跡模式程序流程圖
圖3 循跡模式和跟隨模式程序流程圖
在藍(lán)牙模式下,小車會(huì)不斷掃描串行緩沖區(qū),如果收到串行數(shù)據(jù),小車會(huì)自動(dòng)解析數(shù)據(jù)判斷是什么指令,然后根據(jù)指令進(jìn)行動(dòng)作。收到字符“F”,小車左右輪都會(huì)正轉(zhuǎn),控制小車前進(jìn);收到字符“B”,小車左右輪都會(huì)反轉(zhuǎn),控制小車后退;收到字符“L”,小車左輪反轉(zhuǎn),右輪正轉(zhuǎn),控制小車左轉(zhuǎn);收到字符“R”,小車左正轉(zhuǎn),右輪反轉(zhuǎn),控制小車右轉(zhuǎn)。小車每收到一次指令會(huì)控制小車執(zhí)行相應(yīng)動(dòng)作一段時(shí)間,然后停止,當(dāng)需要小車連續(xù)執(zhí)行某動(dòng)作時(shí),需要通過藍(lán)牙模塊連續(xù)發(fā)送相應(yīng)的指令字符到小車。
在循跡模式下,小車會(huì)自行前進(jìn),在前進(jìn)過程中不斷檢測(cè)循跡模塊的情況。當(dāng)循跡模塊碰到循跡線左邊界時(shí),小車會(huì)向左轉(zhuǎn)動(dòng)一點(diǎn);同理,當(dāng)循跡模塊碰到循跡線右邊界時(shí),小車會(huì)向右轉(zhuǎn)動(dòng)一點(diǎn),以保持循跡線在小車中間。在調(diào)整小車轉(zhuǎn)動(dòng)時(shí),我們通過調(diào)節(jié)左右輪的PWM信號(hào)來控制左右輪的轉(zhuǎn)速。例如,當(dāng)小車向左偏,右邊的循跡模塊碰到循跡線右邊界時(shí),小車會(huì)自動(dòng)降低右輪的轉(zhuǎn)速,以幫助小車向右偏轉(zhuǎn),直到右邊的循跡模塊離開循跡線右邊界;同理,當(dāng)小車向右偏時(shí),小車會(huì)自動(dòng)降低左輪的轉(zhuǎn)速,以幫助小車向左偏轉(zhuǎn),直到左邊的循跡模塊離開循跡線左邊界。
在避障模式下,小車會(huì)優(yōu)先檢測(cè)正前方的障礙物,當(dāng)距離大于10 cm時(shí),小車認(rèn)為前方無障礙,小車前進(jìn)。當(dāng)正前方障礙物離超聲波距離小于10 cm時(shí),小車會(huì)認(rèn)為前方遇到障礙物。此時(shí),小車會(huì)停止前進(jìn),并控制舵機(jī)左轉(zhuǎn)90°,通過超聲波模塊檢測(cè)小車左邊是否有障礙物,若小車左邊障礙物離超聲波距離大于10 cm,則小車認(rèn)為左邊沒有障礙物,小車左轉(zhuǎn)90°后繼續(xù)前進(jìn)。若小車左邊障礙物離超聲波距離小于10 cm,則小車認(rèn)為左邊有障礙物,則會(huì)控制舵機(jī)向右轉(zhuǎn)90°,繼續(xù)檢查右邊是否有障礙物。若小車檢查到左前右三個(gè)方向都有障礙物,小車會(huì)原地掉頭,即原地轉(zhuǎn)180°后繼續(xù)前進(jìn)。
在跟隨模式下,小車會(huì)先判斷超聲波離前方物體的距離,當(dāng)距離小于1 m時(shí),才會(huì)開啟跟隨模式功能。此時(shí),當(dāng)物體離超聲波模塊大于10 cm時(shí),小車會(huì)自動(dòng)前進(jìn),直到物體離超聲波模塊小于10 cm,小車停止。
本文設(shè)計(jì)的智能小車采用亞克力底盤,方便學(xué)生后續(xù)進(jìn)行改造(如圖4所示)。底盤采用雙電機(jī)驅(qū)動(dòng),通過差速控制進(jìn)行轉(zhuǎn)向。后輪采用萬向輪,轉(zhuǎn)向靈活,不影響車身姿態(tài)。車頭前方預(yù)留了循跡模塊安裝孔和超聲波舵機(jī)安裝位置,可以方便地安裝各種循跡模塊和避障模塊。小車全長(zhǎng)21 cm,可以放下單片機(jī)控制板、電機(jī)驅(qū)動(dòng)和電池盒,還可以通過銅柱安裝第二層底盤,用來安裝其他擴(kuò)展模塊。
圖4 智能小車底盤實(shí)物圖
本文設(shè)計(jì)了一套基于單片機(jī)的藍(lán)牙控制的智能小車,可實(shí)現(xiàn)手機(jī)APP控制小車移動(dòng)、自主巡線和避障,功能豐富,擴(kuò)展性強(qiáng),價(jià)格實(shí)惠,性價(jià)比高。經(jīng)過課堂實(shí)踐,學(xué)生學(xué)習(xí)積極性明顯提高,配合安排比賽等任務(wù),學(xué)生課堂參與度很高,具有一定推廣性。