張 慶,孫寶法,張佑生
ZHANG Qing, SUN Bao-fa, ZHANG You-sheng
(安徽三聯學院 計算機科學與技術系,合肥 230601)
智能車設計與“飛思卡爾杯”智能車競賽密不可分?!帮w思卡爾杯”智能車競賽起源于韓國,2000年,在飛思卡爾半導體公司的資助下,韓國漢陽大學汽車控制實驗室承辦了首屆韓國大學生智能車比賽。2006年,清華大學舉辦了中國首屆大學生“飛思卡爾杯”智能車邀請賽[1]。
“飛思卡爾杯”智能汽車競賽,要求各個參賽隊在統一的車模平臺上,使用飛思卡爾公司的16位微控制器作為核心控制模塊,自主構思控制方案進行系統設計。大賽組委會向各個參賽隊提供一個帶有差速器的后輪驅動模型車、一個直流電機和一個充電電池。各個參賽隊制作一個能夠自主識別路徑的智能車,于指定日期、指定地點到各分賽區參加比賽,在獲得決賽資格后,參加全國決賽。比賽時,參賽隊伍讓智能車在賽道上獨立行駛。參賽隊伍的成績由兩部分組成,以賽車現場成功跑完賽道全程的時間為主,以技術報告和制作工藝評分為輔[1]。
智能車的設計涉及模式識別、傳感技術、電子、控制、計算機、機械和電源等多個學科,對擴大學生的知識面、培養學生的知識融合能力和訓練學生的動手能力具有重要的促進作用。
智能車硬件系統包括電源管理、路徑識別、車速檢測、控制器、舵機和電機等模塊[2]。按照各個模塊的功能,整個小車的硬件系統可以分成四大部分:電源部分、信息采集部分、數據處理部分和運動控制部分。智能車的硬件系統結構如圖1所示。

圖1 智能車的硬件系統結構
中國大學生“飛思卡爾杯”智能車競賽分成三個組:光電組、電磁組和攝像頭組。其中,光電組的小車用發射管發射紅外線或激光,根據接收管采集到的反射光線,對小車運行實施控制。本文討論的智能車屬于光電組,用激光管采集道路的信息,用單片機MC9S12XSl28處理采集到的數據,用轉向舵機和驅動電機控制小車的運動狀態。
智能車設計的完整方案是:用激光發射管發射集束光線,用激光采集管采集反射的光線;把采集到的反射光線送到ADC進行A/D轉換,根據A/D轉換的數值,判斷智能車與道路的相對位置;對于不同的位置,結合當前的車速,分別用不同的PWM控制舵機的轉向角度和電機的旋轉速度,使小車能夠自主尋跡,快速跑完全程。
整個智能車硬件系統的電力供應,來自于大賽組委會提供的充電電池。正常情況下,電池的額定輸出電壓為7.2V,電流容量為2000mAh。由于各個模塊對電源的要求不同,特別是對電壓的要求不同,因此,需要采用不同的穩壓芯片,從電池中分流出不同電壓的分電源,給不同的模塊供電。智能車的供電系統如圖2所示[2]。

圖2 智能車的供電系統
單片機MC9S12XS128的工作電壓是5V,要求電源穩定,防止電機工作時產生的干擾。為此,采用穩壓芯片LM7805,從7.2V電池上取電,輸出電壓為5V,單獨為單片機供電。
用于采集道路信息的激光管、電機驅動電路、用于采集小車速度信息的編碼器,工作電壓都是5V,對電源質量要求不太高,這里采用穩壓芯片LM7805,從7.2V電池上取電,輸出電壓為5V,同時為激光管、電機驅動電路、編碼器供電。
舵機需要較大功率的電力供應,要求電源低內阻、大電流、電壓穩定。為此,采用穩壓芯片LM7806,從7.2V電池上取電,輸出電壓為6V,單獨為舵機供電。
電機需要大功率的電力供應,要求電源低內阻、大電流、電壓穩定。為此,直接從7.2V電池上取電,單獨為電機供電。
3.2.1 道路信息采集模塊
本智能車采用激光管陣列來采集道路信息。激光管陣列的特點是價格低廉、電路簡單、設計方便,缺點是采集的道路信息少、前瞻小、對復雜道路環境的判斷能力較弱。
一組激光管傳感器包括若干個激光發射管和一個激光接收管。本智能車采用的激光傳感器是手創科技公司的SOC2212。激光發射管波長是650nm,出孔功率是5mw,工作電壓是5VDC,工作電流是40mA。一組激光管的電路原理圖如圖3所示。
在圖3中,位于上部的是調制管,其引腳1調制輸出的是發射管L11的發射頻率,接收管JP12的接收頻率與L11的發射頻率相同,接收管采集到的發射光線首先轉化成電壓值,然后,由其引腳2輸出到單片機進行A/D轉換。
本智能車共用7組激光管傳感器,采集到的7路反射光線,分別經過7只接收管轉化成7路電壓值。7只接收管的引腳2按照順序分別連到單片機的引腳ATD0~ATD6。這樣,7路電壓值就被送到單片機進行A/D轉換。
3.2.2 速度信息采集模塊
本智能車采用歐姆龍公司的增量型旋轉編碼器E6A2-CS3C采集小車的速度信息。編碼器E6A2-CS3C的優點是獲取信息準確、精度高,缺點是體積大、增加后輪負載。

圖4 編碼器的安裝
在小車的后部安裝一個支架,把編碼器固定在支架上,編碼器的齒輪與電機的齒輪嚙合。編碼器的安裝如圖4所示。
編碼器有五根線,棕色線接電源正極,藍色線接電源負極,粗的黑色線接地或剪去,橙色線沒有用到,為了防止接錯而燒壞編碼器,應該把橙色線剪去,黑色線連接單片機的引腳PT0[3]。
智能車最重要的部件是中央處理單元,它負責對信息采集部分送來的數據進行處理,并將這些信息轉化成轉向舵機和驅動電機的控制信號,使小車按照預定的方案前進。因此,要求中央處理單元具有較強的數據處理能力。根據中國大學生“飛思卡爾杯”智能車競賽的規則,只能采用飛思卡爾半導體公司的單片機MC9S12XS128作為智能車的核心控制芯片。六年來,中國幾百所高校數千支隊伍的智能車設計實踐表明,MC9S12XS128完全能夠滿足智能車控制的要求。
如3.2所述,7只光電接收管的引腳2按照順序分別連到單片機的引腳ATD0~ATD6,7路采樣所得的電壓值送到單片機進行A/D轉換,A/D轉換后所得的7路數字,就反映了小車與賽道引導線的相對位置;編碼器黑色線連接單片機的引腳PT0,統計A相輸出脈沖的個數,獲得電機的速度。
把光電管經A/D轉換后的7路數字,以及編碼器輸出脈沖的數字,保存在一個數組里。設定一組控制規則,根據數組的數值,對轉向舵機和電機進行控制。
1)舵機控制
在行駛過程中,小車不斷對路況信息進行采樣,通過分析小車與賽道中心線的相對位置,計算小車轉彎的方向和角度。舵機控制程序流程如圖5所示。

圖5 舵機控制程序流程圖
本智能車采用Futaba公司的舵機S3010,標準PWM周期為20ms,轉動角度最大為45°。在程序設計上,通過改變占空比PWM來控制舵機的轉角。本車用單片機的引腳PWM1輸出PWM,對舵機進行控制。
2)電機驅動
智能車的動力部分使用小型永磁式直流電機,可用分離元件組成的驅動器來驅動,也可用一體化的集成驅動芯片來驅動。為了簡化電路板,減輕小車的重量,本智能車采用一體化的專用集成驅動芯片MC33886。用單片機的引腳PWM3輸出PWM,對電機的轉速進行控制。
智能車系統包括硬件系統和軟件系統,本文介紹的是智能車硬件系統的設計方法。顯然,只有硬件系統而沒有相應的軟件系統的小車還算不上智能車,因此,在構建了智能車硬件系統之后,接下來就需要構建智能車的軟件系統,即進行程序設計。限于篇幅,本文不再介紹,將另文闡述。
[1]吳懷宇, 程磊, 章政. 大學生智能汽車設計基礎與實踐[M]. 北京: 電子工業出版社, 2008.
[2]卓晴, 黃開勝, 邵貝貝. 學做智能車——挑戰“飛思卡爾”杯[M]. 北京: 北京航空航天大學出版社, 2007: 87-88.
[3]段穎康. 基于MC9S12XSl28單片機的智能循跡小車的硬件設計[J]. 電子元件應用, 2010, 12(1): 33-35.