黃志敏 ,張玉龍 ,藺紹江 ※
(1.武漢紡織大學機械工程與自動化學院,湖北武漢 430200;2.湖北理工學院 機電工程學院,湖北黃石 435003)
智能小車一直是飛思卡爾全國大學生智能車競賽的比賽項目[1]。本文以AT89C52單片機作為控制器核心,設計了一輛能在封閉跑道及連續彎道上行駛的小車。小車行駛主要通過直流電機驅動輪子轉動,通過改變PWM(由單片機產生)的占空比可以控制直流電機轉子的轉速,從而實現對智能小車的直線加速和彎道減速的控制。小車的轉向則通過前輪的伺服電機驅動,為了實現小車速度的精確控制,在小車的后軸上方位置處安裝有光電編碼器,通過獲取車輪轉速并反饋給單片機處理,從而實現小車速度的閉環控制[2]。小車的避障和軌跡距離檢測采用紅外傳感器和觸須傳感器兩種方案相結合,并通過LCD液晶屏進行距離的實時監控和顯示,提高了小車的避障性能和穿越不同軌跡跑道的能力。
該系統以AT89C52單片機為控制核心,采用紅外傳感器和觸須傳感器兩種傳感器相結合來檢測道路信息,直流電機用來驅動小車進行加減速控制,伺服電機用來對小車遇到障礙物以后和經過彎道路線時進行左右轉向控制,光電編碼器用來實時測量車輪的轉速并將其轉換為脈沖個數反饋給單片機進行處理,通過對小車速度的實時檢測構成速度的閉環控制系統,LCD用來對障礙物距離和道路信息進行動態顯示;軟件代碼編寫和調試采用Keil工具,PC與AT89C52通信采用串口調試助手。該系統總體結構框圖如圖1所示。

圖1 系統結構框圖
傳感器相當于智能小車的眼睛,帶有視覺功能,能夠良好的捕捉到前方賽道的路況信息,將信號實時反饋給單片機進行處理,對小車進行動態控制。紅外傳感器探測路面的信息主要是通過其紅外發射管發射一定波長的紅外線,經過地面反射之后給接收管。由于紅外線在白色跑道和黑色引導線上的反射系數不同,在黑色引導線上的光被大部分吸收,而在白色跑道上的光線會被大部分反射回來,所以它們之間接收到的反射光強是不同的,從而導致接收管的變化曲線不同,這樣就可以區分黑白路面了。當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時(即跑道中間黑線),紅外接收管一直處于關斷狀態,此時模塊的TTL輸出端為高電平,相應指示二極管一直處于熄滅狀態;當被檢測物體出現在檢測范圍內時,紅外線被反射回來且強度足夠大(白色跑道上),紅外接收管導通,此時模塊的TTL輸出端為低電平,指示二極管被點亮。紅外探測電路如圖2所示。

圖2 紅外探測電路圖
由于小車在賽道運行過程當中難免會發生碰撞和遇到障礙物體,所以又采用了觸須傳感器與紅外傳感器相結合進行檢測。觸須傳感器利用其觸須來感知和識別物體表面輪廓,采用了二維PSD作為敏感檢測元件,實時檢測由于其觸須與物體表面接觸而在根部所產生的微小位移量,從而獲得待測物體的距離、角度、位置等信息[3]。觸須同樣也相當于一個開關的作用,當小車遇到障礙物產生微小形變后,便會觸碰到觸須附近的彈片,這樣就相當于形狀閉合,電路接通后便會送出一個信號到我們小車的單片機上,單片機經過內部處理后,送出一個信號到伺服電機,告訴前方有障礙物,需要轉向,這樣就完成了小車的避障功能。觸須探測電路如圖3所示。

圖3 觸須傳感檢測電路
電機的驅動模塊部分對于電機控制性能的優良具有很重要的意義,本系統采用了官方提供的一種電機驅動芯片MC33886,另外還有其他多種電機驅動芯片可供使用,如L298等。通過改變PWM的占空比可控制電機的轉速。單片機通過IN1管腳引入PWM波,以調節MC33886的DNC口的輸出電壓,通過調節電機轉速的快慢對小車進行速度控制,并且在IN2口輸入電壓以調節電機的反轉和制動性能。電機驅動模塊原理圖如圖4所示。

圖4 電機驅動模塊圖
小車的轉向行走是依靠前輪左右兩邊的兩個伺服電機,伺服電機的工作原理與普通的電機不通,它的動力來源于不同頻率的脈沖信號。控制方法如下:給它1.3 ms左右的高電平脈沖時,電機控制舵機正轉,如圖5所示。給它1.5 ms左右的高電平脈沖時,它就靜止,如圖6所示。給它1.7 ms左右的高電平脈沖時,電機控制舵機反轉,如圖7所示。

圖5 1.3 ms左右的控制脈沖序列使電機順時針旋轉

圖6 1.5 ms的控制脈沖序列使電機靜止

圖7 1.7 ms的連續脈沖序列使電機逆時針旋轉
對于智能小車來說,小車的運行速度是主要被控對象。程序算法的輸出只能起到對電機輸出轉矩的控制,但小車由于其機械零部件及電子器件的安裝使其具有一定的負載,因此小車在運行過程當中電機的輸出轉矩與小車的速度變化關系是非線性的。而對于小車來說,小車啟動時速度V=0,而電機的輸出轉矩可能會很大,這樣一方面對于小車的運行會產生沖擊,電機損耗增加;另一方面,也不利于小車的平穩起步和運行控制。小車正常行駛的時候,電機的輸出可能并不是很大。為了減少電機不必要的功率損耗和保證小車速度的平穩起步和控制。因此在小車后輪軸上方位置處安裝有光電編碼器,通過獲取小車車輪轉速并轉化為單位時間內的脈沖信號并反饋給單片機,構成閉環控制系統對小車的速度進行良好的控制[4-10]。
通過傳感器對跑道的自主識別和檢測,若跑道路線為直道,則小車需要進行加速行駛;若跑道是彎道,則小車需要進行減速慢行,而小車通過不同的彎道時其速度也是不一樣的,小車控制系統利用光電編碼器反饋當前速度值,通過增量式PID算法進行調節。控制系統原理框圖如圖8所示。

圖8 控制系統原理圖
PID算法公式如(1)所示:

在增量PID處理的過程中,每次算完△u(k),需要把它賦值給電機控制對應的PWM通道信號,然后判斷△u(k)的值,如果小于0,則把PWM信號賦值為0;如果大于PWM信號的最大值,要把PWM信號賦值為該最大值。
直道采用勻速控制,速度設定值以后可以以最大速度進入彎道,駛出彎道后進入直道,速度設定值增大。控制規律如公式(2)所示。

其中:Ka補償效果系數;
Kp調速補償變量。
在小車進入彎道時,由于受到向心力的作用以及對小車行駛穩定性的考慮,需對小車進行減速控制。小車進行減速的基本原則是在原來的直道速度設定值的基礎上,使小車的速度降到低速設定值,以確保小車能安全和平穩的進入彎道和駛出。速度設定方法如公式(3)所示。

其中:Vs(k)為速度閉環設定值;
V為小車全程運動平均速度設定值;
e(k)車體偏離理想軌跡的偏差值;
K1為減速控制比例系數。
同時,通過多次測試小車進入彎道之后的結果,令小車以某一線性規律加速運行可以使小車在不沖出跑道的前提下,以更短的時間通過彎道,控制規律如公式(4)所示。

其中:Ck為彎道加速系數,Cp為彎道加速變量,Ck為常數,初始化設定。Cp入彎時刻初始化為0,每個控制周期累加1。
小車通過彎道時由于受到離心力的作用,小車的速度不能太快否則會發生側翻。因此小車在進入彎道時需要快速把速度降下來,如果僅僅依靠小車與路面的摩擦力顯然是不夠的,需要引入反向制動算法。而電機驅動芯片MC33886具有反向制動功能。控制算法流程圖如圖9所示。
通過對小車的速度采用PID閉環進行控制,可以實現小車在直道上的快速加速行駛和彎道上的減速行駛,達到了很好的速度控制效果。同時小車還增加了紅外傳感器和觸須傳感器的雙重結合保障,使小車的道路信息檢測能力也大大增強。在以后的設計過程當中,可以適當選擇更多性能優良的傳感器,并對單片機控制算法進行適當的改進,提高小車運行的平穩性、可靠性和快速通過跑道的能力。

圖9 小車反向制動算法
[1]卓晴,黃開勝,邵貝貝.學做智能車[M].北京:北京航空航天出版社,2007.
[2]胡文華,周新志.智能巡線小車的多模式速度控制系統[J].微計算機信息,2008,2(7):4-5,16.
[3]谷安,謝清華.機器人觸須傳感器的設計[J].傳感器與微系統,2006,25(6):83-84,88.
[4]邵貝貝.單片機嵌入式應用的在線開發方法[M].北京:清華大學出版社,2004.
[5]童詩白,華成英.模擬電子技術基礎[M].北京:高等教育出版社,2000.
[6]黃春平,萬其明,葉林.基于51單片機的智能循跡小車的設計[J].儀表技術,2011(2):54-56.
[7]胡駿,王先鮮,杜春來.基于光電傳感器的飛思卡爾智能車設計[J].數控技術,2012(10):36-36.
[8]張喜紅,王玉香.紅外尋跡小車尋跡控制策略的改進[J].江漢大學學報,2017,4(2):168-172.
[9]孫維超,陸寶春,孫祥青.基于PID控制的粉末成型機下沖回彈裝置設計[J].機電工程,2016(12):1492-1495.
[10]陳志楚.基于AT89C52的電動智能小車系統設計[J].赤峰學院學報,2012,28(9):48-51.