雷永鋒 劉 勇 黃喜恒
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂山 614007)
隨著科技的進(jìn)步和高等教育的發(fā)展,培養(yǎng)應(yīng)用型人才成為高校人才培養(yǎng)的主要目標(biāo)。讓在校大學(xué)生參與更多的實踐活動不但能夠增加動手和思考的能力,而且對于適應(yīng)畢業(yè)后的工作有很大的益處。全國大學(xué)生智能汽車競賽就為在校學(xué)生提供了一個展示自己的平臺,也促進(jìn)了專業(yè)理論知識和實踐能力的結(jié)合。本論文設(shè)計的基于線性CCD的智能巡線小車控制系統(tǒng)就是利用學(xué)院大學(xué)生科技創(chuàng)新基金針對競賽而開展的一項創(chuàng)新項目。由于線性CCD的優(yōu)良特性,使得在小車控制方面得到較好的應(yīng)用,實現(xiàn)小車平穩(wěn)、快速的行走。
本智能循跡小車由電源模塊、單片機(jī)模塊、舵機(jī)模塊、線性CCD圖像采集模塊、顯示和按鍵、無線通訊模塊等模塊組成,系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
圖1 智能循跡小車硬件結(jié)構(gòu)框圖
本系統(tǒng)采用線性CCD作為傳感器,采集來自前方賽道的信息,并將此信息處理后傳送至單片機(jī),通過軟件處理,由舵機(jī)調(diào)整角度,驅(qū)動電機(jī)帶動車輪行走。單片機(jī)通過串口通訊模塊實現(xiàn)和上位機(jī)之間的通訊,由按鍵實現(xiàn)現(xiàn)場參數(shù)調(diào)整,并可通過LCD實時顯示運(yùn)行參數(shù)。下面對系統(tǒng)主要硬件模塊進(jìn)行闡述。
本系統(tǒng)采用Freescal半導(dǎo)體公司生產(chǎn)的16位單片機(jī)MC9S12XS128作為控制器。MC9S12XS128是一款針對汽車電子市場的高性能16位單片機(jī),具有速度快、功能強(qiáng)、成本低、功耗低等特點(diǎn)。MC9S12XS128總線速度 40MHz,擁有 128KB程序 Flash和 8KB DataFlash,用于實現(xiàn)程序和數(shù)據(jù)存儲,均帶有錯誤校正碼(ECC),可配置8位、10位或12位ADC,3μs的轉(zhuǎn)換時間,內(nèi)嵌MSCAN模塊用于CAN節(jié)點(diǎn)應(yīng)用。內(nèi)嵌支持LIN協(xié)議的增強(qiáng)型SCI模塊及SPI模塊,4通道16位計數(shù)器,出色的低功耗特性,帶有中斷喚醒功能的I/O,實現(xiàn)喚醒休眠系統(tǒng)的功能;擁有8通道PWM,易于實現(xiàn)電機(jī)控制。作為專業(yè)的汽車電子控制芯片,能夠更加適應(yīng)智能控制。
本系統(tǒng)采用的線性CCD圖像采集傳感器TSL1401-DK是岱默科技公司生產(chǎn)的一款具有128個有效像素點(diǎn)的線性CCD,尺寸為26mm×26mm,重量輕,可以直接任意系列MCU相連接進(jìn)行數(shù)據(jù)采集處理。TSL1401-DK有2個電源口,3個數(shù)據(jù)口;數(shù)據(jù)口直接與MCU的I/O口相接。
賽道為450mm寬的白色KT板,兩邊有各寬15mm的邊界,賽道外為藍(lán)色的底版。環(huán)境光源的變化對CCD數(shù)據(jù)的采集有十分大的影響,所以需要使用軟件技術(shù)對采集到的數(shù)據(jù)進(jìn)行二值化處理,使其明確路況信息,不至于出現(xiàn)判斷紊亂而小車失控的現(xiàn)象。本次設(shè)計的小車CCD的數(shù)據(jù)采集距離前瞻為70cm,通過排列成一條線的128個有效像素點(diǎn)的數(shù)值信息判別前方道路的信息。單個像素點(diǎn)數(shù)值的變化范圍為0-255。根據(jù)實際外界光照情況,實際采集白色的底板時數(shù)值為110左右,黑色邊界的數(shù)值為40左右。通過閾值處理,區(qū)分賽道和邊界。由于小車在前進(jìn)的過程中,光線強(qiáng)度在隨時變化,采集數(shù)據(jù)也在變化,就需要對白色和黑色對應(yīng)的電壓值進(jìn)行特殊處理,這樣就增強(qiáng)了小車對賽道的適應(yīng)性。
舵機(jī)主要用來控制單片機(jī)的PWM模塊,通過調(diào)節(jié)脈沖的寬度和周期來控制舵機(jī)和電機(jī)的工作。通過輸入占空比一定的脈沖,內(nèi)部電機(jī)將轉(zhuǎn)過一個固定的角度,所以要讓舵機(jī)轉(zhuǎn)到某一個位置,只需要改變脈沖的占空比就可以實現(xiàn)舵機(jī)在一定角度內(nèi)的任意轉(zhuǎn)動。
智能小車采用RS-540SH直流電機(jī),由于單片機(jī)輸出電流不夠,驅(qū)動能力不足,電機(jī)的反向電動勢也會損壞單片機(jī),所以必須添加電機(jī)驅(qū)動模塊。本設(shè)計采用大功率MOS管IRF4905和IRF3205搭成H橋驅(qū)動電機(jī)。
電機(jī)轉(zhuǎn)速的控制通過調(diào)節(jié)PWM的占空比來實現(xiàn),采用定頻調(diào)寬法,PWM波形頻率固定,占空比跟隨速度變化調(diào)節(jié)。
智能小車的優(yōu)點(diǎn)在于能夠根據(jù)路況的改變和自動實現(xiàn)轉(zhuǎn)彎等功能,這就對軟件程序的設(shè)計要求很高。本設(shè)計采用CodeWarrior編程軟件進(jìn)行程序編寫,并通過串口總線下載到單片機(jī)中,進(jìn)行參數(shù)修改與調(diào)試。系統(tǒng)軟件流程圖如圖2所示。
圖2 系統(tǒng)軟件流程圖
void GetPixel01()
{
unsigned char ii;
Init_Black=0;
L1=L2=Z0=R1=R2=0;
AverageValueold=Pixelaverage(Pixel);
for(ii=0;ii<128;ii++)
{
if(Pixel[ii]>AverageValueold)
{
Pixel01[ii]=1;
}else
Pixel01[ii]=0;
}
L1=Pixel[9]+Pixel[10]+Pixel[11]+Pixel[12]+Pixel[13];
L1=L1/5;
L2=Pixel[39]+Pixel[40]+Pixel[41]+Pixel[42]+Pixel[38];
L2=L2/5;
Z0=Pixel[62]+Pixel[61]+Pixel[63]+Pixel[60]+Pixel[64];
Z0=Z0/5;
R1=Pixel[92]+Pixel[91]+Pixel[93]+Pixel[90]+Pixel[94];
R1=R1/5;
R2=Pixel[115]+Pixel[116]+Pixel[117]+Pixel[118]+Pixel[119];
R2=R2/5;
void SpeedCtrol(void)
{
int SKP,KI,KD;
static int ek1=0,ek2=0;
angle_erro=8970-angle_Old;
angle_erro=abs(angle_erro);
ExpectSpeed=MAX_speed-angle_erro;
//if(ExpectSpeed<250)
//ExpectSpeed=250;
ek0=ExpectSpeed-puls_num;
ek1=ek0;
ek2=ek1;
if(ek0>50) //加速,啟動
{
SKP=20000;
KI=0;
KD=0;
}
else if(ek0>=0) //加速 PID 參數(shù)
{
SKP=1000;
KI=120;
KD=250;
}
else //減速PID參數(shù)
{
SKP=800;
KI=100;
KD=200;
}
car_speed=25000+SKP*ek0+KI*(ek0-ek1)+KD*(ek0-2*ek1+ek2);
if(car_speed>25000)
car_speed=25000;
if(car_speed<0)
car_speed=0;
(void)PWM9_SetRatio16(car_speed);
}
本設(shè)計分別進(jìn)行了CCD傳感器信號采集處理模塊設(shè)計、動力電機(jī)驅(qū)動模塊設(shè)計、控制算法的編制及執(zhí)行和調(diào)試、舵機(jī)控制設(shè)計與安裝。通過系統(tǒng)硬件平臺搭建和軟件設(shè)計,并反復(fù)調(diào)試,該智能循跡小車基本達(dá)到了設(shè)計要求,能夠?qū)崿F(xiàn)快速直行,最高速度可達(dá)4m/s,能夠比較平穩(wěn)地度過大S彎、小S彎、連續(xù)S彎、Ω彎道、十字、坡道等復(fù)雜路況,平均速度可以達(dá)到3.5m/s。智能小車的設(shè)計與開發(fā),對于推動汽車工業(yè)的發(fā)展具有一定的現(xiàn)實意義和實用價值。
[1]趙萬欣,陳思屹.基于TSL1401線性CCD的智能巡線小車[J].工業(yè)控制計算機(jī),2014,27(2):121-122.
[2]李孟桃.基于線性TSL1401CCD的直立智能小車設(shè)計[J].電子設(shè)計工程,2013,21(21):86-88.
[3]魯小雨.基于MC9S12XS128單片機(jī)的智能小車控制系統(tǒng)設(shè)計與實現(xiàn)[J].成都大學(xué)學(xué)報,2011,30(3):164-247,273.
[4]蔡述庭.“飛思卡爾”杯智能汽車競賽設(shè)計與實踐[M].北京:北京航空航天大學(xué)出版社,2012.
[5]韓建文.基于飛思卡爾單片機(jī)智能車的設(shè)計[J].電子制作,2014(1):59-60.
[6]郭玉龍,于永會,何志琴.基于 MC9S12XS128的直立輪式智能小車設(shè)計[J].現(xiàn)代機(jī)械,2013(5):31-34.