黃志敏 ,張玉龍 ,藺紹江 ※
(1.武漢紡織大學(xué)機(jī)械工程與自動(dòng)化學(xué)院,湖北武漢 430200;2.湖北理工學(xué)院 機(jī)電工程學(xué)院,湖北黃石 435003)
智能小車(chē)一直是飛思卡爾全國(guó)大學(xué)生智能車(chē)競(jìng)賽的比賽項(xiàng)目[1]。本文以AT89C52單片機(jī)作為控制器核心,設(shè)計(jì)了一輛能在封閉跑道及連續(xù)彎道上行駛的小車(chē)。小車(chē)行駛主要通過(guò)直流電機(jī)驅(qū)動(dòng)輪子轉(zhuǎn)動(dòng),通過(guò)改變PWM(由單片機(jī)產(chǎn)生)的占空比可以控制直流電機(jī)轉(zhuǎn)子的轉(zhuǎn)速,從而實(shí)現(xiàn)對(duì)智能小車(chē)的直線加速和彎道減速的控制。小車(chē)的轉(zhuǎn)向則通過(guò)前輪的伺服電機(jī)驅(qū)動(dòng),為了實(shí)現(xiàn)小車(chē)速度的精確控制,在小車(chē)的后軸上方位置處安裝有光電編碼器,通過(guò)獲取車(chē)輪轉(zhuǎn)速并反饋給單片機(jī)處理,從而實(shí)現(xiàn)小車(chē)速度的閉環(huán)控制[2]。小車(chē)的避障和軌跡距離檢測(cè)采用紅外傳感器和觸須傳感器兩種方案相結(jié)合,并通過(guò)LCD液晶屏進(jìn)行距離的實(shí)時(shí)監(jiān)控和顯示,提高了小車(chē)的避障性能和穿越不同軌跡跑道的能力。
該系統(tǒng)以AT89C52單片機(jī)為控制核心,采用紅外傳感器和觸須傳感器兩種傳感器相結(jié)合來(lái)檢測(cè)道路信息,直流電機(jī)用來(lái)驅(qū)動(dòng)小車(chē)進(jìn)行加減速控制,伺服電機(jī)用來(lái)對(duì)小車(chē)遇到障礙物以后和經(jīng)過(guò)彎道路線時(shí)進(jìn)行左右轉(zhuǎn)向控制,光電編碼器用來(lái)實(shí)時(shí)測(cè)量車(chē)輪的轉(zhuǎn)速并將其轉(zhuǎn)換為脈沖個(gè)數(shù)反饋給單片機(jī)進(jìn)行處理,通過(guò)對(duì)小車(chē)速度的實(shí)時(shí)檢測(cè)構(gòu)成速度的閉環(huán)控制系統(tǒng),LCD用來(lái)對(duì)障礙物距離和道路信息進(jìn)行動(dòng)態(tài)顯示;軟件代碼編寫(xiě)和調(diào)試采用Keil工具,PC與AT89C52通信采用串口調(diào)試助手。該系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
傳感器相當(dāng)于智能小車(chē)的眼睛,帶有視覺(jué)功能,能夠良好的捕捉到前方賽道的路況信息,將信號(hào)實(shí)時(shí)反饋給單片機(jī)進(jìn)行處理,對(duì)小車(chē)進(jìn)行動(dòng)態(tài)控制。紅外傳感器探測(cè)路面的信息主要是通過(guò)其紅外發(fā)射管發(fā)射一定波長(zhǎng)的紅外線,經(jīng)過(guò)地面反射之后給接收管。由于紅外線在白色跑道和黑色引導(dǎo)線上的反射系數(shù)不同,在黑色引導(dǎo)線上的光被大部分吸收,而在白色跑道上的光線會(huì)被大部分反射回來(lái),所以它們之間接收到的反射光強(qiáng)是不同的,從而導(dǎo)致接收管的變化曲線不同,這樣就可以區(qū)分黑白路面了。當(dāng)發(fā)射出的紅外線沒(méi)有被反射回來(lái)或被反射回來(lái)但強(qiáng)度不夠大時(shí)(即跑道中間黑線),紅外接收管一直處于關(guān)斷狀態(tài),此時(shí)模塊的TTL輸出端為高電平,相應(yīng)指示二極管一直處于熄滅狀態(tài);當(dāng)被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線被反射回來(lái)且強(qiáng)度足夠大(白色跑道上),紅外接收管導(dǎo)通,此時(shí)模塊的TTL輸出端為低電平,指示二極管被點(diǎn)亮。紅外探測(cè)電路如圖2所示。
圖2 紅外探測(cè)電路圖
由于小車(chē)在賽道運(yùn)行過(guò)程當(dāng)中難免會(huì)發(fā)生碰撞和遇到障礙物體,所以又采用了觸須傳感器與紅外傳感器相結(jié)合進(jìn)行檢測(cè)。觸須傳感器利用其觸須來(lái)感知和識(shí)別物體表面輪廓,采用了二維PSD作為敏感檢測(cè)元件,實(shí)時(shí)檢測(cè)由于其觸須與物體表面接觸而在根部所產(chǎn)生的微小位移量,從而獲得待測(cè)物體的距離、角度、位置等信息[3]。觸須同樣也相當(dāng)于一個(gè)開(kāi)關(guān)的作用,當(dāng)小車(chē)遇到障礙物產(chǎn)生微小形變后,便會(huì)觸碰到觸須附近的彈片,這樣就相當(dāng)于形狀閉合,電路接通后便會(huì)送出一個(gè)信號(hào)到我們小車(chē)的單片機(jī)上,單片機(jī)經(jīng)過(guò)內(nèi)部處理后,送出一個(gè)信號(hào)到伺服電機(jī),告訴前方有障礙物,需要轉(zhuǎn)向,這樣就完成了小車(chē)的避障功能。觸須探測(cè)電路如圖3所示。
圖3 觸須傳感檢測(cè)電路
電機(jī)的驅(qū)動(dòng)模塊部分對(duì)于電機(jī)控制性能的優(yōu)良具有很重要的意義,本系統(tǒng)采用了官方提供的一種電機(jī)驅(qū)動(dòng)芯片MC33886,另外還有其他多種電機(jī)驅(qū)動(dòng)芯片可供使用,如L298等。通過(guò)改變PWM的占空比可控制電機(jī)的轉(zhuǎn)速。單片機(jī)通過(guò)IN1管腳引入PWM波,以調(diào)節(jié)MC33886的DNC口的輸出電壓,通過(guò)調(diào)節(jié)電機(jī)轉(zhuǎn)速的快慢對(duì)小車(chē)進(jìn)行速度控制,并且在IN2口輸入電壓以調(diào)節(jié)電機(jī)的反轉(zhuǎn)和制動(dòng)性能。電機(jī)驅(qū)動(dòng)模塊原理圖如圖4所示。
圖4 電機(jī)驅(qū)動(dòng)模塊圖
小車(chē)的轉(zhuǎn)向行走是依靠前輪左右兩邊的兩個(gè)伺服電機(jī),伺服電機(jī)的工作原理與普通的電機(jī)不通,它的動(dòng)力來(lái)源于不同頻率的脈沖信號(hào)。控制方法如下:給它1.3 ms左右的高電平脈沖時(shí),電機(jī)控制舵機(jī)正轉(zhuǎn),如圖5所示。給它1.5 ms左右的高電平脈沖時(shí),它就靜止,如圖6所示。給它1.7 ms左右的高電平脈沖時(shí),電機(jī)控制舵機(jī)反轉(zhuǎn),如圖7所示。
圖5 1.3 ms左右的控制脈沖序列使電機(jī)順時(shí)針旋轉(zhuǎn)
圖6 1.5 ms的控制脈沖序列使電機(jī)靜止
圖7 1.7 ms的連續(xù)脈沖序列使電機(jī)逆時(shí)針旋轉(zhuǎn)
對(duì)于智能小車(chē)來(lái)說(shuō),小車(chē)的運(yùn)行速度是主要被控對(duì)象。程序算法的輸出只能起到對(duì)電機(jī)輸出轉(zhuǎn)矩的控制,但小車(chē)由于其機(jī)械零部件及電子器件的安裝使其具有一定的負(fù)載,因此小車(chē)在運(yùn)行過(guò)程當(dāng)中電機(jī)的輸出轉(zhuǎn)矩與小車(chē)的速度變化關(guān)系是非線性的。而對(duì)于小車(chē)來(lái)說(shuō),小車(chē)啟動(dòng)時(shí)速度V=0,而電機(jī)的輸出轉(zhuǎn)矩可能會(huì)很大,這樣一方面對(duì)于小車(chē)的運(yùn)行會(huì)產(chǎn)生沖擊,電機(jī)損耗增加;另一方面,也不利于小車(chē)的平穩(wěn)起步和運(yùn)行控制。小車(chē)正常行駛的時(shí)候,電機(jī)的輸出可能并不是很大。為了減少電機(jī)不必要的功率損耗和保證小車(chē)速度的平穩(wěn)起步和控制。因此在小車(chē)后輪軸上方位置處安裝有光電編碼器,通過(guò)獲取小車(chē)車(chē)輪轉(zhuǎn)速并轉(zhuǎn)化為單位時(shí)間內(nèi)的脈沖信號(hào)并反饋給單片機(jī),構(gòu)成閉環(huán)控制系統(tǒng)對(duì)小車(chē)的速度進(jìn)行良好的控制[4-10]。
通過(guò)傳感器對(duì)跑道的自主識(shí)別和檢測(cè),若跑道路線為直道,則小車(chē)需要進(jìn)行加速行駛;若跑道是彎道,則小車(chē)需要進(jìn)行減速慢行,而小車(chē)通過(guò)不同的彎道時(shí)其速度也是不一樣的,小車(chē)控制系統(tǒng)利用光電編碼器反饋當(dāng)前速度值,通過(guò)增量式PID算法進(jìn)行調(diào)節(jié)。控制系統(tǒng)原理框圖如圖8所示。
圖8 控制系統(tǒng)原理圖
PID算法公式如(1)所示:
在增量PID處理的過(guò)程中,每次算完△u(k),需要把它賦值給電機(jī)控制對(duì)應(yīng)的PWM通道信號(hào),然后判斷△u(k)的值,如果小于0,則把PWM信號(hào)賦值為0;如果大于PWM信號(hào)的最大值,要把PWM信號(hào)賦值為該最大值。
直道采用勻速控制,速度設(shè)定值以后可以以最大速度進(jìn)入彎道,駛出彎道后進(jìn)入直道,速度設(shè)定值增大??刂埔?guī)律如公式(2)所示。
其中:Ka補(bǔ)償效果系數(shù);
Kp調(diào)速補(bǔ)償變量。
在小車(chē)進(jìn)入彎道時(shí),由于受到向心力的作用以及對(duì)小車(chē)行駛穩(wěn)定性的考慮,需對(duì)小車(chē)進(jìn)行減速控制。小車(chē)進(jìn)行減速的基本原則是在原來(lái)的直道速度設(shè)定值的基礎(chǔ)上,使小車(chē)的速度降到低速設(shè)定值,以確保小車(chē)能安全和平穩(wěn)的進(jìn)入彎道和駛出。速度設(shè)定方法如公式(3)所示。
其中:Vs(k)為速度閉環(huán)設(shè)定值;
V為小車(chē)全程運(yùn)動(dòng)平均速度設(shè)定值;
e(k)車(chē)體偏離理想軌跡的偏差值;
K1為減速控制比例系數(shù)。
同時(shí),通過(guò)多次測(cè)試小車(chē)進(jìn)入彎道之后的結(jié)果,令小車(chē)以某一線性規(guī)律加速運(yùn)行可以使小車(chē)在不沖出跑道的前提下,以更短的時(shí)間通過(guò)彎道,控制規(guī)律如公式(4)所示。
其中:Ck為彎道加速系數(shù),Cp為彎道加速變量,Ck為常數(shù),初始化設(shè)定。Cp入彎時(shí)刻初始化為0,每個(gè)控制周期累加1。
小車(chē)通過(guò)彎道時(shí)由于受到離心力的作用,小車(chē)的速度不能太快否則會(huì)發(fā)生側(cè)翻。因此小車(chē)在進(jìn)入彎道時(shí)需要快速把速度降下來(lái),如果僅僅依靠小車(chē)與路面的摩擦力顯然是不夠的,需要引入反向制動(dòng)算法。而電機(jī)驅(qū)動(dòng)芯片MC33886具有反向制動(dòng)功能??刂扑惴鞒虉D如圖9所示。
通過(guò)對(duì)小車(chē)的速度采用PID閉環(huán)進(jìn)行控制,可以實(shí)現(xiàn)小車(chē)在直道上的快速加速行駛和彎道上的減速行駛,達(dá)到了很好的速度控制效果。同時(shí)小車(chē)還增加了紅外傳感器和觸須傳感器的雙重結(jié)合保障,使小車(chē)的道路信息檢測(cè)能力也大大增強(qiáng)。在以后的設(shè)計(jì)過(guò)程當(dāng)中,可以適當(dāng)選擇更多性能優(yōu)良的傳感器,并對(duì)單片機(jī)控制算法進(jìn)行適當(dāng)?shù)母倪M(jìn),提高小車(chē)運(yùn)行的平穩(wěn)性、可靠性和快速通過(guò)跑道的能力。
圖9 小車(chē)反向制動(dòng)算法
[1]卓晴,黃開(kāi)勝,邵貝貝.學(xué)做智能車(chē)[M].北京:北京航空航天出版社,2007.
[2]胡文華,周新志.智能巡線小車(chē)的多模式速度控制系統(tǒng)[J].微計(jì)算機(jī)信息,2008,2(7):4-5,16.
[3]谷安,謝清華.機(jī)器人觸須傳感器的設(shè)計(jì)[J].傳感器與微系統(tǒng),2006,25(6):83-84,88.
[4]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法[M].北京:清華大學(xué)出版社,2004.
[5]童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000.
[6]黃春平,萬(wàn)其明,葉林.基于51單片機(jī)的智能循跡小車(chē)的設(shè)計(jì)[J].儀表技術(shù),2011(2):54-56.
[7]胡駿,王先鮮,杜春來(lái).基于光電傳感器的飛思卡爾智能車(chē)設(shè)計(jì)[J].數(shù)控技術(shù),2012(10):36-36.
[8]張喜紅,王玉香.紅外尋跡小車(chē)尋跡控制策略的改進(jìn)[J].江漢大學(xué)學(xué)報(bào),2017,4(2):168-172.
[9]孫維超,陸寶春,孫祥青.基于PID控制的粉末成型機(jī)下沖回彈裝置設(shè)計(jì)[J].機(jī)電工程,2016(12):1492-1495.
[10]陳志楚.基于AT89C52的電動(dòng)智能小車(chē)系統(tǒng)設(shè)計(jì)[J].赤峰學(xué)院學(xué)報(bào),2012,28(9):48-51.