李芬斌 胡泊 張晨陽 侯卓越
摘要:以MK60DN512ZVLQIO單片機為智能車的主控制芯片,設(shè)計一種攝像頭循跡智能車系統(tǒng)。通過對攝像頭采集的圖像信息進行分析處理,并結(jié)合PID控制算法對直流電機和舵機進行轉(zhuǎn)速和轉(zhuǎn)向的控制,實現(xiàn)小車循黑線準(zhǔn)確快速穩(wěn)定地行駛。
關(guān)鍵詞:智能車;循跡規(guī)劃;PID控制;圖像處理
中圖分類號:TP23
文獻標(biāo)識碼:A
DOI: 10.15913/j.cnki.kjycx.2019.09.029
隨著社會的不斷進步,科技水平的不斷提高,智能機器人技術(shù)已經(jīng)應(yīng)用于各大領(lǐng)域中,其中智能車更是占據(jù)了主流地位。本文就此設(shè)計了一款基于單片機、攝像頭模塊、電源管理模塊等設(shè)備的智能循跡小車。
1 系統(tǒng)總體設(shè)計
系統(tǒng)硬件設(shè)計主要分為MK60DN512ZVLQIO芯片、電源管理模塊、攝像頭模塊、舵機驅(qū)動模塊、電機驅(qū)動模塊、按鍵、撥碼開關(guān)及液晶顯示模塊等。系統(tǒng)通過攝像頭采集道路信息,同時通過編碼器實時獲取小車速度;將采集到的圖像反饋給單片機,單片機對其進行二值化處理,提取出邊線,求得小車與邊線的位置偏差,利用PID控制算法對舵機進行控制;根據(jù)檢測的速度,對電機不斷進行調(diào)整,使小車能夠循線行駛,具體如圖1所示。
2 系統(tǒng)硬件設(shè)計
2.1 主控板
主控板作為系統(tǒng)的核心部分,如同小車的大腦,接收各種信號并控制整個系統(tǒng)的運行。因此,本系統(tǒng)采用MK60DN512ZVLQIO芯片,其具有豐富的模擬、通信、定時和制外設(shè)、大容量的可擴展內(nèi)存、較高的主頻,完全滿足智能車調(diào)試過程的各種需要。
2.2 電機驅(qū)動模塊
電機驅(qū)動模塊主要通過控制電機的同速或差速來實現(xiàn)加速和輔助轉(zhuǎn)向,本系統(tǒng)采用H全橋NMOS管雙電機驅(qū)動模塊,電源穩(wěn)壓電路如圖2所示。兩路電機驅(qū)動,模塊供電電壓6- 1OV,控制信號3.3V和5V兼容,雙路PWM調(diào)制,控制電機轉(zhuǎn)動,MOS管采用低內(nèi)阻、性能穩(wěn)定的LR7843,動力十足,增加總線驅(qū)動芯片74HC08,提高信號驅(qū)動能力,同時也隔離MOS管和單片機,防止MOS損壞后灌電流過大燒壞單片機。
2.3 攝像頭模塊
與只能提取有限點信息的光電傳感器相比,采用攝像頭的智能車前瞻距離遠,能更精確地感知道路變化,且攝像頭多用線性CCD和COMS兩種,相比于CCD,COMS具有集成度高、體積小、功耗低等優(yōu)點。因此智能車采用OV7725彩色攝像頭,其分辨率高,價格適中,可直接輸出數(shù)字信號與控制器連接。
2.4 速度檢測模塊
要保證小車穩(wěn)定行駛,就要構(gòu)成速度閉環(huán)控制,實時監(jiān)控小車當(dāng)前車速。本系統(tǒng)選用歐姆龍增量式編碼器來測速。
2.5 電源管理模塊
由于電路中不同模塊所需的工作電壓和電流各不相同,因此電源模塊包含了多個穩(wěn)壓電路,將充電電池提供的電壓轉(zhuǎn)換成各模塊所需要的電壓。電源的好壞關(guān)系著單片機能否正常工作以及對整個系統(tǒng)的控制,所以在測試對比了幾種類型的穩(wěn)壓芯片后,選擇了性能相對優(yōu)異的LM2576芯片。該芯片內(nèi)含固定頻率振蕩器和基準(zhǔn)穩(wěn)壓器,并具有完善的保護電路,所需外圍器件少,散熱快。電池7.8 V直流電壓經(jīng)LM2940降壓電路,得到5V的電壓后,經(jīng)AMS1117芯片的正向低壓差穩(wěn)壓器,輸出3.3 V電壓,來滿足單片機和舵機的需求。
2.6 舵機驅(qū)動模塊
舵機電路中三個引腳分別連接6V電壓、GND和單片機的GPIO口E7,通過E7口的信號來控制舵機精準(zhǔn)轉(zhuǎn)向。本系統(tǒng)通過OLED顯示屏了解智能車當(dāng)前狀態(tài),配合按鍵模塊來設(shè)置智能車的相關(guān)參數(shù)。同時,在屏幕上也可觀察到經(jīng)攝像頭傳回的二值化后的道路圖像等信息。
3 算法程序設(shè)計
3.1 舵機轉(zhuǎn)向控制
舵機的轉(zhuǎn)向采用PD控制,依據(jù)邊線位置動態(tài)改變PID參數(shù)。經(jīng)過不斷測試選擇的PID調(diào)節(jié)策略為:將積分項系數(shù)置零,經(jīng)測試發(fā)現(xiàn),舵機在這種動態(tài)隨動系統(tǒng)中對動態(tài)響應(yīng)性能的要求更高,而且在Ki置零的情況下,通過合理調(diào)節(jié)Kp參數(shù)仍能保持車身穩(wěn)定,因此不必使用Ki參數(shù);由于舵機在一般情況下需要較好的動態(tài)響應(yīng)能力,因此微分項系數(shù)Kd使用定值。
3.2 電機控制算法
通過編碼器實時獲取的速度調(diào)整電機的PWM占空比可以實現(xiàn)對速度的閉環(huán)控制。電機的控制關(guān)鍵在于提高電機的響應(yīng)速度和調(diào)速的準(zhǔn)確性,因此PID參數(shù)選用較大的P參數(shù)。而積分參數(shù)I對車速控制存在慣性,影響到反應(yīng)速度,I過大會使速度波動增大,影響小車的穩(wěn)定,所以選用極小的I參數(shù)。經(jīng)過多次測試,采用位置式PID控制,效果理想。
4 實驗結(jié)果
為了驗證本系統(tǒng)設(shè)計的可行性,對小車進行實際跑道測試,從而得到電機與舵機在實際情況下的參數(shù)變化。實驗中將攝像頭返回的圖像經(jīng)過處理器得到的道路中線與車身的偏差記為e (x),如果車身處于中線位置,那么e(x) -0,舵機不輸出轉(zhuǎn)角,小車繼續(xù)前行;如果車身位置處于中線的左側(cè),那么e(x)>O,舵機輸出轉(zhuǎn)角控制小車右轉(zhuǎn);如果車身處于中線的右側(cè),那么e(x)<0,舵機輸出轉(zhuǎn)角控制小車左轉(zhuǎn)。同時根據(jù)編碼器檢測的速度控制直流電機的轉(zhuǎn)速,進而控制小車的車速,使其平穩(wěn)行駛。
電機與舵機測試參數(shù)如表1所示。在實際測試中,道路的復(fù)雜變化會使小車出現(xiàn)沖出跑道的情況,所以需要降低小車車速,由于輸出控制滯后的影響,會造成系統(tǒng)的振蕩,甚至造成系統(tǒng)的不穩(wěn)定。查閱大量資料后,在常規(guī)PID控制中引入不完全微分可以很好地解決這一問題,實驗仿真結(jié)果如圖3和圖4所示。對比圖3和圖4發(fā)現(xiàn),不完全微分控制系統(tǒng)在調(diào)節(jié)時間、超調(diào)量等方面比常規(guī)控制低,因此采用不完全微分PID控制能降低誤差,可以很好地消除偏差,加快系統(tǒng)響應(yīng),達到更好的控制效果。
5 結(jié)束語
本文以智能小車為載體,結(jié)合PID控制理論、PWM控制調(diào)速和圖象識別等技術(shù),對智能車循跡做出簡要分析。并針對不同復(fù)雜路徑,結(jié)合實際測試做出相應(yīng)的處理,以優(yōu)化循跡效果。
參考文獻:
[1]金以慧.過程控制[M].北京:清華大學(xué)出版社,2007.
[2]任彥碩.自動控制原理[M].北京:機械工業(yè)出版社, 2007.