超聲波傳感器因其測量精度高、 響應快和價格低廉而得到了廣泛應用,傳統應用方式是1 個發射頭對應1 個接收頭 ,也有多個發射頭對應1
個接收頭。但我們在實際應用中發現,如果障礙物的面很大(如墻壁),超聲波傳感器可以用來準確測距,但若將其應用在小車防撞系統中,由于障礙物呈柱狀,而超聲波發射頭有一定的散射角(左右),因此即使障礙物不在小車正前方,超聲波仍能檢測到斜前方回波,這就給智能控制車輛行進帶來困難和誤導,為了解決這一問題,我們提出了一種使用雙接收頭的方案,并從實用角度給出了一套具體控制策略。
2系統的結構流程設計
我們的整個系統需要完成測距,測速,定位,控制小車運動等功能,系統包括如下六部分: 超聲波發射電路, 超聲波接受電路,信號處理器,溫度測量,小車控制電路等五部分。系統結構框圖如圖一所示:
圖1:系統結構框圖
通過單片機產生40k
的方波,經過放大后驅動超聲波傳感器發射頭,從而發出超聲波,遇到前方物體反射后由接收端捕捉,經過對兩個接收頭捕捉時間的計算以及加入溫度補償,判斷最終前方小車的方向與距離,再通過與前次數據差分計算出其相對前車的速度,最后通過速度、距離以及位置三個數據進行智能控制,控制小車轉彎或減速慢行等。
具體的硬件組成為:MCU
采用AT89S52 單片機,P1.0 口輸出超聲波換能器所需的40K 方波信號,經過反相器7404
后驅動傳感器,為了能使超聲波發射得更遠,我們并接了三個發射頭,利用外中斷0
口監測超聲波接收電路輸出的返回信號,回波檢測采用紅外檢測集成芯片CX20106,顯示電路采用簡單的4
位共陽LED數碼管,斷碼用74LS244,位碼用8550 驅動。測溫部分使用18B20 測出當前的環境溫度用以判斷出超聲波傳播的速度。
3 MCU 算法控制
3.1 距離計算與方位判斷
單片機可以計算出發射與接收到超聲波之間的時間,根據測溫系統的實際測溫, 查找出在該對應溫度下的聲速,計算出反射物距離兩接收端的距離。 理論上由以上兩個數據上就可以直接數學推導出該物體的空間位置(如圖2 和公式一、二所示)。