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