摘? 要: 介紹一種基于單片機(jī)控制的三路超聲測(cè)距系統(tǒng)的構(gòu)成,、工作原理和誤差分析,。利用本系統(tǒng)及其設(shè)計(jì)方法可以作為農(nóng)業(yè)機(jī)器人輔助視覺(jué)系統(tǒng),。
關(guān)鍵詞: 機(jī)器人 超聲波測(cè)距? 單片機(jī)? 串行通訊? 數(shù)據(jù)采集
?
機(jī)器人作為一種能代替人工作業(yè)的智能機(jī)器,有著廣泛的應(yīng)用前景。其關(guān)鍵技術(shù)取決于機(jī)器人視覺(jué)系統(tǒng)設(shè)計(jì)的精確與否,。超聲波傳感器以其價(jià)格低廉、硬件容易實(shí)現(xiàn)等優(yōu)點(diǎn),被廣泛用作測(cè)距傳感器,實(shí)現(xiàn)定位及環(huán)境建模,。超聲波測(cè)距作為輔助視覺(jué)系統(tǒng)與其他視覺(jué)系統(tǒng)(如CCD圖象傳感器)配合使用,可實(shí)現(xiàn)整個(gè)視覺(jué)功能[7],。
超聲測(cè)距原理很簡(jiǎn)單,一般采用渡越時(shí)間法:即D=CT/2,其中D為機(jī)器人與被測(cè)物之間的距離,C為聲波在介質(zhì)中的傳播速度(C=331.4m/s,t為攝氏溫度),T為超聲發(fā)射到返回的時(shí)間間隔。本超聲測(cè)距系統(tǒng)共有3對(duì)超聲換能器,分別放在智能移動(dòng)車的上,、中,、下三個(gè)位置上。本系統(tǒng)采用一片89C51單片機(jī)對(duì)三路超聲信號(hào)進(jìn)行循環(huán)采集,并將數(shù)據(jù)送到數(shù)據(jù)緩沖區(qū)存儲(chǔ)[1,2],。上位機(jī)采用PC-586,。當(dāng)上位機(jī)需要數(shù)據(jù)時(shí),向下位機(jī)發(fā)出申請(qǐng),下位機(jī)通過(guò)中斷的方式向上位機(jī)發(fā)送數(shù)據(jù)。上位機(jī)與下位機(jī)通過(guò)RS-232串行口相連,。
1 系統(tǒng)硬件設(shè)計(jì)
為了能在測(cè)量距離的同時(shí)判斷出物體的大致形狀,應(yīng)設(shè)計(jì)成多傳感器測(cè)距系統(tǒng),。經(jīng)分析可知,頻率為40kHz左右的超聲波在空氣中傳播的效率最佳;同時(shí),為了方便處理,發(fā)射的超聲波被調(diào)制成40kHz左右、具有一定間隔的調(diào)制脈沖波信號(hào),。該測(cè)距系統(tǒng)結(jié)構(gòu)框圖如圖1所示,。由圖可見(jiàn),測(cè)距系統(tǒng)由超聲波發(fā)送、接收,、時(shí)間計(jì)測(cè),、微機(jī)控制和溫度測(cè)量五個(gè)部分組成。
?
1.1 超聲波發(fā)送
這部分包括超聲波信號(hào)的產(chǎn)生,、多路選擇及換能器等環(huán)節(jié),。
超聲波發(fā)送脈沖如圖2所示。40kHz的超聲波發(fā)送脈沖信號(hào)由單片機(jī)89C51的P1.0口送出,其脈沖寬度及脈沖間隔均由軟件控制,。脈沖寬度約為125μs~200μs,,即在一個(gè)調(diào)制脈沖內(nèi)包含5~8個(gè)40kHz的方波。脈沖發(fā)送間隔取決于要求測(cè)量的最大距離及測(cè)量通道數(shù),。本系統(tǒng)有三路測(cè)距通道,采用分時(shí)工作,按上,、中、下的順序循環(huán)測(cè)距,。若在有效測(cè)距范圍內(nèi)有被測(cè)物的話,則在后一路超聲波束發(fā)出之前應(yīng)當(dāng)接收到前一路發(fā)出的反射波,否則認(rèn)為前一路無(wú)被測(cè)物,。因此按有效測(cè)距范圍可以估算出最短的脈沖間隔發(fā)送時(shí)間。例如:最大測(cè)距范圍為5m時(shí),脈沖間隔時(shí)間t=2s/v=2×5/340≈30ms,實(shí)際應(yīng)取t≥30ms,。
?
?
發(fā)送的超聲波脈沖經(jīng)多路選擇開(kāi)關(guān)CD4052按序分別送到上,、中、下三路發(fā)送換能器上,。采用緩沖器CD4050是考慮用其兩個(gè)門來(lái)驅(qū)動(dòng)一路發(fā)送換能器,以加大發(fā)射驅(qū)動(dòng)能力,。
1.2?超聲波接收
這部分由接收換能器、多路選擇開(kāi)關(guān),、比較及控制等環(huán)節(jié)組成,。由于在距離較遠(yuǎn)的情況下,聲的回波很弱,因而轉(zhuǎn)換為電信號(hào)的幅值也較小,為此要求將信號(hào)放大60萬(wàn)倍左右。采用三級(jí)放大:前兩級(jí)各放大100倍,采用高速精密放大器LM318,其帶寬為15MHz,放大倍數(shù)為100倍時(shí),能充分滿足要求;第三級(jí)采用LF353運(yùn)算放大器,帶寬為4MHz,對(duì)于62倍的放大倍數(shù),能充分滿足條件[3,,6],。放大后的交流信號(hào)經(jīng)光電隔離送入比較器,比較器的作用是將交流信號(hào)整形輸出一個(gè)方波信號(hào),此方波信號(hào)上升沿使D觸發(fā)器觸發(fā),向CPU發(fā)中斷申請(qǐng)。在中斷服務(wù)程序中,讀取時(shí)間計(jì)數(shù)器的計(jì)數(shù)值,并結(jié)合溫度換算出的速度算出發(fā)射到接收的距離,。圖3給出了一路超聲波接收電路原理圖(略去多路選擇開(kāi)關(guān)),。
?
?
1.3 時(shí)間計(jì)測(cè)
超聲波從發(fā)射到接收的間隔時(shí)間的測(cè)定是由單片機(jī)內(nèi)部的計(jì)數(shù)器T1來(lái)完成的。在調(diào)試過(guò)程中出現(xiàn)的發(fā)送部分與接收部分的直接串?dāng)_問(wèn)題是由于換能器之間的距離不大,有部分聲波未經(jīng)被測(cè)物就直接繞射到接收換能器上。從發(fā)射開(kāi)始一直到“虛假反射波”結(jié)束[5]這段時(shí)間,通過(guò)控制觸發(fā)器(74LS74)不能觸發(fā),從而不會(huì)發(fā)中斷申請(qǐng),可有效躲避干擾,但也會(huì)形成所謂的“盲區(qū)”,。本系統(tǒng)的盲區(qū)約為20cm左右,。
1.4 微機(jī)控制部分
由單片機(jī)控制的多路選擇開(kāi)關(guān)來(lái)決定上、中,、下三個(gè)通道分時(shí)工作的順序,。CD4052的X側(cè)選擇發(fā)送通道,Y側(cè)選擇接收通道,由89C51的P1.1和P1.2按順序發(fā)出通道選擇信號(hào),接到CD4052的A、B端,使發(fā)送通道與接收通道一一對(duì)應(yīng)地接通,。
由于受環(huán)境溫度以及超聲固有寬波束角等因素的影響,超聲傳感器所測(cè)量的值與實(shí)際值總有一些誤差,。本超聲測(cè)距系統(tǒng)采用曲線擬合的最小二乘法對(duì)測(cè)量數(shù)據(jù)進(jìn)行擬合,使其精度達(dá)到±4cm左右。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 超聲數(shù)據(jù)的采集與處理軟件
本系統(tǒng)軟件分兩部分:主程序和中斷服務(wù)程序,。主程序完成系統(tǒng)初始化,、選擇通路號(hào)、控制發(fā)射和接收超聲波等,。主程序流程圖如圖4所示。
?
?
中斷服務(wù)程序包括內(nèi)部T0中斷和外部INT0,、INT1中斷服務(wù)程序,。T0設(shè)置為30ms中斷一次,其任務(wù)就是每隔30ms產(chǎn)生5~8個(gè)40kHz的方波作為超聲脈沖并按序送到三個(gè)通道,即產(chǎn)生如圖2所示的超聲波發(fā)射脈沖,圖2也給出了一個(gè)通道的工作時(shí)序圖。T0中斷服務(wù)程序流程圖如圖5所示,。INT0中斷子程序讀取A/D轉(zhuǎn)換結(jié)果,并將相應(yīng)數(shù)值轉(zhuǎn)換為環(huán)境溫度值;INT1停止T0,、T1計(jì)數(shù),根據(jù)T1內(nèi)容計(jì)算時(shí)間T,并進(jìn)行最終距離的計(jì)算。先計(jì)算超聲波傳播速度:C=331.4,再計(jì)算距離:D=CT/2,并將計(jì)算結(jié)果送入緩沖區(qū)以備通訊,。T1工作在方式2,,并設(shè)計(jì)成門控方式。
?
?
2.2 串行通訊程序
為了不影響下位機(jī)完成其他工作,本系統(tǒng)采用下位機(jī)以中斷的方式向上位機(jī)發(fā)送測(cè)距數(shù)據(jù),在測(cè)距主程序中開(kāi)串行口中斷,。進(jìn)入中斷程序后,仍采用查詢方式發(fā)送數(shù)據(jù),。
上位機(jī)(PC-586)以子程序的形式給出接收程序。若系統(tǒng)需要新的測(cè)距值時(shí),就調(diào)用一次接收子程序,。接收子程序框圖如圖6所示,。接收子程序收到一個(gè)數(shù)據(jù)后,判斷數(shù)據(jù)傳輸是否有錯(cuò),若有錯(cuò)就向下位機(jī)發(fā)“01”命令,下位機(jī)收到此命令后,則重新發(fā)送;若傳輸過(guò)程無(wú)錯(cuò),向下位機(jī)發(fā)送“00”命令,下位機(jī)則繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)。
?
?
3 誤差分析
本系統(tǒng)最大測(cè)距誤差在8cm左右,測(cè)距的盲區(qū)為20cm,。測(cè)距誤差主要來(lái)源于以下幾個(gè)方面:
(1)超聲波波束對(duì)探測(cè)目標(biāo)的入射角的影響;
(2)超聲波回波聲強(qiáng)與待測(cè)距離的遠(yuǎn)近有直接關(guān)系,回波也有一定斜率,。而比較器LM311的閾值是一定的,所以實(shí)際測(cè)量時(shí),不一定是第一個(gè)回波的過(guò)零點(diǎn)觸發(fā);
(3)超聲波傳播速度對(duì)測(cè)距的影響。穩(wěn)定準(zhǔn)確的超聲波傳播速度是保證測(cè)量精度的必要條件,波的傳播速度取決于傳播媒質(zhì)的特性,。傳播媒質(zhì)的溫度,、壓力、密度對(duì)聲速都將產(chǎn)生直接的影響,。因此需對(duì)聲速加以修正,。對(duì)于測(cè)距而言,引起聲速變化的主要原因是媒質(zhì)溫度的變化。本文采用聲速預(yù)置和媒質(zhì)溫度測(cè)量相結(jié)合的方法對(duì)聲速進(jìn)行修正,可有效地消除溫度變化對(duì)精度的影響。
影響測(cè)量誤差的因素很多,還包括現(xiàn)場(chǎng)環(huán)境干擾,、時(shí)基脈沖頻率等,。
本系統(tǒng)硬件簡(jiǎn)單、容易實(shí)現(xiàn),、測(cè)距范圍比較大,、測(cè)量誤差可以控制在±4cm左右。超聲測(cè)距系統(tǒng)向上位機(jī)發(fā)送數(shù)據(jù)和下位機(jī)的數(shù)據(jù)采集相互獨(dú)立,可以同時(shí)進(jìn)行,保證了測(cè)距數(shù)據(jù)的實(shí)時(shí)性,。
?
參考文獻(xiàn)
1 何立民. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:航空航天大學(xué)出版社,,1990:28~39
2 沈美明,溫東蟬.IBM-PC匯編語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,,1995:185~197
3 童詩(shī)白.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,,1988:237~249
4 陳維明. 移動(dòng)機(jī)器人監(jiān)督控制和超聲導(dǎo)航[D].北京:清華大學(xué)計(jì)算機(jī)系, 1991
5 張曲光,,郝風(fēng)奇. 微機(jī)控制超聲掃描測(cè)距系統(tǒng)[J].計(jì)算技術(shù)與自動(dòng)化,,1989;2:56~60
6 中國(guó)集成電路大全.集成運(yùn)算放大器[M].北京:國(guó)防工業(yè)出版社, 1985:315~413
7 Abidi M AGonzalez R C.The use of multi-sensor data for robotic application[J].IEEE Transactions on Robotics and Automation,,1990,;6(2):248~256
8 Leonard J J.Directed sonar sensing for mobile robots?navigation [D]. University of Oxford,1990
9 張如洲. 微型計(jì)算機(jī)數(shù)據(jù)采集與處理[M]. 北京:科學(xué)出版社,,1987:462~468