雷永鋒 劉 勇 黃喜恒
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂(lè)山 614007)
隨著科技的進(jìn)步和高等教育的發(fā)展,培養(yǎng)應(yīng)用型人才成為高校人才培養(yǎng)的主要目標(biāo)。讓在校大學(xué)生參與更多的實(shí)踐活動(dòng)不但能夠增加動(dòng)手和思考的能力,而且對(duì)于適應(yīng)畢業(yè)后的工作有很大的益處。全國(guó)大學(xué)生智能汽車競(jìng)賽就為在校學(xué)生提供了一個(gè)展示自己的平臺(tái),也促進(jìn)了專業(yè)理論知識(shí)和實(shí)踐能力的結(jié)合。本論文設(shè)計(jì)的基于線性CCD的智能巡線小車控制系統(tǒng)就是利用學(xué)院大學(xué)生科技創(chuàng)新基金針對(duì)競(jìng)賽而開展的一項(xiàng)創(chuàng)新項(xiàng)目。由于線性CCD的優(yōu)良特性,使得在小車控制方面得到較好的應(yīng)用,實(shí)現(xiàn)小車平穩(wěn)、快速的行走。
本智能循跡小車由電源模塊、單片機(jī)模塊、舵機(jī)模塊、線性CCD圖像采集模塊、顯示和按鍵、無(wú)線通訊模塊等模塊組成,系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。

圖1 智能循跡小車硬件結(jié)構(gòu)框圖
本系統(tǒng)采用線性CCD作為傳感器,采集來(lái)自前方賽道的信息,并將此信息處理后傳送至單片機(jī),通過(guò)軟件處理,由舵機(jī)調(diào)整角度,驅(qū)動(dòng)電機(jī)帶動(dòng)車輪行走。單片機(jī)通過(guò)串口通訊模塊實(shí)現(xiàn)和上位機(jī)之間的通訊,由按鍵實(shí)現(xiàn)現(xiàn)場(chǎng)參數(shù)調(diào)整,并可通過(guò)LCD實(shí)時(shí)顯示運(yùn)行參數(shù)。下面對(duì)系統(tǒng)主要硬件模塊進(jìn)行闡述。
本系統(tǒng)采用Freescal半導(dǎo)體公司生產(chǎn)的16位單片機(jī)MC9S12XS128作為控制器。MC9S12XS128是一款針對(duì)汽車電子市場(chǎng)的高性能16位單片機(jī),具有速度快、功能強(qiáng)、成本低、功耗低等特點(diǎn)。MC9S12XS128總線速度 40MHz,擁有 128KB程序 Flash和 8KB DataFlash,用于實(shí)現(xiàn)程序和數(shù)據(jù)存儲(chǔ),均帶有錯(cuò)誤校正碼(ECC),可配置8位、10位或12位ADC,3μs的轉(zhuǎn)換時(shí)間,內(nèi)嵌MSCAN模塊用于CAN節(jié)點(diǎn)應(yīng)用。內(nèi)嵌支持LIN協(xié)議的增強(qiáng)型SCI模塊及SPI模塊,4通道16位計(jì)數(shù)器,出色的低功耗特性,帶有中斷喚醒功能的I/O,實(shí)現(xiàn)喚醒休眠系統(tǒng)的功能;擁有8通道PWM,易于實(shí)現(xiàn)電機(jī)控制。作為專業(yè)的汽車電子控制芯片,能夠更加適應(yīng)智能控制。
本系統(tǒng)采用的線性CCD圖像采集傳感器TSL1401-DK是岱默科技公司生產(chǎn)的一款具有128個(gè)有效像素點(diǎn)的線性CCD,尺寸為26mm×26mm,重量輕,可以直接任意系列MCU相連接進(jìn)行數(shù)據(jù)采集處理。TSL1401-DK有2個(gè)電源口,3個(gè)數(shù)據(jù)口;數(shù)據(jù)口直接與MCU的I/O口相接。
賽道為450mm寬的白色KT板,兩邊有各寬15mm的邊界,賽道外為藍(lán)色的底版。環(huán)境光源的變化對(duì)CCD數(shù)據(jù)的采集有十分大的影響,所以需要使用軟件技術(shù)對(duì)采集到的數(shù)據(jù)進(jìn)行二值化處理,使其明確路況信息,不至于出現(xiàn)判斷紊亂而小車失控的現(xiàn)象。本次設(shè)計(jì)的小車CCD的數(shù)據(jù)采集距離前瞻為70cm,通過(guò)排列成一條線的128個(gè)有效像素點(diǎn)的數(shù)值信息判別前方道路的信息。單個(gè)像素點(diǎn)數(shù)值的變化范圍為0-255。根據(jù)實(shí)際外界光照情況,實(shí)際采集白色的底板時(shí)數(shù)值為110左右,黑色邊界的數(shù)值為40左右。通過(guò)閾值處理,區(qū)分賽道和邊界。由于小車在前進(jìn)的過(guò)程中,光線強(qiáng)度在隨時(shí)變化,采集數(shù)據(jù)也在變化,就需要對(duì)白色和黑色對(duì)應(yīng)的電壓值進(jìn)行特殊處理,這樣就增強(qiáng)了小車對(duì)賽道的適應(yīng)性。
舵機(jī)主要用來(lái)控制單片機(jī)的PWM模塊,通過(guò)調(diào)節(jié)脈沖的寬度和周期來(lái)控制舵機(jī)和電機(jī)的工作。通過(guò)輸入占空比一定的脈沖,內(nèi)部電機(jī)將轉(zhuǎn)過(guò)一個(gè)固定的角度,所以要讓舵機(jī)轉(zhuǎn)到某一個(gè)位置,只需要改變脈沖的占空比就可以實(shí)現(xiàn)舵機(jī)在一定角度內(nèi)的任意轉(zhuǎn)動(dòng)。
智能小車采用RS-540SH直流電機(jī),由于單片機(jī)輸出電流不夠,驅(qū)動(dòng)能力不足,電機(jī)的反向電動(dòng)勢(shì)也會(huì)損壞單片機(jī),所以必須添加電機(jī)驅(qū)動(dòng)模塊。本設(shè)計(jì)采用大功率MOS管IRF4905和IRF3205搭成H橋驅(qū)動(dòng)電機(jī)。
電機(jī)轉(zhuǎn)速的控制通過(guò)調(diào)節(jié)PWM的占空比來(lái)實(shí)現(xiàn),采用定頻調(diào)寬法,PWM波形頻率固定,占空比跟隨速度變化調(diào)節(jié)。
智能小車的優(yōu)點(diǎn)在于能夠根據(jù)路況的改變和自動(dòng)實(shí)現(xiàn)轉(zhuǎn)彎等功能,這就對(duì)軟件程序的設(shè)計(jì)要求很高。本設(shè)計(jì)采用CodeWarrior編程軟件進(jìn)行程序編寫,并通過(guò)串口總線下載到單片機(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) //加速,啟動(dòng)
{
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ì)分別進(jìn)行了CCD傳感器信號(hào)采集處理模塊設(shè)計(jì)、動(dòng)力電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)、控制算法的編制及執(zhí)行和調(diào)試、舵機(jī)控制設(shè)計(jì)與安裝。通過(guò)系統(tǒng)硬件平臺(tái)搭建和軟件設(shè)計(jì),并反復(fù)調(diào)試,該智能循跡小車基本達(dá)到了設(shè)計(jì)要求,能夠?qū)崿F(xiàn)快速直行,最高速度可達(dá)4m/s,能夠比較平穩(wěn)地度過(guò)大S彎、小S彎、連續(xù)S彎、Ω彎道、十字、坡道等復(fù)雜路況,平均速度可以達(dá)到3.5m/s。智能小車的設(shè)計(jì)與開發(fā),對(duì)于推動(dòng)汽車工業(yè)的發(fā)展具有一定的現(xiàn)實(shí)意義和實(shí)用價(jià)值。
[1]趙萬(wàn)欣,陳思屹.基于TSL1401線性CCD的智能巡線小車[J].工業(yè)控制計(jì)算機(jī),2014,27(2):121-122.
[2]李孟桃.基于線性TSL1401CCD的直立智能小車設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(21):86-88.
[3]魯小雨.基于MC9S12XS128單片機(jī)的智能小車控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].成都大學(xué)學(xué)報(bào),2011,30(3):164-247,273.
[4]蔡述庭.“飛思卡爾”杯智能汽車競(jìng)賽設(shè)計(jì)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2012.
[5]韓建文.基于飛思卡爾單片機(jī)智能車的設(shè)計(jì)[J].電子制作,2014(1):59-60.
[6]郭玉龍,于永會(huì),何志琴.基于 MC9S12XS128的直立輪式智能小車設(shè)計(jì)[J].現(xiàn)代機(jī)械,2013(5):31-34.