李港,常新峰
(平頂山學(xué)院信息工程學(xué)院,河南平頂山,467000)
關(guān)鍵字:單片機(jī);超聲波測距;GSM
隨著汽車數(shù)量的增多,汽車事故頻繁出現(xiàn)[1]。針對汽車安全性問題,本文選用STC89C51 單片機(jī)控制超聲波測距模塊進(jìn)行超聲波測距,解決汽車防撞技術(shù),進(jìn)而提高汽車駕駛的安全性[2]。其中超聲波測距模塊由超聲共性、電子技術(shù)、光電開關(guān)組合,完成非接觸式距離測量[3],系統(tǒng)同時引入人體感應(yīng)模塊,通過GSM 短信模塊向預(yù)留手機(jī)號發(fā)送短信,實現(xiàn)汽車防盜[4,5]。
1)該模塊通過采用IO 觸發(fā)超聲波測距,然后給TRIG 一個至少10us的0 信號;
2)該模塊讓其自動發(fā)送8 個40Khz的矩形波,然后讓其自動檢測是否有該信號返回;
3)當(dāng)有信號返回時,會通過ECHO 輸出一個0 信號,從TRIG=1 到ECHO的時間是從發(fā)射端到接收端的時間;
4)測試距離=(T×C))/2,高電平時間T 表示,聲速用C表示,C=340m/s;
5)當(dāng)TRIG 從0 跳變到1 時,主控芯片啟動10ms 定時器,用其來控制該測量。當(dāng)測量時間超時為10ms 時,ECHO 仍然沒有顯示150us的0 信號,則表明沒有出現(xiàn)障礙。
公式:超聲波測距原理與雷達(dá)測距原理基本上是一樣的。首先定義變量:L 表示超聲波測距測量的距離,C=344m/s(20℃室溫)為超聲波在空氣中的傳播速度,T 為高電平的時間。根據(jù)超聲波測距的方法可以得到測距的公式:L=C×T/2,測量的角度在15°左右。
誤差分析:超聲波的傳播速度會受到一些空氣密度和溫度高低的影響,當(dāng)空氣中密度升高時,則超聲波的傳播速度會加快。所以空氣中的密度和溫度有密不可分的關(guān)系,近似公式為:C=C0+0.607×t℃,式中:C0 為0 度時的聲波速度334m/s,t 為實際溫度(℃)。由于需要超聲波測距精度要求達(dá)到1mm,因此必須要把超聲波傳播所在的環(huán)境溫度考慮進(jìn)去[6]。超聲波測距如圖1 所示。
防撞防盜報警器總體設(shè)計框圖如圖2 所示,STC89C51單片機(jī)為主控芯片,利用超聲波測距和人體感應(yīng)模塊采集數(shù)據(jù),并把數(shù)據(jù)傳輸?shù)街骺匦酒M(jìn)行分析處理。用戶可通過按鍵模塊進(jìn)行防盜與防撞模式轉(zhuǎn)換,設(shè)置超聲波測距報警閾值等。LED 顯示模塊和蜂鳴器模塊進(jìn)行數(shù)據(jù)顯示和報警。
報警系統(tǒng)硬件電路如圖3 所示。硬件設(shè)計先使用軟件Altium10 畫出電路原理圖,然后進(jìn)行元器件的選擇,再進(jìn)行電路板的焊接。電路板元器件焊接完成后,需測試各個方面的電流和電壓是否滿足需求。
超聲波模塊性能穩(wěn)定,測量距離精確,沒有盲區(qū)。該模塊主要特點(diǎn)如下:超微型,相當(dāng)于是兩個發(fā)射器,接收端的面積,已經(jīng)不能再小了;無盲區(qū)(周圍的任何事物都是可以發(fā)送到的);反應(yīng)速度相當(dāng),其測量周期T 為10ms,在高速的情況下目標(biāo)不容易丟失;發(fā)射頭和接收頭緊緊的靠著,它和被測的目標(biāo)基本來說成為直線的關(guān)系;該模塊上還有數(shù)碼管顯示指示,方便來觀察和測試。
超聲波測距模塊引腳連接如圖4 所示。
GSM 模塊在使用時需插入手機(jī)卡,引腳連接如圖5 所示。該模塊會調(diào)用void TransmitText(),運(yùn)用AT 指令表來實現(xiàn)發(fā)送號碼和內(nèi)容的功能。報警器在運(yùn)行時,當(dāng)監(jiān)控區(qū)域有人入侵時,人體感應(yīng)模塊觸發(fā)中斷,該函數(shù)會給預(yù)留手機(jī)號發(fā)送報警短信。
圖5 GSM 短信模塊
報警器設(shè)置有4 個按鍵:
(1)切換按鍵:該鍵進(jìn)行防盜防撞模式切換,防盜時會顯示出C-00,表示測防狀態(tài),時間是0 秒;再按一下會進(jìn)入防撞模式,如果小于自己預(yù)留的數(shù)值則報警。
(2)布防按鍵:在防盜模式C-00 模式下,按下一次該按鍵會有20 秒檢測是否有人經(jīng)過,如果沒有人,會進(jìn)入B-FA 布防狀態(tài)。如果在布防狀態(tài)在設(shè)置距離有人會在20 秒內(nèi)發(fā)送信息,接著繼續(xù)20 秒的掃描,沒有人時會進(jìn)入布防狀態(tài)。
(3)撤防按鍵:按下會進(jìn)入撤防模式,顯示出C-00。再按下切換按鍵會進(jìn)入防撞模式,在數(shù)碼管上顯示出距離。
(4)設(shè)置按鍵:該按鍵可設(shè)置報警值,通過布防按鍵可增加數(shù)字,撤防按鍵減小數(shù)值,設(shè)置完畢,再按一下設(shè)置鍵可退出并保存設(shè)置。
按鍵調(diào)用void Key_()函數(shù)實現(xiàn)相應(yīng)按鍵的功能,該函數(shù)介紹了每個按鍵所要表達(dá)的內(nèi)容,例如:設(shè)置鍵、功能切換鍵、模式加鍵、模式減鍵等。按鍵模塊實物圖如圖6 所示。
圖6 按鍵模塊實物圖
報警器具有兩個重要的功能,一個是GSM 短信模塊的防盜功能,另一個是超聲波測距的報警功能。當(dāng)要進(jìn)行防盜模式時,首先初始化串口系統(tǒng),人體感應(yīng)模塊感應(yīng)到有人時,GSM 短信模塊會給預(yù)留手機(jī)號發(fā)送報警短信,實現(xiàn)防盜功能;超聲波測距模塊進(jìn)行測距檢測,當(dāng)距離不大于設(shè)置距離時,蜂鳴器會發(fā)生報警。主程序流程圖如圖7 所示。
超聲波測距首先判斷RX 是否變?yōu)楦唠娖?,如果是,啟動定時器0,否則相反。當(dāng)啟動定時器0 后,然后判定RX 是否為低電平,當(dāng)RX 是低電平時,關(guān)閉定時器0,否則相反。關(guān)閉定時器0 之后,超聲波測距模塊就可以計算分析出汽車到障礙物的距離。超聲波測距流程圖如圖8 所示。
4.1.1 人體感應(yīng)模塊流程
在人體感應(yīng)模塊處于工作時,檢測到有人經(jīng)過,則會通過GSM 短信模塊給預(yù)留的手機(jī)號發(fā)送短信,否則繼續(xù)檢測。人體感應(yīng)模塊流程圖如圖9 所示。
圖9 人體感應(yīng)模塊
4.1.2 GSM 短信流程
首先將GSM 短信模塊進(jìn)行初始化,當(dāng)人體感應(yīng)模塊觸發(fā)時,向用戶發(fā)送報警短信,人體感應(yīng)模塊未觸發(fā)時,系統(tǒng)繼續(xù)監(jiān)測。GSM 短信流程圖如圖12 所示。
GSM 通信模塊與單片機(jī)之間的通信通過AT 指令來執(zhí)行,系統(tǒng)中使用的AT 指令如表1 所示。
表1 系統(tǒng)中使用的AT 指令表
首先進(jìn)行超聲波測距功能測試,將系統(tǒng)設(shè)置為測距模式,將小物塊當(dāng)做障礙物,緩慢移動小車使之靠近障礙物,可以看到顯示屏上的數(shù)值逐漸減小,當(dāng)數(shù)值減小到報警閾值時觸發(fā)蜂鳴器報警;接著進(jìn)行防盜功能的測試,將系統(tǒng)設(shè)置為防盜模式,測試人員緩慢走向人體紅外傳感器直至觸發(fā)報警,蜂鳴器報警的同時向用戶發(fā)送報警短信。
經(jīng)測試,該系統(tǒng)可正常實現(xiàn)防撞與防盜功能,滿足用戶的使用需求。測試效果圖如圖13 所示。
本文設(shè)計了一款基于51 單片機(jī)的超聲波測距的防撞防盜報警器,該報警器使用方便,操作簡單,功能完善,造價便宜,具有很好地實用性。