超聲波測距系統(tǒng)中單片機(jī)的應(yīng)用
引言
本文引用地址:http://www.ex-cimer.com/article/172646.htm在自主行走機(jī)器人系統(tǒng)中,機(jī)器人要實現(xiàn)在未知和不確定環(huán)境下行走,必須實時采集環(huán)境信息,以實現(xiàn)避障和導(dǎo)航,這必須依靠能實現(xiàn)感知環(huán)境信息的傳感器系統(tǒng)來實現(xiàn)。視覺、紅外、激光、超聲波等傳感器都在行走機(jī)器人中得到廣泛應(yīng)用。由于超聲波測距方法設(shè)備簡單、價格便宜、體積小、設(shè)計簡單、易于做到實時控制,并且在測量距離、測量精度等方面能達(dá)到工業(yè)實用的要求,因此得到了廣泛的應(yīng)用。本文所介紹的機(jī)器人采用三方超聲波測距系統(tǒng),該系統(tǒng)可為機(jī)器人識別其運動的前方、左方和右方環(huán)境而提供關(guā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?/font>
本測量系統(tǒng)采用第二種方法,由于測量精度要求不是特別高,所以可以認(rèn)為溫度基本不變。
本系統(tǒng)以PIC16F877單片機(jī)為核心,通過軟件編程實現(xiàn)其對外圍電路的實時控制,并提供給外圍電路所需的信號,包括頻率振動信號、數(shù)據(jù)處理信號等,從而簡化了外圍電路,且移植性好。系統(tǒng)硬件電路方框圖見圖1。
由于本系統(tǒng)只需要清楚機(jī)器人前方、左方、右方是否有障礙物,并不需要知道障礙物與機(jī)器人的具體距離,因此不需要顯示電路,只需要設(shè)定一距離閥值,使障礙物與機(jī)器人的距離達(dá)到某一值時,單片機(jī)控制機(jī)器人電機(jī)停轉(zhuǎn),這可通過軟件編程實現(xiàn)。
2 超聲波發(fā)射電路
超聲波的中心頻率為40kHz,該頻率可以通過以下程序產(chǎn)生(部分源程序):
評論