基于AT89S52的防撞小車(chē)系統(tǒng)設(shè)計(jì)
超聲波傳感器因其測(cè)量精度高、 響應(yīng)快和價(jià)格低廉而得到了廣泛應(yīng)用,傳統(tǒng)應(yīng)用方式是1 個(gè)發(fā)射頭對(duì)應(yīng)1 個(gè)接收頭 ,也有多個(gè)發(fā)射頭對(duì)應(yīng)1 個(gè)接收頭。但我們?cè)趯?shí)際應(yīng)用中發(fā)現(xiàn),如果障礙物的面很大(如墻壁),超聲波傳感器可以用來(lái)準(zhǔn)確測(cè)距,但若將其應(yīng)用在小車(chē)防撞系統(tǒng)中,由于障礙物呈柱狀,而超聲波發(fā)射頭有一定的散射角(左右),因此即使障礙物不在小車(chē)正前方,超聲波仍能檢測(cè)到斜前方回波,這就給智能控制車(chē)輛行進(jìn)帶來(lái)困難和誤導(dǎo),為了解決這一問(wèn)題,我們提出了一種使用雙接收頭的方案,并從實(shí)用角度給出了一套具體控制策略。
2系統(tǒng)的結(jié)構(gòu)流程設(shè)計(jì)
我們的整個(gè)系統(tǒng)需要完成測(cè)距,測(cè)速,定位,控制小車(chē)運(yùn)動(dòng)等功能,系統(tǒng)包括如下六部分: 超聲波發(fā)射電路, 超聲波接受電路,信號(hào)處理器,溫度測(cè)量,小車(chē)控制電路等五部分。系統(tǒng)結(jié)構(gòu)框圖如圖一所示:
圖1:系統(tǒng)結(jié)構(gòu)框圖
通過(guò)單片機(jī)產(chǎn)生40k 的方波,經(jīng)過(guò)放大后驅(qū)動(dòng)超聲波傳感器發(fā)射頭,從而發(fā)出超聲波,遇到前方物體反射后由接收端捕捉,經(jīng)過(guò)對(duì)兩個(gè)接收頭捕捉時(shí)間的計(jì)算以及加入溫度補(bǔ)償,判斷最終前方小車(chē)的方向與距離,再通過(guò)與前次數(shù)據(jù)差分計(jì)算出其相對(duì)前車(chē)的速度,最后通過(guò)速度、距離以及位置三個(gè)數(shù)據(jù)進(jìn)行智能控制,控制小車(chē)轉(zhuǎn)彎或減速慢行等。
具體的硬件組成為:MCU 采用AT89S52 單片機(jī),P1.0 口輸出超聲波換能器所需的40K 方波信號(hào),經(jīng)過(guò)反相器7404 后驅(qū)動(dòng)傳感器,為了能使超聲波發(fā)射得更遠(yuǎn),我們并接了三個(gè)發(fā)射頭,利用外中斷0 口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào),回波檢測(cè)采用紅外檢測(cè)集成芯片CX20106,顯示電路采用簡(jiǎn)單的4 位共陽(yáng)LED數(shù)碼管,斷碼用74LS244,位碼用8550 驅(qū)動(dòng)。測(cè)溫部分使用18B20 測(cè)出當(dāng)前的環(huán)境溫度用以判斷出超聲波傳播的速度。
3 MCU 算法控制
3.1 距離計(jì)算與方位判斷
單片機(jī)可以計(jì)算出發(fā)射與接收到超聲波之間的時(shí)間,根據(jù)測(cè)溫系統(tǒng)的實(shí)際測(cè)溫, 查找出在該對(duì)應(yīng)溫度下的聲速,計(jì)算出反射物距離兩接收端的距離。 理論上由以上兩個(gè)數(shù)據(jù)上就可以直接數(shù)學(xué)推導(dǎo)出該物體的空間位置(如圖2 和公式一、二所示)?! ?BR>
圖2 超聲波傳感器空間方位
其中d 為R1 與R2 的距離,z1、z2 分別為物體到各個(gè)接收端的距離 ,如果直接這樣計(jì)算就會(huì)過(guò)于復(fù)雜,普通單片機(jī)處理的話(huà)耗時(shí)較多, 于是我們提出了一種基于計(jì)算二者距離差來(lái)大致判斷物體位置的方法。一般來(lái)講小車(chē)只關(guān)心在車(chē)前方的物體,我們?cè)O(shè)定一個(gè)距離參數(shù)l代表前方障礙物與小車(chē)的水平距離,再設(shè)定一個(gè)距離參數(shù)h,代表前方障礙物與小車(chē)的垂直距離。我們可以由下面的關(guān)系推導(dǎo)出h, l, d與z2-z1的關(guān)系(公式3---公式6)。
評(píng)論