基于PIC16F877單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)
引言
在自主行走機(jī)器人系統(tǒng)中,機(jī)器人要實(shí)現(xiàn)在未知和不確定環(huán)境下行走,必須實(shí)時采集環(huán)境信息,以實(shí)現(xiàn)避障和導(dǎo)航,這必須依靠能實(shí)現(xiàn)感知環(huán)境信息的傳感器系統(tǒng)來實(shí)現(xiàn)。視覺、紅外、激光、超聲波等傳感器都在行走機(jī)器人中得到廣泛應(yīng)用。由于超聲波測距方法設(shè)備簡單、價(jià)格便宜、體積小、設(shè)計(jì)簡單、易于做到實(shí)時控制,并且在測量距離、測量精度等方面能達(dá)到工業(yè)實(shí)用的要求,因此得到了廣泛的應(yīng)用。本文所介紹的機(jī)器人采用三方超聲波測距系統(tǒng),該系統(tǒng)可為機(jī)器人識別其運(yùn)動的前方、左方和右方環(huán)境而提供關(guān)于運(yùn)動距離的信息。
1 超聲波測距原理
超聲波發(fā)生器內(nèi)部由兩個壓電片和一個共振板組成。當(dāng)它的兩極外加脈沖信號,且其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩極間未加外電壓,當(dāng)共振板接收到超聲波時,就成為超聲波接收器。超聲波測距一般有兩種方法:①取輸出脈沖的平均電壓值,該電壓與距離成正比,測量電壓即可測量距離;②測量輸出脈沖的寬度,即發(fā)射超聲波與接收超聲波的時間間隔t,根據(jù)被測距離s=vt?2來得到測量距離,由于超聲波速度v與溫度有關(guān),所以如果溫度變化比較大,應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?/P>
本測量系統(tǒng)采用第二種方法,由于測量精度要求不是特別高,所以可以認(rèn)為溫度基本不變。
本系統(tǒng)以PIC16F877單片機(jī)為核心,通過軟件編程實(shí)現(xiàn)其對外圍電路的實(shí)時控制,并提供給外圍電路所需的信號,包括頻率振動信號、數(shù)據(jù)處理信號等,從而簡化了外圍電路,且移植性好。系統(tǒng)硬件電路方框圖見圖1。
由于本系統(tǒng)只需要清楚機(jī)器人前方、左方、右方是否有障礙物,并不需要知道障礙物與機(jī)器人的具體距離,因此不需要顯示電路,只需要設(shè)定一距離閥值,使障礙物與機(jī)器人的距離達(dá)到某一值時,單片機(jī)控制機(jī)器人電機(jī)停轉(zhuǎn),這可通過軟件編程實(shí)現(xiàn)。
2 超聲波發(fā)射電路
超聲波的中心頻率為40kHz,該頻率可以通過以下程序產(chǎn)生(部分源程序):
2.1 超聲波發(fā)射電路
超聲波發(fā)射電路以PIC16F877為核心,當(dāng)單片機(jī)上電時,單片機(jī)從RA0口產(chǎn)生40kHz的超聲波信號,但是此時該信號無法通過與非門進(jìn)入放大電路使超聲波發(fā)射頭發(fā)射超聲波,只有閉合開關(guān)S1時,從RA1口發(fā)射出一門控信號,該信號的頻率為4kHz,同時啟動單片機(jī)內(nèi)部的定時器TMR1,開始計(jì)數(shù)。該門控信號每發(fā)射一個周期的波形,超聲波就會發(fā)射10個完整的波形,這可由它們的頻率得出。超聲波的周期為1(40kHz)=01025ms,而門控信號的周期為1(4kHz)=0125ms。最后根據(jù)s=vt2求出障礙物與移動機(jī)器人的距離。當(dāng)超聲波接收頭收到反射回來的超聲波時,計(jì)數(shù)器停止計(jì)數(shù),時間t可以根據(jù)計(jì)數(shù)器的計(jì)數(shù)與門控信號的周期求出。RA2口接RS觸發(fā)器,RS觸發(fā)器可以自動控制超聲波的發(fā)射和停止。本系統(tǒng)的電路還包括人工復(fù)位電路,由單片機(jī)的MCLR引腳接S2來控制,超聲波發(fā)射電路圖見圖2。
2.2 門控電路(RS觸發(fā)器)
為實(shí)現(xiàn)對超聲波發(fā)射和接收的自動控制,須在電路中加一門控電路,該門控信號頻率為4kHz,如把輸出脈沖作為閘門信號,讓已知頻率fc的脈沖恰好通過閘門,那么t=NTc,其中,Tc為已知脈沖的周期,N為脈沖的個數(shù)。
門控電路由RS觸發(fā)器組成,當(dāng)輸入端R=1(S=0)時復(fù)位,即輸出端Q=0;當(dāng)R=0(S=1)時置位,即Q=1。RS觸發(fā)器與單片機(jī)的RA2口相連。
2.3 超聲波放大電路
超聲波放大電路由三極管等組成,由于單片機(jī)RA口最多只有20mA~25mA上拉電流,而超聲波發(fā)射器最小需要60mA的電流,所以在與非門后加一級放大電路來放大電流,以完成超聲波的發(fā)射。超聲波放大發(fā)射電路見圖3。
評論