雙排傳感器循跡策略研究
(2)直道識別,程序輔助確認
本文引用地址:http://www.104case.com/article/95471.htm進入彎道后,隨著小車的行進,會發生振蕩,致使出彎時不一定滿足上述5種情況。為了提高直道的識別成功率,增加第二種直道判別方法。兩者同時起作用,滿足第一種后經過最多15ms確認是直道。
程序是循環執行,我們的程序執行頻率是2KHz。采用定時中斷(15ms)的方式,對前排中間3個傳感器(編號為3、4、5)使用3個計數器分別計數,每次執行程序若是其中一個檢測到黑線,相對應的計數器加1。經過計算,15ms內所能計數的最大值為31。我們設定計數的最大值,若在15ms內達到所要求的計數值,就認為是直道,切換直道程序并將計數器清零;若15ms內沒有達到所要求的計數值,計數器清零,重新計數。例如小車為2m/s的速度,小車行進3cm。我們只要判斷2~2.5cm內為直道即可。所以設最大計數值為20~25即認為是直道,跳出彎道程序。
當然也可以采用更嚴格的方法來判斷,只需調整定時中斷的時間和計數值即可。此條件在進入直道后總能滿足,所以作為第一種直道判別方式的補充,保證直道的穩定可靠識別。
直線穩定控制策略
小車出彎后,由于舵機的反應不靈敏,智能車會發生振蕩,隨后才能達到穩定,為了盡早減小振蕩,采用如下方式控制小車出彎后的動作:
在彎道策略中設置標志位,進入直線程序后,識別標志位,對控制舵機轉向的公式采取修正設置。公式為:q=K1q1+K2q2;其中q為最終送給舵機的控制量,q1為前排光電傳感器的返回轉角值,q2為后排紅外返回轉角值。K1、K2分別為前后排傳感器的加權比例值。通常情況下K1、K2為1,需要時則改變賦值。
當小車從彎道進入直道并成功識別出直道后,減小K1的值,由于后排傳感器距離小車的前輪(轉向輪)很近,小車中心偏離黑線時,不會在后排傳感器橫向位置產生很大位移(相對于前排傳感器),故小車在直線上舵機調整的次數就會明顯減少,直線的穩定性會好。同時,根據前后排不同傳感器的組合,給出不同的轉角策略(在程序中以列表的方式體現),近一步提高直線的穩定控制能力。(本文剩余部分詳見EEPW網站)
參考文獻:
1.邵貝貝,單片機嵌入式應用的在線開發方法[M],清華大學,2004
2.卓晴等,學做智能車,北京航空航天大學出版社,2007.3
評論