遼寧機(jī)電職業(yè)技術(shù)學(xué)院,遼寧丹東 118009
汽車給生活帶來(lái)便利的同時(shí),也出現(xiàn)一些不安全因素,例如倒車時(shí)發(fā)生的安全事故占總交通事故的25%。[1]
汽車倒車測(cè)距儀(以下簡(jiǎn)稱測(cè)距儀)由單片機(jī)、超聲波傳感器、顯示模塊和語(yǔ)音模塊等組成。通過(guò)語(yǔ)音提示和顯示提醒,幫助司機(jī)了解車后情況,提高倒車安全性。超聲波測(cè)距具有成本低、精度高、可靠,使用方便、應(yīng)用廣泛、實(shí)時(shí)性好等優(yōu)點(diǎn),完全能滿足泊車時(shí)倒車的需要[1]。
超聲波測(cè)距采用的是非接觸式測(cè)量,具有不受光線、被測(cè)對(duì)象顏色、材質(zhì)等因素影響,對(duì)環(huán)境有一定的適應(yīng)能力,且操作簡(jiǎn)單、測(cè)量精度高。
超聲波測(cè)距的方法很多,其中渡越時(shí)間檢測(cè)法實(shí)現(xiàn)起來(lái)簡(jiǎn)單,成本低,可測(cè)距離范圍較大。渡越時(shí)間法超聲波測(cè)距原理圖如圖1所示。利用超聲波發(fā)射探頭(T)發(fā)出一串超聲波信號(hào),遇到障礙物后反射返回,到達(dá)超聲波接收探頭。超聲波探頭與被測(cè)物體之間存在以下關(guān)系:
其中,s—超聲波探頭與被測(cè)物體之間的距離,單位:m;
c—超聲波在空氣中的傳播速度,單位:m/s;
t—超聲波接收時(shí)間,單位:s ;
d—被測(cè)距離,單位:m;
h—超聲波傳感器發(fā)射器與接收器之間的距離,單位:m。
這種測(cè)量方法叫渡時(shí)間法,經(jīng)過(guò)比較與分析,采用這種方法作為超聲波測(cè)距方法,電路容易實(shí)現(xiàn)[2]。
超聲波傳感器可以分成兩類,一類是電氣方式,一類是機(jī)械方式。壓電式傳感器是利用超聲波的相關(guān)特性制作而成的,它是由壓電晶片在交變電壓的作用下而產(chǎn)生的,具有高頻率,短波長(zhǎng),方向性好等特點(diǎn)。
壓電式超聲波發(fā)生器的原理就是壓電晶體的諧振效應(yīng)。它由兩個(gè)壓電晶體片和一個(gè)共振將板組成。給一定幅值的交變電壓加至壓電晶片的兩級(jí),這兩塊金屬極板就形成電場(chǎng),有電場(chǎng)就存在電場(chǎng)力。壓電晶片處在電場(chǎng)中,在電場(chǎng)力的作用下發(fā)生形變。壓電晶片在交變電場(chǎng)力的作用下,發(fā)生往復(fù)的變形、振動(dòng),這就生成了超聲波,這個(gè)過(guò)程稱為逆壓電效應(yīng),也是發(fā)射超聲波的過(guò)程。
發(fā)射出去的超聲波,一部分在空氣中衰減掉了,一部分沿原路返回。由于超聲波具有一定的能量,當(dāng)共振板接收到超聲波后,將壓迫于壓電晶體,產(chǎn)生共振,將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)就是接收超聲波的過(guò)程。這時(shí)就可以稱為超聲波接收器。這種超聲波傳感器的外形及內(nèi)部結(jié)構(gòu)如圖2所示。
超聲波傳感器發(fā)射器與接收器有分開(kāi)設(shè)計(jì)的,也有一體模塊。當(dāng)超聲波在空氣中傳播時(shí),衰減的程度跟頻率成正比,短距離測(cè)距應(yīng)該選頻率高的傳感器,長(zhǎng)距離距則可以選頻率低的傳感器。本設(shè)計(jì)應(yīng)用在倒車報(bào)警系統(tǒng)中,屬于短距離測(cè)距,所以選取中心頻率為40kHz的超聲波傳感器測(cè)距,目標(biāo)測(cè)距量程是2cm~4m,測(cè)量精度可以達(dá)到3mm。這樣傳感器方向性尖銳,避開(kāi)了噪聲,提高了信噪比;雖然傳播損失相對(duì)低頻有所增加,但不會(huì)給發(fā)射和接收帶來(lái)困難[3]。
測(cè)量時(shí)對(duì)精度影響的因素主要有單片機(jī)計(jì)數(shù)誤差、回波時(shí)間誤差、溫度誤差、對(duì)射角引起的誤差等。針對(duì)這些因素采用高精度的單片機(jī)和晶振,增加發(fā)射脈沖的方波數(shù)量,進(jìn)行溫度補(bǔ)償。由于倒車測(cè)距中,兩者之間的距離遠(yuǎn)遠(yuǎn)小于測(cè)量長(zhǎng)度,所以對(duì)射角引超的誤差可以忽略。
采用超聲波在空氣中的傳播速度與溫度有很大關(guān)系,因此需對(duì)其進(jìn)行溫度補(bǔ)償。而溫度補(bǔ)償在軟件和硬件上也很容易實(shí)現(xiàn)。溫度對(duì)超聲波速度影響非常大,采用DS18B20進(jìn)行測(cè)溫。DS18B20是一線式數(shù)字溫度傳感器,溫度測(cè)量范圍是-55℃~+125℃,可編程為9位到12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃。聲速隨溫度變化公式為:
式中,T—溫度。
硬件電路主要分為單片機(jī)控制電路、LCD顯示電路、超聲波發(fā)射電路、超聲波檢測(cè)接收電路、按鍵電路、語(yǔ)音電路、電源電路等部分。系統(tǒng)起動(dòng)后,進(jìn)行測(cè)溫,然后開(kāi)始測(cè)距,輸出信號(hào)驅(qū)動(dòng)超聲波發(fā)射電路發(fā)射超聲波,超聲波接收電路接收反射回來(lái)的超聲波信號(hào),再經(jīng)單片機(jī)系統(tǒng)溫度補(bǔ)償計(jì)算距離,將結(jié)果送至顯示電路和語(yǔ)音電路[4]。系統(tǒng)框圖如3所示。
在進(jìn)行硬件設(shè)計(jì)時(shí),超聲波發(fā)射和接收電路可以用HC-SR04模塊實(shí)現(xiàn),該模塊可以提供2~400cm的非接觸式測(cè)距功能,精度可達(dá)3mm,模塊包括發(fā)射器、接收器、控制電路。本文使用該模塊進(jìn)行測(cè)距。超聲波測(cè)距傳模塊的實(shí)物如圖4所示, 4個(gè)引腳分別是VCC,TRIG(觸發(fā)控制信號(hào)輸入),ECHO(回響信號(hào)輸出)、GND。當(dāng)接收端Echo接收到回波信號(hào)時(shí),拉高電平信號(hào),表示測(cè)距成功,同時(shí),Echo引腳接到單片機(jī)的P3.2引腳,
模塊基本工作原理是使用單片機(jī)引腳10μs的高電平信號(hào)觸發(fā)模塊的TRIG,開(kāi)始測(cè)量,模塊自動(dòng)發(fā)出8個(gè)40kHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回。有信號(hào)返回時(shí),ECHL引腳輸出一個(gè)高電平 ,通過(guò)反向器接到單片機(jī)的中斷口,高電平的時(shí)間就是從信號(hào)發(fā)射到信號(hào)返回的總時(shí)間。如果可以使用該模塊,產(chǎn)品可以更加小型化。
LCD12864液晶分辨率是128×64,顯示直觀、美觀,內(nèi)部有中文字庫(kù),可以直接其寫入中文顯示,避免了字符之間的互相轉(zhuǎn)換;通信方式有并行和串行,含有簡(jiǎn)體中文字庫(kù),有8192個(gè)16×16漢字和128個(gè)16×8點(diǎn)陣ASCII字符。接口方式簡(jiǎn)單、操作指令方便??梢燥@示8×4行16×16點(diǎn)陣的漢字,同時(shí)可完成圖形顯示。該液晶顯示器與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件結(jié)構(gòu)還是顯示程序都簡(jiǎn)潔得多,而且價(jià)格略低于相同點(diǎn)陣的圖形液晶模塊。使用8位并聯(lián)方式,通過(guò)單片機(jī)的P1口和P2口連接LCD。
溫度采用DALLAS公司生間的智能溫度傳感器DS8B20作檢測(cè)元件,測(cè)溫范圍在-55-+125℃,最高分辨率可達(dá)0.0625℃,采用單總線與單片機(jī)相連。
XFS5051CE是科大訊飛推出的一款功能及集成度最高的語(yǔ)音合成模塊。模塊有中文或英文語(yǔ)言,還支持6種方言。集成了語(yǔ)音編解碼功能,能錄音和播放。具有編碼高效率壓縮、音效高質(zhì)量、編碼低延遲等特點(diǎn)。語(yǔ)音編碼解碼速率可以選8K或16K。因此選擇它作為語(yǔ)音模塊。模塊通訊接口支持UART、I2C、SPI三種通訊方式。單片機(jī)通過(guò)控制語(yǔ)音模塊的7、8引腳,以I2C方式通信[5],其中DAC連接語(yǔ)音模塊的17引腳。
MSP430系列單片機(jī)是美國(guó)德州儀器公司推出的汽車類16位超低功耗混合信號(hào)微控制器;執(zhí)行速度快、高精確度,集成度高,開(kāi)發(fā)方便等優(yōu)點(diǎn)。
單片機(jī)的電源電壓在1.8V~3.6V,2.2V/1MHz時(shí)的電流只有270μA。單片機(jī)工作頻率最高可達(dá)16MHz,指令周期只有62.5ns,也可使用內(nèi)部數(shù)字振蕩器(DCO)或外接32768Hz低速晶體,可以在高性能和低功耗之間選擇。片上1個(gè)10位的A/D轉(zhuǎn)換器,2個(gè)16位定時(shí)器,4個(gè)8位I/O端口,其中P1,P2口有中斷能力。有多種SPI,串行口、I2C總線接口。擁有32KB閃存,1KB內(nèi)存,支持JTAG編程和仿真調(diào)試[2]。
軟件設(shè)計(jì)主要由主程序、超聲波發(fā)射子程序、超聲波接收子程序、顯示子程序、報(bào)警程序、鍵盤程序及語(yǔ)音程序組成。
超聲波主程序流程圖如圖5所示。主程序用于設(shè)置定時(shí)器的初值和工作方式等之后,調(diào)用超聲波發(fā)生子程序發(fā)出多個(gè)超聲波脈沖。一旦接收到返回超聲波信號(hào),立即進(jìn)入超聲波接收子程序,取出時(shí)間值。然后在主程序中,判斷是否溢出,沒(méi)有溢出并調(diào)用顯示和語(yǔ)音子程序,如果達(dá)到報(bào)警值還會(huì)觸發(fā)聲光報(bào)警。
超聲波發(fā)射子程序的作用是通過(guò)單片機(jī)MSP430引腳發(fā)送20μs的高電平觸發(fā)信號(hào),然后HC-SR04模塊開(kāi)始發(fā)射8個(gè)40kHz的超聲波信號(hào),檢測(cè)到有返回信號(hào)后停止發(fā)射返回。
利用外部中斷0檢測(cè)返回的超聲波信號(hào)是否結(jié)束。當(dāng)ECHO引腳為同高變低時(shí),說(shuō)明從到發(fā)射信號(hào)到返回信號(hào)一個(gè)過(guò)程結(jié)束。馬上引起外部中斷0,在中斷中讀取時(shí)間t中斷返回。
主程序中開(kāi)始測(cè)溫度,進(jìn)行溫度補(bǔ)償計(jì)算,并計(jì)算出相應(yīng)距離。如果超過(guò)報(bào)警值,啟動(dòng)聲光報(bào)警。然后開(kāi)始LCD顯示和語(yǔ)音播放。再一次循環(huán)測(cè)量,直到用戶關(guān)閉測(cè)距儀。
在測(cè)量過(guò)程中,通過(guò)對(duì)MSP430單片機(jī)的設(shè)置,使用看門狗程序,當(dāng)出現(xiàn)程序跑飛和死機(jī)的現(xiàn)象時(shí),馬上重啟測(cè)距儀。
在室溫下,分別在距2cm,3cm,5cm,20cm,30cm,50cm,1m,2m,2.5m,3.5m,4m,5m 處 放置超聲波反射擋板,每一位置連續(xù)測(cè)量10組數(shù)據(jù)。利用測(cè)量的數(shù)據(jù),檢驗(yàn)波測(cè)距的盲區(qū)及最大測(cè)量距離。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)對(duì)于小于2cm的測(cè)量距離,由于會(huì)造成超聲波的多次反射,無(wú)法測(cè)量,2cm以下為測(cè)距儀的盲區(qū)。4m內(nèi)精度為3mm。在距離5m左右的位置,由于超聲波回波信號(hào)微弱,系統(tǒng)檢測(cè)精度不夠,實(shí)際值與測(cè)量值之間的偏差在2cm左右。
整個(gè)測(cè)距儀的硬件以MSP430單片機(jī)為核心,超聲波發(fā)射和收發(fā)部分用了一體化的模塊HC-SR04實(shí)現(xiàn),抗干擾性極強(qiáng),可靠性高。使用了溫度補(bǔ)償,提高了測(cè)量精度。測(cè)距儀能在司機(jī)泊車倒車時(shí),能以語(yǔ)音、顯示方式或聲光報(bào)警多種方式,提示后方障礙物的存在,可作為泊車時(shí)的倒車?yán)走_(dá)使用。系統(tǒng)精度高,體積小,結(jié)構(gòu)簡(jiǎn)單,使用方便,滿足了倒車測(cè)距的準(zhǔn)確性和應(yīng)用性,減少了倒車事故的發(fā)生,提高了安全性。作為單片機(jī)實(shí)訓(xùn)項(xiàng)目,讓學(xué)生真正看到單片機(jī)在現(xiàn)實(shí)生活的實(shí)際應(yīng)用,提高學(xué)生的實(shí)踐能力、分析問(wèn)題能力和創(chuàng)新能力。