低成本光電尋跡智能車(chē)設計與實(shí)現
if(P_Offset>5)P_Offset=5; //右偏最大偏離為5個(gè)單位
將Err進(jìn)行采樣劃分得到P_Offset變量,P_Offset取值為-5到5的整數,負數表示向左偏,正數表示向右偏,絕對值越大代表偏轉角度越大;采樣分辨率為可調參數P_err,P_err偏大時(shí),小車(chē)反應會(huì )較為遲鈍,P_err偏小時(shí),小車(chē)反應會(huì )較為靈敏,容易出現很小偏差就會(huì )引起小車(chē)較大的轉向。
按照小車(chē)當前的位置以及P_Offset組織數據表Angle_Table[],該表共有27行11列,第n行m列元素j,表示小車(chē)位置Car_State為n-13偏差P_Offset為m-5時(shí),j的值在-10到10之間,負值代表向左轉,正值代表向右轉,小車(chē)舵機應打的角度為jxAngle_C,可調參數Angle_C可以根據賽道狀況舵機反應靈敏度等調節,其調節在調試程序中完成,其值愈大,同等情況下轉角越大。
舵機的控制就是通過(guò)查數據表Angle_Table來(lái)實(shí)現,而不是通過(guò)公式求解,這種方法比較適用于8位單片機,通過(guò)檢索表可以達到運算所達不到的系統速度。
小車(chē)在交叉線(xiàn)時(shí)Car_State=20不更改舵機的控制;當小車(chē)的傳感器打不到黑點(diǎn),即將跑出賽道活著(zhù)已經(jīng)打到賽道外時(shí)Car_State=30或40,此時(shí)按照小車(chē)轉的方向,將舵機設置為最大轉角,以達到盡快找到賽道黑線(xiàn)的目的。
舵機的輸出PWM采用5 ms周期,與小車(chē)傳感器采樣的頻率一致。
4 試驗結果及總結
通過(guò)上述方法,小車(chē)取得了比較好的試驗結果,在最小曲率半徑不小于50 cm的賽道上,小車(chē)可以取得每秒2 m以上的速度。其速度比采用16位單片機的系統沒(méi)有很大差異。要特別注意的是,運算時(shí)采用不同數據類(lèi)型的變量將會(huì )帶來(lái)不同的效果,經(jīng)實(shí)驗證明,如果可以使用字節存儲類(lèi)型的變量作雙字節變量存儲,將會(huì )嚴重影響小車(chē)的運行情況,這是由單片機編譯環(huán)境進(jìn)行數學(xué)運算引起的,應當盡量避免不恰當的變量定義及算數運算。
相較于當前流行的16位單片機控制的雙舵機智能車(chē),該系統在硬件上成本較低,而軟件也根據8位單片機的特點(diǎn),避開(kāi)了較為復雜的運算,采用了查表的方式,只在小車(chē)位置及偏差運算以及速度P算法中涉及了少量的數學(xué)運算,以此達到系統的快速響應。
評論