基于MC9S12DG128單片機的智能車控制系統設計
本方案采用了兩片MC33886并聯,直流電機驅動模塊的電路原理圖如圖4所示。
2.3 傳感器電路設計
本智能車采用CMOS攝像頭作為圖像傳感器,以保證賽道信息采集的準確有效。CMOS攝像頭的輸出信號是PAL制式的復合全電視信號,每秒輸出50幀(分為偶場和奇場)。
2.4 無線數據傳輸模塊設計
該智能車加裝了基于射頻收發芯片nRF403的無線數據傳輸模塊,并可在此基礎上實現MOD-BUS通信協議,這對測試智能車參數及程序調試很有幫助。在運行的過程中,可以將智能車的各項參數實時發送上來,而分析智能車的運行狀態可以更有針對性地對控制程序進行改進。
3 軟件設計
本智能車控制系統的程序結構如圖5所示。這是一個兩層的分級控制系統。底層控制包括“轉向控制系統”和“車速控制系統”,上層主控程序則可通過改變底層控制系統的設定值、控制參數和約束條件,來對整個控制系統進行調度。設計這種分層結構的控制系統是參照了集散控制系統DCS的結構特點,程序各部分功能明確、結構清晰,便于調試和維護。
本系統軟件所實現的功能主要是初始化、數據采集和濾波處理、道路識別、電機控制和舵機控制等。其中初始化主要是設置系統默認參數。其次是數據采集及濾波處理。為了盡量減少引入的純滯后時間,本文提出了一種獨具創新性的視頻信號采集方法。即用MC9S12DG128單片機提供的SPI口直接讀取經過二值化處理的視頻信號。
至于電機控制。本系統是用單片機通過接收旋轉編碼器來檢測智能車后輪轉動所產生的脈沖數,然后采用位置式PID控制算法的遞推形式對直流電機的轉速進行快速準確地控制。位置式PID控制算法的遞推形式如下:
△u(k)=Kp[e(k)-e(k-1)]+Kixe(k)+Kd[e(k)-2e(k-1)+e(k-2)],u(k)=u(k-1)+△u(k)
式中:u(k)為k時刻控制器的輸出;e(k)為k時刻的偏差;Kp、Ki、Kd分別為位置式PID控制算法的比例系數、積分常數和微分常數。舵機控制也是用單片機通過CMOS攝像頭來檢測路徑信息,然后采用不完全微分PD控制算法來控制舵機的轉角,從而實現路徑跟蹤。
本文介紹了一種智能車控制系統的設計與實現方法。通過大量實驗測試證明,該智能車能快速平穩地在制作的賽道上跟蹤黑色引導線并行駛,而且尋跡效果良好,控制響應速度快,動態性能良好,穩態誤差小,系統的穩定性和抗干擾能力強。
評論