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