基于激光掃描原理的路徑檢測方案
由公式1可知,要得到小車(chē)的位置偏移y,必需先確定零位偏移ref及直線(xiàn)斜率k。故在軟件中設置自動(dòng)校準環(huán)節:零位校準與斜率校準。具體流程如下:
首先將小車(chē)置于賽道中心,程序計算當前的x值,則零位偏移值ref = -x。然后,將小車(chē)平行移至一固定位置y(如引導線(xiàn)右方12cm),程序計算當前的x值,則斜率k = y / (x +ref)。至此校準環(huán)節完成。
要計算脈沖信號中心點(diǎn)相對于同步信號中心點(diǎn)的偏移量x,需要得到脈沖信號上升沿時(shí)刻s0、下降沿時(shí)刻s1,同步信號起始時(shí)間t0、同步信號結束時(shí)間t1,則有
x=(t1-t0)/2-(s1-s0)/2 (2)
要獲得以上參量,最好方法是利用DG128的輸入捕捉功能(ECT)。DG128總共包括8個(gè)輸入捕捉通道,當任意通道的捕捉事件發(fā)生時(shí),ECT即將當前的計數器值鎖存到相應通道的輸入捕捉寄存器??梢允褂猛ǖ?作為同步信號輸入端,通道1作為脈沖信號輸入端。將通道0,1均設置為中斷允許、任意跳變沿捕捉的方式。脈沖信號中斷程序流程圖如下:
如圖7,index用于保存脈沖個(gè)數(可能檢測到多個(gè)目標),每次同步信號發(fā)生跳變后index被清零,表示一個(gè)掃描周期的開(kāi)始。脈沖信號產(chǎn)生跳變時(shí),即進(jìn)入此中斷程序,首先讀取輸入捕捉寄存器的值(即跳變發(fā)生的時(shí)刻)、之后判斷此跳變是否為本次掃描周期內的首次跳變(index是否等于0),若是,且本次跳變?yōu)橄陆笛?,則忽略并退出中斷;若首次跳變?yōu)樯仙?,則將此次跳變的時(shí)刻存入數組s0[index]。假如并非首次跳變,若該跳變?yōu)樯仙?,則將跳變的時(shí)刻存入數組s0[index];若為下降沿則存入數組s1[index],并將數組索引號index自加,以準備保存下一脈沖。
評論