基于超聲波傳感器的測距系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
安全避障是移動機(jī)器人研究的一個基本問題。障礙物與機(jī)器人之間距離的獲得是研究安全避障的前提,超聲波傳感器以其信息處理簡單、價格低廉、硬件容易實現(xiàn)等優(yōu)點(diǎn),被廣泛用作測距傳感器。本超聲波測距系統(tǒng)選用了SensComp公司生產(chǎn)的Polaroid 6500系列超聲波距離模塊和600系列傳感器,微處理器采用了ATMEL公司的AT89C51。本文對此超聲波測距系統(tǒng)進(jìn)行了詳細(xì)的分析與介紹。
1、 超聲波傳感器及其測距原理
超聲波是指頻率高于20KHz的機(jī)械波[1]。為了以超聲波作為檢測手段,必須產(chǎn)生超生波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習(xí)慣上稱為超聲波換能器或超聲波探頭。超聲波傳感器有發(fā)送器和接收器,但一個超聲波傳感器也可具有發(fā)送和接收聲波的雙重作用。超聲波傳感器是利用壓電效應(yīng)[1]的原理將電能和超聲波相互轉(zhuǎn)化,即在發(fā)射超聲波的時候,將電能轉(zhuǎn)換,發(fā)射超聲波;而在收到回波的時候,則將超聲振動轉(zhuǎn)換成電信號。
超聲波測距的原理一般采用渡越時間法TOF(time of flight)[2]。首先測出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離,即
1、硬件電路設(shè)計
我們設(shè)計的超聲波測距系統(tǒng)由Polaroid 600系列傳感器、Polaroid 6500系列超聲波距離模塊和AT89C51單片機(jī)構(gòu)成。
2.1 Polaroid 600系列傳感器
此超聲波傳感器是集發(fā)送與接收一體的一種傳感器。傳感器里面有一個圓形的薄片,薄片的材料是塑料,在其正面涂了一層金屬薄膜,在其背面有一個鋁制的后板。薄片和后板構(gòu)成了一個電容器,當(dāng)給薄片加上頻率為49.4kHz、電壓為300VAC pk-pk的方波電壓時,薄片以同樣的頻率震動,從而產(chǎn)生頻率為49.4kHz的超聲波。當(dāng)接收回波時,Polaroid 6500內(nèi)有一個調(diào)諧電路,使得只有頻率接近49.4kHz的信號才能被接收,而其它頻率的信號則被過濾。
Polaroid 600超聲傳感器發(fā)送的超聲波具有角度為30度的波束角[3],如圖1所示:
圖1 波束角
超聲波傳感器既可以作為發(fā)射器又可以作為接收器,傳感器用一段時間發(fā)射一串超聲波束,只有待發(fā)送結(jié)束后才能啟動接收,設(shè)發(fā)送波束的時間為D,則在D時間內(nèi)從物體反射回的信號就無法捕捉;另外,超聲波傳感器有一定的慣性,發(fā)送結(jié)束后還留有一定的余振,這種余振經(jīng)換能器同樣產(chǎn)生電壓信號,擾亂了系統(tǒng)捕捉返回信號的工作。因此,在余振未消失以前,還不能啟動系統(tǒng)進(jìn)行回波接收,以上兩個原因造成了超聲傳感器具有測量一定的測量范圍。此超聲波最近可以測量37cm。
2.2 Polaroid 6500系列超聲波距離模塊
Polaroid 6500系列超聲波距離模塊的硬件電路如圖2所示:
圖2 Polaroid 6500系列超聲波距離模塊的硬件電路
TL851是一個經(jīng)濟(jì)的數(shù)字12步測距控制集成電路。內(nèi)部有一個420KHz的陶瓷晶振,6500系列超聲波距離模塊開始工作時,在發(fā)送的前16個周期,陶瓷晶振被8.5分頻,形成49.4KHz的超聲波信號,然后通過三極管Q1和變壓器T1輸送至超聲波傳感器。發(fā)送之后陶瓷晶振被4.5分頻,以供單片機(jī)定時用。TL852是專門為接收超聲波而設(shè)計的芯片。因為返回的超聲波信號比較微弱,需要進(jìn)行放大才能被單片機(jī)接收,TL852主要提供了放大電路,當(dāng)TL852接收到4個脈沖信號時,就通過REC給TL851發(fā)送高電平表明超聲波已經(jīng)接收。
2.3 AT89C51單片機(jī)
本系統(tǒng)采用AT89C51來實現(xiàn)對Polaroid 600系列傳感器和Polaroid 6500系列超聲波距離模塊的控制。單片機(jī)通過P1.0引腳經(jīng)反相器來控制超聲波的發(fā)送,然后單片機(jī)不停的檢測INT0引腳,當(dāng)INT0引腳的電平由高電平變?yōu)榈碗娖綍r就認(rèn)為超聲波已經(jīng)返回。計數(shù)器所計的數(shù)據(jù)就是超聲波所經(jīng)歷的時間,通過換算就可以得到傳感器與障礙物之間的距離。 超聲波測距的硬件示意圖如圖3所示:
圖3 超聲波測距的硬件示意圖
3、系統(tǒng)軟件設(shè)計
系統(tǒng)程序流程圖如圖4所示:
圖4超聲波測距程序流程圖
工作時,微處理器AT89C51先把P1.0置0,啟動超聲波傳感器發(fā)射超聲波,同時啟動內(nèi)部定時器T0開始計時。由于我們采用的超聲波傳感器是收發(fā)一體的,所以在發(fā)送完16個脈沖后超聲波傳感器還有余震,為了從返回信號識別消除超聲波傳感器的發(fā)送信號,要檢測返回信號必須在啟動發(fā)射信號后2.38ms才可以檢測,這樣就可以抑制輸出得干擾。當(dāng)超聲波信號碰到障礙物時信號立刻返回,微處理器不停的掃描INT0引腳,如果INT0接收的信號由高電平變?yōu)榈碗娖剑藭r表明信號已經(jīng)返回,微處理器進(jìn)入中斷關(guān)閉定時器。再把定時器中的數(shù)據(jù)經(jīng)過換算就可以得出超聲波傳感器與障礙物之間的距離。
4、實驗數(shù)據(jù)處理
由于受環(huán)境溫度、濕度的影響,超聲傳感器的測量值與實際值總有一些偏差,表1列出了本超聲測距系統(tǒng)測量值與對應(yīng)的實際值:
表1超聲測距系統(tǒng)測量值與實際值 單位:cm
從表中的數(shù)據(jù)可以看出,測量值總是比實際值大出大約7cm,經(jīng)過分析原因主要有三個方面:第一方面,超聲波傳感器測得的數(shù)據(jù)受環(huán)境溫度的影響;第二方面,指令運(yùn)行需占用一定的時間而使得測量的數(shù)據(jù)偏大;第三方面,為了防止其他信號的干擾,單片機(jī)開始計數(shù)時,驅(qū)動電路發(fā)送16個脈沖串。對于單個回聲的方式,當(dāng)驅(qū)動電路接收到碰到障礙物返回的第四個脈沖時就停止計數(shù),所以最終測得的時間比實際距離所對應(yīng)的時間多出四個脈沖發(fā)送的時間。為了減小測量值與實際值的偏差,我們采用最小二乘法[4~5]對表1的數(shù)據(jù)進(jìn)行修正。經(jīng)過擬合,我們得到下面的方程:
y=1.0145x-9.3354? (其中:y為實際值,x為測量值)
修正后本超聲波測距系統(tǒng)測量值與實際值的對應(yīng)關(guān)系如表2所示:
表2 修正后超聲測距系統(tǒng)測量值與實際值 單位:cm
從修正后的數(shù)據(jù)我們可以看出,系統(tǒng)的測量誤差在±2%以內(nèi),滿足我們的測量要求。
5、結(jié)論
利用超聲波傳感器進(jìn)行測距,其中主要的就是要保證在電路設(shè)計上一定要滿足電路工作的可靠性、穩(wěn)定性。經(jīng)過實驗與分析,我們認(rèn)為用6500系列距離模塊和600系列超聲波傳感器進(jìn)行距離的測量簡單、經(jīng)濟(jì)、可靠,測得數(shù)據(jù)的誤差比較小。