文/霍海波
近幾年,我國(guó)科技水平在不斷進(jìn)步,測(cè)距手段越來越先進(jìn)且多樣,測(cè)距手段的危險(xiǎn)性逐漸顯現(xiàn)出來,人們開始重視發(fā)展安全性更高的測(cè)距技術(shù),其中超聲波測(cè)距技術(shù)因?yàn)榫哂械姆缐m性、防霧性以及非接觸式等諸多優(yōu)點(diǎn)受到人們的青睞,目前超聲波測(cè)距技術(shù)已經(jīng)得到了廣泛的應(yīng)用。對(duì)于超聲波測(cè)距技術(shù)的研究受到了更多人的重視,而改良超聲波測(cè)距的技術(shù)同時(shí)有利于測(cè)距儀的發(fā)展。目前我們已經(jīng)研究出了一系列超聲波測(cè)距系統(tǒng),但是測(cè)距的范圍有著一定的限制,大多集中在三米至十二米之間。而美國(guó)生產(chǎn)的超聲波傳感器距離已經(jīng)達(dá)到了30米,相對(duì)應(yīng)的,傳感器的售價(jià)也會(huì)遠(yuǎn)高于普通的,無法實(shí)現(xiàn)全面應(yīng)用。超聲波測(cè)距系統(tǒng)研究都需要參考數(shù)值誤差的精確度,差距一般局限于毫米內(nèi),利用相關(guān)算法可以實(shí)現(xiàn)精確度的進(jìn)一步提高。相比較而言,視覺傳感器比激光測(cè)距儀在精度上有著更大的發(fā)展空間。
基于單片機(jī)的超聲波測(cè)距系統(tǒng)就是一種測(cè)距報(bào)警系統(tǒng),系統(tǒng)設(shè)計(jì)的核心在于STC89 C52型號(hào)的單片機(jī),并在核心主鍵的基礎(chǔ)上開發(fā)系統(tǒng),使系統(tǒng)能夠具有智能測(cè)距功能與智能報(bào)警功能。智能測(cè)距與報(bào)警功能的實(shí)現(xiàn),使測(cè)距系統(tǒng)的智能化得到了推進(jìn),也更好的詮釋了單片機(jī)進(jìn)入生活的角色,信息化時(shí)代下,電子產(chǎn)品大量應(yīng)用于生活、工作、學(xué)習(xí)各個(gè)方面中,有效的改善了人們的生活方式,最大程度上的提升人們的工作效率與生活效率?;趩纹瑱C(jī)的超聲波測(cè)距系統(tǒng)中報(bào)警器的優(yōu)點(diǎn)在于使用方法簡(jiǎn)單、容易攜帶以及準(zhǔn)確率高等等??梢哉f,隨著科技水平的不斷進(jìn)步,在未來超聲波測(cè)距系統(tǒng)一定會(huì)得到更好的發(fā)展,可以在測(cè)距工作中得到普及的應(yīng)用,幫助人們解決測(cè)距工作中存在的問題?;趩纹瑱C(jī)的超聲波測(cè)距系統(tǒng)的設(shè)計(jì)包括兩個(gè)部分,分別是硬件設(shè)計(jì)和軟件設(shè)計(jì)。
超聲波測(cè)距系統(tǒng)的工作原理是超聲波發(fā)射器的超聲波發(fā)送,向某一個(gè)確定的方向發(fā)射的同時(shí)進(jìn)行計(jì)時(shí),超聲波在碰觸到障礙物之后會(huì)返回給超聲波接收器一個(gè)反射波,此時(shí)停止計(jì)時(shí),將時(shí)間紀(jì)錄為t。根據(jù)速度距離公式,結(jié)合超聲波的傳播速度與時(shí)間t,可以推算出超聲波發(fā)射點(diǎn)與所測(cè)量障礙物之間的距離為S=340t/2。在進(jìn)行距離障礙物的距離測(cè)量時(shí),如果介質(zhì)傳播的溫度沒有出現(xiàn)較大的變化時(shí),我們可以將超聲波的速度近似的認(rèn)為在傳輸過程中未發(fā)生變化,只要測(cè)量出超聲波往返障礙物的時(shí)間,就可以得到距離障礙物的實(shí)際距離??梢缘玫絻蓚€(gè)公式,分別為:H(距離)=Scosθ;θ=arctan(L(兩個(gè)探頭直間中心距離的一半)/H)。只要精確的測(cè)量出超聲波發(fā)送并返回信號(hào)的時(shí)間t,就能夠直接計(jì)算出超聲波信號(hào)發(fā)送源與障礙物之間的距離H。
超聲波測(cè)距系統(tǒng)由多個(gè)模塊構(gòu)成,分別包括單片機(jī)最小系統(tǒng)、超聲波測(cè)距模塊、智能報(bào)警電路模塊等硬件設(shè)計(jì)及軟件設(shè)計(jì)?;趩纹瑱C(jī)的超聲波測(cè)距系統(tǒng)核心控制模塊為STC89C52單片機(jī),在進(jìn)行距離的測(cè)量時(shí),單片機(jī)的主芯片能夠控制報(bào)警器的報(bào)警結(jié)果,計(jì)算測(cè)距與固定值的比較結(jié)果。當(dāng)超聲波測(cè)距系統(tǒng)測(cè)得的實(shí)際距離小于設(shè)定的固定距離時(shí),報(bào)警器報(bào)警,反之則不報(bào)警,同時(shí)進(jìn)行距離的二次檢測(cè)。具體的單片機(jī)測(cè)距系統(tǒng)總體設(shè)計(jì)方案如圖1所示。
圖1:系統(tǒng)總體設(shè)計(jì)
圖2:主程序工作流程
該超聲波測(cè)距系統(tǒng)實(shí)現(xiàn)測(cè)距目標(biāo)的途徑是首先通過單片機(jī)進(jìn)行方波信號(hào)的發(fā)出,將接收到的方波信號(hào)發(fā)送至超聲波電路中,通過功率的變化實(shí)現(xiàn)芯片的方法,最終達(dá)到放大信號(hào)的目的,之后將放大后的信號(hào)輸入進(jìn)超聲波發(fā)射頭中。超聲波在向測(cè)量目標(biāo)傳輸?shù)倪^程中一旦觸碰到障礙物后會(huì)立馬將信號(hào)反射回系統(tǒng)中,超聲波測(cè)距系統(tǒng)中接收返回信號(hào)的是超聲波接收頭,之后,超聲波接收頭會(huì)發(fā)出一個(gè)下拉電平信號(hào)給單片機(jī),單片機(jī)中的接收芯片將會(huì)進(jìn)行接收信號(hào)的放大與整形。之后單片機(jī)進(jìn)入中斷狀態(tài),同時(shí)與外部的中斷請(qǐng)示進(jìn)行相應(yīng),對(duì)外部發(fā)送回來的中斷子程序進(jìn)行有效執(zhí)行,最后根據(jù)計(jì)時(shí)器反饋回來的時(shí)間進(jìn)行測(cè)量距離的計(jì)算,最終將計(jì)算結(jié)果直接在顯示電路上顯示。
上文說過,單片機(jī)是整個(gè)測(cè)距系統(tǒng)中最為核心的控制單元,因此,想要設(shè)計(jì)出最為完美的單片機(jī)測(cè)距系統(tǒng)首先任務(wù)就是在復(fù)雜多樣的單片機(jī)中選擇合適的一款。大多數(shù)單片機(jī)具有相同的基本結(jié)構(gòu),但是根據(jù)單片機(jī)的不同,可以設(shè)計(jì)出多種多樣且不同功能的系統(tǒng),單片機(jī)中含有的存儲(chǔ)器可以實(shí)現(xiàn)系統(tǒng)運(yùn)行數(shù)據(jù)的存儲(chǔ)以及基礎(chǔ)程序的存儲(chǔ),而其中央處理器能夠?qū)崿F(xiàn)對(duì)程序語言的處理作用,按照書寫的程序完成相應(yīng)動(dòng)作,實(shí)現(xiàn)相應(yīng)功能??偟膩碚f,單片機(jī)具有極其強(qiáng)大的功能,同時(shí),單片機(jī)有效的將多個(gè)功能集合在一個(gè)小小的芯片上,不僅在最大程度上減小了單片機(jī)的體積,同時(shí)使單片機(jī)能夠具有更多的功能。
4.3.1 電路設(shè)計(jì)
電路設(shè)計(jì)是超聲波測(cè)距系統(tǒng)設(shè)計(jì)的基礎(chǔ)環(huán)節(jié),在進(jìn)行電路設(shè)計(jì)時(shí),主要會(huì)用到五種應(yīng)用于單片機(jī)外圍的電路器件,分別是超聲波傳感器、四位數(shù)碼管元件、STC89C52、蜂鳴器以及按鍵等等。整個(gè)電路設(shè)計(jì)中主要會(huì)用到三個(gè)按鍵,這三個(gè)按鍵的作用分別是設(shè)定、加、減。
4.3.2 單片機(jī)最小系統(tǒng)的設(shè)計(jì)
整個(gè)單片機(jī)最小系統(tǒng)主要分為四個(gè)組成部分,分別是上拉的晶振電路、po口、復(fù)位電路以及EA。其中,上拉的晶體震蕩器電路又包括兩個(gè)型號(hào)為30pF的電容器、一個(gè)為C2C3的電解電容、一個(gè)為12M晶體X1的電解電容。對(duì)于單片機(jī)最小系統(tǒng)而言,電容的主要作用是起振,幫助晶振過程更容易實(shí)現(xiàn),其實(shí)際的取值范圍在15pF至33pF之間。其中,晶振的值最高可以為24M,實(shí)踐表明,單片機(jī)中的晶體取值越高,單片機(jī)的執(zhí)行速度就會(huì)越快。系統(tǒng)中電容C1的極性設(shè)定為10uF,同時(shí)電阻R4的陰值設(shè)定為10K,這個(gè)電容與電阻就是構(gòu)成系統(tǒng)復(fù)位電路的主要元件。在系統(tǒng)中,電容和電壓都存在同一個(gè)使用性質(zhì),就是不能發(fā)生突變,當(dāng)單片機(jī)最小系統(tǒng)真正通電之后,進(jìn)行引腳的電平信號(hào)為高電平信號(hào),其中RC的值能夠直接決定高電平信號(hào)在系統(tǒng)運(yùn)行中持續(xù)的時(shí)間長(zhǎng)短,如果在這個(gè)過程中,RC的值是合適的,復(fù)位電路的可靠性就可以得到保障。在單片機(jī)最小系統(tǒng)的電路圖中,設(shè)定的電阻陰值數(shù)值為10K,而電容器的容量大小設(shè)定為10uF。利用物理計(jì)算公式,可以輕松的計(jì)算出當(dāng)電源電壓為5伏時(shí),電容充入了0.7倍電源電壓的電時(shí),信號(hào)傳輸所需要的時(shí)間為0.1S,計(jì)算公式為10K*10uF。也就是說,最小系統(tǒng)連接的計(jì)算機(jī)在啟動(dòng)0.1秒的過程中,產(chǎn)生的電壓(電容兩端)一般在0伏至3.5伏之間升高,在這個(gè)前提下,成功接收到電壓的引腳范圍在5伏至1.5伏之間,此時(shí)電壓信號(hào)小于1.5伏,處于正常工作狀態(tài)下的控制器會(huì)保持在低電平信號(hào)上,同時(shí)如果電壓信號(hào)大于或等于1.5伏時(shí),處于正常工作狀態(tài)下的控制器會(huì)保持在高電平信號(hào)上。正因如此,在進(jìn)行最小系統(tǒng)啟動(dòng)的0.1秒時(shí)間內(nèi),系統(tǒng)并不需要外力支持即可自動(dòng)復(fù)位。在本基于單片機(jī)的測(cè)距系統(tǒng)的設(shè)計(jì)中,選擇的單片機(jī)的PO口輸出性質(zhì)為開路輸出,所以,一個(gè)PO口與取值為10K的排阻相連接,可以將PO口直接作為通用引腳來使用。在EA引腳上,如果連接到了一個(gè)信號(hào)較高的電平上時(shí),復(fù)位成功后,控制器會(huì)從內(nèi)部的0000H正式開始執(zhí)行。相反,如果連接到了一個(gè)信號(hào)較低的電平上時(shí),復(fù)位成功后,控制器會(huì)從外部的0000H正式開始執(zhí)行。系統(tǒng)運(yùn)行的程序全部存儲(chǔ)在系統(tǒng)內(nèi)部的控制器中,因此引腳EA想要連接高電平就必須保證單片機(jī)的程序讀寫是從內(nèi)部開始執(zhí)行的。
4.3.3 超聲波測(cè)試模塊設(shè)計(jì)
基于單片機(jī)的超聲波測(cè)距系統(tǒng)的超聲波測(cè)試模塊選擇了HC-SR04模塊,其作用范圍在兩厘米與四百厘米之間,模塊可實(shí)現(xiàn)測(cè)量功能,測(cè)距精確度可以高達(dá)三毫米。超聲波測(cè)試模塊主要由三個(gè)部分組成,分別是超聲波發(fā)射器、控制電路以及接收器。進(jìn)行超聲波測(cè)距模塊的設(shè)計(jì)實(shí)驗(yàn)時(shí)依據(jù)的實(shí)驗(yàn)原理是測(cè)距儀選用TIG,進(jìn)而保證IO高電平信號(hào)可以不高于10 μs,保證高電平信號(hào)后模塊會(huì)主動(dòng)將八個(gè)40k赫茲方波發(fā)送,同時(shí)檢測(cè)信號(hào)的返回情況,如果系統(tǒng)內(nèi)返回了某一個(gè)信號(hào),就可以將信號(hào)直接從回波端口向高電平輸出。一般來說,超聲波測(cè)距系統(tǒng)的測(cè)量距離等于高電平信號(hào)輸出時(shí)間乘以聲速除以2。每一個(gè)系統(tǒng)的設(shè)計(jì)在實(shí)際運(yùn)行之前都需要進(jìn)行測(cè)試,該系統(tǒng)實(shí)驗(yàn)的程序由兩個(gè)函數(shù)共同組成。實(shí)際距離測(cè)量過程中,需要設(shè)置定時(shí)器進(jìn)行定時(shí)測(cè)量,經(jīng)公式計(jì)算得出結(jié)論:當(dāng)信號(hào)的中斷次數(shù)達(dá)到兩千五百次時(shí)計(jì)時(shí)器現(xiàn)實(shí)的時(shí)間為125ms。超聲波測(cè)距系統(tǒng)在進(jìn)行實(shí)際測(cè)量時(shí),往往由于頻率的不同,定時(shí)器的初始值會(huì)存在一定的差異,這會(huì)對(duì)超聲波測(cè)距系統(tǒng)的測(cè)量結(jié)果產(chǎn)生一定的影響。
4.3.4 智能報(bào)警電路模塊設(shè)計(jì)
基于單片機(jī)的超聲波測(cè)距系統(tǒng)中的特點(diǎn)之一就是智能報(bào)警系統(tǒng),這個(gè)模塊主要由單片機(jī)輸出信號(hào)進(jìn)行控制,使蜂鳴器實(shí)時(shí)報(bào)警。但是,單片機(jī)具有一個(gè)巨大的缺點(diǎn),就是輸出信號(hào)較弱,想要使蜂鳴器實(shí)現(xiàn)正常的工作就必須增強(qiáng)單片機(jī)的驅(qū)動(dòng)能力,這就需要用到三極管這個(gè)元件。在這個(gè)超聲波測(cè)距系統(tǒng)報(bào)警電路模塊的設(shè)計(jì)中,采用了三個(gè)元件,分別是一個(gè)三極管元件、一個(gè)報(bào)警器元件以及一個(gè)2k的電阻元件,將三個(gè)元件共同接入到引腳上,進(jìn)而組成了智能聲音報(bào)警電路。
系統(tǒng)的軟件設(shè)計(jì)與硬件設(shè)計(jì)一同組成了系統(tǒng)詳細(xì)設(shè)計(jì),在超聲波測(cè)距系統(tǒng)正式啟動(dòng)之后,系統(tǒng)會(huì)進(jìn)行自動(dòng)的初始化環(huán)節(jié),之后比較設(shè)定值與實(shí)際的測(cè)量距離,如果測(cè)量距離大于設(shè)定值,則會(huì)將系統(tǒng)程序返回初始化狀態(tài),相反的,如果測(cè)量距離小于設(shè)定值,系統(tǒng)就會(huì)自動(dòng)啟動(dòng)聲音報(bào)警器,之后再次進(jìn)行距離的比較,如果對(duì)比結(jié)果仍舊大于設(shè)定距離就可以自動(dòng)結(jié)束報(bào)警器(圖2)。
一個(gè)系統(tǒng)想要在實(shí)際工作中得到有效的應(yīng)用,就必須要在正式投入使用之前不斷的進(jìn)行程序的調(diào)試及系統(tǒng)的測(cè)試,盡可能的提高系統(tǒng)的測(cè)量精確度。在進(jìn)行測(cè)試使用之后,可以利用傳統(tǒng)的測(cè)量距離的工具,例如刻度尺進(jìn)行系統(tǒng)測(cè)量距離的核對(duì),觀察系統(tǒng)是否符合實(shí)際,不斷調(diào)整系統(tǒng),不斷完善系統(tǒng)。本系統(tǒng)設(shè)計(jì)的要求主要針對(duì)測(cè)距的范圍及精度進(jìn)行,系統(tǒng)分析與調(diào)試應(yīng)圍繞著兩個(gè)參數(shù)開展。相對(duì)偏差絕對(duì)值的計(jì)算公式為:(真實(shí)值-測(cè)量值)/真實(shí)值*100%。分析上圖的測(cè)量數(shù)據(jù),可以發(fā)現(xiàn),本系統(tǒng)在設(shè)計(jì)上是較為合理的,誤差控制在滿足設(shè)計(jì)小于十厘米的可控范圍內(nèi),因此,該基于單片機(jī)的測(cè)距系統(tǒng)設(shè)計(jì)方案可行。
綜上所述,基于單片機(jī)的超聲波測(cè)距系統(tǒng)的設(shè)計(jì)對(duì)測(cè)距工作的發(fā)展有著極其重要的作用,本文對(duì)系統(tǒng)的電路設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)以及報(bào)警系統(tǒng)設(shè)計(jì)等多個(gè)模塊的設(shè)計(jì)思路進(jìn)行了詳細(xì)的描述,該系統(tǒng)可以實(shí)現(xiàn)測(cè)距人員無接觸的測(cè)量需求,對(duì)近距離的障礙物進(jìn)行距離的實(shí)時(shí)測(cè)量,不僅操作簡(jiǎn)單,同時(shí)具有極強(qiáng)的可靠性。因此,該系統(tǒng)可以廣泛應(yīng)用于現(xiàn)實(shí)生活中,例如倒車?yán)走_(dá)等等,同時(shí)為我國(guó)的無線測(cè)距發(fā)展帶來的新靈感。