基于單接收頭的超聲波多目標測距
4 系統(tǒng)軟件
系統(tǒng)軟件基本構架如下:
void main ()
{ cONfig () ; EA = 1 ; While (1) {} ; }
void time0_inter () interrupt 1 {}
void time1_inter () interrupt 3 {}
void time2_inter () interrupt 5 {}
void time3_inter () interrupt 14 {}
void time4_inter () interrupt 16 {}
void PCA_inter () interrupt 9 {}
初始化程序config () : I/ O 交叉開關配置;使用外部時鐘,指定系統(tǒng)時鐘;time 0~4 中斷使能,其中time 0 溢出中斷發(fā)生,產生40 kHz 方波信號輸出;PLA 中斷開啟。
中斷函數(shù)time0_inter ( ) :產生5 個40 kHz 方波信號輸出后關閉time0 中斷, TF0 = 0 ; PLA 溢出、邊緣捕捉中斷開啟。
中斷函數(shù)PCA_inter () :若是溢出中斷發(fā)生(30ms) ,則關閉PCA_inter ( ) 中斷,CF = 0 ,開啟time0中斷;若是CCFn = 1 ,則記下定時器時間(與初值相減后代入標定式得距離) ,給定time n 計時初值并啟動time n 溢出中斷( 2 ms) , 關閉CCFn 中斷,CCFn = 0.
中斷函數(shù)time1 _inter ( ) ~ time4 _inter ( ) : 當time n 中斷發(fā)生則開啟CCFn 中斷,關閉time n 中斷, TFn = 0.
5 結語
本文對單個接收頭在一次采樣時間(30 ms) 內測量多個目標進行了嘗試,仿真并分析了接收信號波形,用0. 5 倍包絡峰值標定而用小閾值測量,在2個目標與接收頭距離之差大于30 cm 以上時能較精確測量出2 個目標,誤差不超過2 cm.
由于一次能在同一時刻測多個距離,增大了超聲波傳感器捕獲的信息量,移動機器人裝配了該傳感器能在人員不是密集的動態(tài)環(huán)境下根據4 面墻壁定位。
評論