新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于超聲波傳感器的測距系統設計

        基于超聲波傳感器的測距系統設計

        ——
        作者: 時間:2007-01-26 來源:《EDN電子設計技術》 收藏
        安全避障是移動機器人研究的一個基本問題。障礙物與機器人之間距離的獲得是研究安全避障的前提,超聲波傳感器以其信息處理簡單、價格低廉、硬件容易實現等優點,被廣泛用作測距傳感器。本超聲波測距系統選用了senscomp公司生產的polaroid 6500系列超聲波距離模塊和600系列傳感器,微處理器采用了atmel公司的at89c51。本文對此超聲波測距系統進行了詳細的分析與介紹。

        1、 超聲波傳感器及其測距原理

        本文引用地址:http://www.104case.com/article/21138.htm

        超聲波是指頻率高于20khz的機械波[1]。為了以超聲波作為檢測手段,必須產生超生波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習慣上稱為超聲波換能器或超聲波探頭。超聲波傳感器有發送器和接收器,但一個超聲波傳感器也可具有發送和接收聲波的雙重作用。超聲波傳感器是利用壓電效應[1]的原理將電能和超聲波相互轉化,即在發射超聲波的時候,將電能轉換,發射超聲波;而在收到回波的時候,則將超聲振動轉換成電信號。

        超聲波測距的原理一般采用渡越時間法tof(time of flight)[2]。首先測出超聲波從發射到遇到障礙物返回所經歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離,即

        1、 硬件電路設計

        我們設計的超聲波測距系統由polaroid 600系列傳感器、polaroid 6500系列超聲波距離模塊和at89c51單片機構成。

        2.1 polaroid 600系列傳感器

        此超聲波傳感器是集發送與接收一體的一種傳感器。傳感器里面有一個圓形的薄片,薄片的材料是塑料,在其正面涂了一層金屬薄膜,在其背面有一個鋁制的后板。薄片和后板構成了一個電容器,當給薄片加上頻率為49.4khz、電壓為300vac pk-pk的方波電壓時,薄片以同樣的頻率震動,從而產生頻率為49.4khz的超聲波。當接收回波時,polaroid 6500內有一個調諧電路,使得只有頻率接近49.4khz的信號才能被接收,而其它頻率的信號則被過濾。

        polaroid 600超聲傳感器發送的超聲波具有角度為30度的波束角[3],如圖1所示:

        超聲波傳感器既可以作為發射器又可以作為接收器,傳感器用一段時間發射一串超聲波束,只有待發送結束后才能啟動接收,設發送波束的時間為d,則在d時間內從物體反射回的信號就無法捕捉;另外,超聲波傳感器有一定的慣性,發送結束后還留有一定的余振,這種余振經換能器同樣產生電壓信號,擾亂了系統捕捉返回信號的工作。因此,在余振未消失以前,還不能啟動系統進行回波接收,以上兩個原因造成了超聲傳感器具有測量一定的測量范圍。此超聲波最近可以測量37cm。

        2.2 polaroid 6500系列超聲波距離模塊

        polaroid 6500系列超聲波距離模塊的硬件電路如圖2所示:

        tl851是一個經濟的數字12步測距控制集成電路。內部有一個420khz的陶瓷晶振,6500系列超聲波距離模塊開始工作時,在發送的前16個周期,陶瓷晶振被8.5分頻,形成49.4khz的超聲波信號,然后通過三極管q1和變壓器t1輸送至超聲波傳感器。發送之后陶瓷晶振被4.5分頻,以供單片機定時用。tl852是專門為接收超聲波而設計的芯片。因為返回的超聲波信號比較微弱,需要進行放大才能被單片機接收,tl852主要提供了放大電路,當tl852接收到4個脈沖信號時,就通過rec給tl851發送高電平表明超聲波已經接收。

        2.3 at89c51單片機

        本系統采用at89c51來實現對polaroid 600系列傳感器和polaroid 6500系列超聲波距離模塊的控制。單片機通過p1.0引腳經反相器來控制超聲波的發送,然后單片機不停的檢測int0引腳,當int0引腳的電平由高電平變為低電平時就認為超聲波已經返回。計數器所計的數據就是超聲波所經歷的時間,通過換算就可以得到傳感器與障礙物之間的距離。 超聲波測距的硬件示意圖如圖3所示:

        3、系統軟件設計

        系統程序流程圖如圖4所示:

        工作時,微處理器at89c51先把p1.0置0,啟動超聲波傳感器發射超聲波,同時啟動內部定時器t0開始計時。由于我們采用的超聲波傳感器是收發一體的,所以在發送完16個脈沖后超聲波傳感器還有余震,為了從返回信號識別消除超聲波傳感器的發送信號,要檢測返回信號必須在啟動發射信號后2.38ms才可以檢測,這樣就可以抑制輸出得干擾。當超聲波信號碰到障礙物時信號立刻返回,微處理器不停的掃描int0引腳,如果int0接收的信號由高電平變為低電平,此時表明信號已經返回,微處理器進入中斷關閉定時器。再把定時器中的數據經過換算就可以得出超聲波傳感器與障礙物之間的距離。

        4、實驗數據處理

        由于受環境溫度、濕度的影響,超聲傳感器的測量值與實際值總有一些偏差,表1列出了本超聲測距系統測量值與對應的實際值:

        表1超聲測距系統測量值與實際值 單位:cm

        從表中的數據可以看出,測量值總是比實際值大出大約7cm,經過分析原因主要有三個方面:第一方面,超聲波傳感器測得的數據受環境溫度的影響;第二方面,指令運行需占用一定的時間而使得測量的數據偏大;第三方面,為了防止其他信號的干擾,單片機開始計數時,驅動電路發送16個脈沖串。對于單個回聲的方式,當驅動電路接收到碰到障礙物返回的第四個脈沖時就停止計數,所以最終測得的時間比實際距離所對應的時間多出四個脈沖發送的時間。為了減小測量值與實際值的偏差,我們采用最小二乘法[4~5]對表1的數據進行修正。經過擬合,我們得到下面的方程:

        y=1.0145x-9.3354 (其中:y為實際值,x為測量值)

        修正后本超聲波測距系統測量值與實際值的對應關系如表2所示:

        表2 修正后超聲測距系統測量值與實際值 單位:cm

        從修正后的數據我們可以看出,系統的測量誤差在±2%以內,滿足我們的測量要求。

        5、結論

        利用超聲波傳感器進行測距,其中主要的就是要保證在電路設計上一定要滿足電路工作的可靠性、穩定性。經過實驗與分析,我們認為用6500系列距離模塊和600系列超聲波傳感器進行距離的測量簡單、經濟、可靠,測得數據的誤差比較小。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 高唐县| 普安县| 静乐县| 汾阳市| 丽水市| 财经| 宜春市| 凤城市| 滨州市| 西青区| 福州市| 浦北县| 高台县| 阿勒泰市| 呼玛县| 扶余县| 延津县| 淄博市| 百色市| 威海市| 阳西县| 遂溪县| 乐业县| 平湖市| 延吉市| 卢湾区| 噶尔县| 阳江市| 密山市| 台前县| 屯留县| 平利县| 木兰县| 刚察县| 洛宁县| 岳普湖县| 新田县| 革吉县| 满洲里市| 色达县| 新乐市|