吳 倩
(東南大學(xué)自動化學(xué)院,南京 210096)
定位的傳感器有很多,如視覺、聲納、超聲波、紅外線、羅盤等,這些傳感器中僅超聲波傳感器應(yīng)用于絕對定位中。由于超聲波在空氣中的衰減較大,只適用于較小的范圍。目前超聲波測距已有很成熟的技術(shù),而超聲波定位的研究還在起步階段,且大多都只是研究利用超聲波傳感器在空間中定位單個靜止物體的位置。
本系統(tǒng)在超聲波測距的基礎(chǔ)上,利用FPGA 內(nèi)部高效率的處理能力,使多個超聲波傳感器分時工作并連續(xù)不斷地掃描超聲波傳感器前面一定范圍內(nèi)的障礙物情況,測量得到的數(shù)據(jù)通過FPGA 內(nèi)部處理后可將障礙物的分布情況動態(tài)地顯示在VGA 屏上,通過多個超聲波傳感器之間的協(xié)調(diào)工作達到了實時監(jiān)測超聲波前面動態(tài)情況的效果。本設(shè)計可應(yīng)用于無人場所中移動和靜止物體的定位,如車輛行進路線監(jiān)測,機器人避障等。
超聲波傳感器的發(fā)射端向空氣中發(fā)射特定頻率的超聲波,同時接收端探測來自某個物體的反射波。超聲波測距是通過不斷檢測超聲波發(fā)射后遇到障礙物所反射的回波,從而測出發(fā)射和接收回波的時間差t,然后求出距離s。系統(tǒng)利用FPGA 產(chǎn)生脈沖方波,放大后經(jīng)超聲波探頭產(chǎn)生40KHz的超聲波輸出。由于超聲波傳播速度受溫度T的影響較大,因此系統(tǒng)接入溫度傳感器,計算距離公式為:
系統(tǒng)由FPGA 模塊、VGA 屏定位顯示模塊、LCD測距顯示模塊、溫度傳感器模塊及超聲波傳感器模塊組成。具體如圖1 所示。
圖1 多聲路超聲波障礙物定位系統(tǒng)組成
系統(tǒng)啟動后,由定時模塊產(chǎn)生5 路信號先后送往超聲波傳感器,產(chǎn)生超聲波。由正確回波驗證模塊,傳感器傳播速度模塊,測距換算模塊,VGA 模塊,LCD 模塊構(gòu)成。對于超聲波接收模塊接收的信號,先用正確回波驗證模塊驗證接收信號中是否存在一定連續(xù)數(shù)目的傳感器工作頻率的信號,如是則計算回波時間差,并將結(jié)果送至測距換算模塊,否則不作處理。同時使用溫度傳感器測得的數(shù)據(jù)送往傳感器傳播速度模塊處理可獲得超聲波在環(huán)境中的傳播速度,并將結(jié)果送至測距換算模塊,在測距換算模塊中計算出對應(yīng)的距離數(shù)值,并經(jīng)過VGA 模塊和LCD 模塊的處理后將結(jié)果分別顯示在VGA 屏和LCD 屏上。
FPGA 選 用 Altera 公 司的 Cvclone Ⅱ系 列EP2C8Q208C8N。該芯片有8256個邏輯單元(LE),包括嵌入式18bit ×18bit 乘法器、專用外部存儲器接口電路、4 Kbit 嵌入式存儲器塊、鎖相環(huán)(PLL)和高速差分I/O 能力,是一款高速度、高密度、高性能、低成本的FPGA。FPGA 包括超聲波發(fā)送處理模塊、超聲波接收處理模塊、VGA 模塊、溫度傳感器模塊等。
為有效測量障礙物位置,5個超聲波傳感器成對使用,每對傳感器并排擺放。程序啟動后,由定時選擇模塊根據(jù)設(shè)定時間間隔自動產(chǎn)生5 路信號,連續(xù)不斷地按順序依次使能每個傳感器發(fā)送模塊,使得同一個時刻只使能對應(yīng)的傳感器接收模塊接收回波信號。
由FPGA 產(chǎn)生40KHz 脈沖,輸出放大后驅(qū)動超聲波發(fā)送器工作。超聲波接收電路接收到回波信號后,經(jīng)過兩級NE5532 對信號放大和LM311 比較電路的處理得到FPGA 可識別的幅值為3.3V的脈沖信號,并通過I/O 接口送回FPGA 內(nèi)進行處理。超聲波接收電路如圖2 所示。
圖2 超聲波接收模塊
為增大掃描范圍,5 對超聲波傳感器成同圓心的圓弧排列,角度間隔45°,建立坐標系如圖3 所示。根據(jù)每個超聲波擺放位置與圓心之間的角度,可將每個傳感器測得的距離換算成屏幕坐標。
測得障礙物坐標后,通過VGA 模塊連續(xù)不斷地行掃描,場掃描,將坐標點在屏幕中標注出來以表示障礙物當前的位置,當障礙物在移動時,行掃描,場掃描可以及時地更新障礙物的位置。
軟件用硬件語言VHDL,Verilog 編寫,整個軟件采用模塊化設(shè)計,主程序由超聲波發(fā)射子程序、回波處理子程序、VGA 顯示子程序等模塊組成。程序采用對5個超聲波發(fā)射接收回路的循環(huán)檢測方式,計算各通道所測結(jié)果并保存于存儲器,并將所測結(jié)果的數(shù)值及所計算的位置顯示在VGA 屏中。主程序流程圖設(shè)計如圖4 所示。
設(shè)計中連續(xù)不斷地按順序依次使能每個傳感器發(fā)送模塊,為防止5個超聲波傳感器之間的信號相互干擾而造成誤測現(xiàn)象,采用在每個超聲波發(fā)送器工作時只發(fā)送10個周期數(shù)目的驅(qū)動信號,且用定時器對每個超聲波的工作時間做了限定,使設(shè)定范圍內(nèi)的回波信號都能返回收到且使環(huán)境中反射多次的超聲波信號在該時間內(nèi)衰減掉,保證當下一個超聲波發(fā)送器使能時不受其他超聲波干擾信號的影響。超聲波發(fā)送子程序流程圖如圖5 所示。
圖5 超聲波發(fā)送子程序流程圖
由于采用的是超聲波發(fā)送和接收分開處理的形式,所以采用FPGA 給發(fā)送提供驅(qū)動信號的同時,也在不斷的檢測接收端是否接收到信號。當接收到待測信號后,軟件中通過檢測待測信號兩個下降沿的間隔來判斷其周期,通過記錄待測信號一個周期所包含的系統(tǒng)晶振50MHz的數(shù)目來判斷是否為40KHz,當連續(xù)接收到5個周期的40KHz的脈沖時,則認為接收到正確的回波信號。設(shè)計如圖6 所示。
圖6 回波處理子程序流程圖
系統(tǒng)利用FPGA為控制器的多聲路超聲波障礙物定位系統(tǒng),可實時監(jiān)視范圍內(nèi)障礙物空間分布情況及物體的移動情況。在實際應(yīng)用中本設(shè)計工作穩(wěn)定可靠,反應(yīng)敏捷,能滿足2m 范圍內(nèi)較高精度的測距要求,且成本較低,有良好的性價比,經(jīng)適當改進后也可用于機器人的輔助視覺系統(tǒng)和其它短距離測距要求及相關(guān)系統(tǒng)中。
[1]吳超.基于FPGA的超聲波測距系統(tǒng)[D].武漢:武漢理工大學(xué),2009:20-24.
[2]曾德懷,謝存禧,張鐵,等.行走機器人的超聲波測距系統(tǒng)的研究[J].機械科學(xué)與技術(shù),2004,23(5):613-616.
[3]周光明.基于主動探測的室內(nèi)未知環(huán)境下移動機器人[J].模式識別與人工智能,2006,19(5):591-596.
[4]楊媛,高勇,余寧梅.多聲路高精度超聲波流量測量系統(tǒng)[J].化學(xué)工程,2005,33(6):71-73.
[5]孫艷,孫愛良,王紫婷.基于FPGA的VGA 顯示控制器的實現(xiàn)[J].自動化與儀器儀表,2008,6(2):106-107.
[6]鄭美芳,高曉蓉,王黎,等.基于FPGA的VGA時序彩條信號實現(xiàn)[J].現(xiàn)代電子技術(shù),2009,32(14):90-92.