韋家正
摘要:該設(shè)計(jì)以單片機(jī)ATmega16為核心,采用脈沖回波檢測法,測量障礙物與超聲波探頭之間的距離;用LCD12864實(shí)時(shí)顯示當(dāng)前距離和實(shí)時(shí)語音播報(bào)當(dāng)前距離。經(jīng)實(shí)驗(yàn)證明本測距儀測量距離可以從0.08m到10m,精度小于 ±1cm,總體性能比較好。
1 引言
近年來,由于電子技術(shù)及壓電陶瓷材料的發(fā)展,使超聲檢測技術(shù)得到了迅速的發(fā)展。在無損探傷,測溫,測距,流量測量,液體成分測量,巖體檢測等方面,新的超聲檢測儀表不斷出現(xiàn),超聲波廣泛地應(yīng)用在各種領(lǐng)域中。利用超聲波檢測往往比較迅速、方便、計(jì)算簡單、易于做到實(shí)時(shí)控制,并且在測量精度方面能達(dá)到工業(yè)實(shí)用的要求。主要用于智能玩具車自動避開障礙物前進(jìn),汽車倒車時(shí)提醒司機(jī)后方是否有障礙物等,本文介紹的就是其在倒車測距中的應(yīng)用。
2 總體方案的設(shè)計(jì)
2.1 方案論證
為研究和利用超聲波,人們已經(jīng)設(shè)計(jì)和制成了許多超聲波發(fā)生器。總體上講,超聲波發(fā)生器可以分為兩大類:一、是用電氣方式產(chǎn)生超聲波;二、是用機(jī)械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同,目前較為常用的是壓電式超聲波發(fā)生器。所以在本設(shè)計(jì)中我們選擇壓電式超聲波發(fā)生器。其利用壓電晶體的諧振來工作的。它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動,將機(jī)械能轉(zhuǎn)換為電信號,這時(shí)它就成為超聲波接收器了。其內(nèi)部結(jié)構(gòu)圖如圖2.1所示:
2.2 系統(tǒng)分析與介紹
超聲波倒車?yán)走_(dá)在生活中應(yīng)用廣泛,非常具有實(shí)際意義,本系統(tǒng)要求倒車?yán)走_(dá)的測量距離是0.1m~10m,精度小于±1cm;能顯示距離且有語音播報(bào)距離功能;在不同距離用不用顏色的LED燈指示,提醒障礙物距離是處在危險(xiǎn)距離、或是保持距離、或是安全距離;圖2.2是系統(tǒng)整體框圖:
本測距儀以ATmega16做為控制核心,用單片機(jī)定時(shí)器產(chǎn)生40KHz的方波信號,通過驅(qū)動電路把超聲波發(fā)射出去,當(dāng)單片機(jī)接收到接收器送回的信號后,計(jì)算出障礙物的距離,用LCD12864顯示出距離,同時(shí)控制語音芯片APR9600播報(bào)距離。經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn)超聲波測距儀能測量較遠(yuǎn)的距離時(shí),就非常難測到0.1m短距離,為了能符合測距儀的要求,在系統(tǒng)中我們使用了兩套超聲波測距儀,一套做近距離測量,一套用于遠(yuǎn)距離測量;默認(rèn)方式為遠(yuǎn)距離測量,當(dāng)距離變小時(shí)就換用另一套來測量;語音芯片APR9600的并行錄音最多只能分8段,無法滿足要求,所以本系統(tǒng)也是采用兩套一樣的APR9600模塊,總共16段錄音,協(xié)同單片機(jī)完成聲音播報(bào)功能。
2.3超聲波測距儀原理
2.3.1測量原理
超聲波是指頻率高于20KHz的機(jī)械波。本設(shè)計(jì)中使用超聲波探頭來發(fā)射與接受,發(fā)射頻率是40KHz。超聲波發(fā)射器定期發(fā)出的超聲波,遇到障礙物時(shí)就反射,反射信號經(jīng)超聲波接收并轉(zhuǎn)化為電信號,讓單片機(jī)測出發(fā)射與接收到時(shí)間差T,若超聲波的傳播速度為 C,則與障礙物的距離為:
由于超聲波是一種聲波,其聲速與溫度有關(guān),C≈331.45十0.6* t,t為攝
氏溫度,所以在實(shí)際應(yīng)用中,要根據(jù)環(huán)境溫度的變化,對聲速進(jìn)行補(bǔ)償,以減小誤差。
2.3.2超聲波測距盲區(qū)分析
由于超聲波測距儀的發(fā)射頭和接收頭之間一般安裝得都比較近,超聲波發(fā)射器發(fā)射信號后還有余震,如果處理不好此時(shí)接收器就會接收到的信號,從而測出不正確的數(shù)據(jù),所以在發(fā)射器發(fā)射超聲波后必須延時(shí)一小段時(shí)間,避免發(fā)射信號直接被接受器就收,而這一小段延時(shí)時(shí)間就引入一段無法測量的距離,即所謂的盲區(qū)。障礙物只有在盲區(qū)之外才能正確測量出距離。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 主控MCU
本設(shè)計(jì)以ATmega16為控制核心,ATmega16是基于增強(qiáng)型低功耗8位 CMOS微控制器,它具有如下特點(diǎn):具有16K字節(jié)的系統(tǒng)內(nèi)可編程Flash,512字節(jié)EEPROM,1K字節(jié)SRAM,32個(gè)通用I/O 口線,32個(gè)通用工作寄存器,8 路10位ADC,其相對傳統(tǒng)51單片機(jī)硬件資源豐富。總共有40個(gè)引腳,其各端口的詳細(xì)功能可以參考ATmega16芯片手冊。
3.2 LCD顯示
建立一個(gè)良好人機(jī)交換界面在近年來越來越重要,而LCD顯示模塊應(yīng)用最為普遍,如我們平時(shí)使用得比較多的1602,12864等,本測距儀要求能顯示中文字幕,故我們選擇顯示功能比較強(qiáng)大的點(diǎn)陣漢字圖形顯示模塊LCD12864。它可以顯示漢字和圖像,與單片機(jī)有并行和串行兩種連接接口,在本測距儀使用串行連接方式,只需連接RS、R/W、EN共三個(gè)控制引腳就可以完成顯示功能。
3.3 語音播報(bào)電路
APR9600語音錄放芯片是繼美國ISD公司以后采用模擬存儲技術(shù)的又一款音質(zhì)好、噪音低、不怕斷電、可反復(fù)錄放的新型語音電路,單片電路可錄放32-60秒,串行控制時(shí)可分256段以上,并行控制時(shí)最大可分8段,與ISD同類芯片相比它具有:價(jià)格便宜,有多種手動控制方式,分段管理方便、多段控制時(shí)電路簡單、采樣速度及錄放音時(shí)間可調(diào)、每個(gè)單鍵均有開始停止循環(huán)多種功能等特點(diǎn)。
在本設(shè)計(jì)我們選擇并行控制,分八段錄音模式,由于需要錄下“0-10”,“點(diǎn)”“米”總共13段錄音,所以一片APR9600沒辦法實(shí)現(xiàn),必須再加一片來完成13個(gè)聲音的錄音。為了節(jié)約單片機(jī)接口,我們采用74LS154譯碼器來完成對13段錄音的播放控制,只用了單片機(jī)的4個(gè)I/O口。APR9600直接推動喇叭的聲音比較小,為了需要較大的聲音可以加一級音頻功放,選用LM386集成功放對語音芯片輸出信號進(jìn)行功率放大。
3.4 超聲波測距發(fā)射接收電路
3.4.1 超聲波發(fā)射驅(qū)動電路
測距儀使用了兩套超聲波發(fā)射模塊,一套小功率發(fā)射測量短距離,其發(fā)射部分驅(qū)動電路圖如圖3.4.1所示,一套大功率發(fā)射測量遠(yuǎn)距離,其發(fā)射部分驅(qū)動電路圖如圖3.4.2所示。
遠(yuǎn)近距離的測量發(fā)射模塊在原理上基本上是差不多的,都是由單片機(jī)產(chǎn)生40KHz到方波,然后控制三級管的導(dǎo)通截至,使超聲波能夠起振,把超聲波發(fā)射出去。三級管是電流控制器件,在放大區(qū)基級電流決定集電極和發(fā)射級的電流,在近距離測量發(fā)射模塊中基級限流電阻是1K而遠(yuǎn)距離測量發(fā)射模塊是560歐姆,可見遠(yuǎn)距離發(fā)射測量發(fā)射模塊的發(fā)射功率較大。故能測量的距離較遠(yuǎn)。
3.4.2 超聲波接收電路
兩套超聲波的差別僅是在發(fā)射部分到發(fā)射功率上,接收部分所用的電路原理元件參數(shù)都是一樣的,原理圖如圖3.4.2所示。
圖中的CX20106A是一款紅外線檢波接收的專用芯片,其個(gè)引腳功能圖表3.4所示,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38KHz與超聲波頻率40KHz較為接近,可以利用它作為超聲波檢測電路。實(shí)驗(yàn)證明其具有很高的靈敏度和較強(qiáng)的抗干擾能力。R2和C9是控制CX20106 內(nèi)部放大增益,R6控制帶通濾波器的中心頻率,適當(dāng)改變C9的大小,可改變接受電路的靈敏度和抗干擾能力。
當(dāng)超聲波接收到信號后,經(jīng)過CX20106放大、濾波、整形會在第7腳產(chǎn)生一個(gè)低電平,單片機(jī)用端口掃描法及時(shí)檢查出該下降信號,馬上停止定時(shí)器計(jì)數(shù),讀出計(jì)數(shù)值并轉(zhuǎn)換為時(shí)間T,用公式2-3-1計(jì)算出障礙物的距離,式中C≈331.45十0.6* t(t是環(huán)境溫度),然后在顯示器上顯示并播報(bào)數(shù)據(jù)。
3.3 溫度補(bǔ)償部分
超聲波之所以需要溫度補(bǔ)償是因?yàn)槌暡ㄔ诳諝庵袀鞑サ乃俣仁軠囟鹊挠绊懕容^大,為提高測量精度溫度補(bǔ)償是必不可少的部分,這里我們使用比較常見且易于控制的集成數(shù)字溫度傳感器DS18B20來測量溫度。
4 軟件設(shè)計(jì)
程序的總體思路:用定時(shí)器0和定時(shí)器2的比較匹配方式產(chǎn)生40KHz的方波,發(fā)幾個(gè)周期驅(qū)動超聲波發(fā)射電路,把超聲波發(fā)射出去,此時(shí)打開定時(shí)器1從初值0開始計(jì)數(shù),超聲波接收電路一旦收到回波,立即停止計(jì)數(shù),讀出這個(gè)時(shí)候的計(jì)數(shù)值并換算出時(shí)間間隔,計(jì)算出障礙物的距離,如果在一定時(shí)間內(nèi)沒有掃描到低電平,就提示出錯。在系統(tǒng)中我們用了兩套超聲波,定時(shí)器2是給遠(yuǎn)距離的測量發(fā)射電路提供40KHz的方波,定時(shí)器0是給近距離的測量發(fā)射電路提供40KHz的方波,在進(jìn)入程序時(shí)默認(rèn)使用遠(yuǎn)距離測量超聲波收發(fā)模塊,如果發(fā)現(xiàn)測量距離低于某個(gè)值就立即更換使用近距離測量超聲波收發(fā)模塊,同樣如果近距離測量模塊測得的數(shù)據(jù)大于某個(gè)值,就立即更換為遠(yuǎn)距離測量模塊,如此協(xié)調(diào)工作,保證系統(tǒng)穩(wěn)定,測量精確。
5 系統(tǒng)測試
連接好電路各部分,上電測試數(shù)據(jù)如下所示,測試條件1:室外、溫度34.6攝氏度,40cm×40cm木板做為反射板,數(shù)據(jù)如表5.1所示。
參考文獻(xiàn):
[1]沈文,Eagle lee,詹衛(wèi)前.AVR單片機(jī)C語言開發(fā)入門指導(dǎo).北京.清華大學(xué)出版社.2003
[2] 沈文.AVR單片機(jī)C語言開發(fā)入門指導(dǎo)[M].北京:清華大學(xué)出版社.2005