余世干 苗 清 張廉潔 周紅志
?
兩輪自平衡智能車尋跡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
余世干 苗 清 張廉潔 周紅志
(阜陽(yáng)師范學(xué)院信息工程學(xué)院,安徽阜陽(yáng) 236037)
文章設(shè)計(jì)和實(shí)現(xiàn)了基于單片機(jī)的兩輪自平衡自動(dòng)循跡的智能車.系統(tǒng)采用飛思卡爾公司的mc9s12xs128的單片機(jī)芯片和兩輪的智能小車模型;軟件設(shè)計(jì)采用CodeWarrior作為開(kāi)發(fā)平臺(tái),C語(yǔ)音作為開(kāi)發(fā)工具.最后通過(guò)系統(tǒng)測(cè)試,智能小車能夠較好的在預(yù)定軌道上自動(dòng)尋跡而且速度較快,各項(xiàng)性能穩(wěn)定.
智能車;自平衡;模塊;PD算法
智能車技術(shù)是一種綜合的新技術(shù),由于可控制性和方便性的特點(diǎn),其在未來(lái)生活中將發(fā)揮廣泛應(yīng)用.在教育部創(chuàng)辦的智能車競(jìng)賽的背景下,本文的智能車自動(dòng)導(dǎo)航系統(tǒng)能在45 cm寬的規(guī)定白板,兩邊各有2.5 cm寬黑線為引導(dǎo)線的道路上,在無(wú)人操作下通過(guò)識(shí)別路況信息實(shí)現(xiàn)自動(dòng)導(dǎo)航、控制車體速度和方向.本系統(tǒng)是以飛思卡爾公司的MC9S12XS128單片機(jī)為主控制器,設(shè)計(jì)出的智能車系統(tǒng)能自動(dòng)采集、處理路面信息,在無(wú)人操作的情況下實(shí)現(xiàn)自動(dòng)循跡導(dǎo)航的功能.本文主要是設(shè)計(jì)與實(shí)現(xiàn)兩輪自平衡車自動(dòng)循跡的過(guò)程[1].
1 系統(tǒng)實(shí)現(xiàn)的理論基礎(chǔ)
1.1 車體直立的原理
兩輪直立車體,頂端相對(duì)于底端為相對(duì)靜止,頂端相對(duì)于底端總會(huì)有向前或者向后的運(yùn)動(dòng)速度,若想保持直立,則需要使得底端和頂端的運(yùn)動(dòng)速度方向、大小一致.而車體底端的電機(jī),通過(guò)軸承驅(qū)動(dòng)輪子,則可以保證車體底端和頂端的運(yùn)動(dòng)速度方向、大小的一致,從而保持車體直立[1-2].
1.2 車體運(yùn)動(dòng)時(shí)保持直立的原理
將車體看作一個(gè)整體,車體直立時(shí),整體相對(duì)于地面來(lái)說(shuō)相對(duì)靜止.若車體開(kāi)始傾斜,車體頂端相對(duì)于地面來(lái)說(shuō)有了一定的速度大小和方向,想要保持車體傾斜的角度不再加劇,車體底端需要在車體傾斜的過(guò)程中,達(dá)到與頂端有著相同方向大小的速度.這樣才能保證車體傾斜的角度不再會(huì)變化,但是整體對(duì)于地面來(lái)說(shuō),是從靜止到勻速運(yùn)動(dòng)的過(guò)程、是從直立靜止到保持一定的傾斜角度勻速運(yùn)動(dòng)的過(guò)程.
1.3 道路識(shí)別原理
實(shí)際道路的情況極其復(fù)雜,為了實(shí)現(xiàn)這一功能,此設(shè)計(jì)在有限的條件下進(jìn)行到道路模擬.采用的是以白色KT板為道路主體,以黑色線條為道路邊界,具體實(shí)物如圖1所示.使用簡(jiǎn)單的模型來(lái)模擬實(shí)際道路,分析道路情況可得知,道路分為直道,彎道,十字路口.只要能夠獲得黑線的走向,即可獲得道路情況,使得小車在黑色線條圍成的封閉“道路”中運(yùn)動(dòng).
圖1 智能車運(yùn)行道路實(shí)物圖
2系統(tǒng)硬件結(jié)構(gòu)
本系統(tǒng)以MC9S12XS128單片機(jī)為核心,外圍擴(kuò)展了速度檢測(cè)、道路信息檢測(cè)、電源、直流電機(jī)驅(qū)動(dòng)、陀螺儀以及電機(jī)差速轉(zhuǎn)向控制等模塊,具體系統(tǒng)結(jié)構(gòu)[3]37-78如圖2所示,系統(tǒng)組成實(shí)物如圖3.
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
圖3 系統(tǒng)組成實(shí)物圖
2.1 陀螺儀模塊與加速度傳感器
此設(shè)計(jì)選定了村田公司出產(chǎn)的ENC-03陀螺儀作為角速度傳感器,飛思卡爾公司的MMA7361加速度傳感器.使用兩個(gè)陀螺儀來(lái)分別采集車體與地面的角度,車體與“道路”邊界的角度.這兩種芯片都是模擬信號(hào)輸出,便于采集.加速度傳感器能夠檢測(cè)由地球引力作用或者物體運(yùn)動(dòng)所產(chǎn)生的加速度.MMA7361加速度傳感器是一種模擬量輸出的三軸加速度傳感器,測(cè)量其中一個(gè)方向上的加速度值,經(jīng)過(guò)受力分析就可以計(jì)算出車模傾角.例如車模直立時(shí),將加速度傳感器的Z軸固定在水平方向上,此時(shí)輸出信號(hào)是零偏電壓信號(hào).當(dāng)車模不平衡時(shí),重力加速度G則會(huì)在 Z 軸方向產(chǎn)生加速度分量,從而引起Z軸輸出電壓變化.陀螺儀、加速度傳感器模塊實(shí)物如圖4所示.
圖4 陀螺儀與加速度傳感器模塊
2.2 直流電機(jī)驅(qū)動(dòng)模塊
車模采用的是直流電機(jī),改變電流的流向即可改變電機(jī)旋轉(zhuǎn)的方向.此類對(duì)電機(jī)的驅(qū)動(dòng)電路大多數(shù)采用H橋電路,其原理為:用四個(gè)NMOS管構(gòu)成可控制電流流向的電路從而驅(qū)動(dòng)電機(jī).在構(gòu)建電機(jī)驅(qū)動(dòng)電路時(shí),要注意電機(jī)最大電流值,測(cè)量電機(jī)最大電流值,可將電機(jī)轉(zhuǎn)子固定,然后根據(jù)電機(jī)可工作電壓范圍,選擇最大電壓,進(jìn)行測(cè)量電流,圖5為系統(tǒng)設(shè)計(jì)的電機(jī)驅(qū)動(dòng)電路原理圖.
2.3 速度檢測(cè)模塊
速度檢測(cè)模塊采用編碼器來(lái)完成,通過(guò)偵測(cè)車輪運(yùn)動(dòng)的速度、角度、距離、位置以及計(jì)數(shù),再把相關(guān)信息反饋給主程序以便主程序更好的控制.MC9s12xs128芯片內(nèi)部集成了一個(gè)PCA模塊,可用于捕獲外部脈沖并且計(jì)數(shù).關(guān)于兩個(gè)電機(jī)轉(zhuǎn)速的采集,使用一個(gè)外部計(jì)數(shù)器和內(nèi)部PCA模塊,分別采集兩個(gè)電機(jī)的轉(zhuǎn)速.外部計(jì)數(shù)器原理圖如圖6所示.
2.4 電源模塊
本次方案使用的單片機(jī)芯片,傳感器為5 V供電電壓,其中比較特殊的就是陀螺儀和加速度模塊,此模塊采用3.3 V供電電壓.針對(duì)這兩種供電要求,此設(shè)計(jì)選取了LM2940作為5 V穩(wěn)壓芯片,LM1117-3.3作為3.3 V穩(wěn)壓芯片.這兩種芯片的性價(jià)比較高,而且可以滿足此系統(tǒng)地供電要求.同時(shí)考慮到整體系統(tǒng)需要電流的大小此設(shè)計(jì)采用將最小系統(tǒng)供電電源與傳感器供電分別用兩個(gè)5 V電源來(lái)進(jìn)行供電,保證系統(tǒng)的正常工作[4].圖7,圖8分別為5 V穩(wěn)壓電路、3.3 V穩(wěn)壓電路原理圖.
2.5 其他模塊
鍵盤(pán)模塊是用來(lái)調(diào)整軟件程序的輸入?yún)?shù)和其他輔助信息以實(shí)現(xiàn)在更好的調(diào)試智能車運(yùn)行狀態(tài).
道路信息檢測(cè)模塊是這個(gè)系統(tǒng)中重要的一環(huán),在本系統(tǒng)中采用TSL1401線性CCD傳感器,其內(nèi)部具有128個(gè)光電二極管,每個(gè)光電二極管通過(guò)積分電路所感知的光強(qiáng)以電壓的形式輸出,其電壓與光照強(qiáng)度強(qiáng)度和積分時(shí)間成正比.同時(shí),該芯片的采集時(shí)間,也是此設(shè)計(jì)在編寫(xiě)底層驅(qū)動(dòng)程序是需要考慮的,TSL1401芯片最小的采集時(shí)間為12 ms,在此方案中,采用的采集頻率為50 HZ.
核心控制器MC9S12XS128是智能車的“大腦”,它是飛思卡爾公司的一種16位單片機(jī),其片上資源包含有時(shí)鐘和復(fù)位發(fā)生器,128K FLASH,8K ROM,2K EEPROM,8位/16位脈沖累加計(jì)數(shù)器;128KB程序Flash,8 KB RAM、8 KB數(shù)據(jù)Flash等功能資源,非常豐富,足以滿足此方案中各種功能需求.在此單片機(jī)芯片上再輔助設(shè)計(jì)電源電路,振蕩器電路,復(fù)位電路,BDM下載硬件電路等電路組成最小系統(tǒng),從而實(shí)現(xiàn)對(duì)智能小車的整體綜合控制.
系統(tǒng)硬件電路的設(shè)計(jì)的工具采用Altium Designer 09,它整合了原理圖、PCB圖,包含很多芯片廠家的原理圖庫(kù),使得開(kāi)發(fā)電子線路變得十分方便,同時(shí)也擁有者DRC檢測(cè)機(jī)制等功能.
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件算法[1]設(shè)計(jì)是建立與硬件之上,決定著智能小車在實(shí)際道路的自動(dòng)運(yùn)行以及實(shí)際運(yùn)行的效果,是智能小車設(shè)計(jì)的不可缺少的重要一環(huán).系統(tǒng)設(shè)計(jì)需要先進(jìn)行對(duì)于程序框架的設(shè)計(jì).通過(guò)分析系統(tǒng)功能可知,首先需要完成單片機(jī)的初始化,使得單片機(jī)能夠正常的進(jìn)行工作.對(duì)于傳感器數(shù)據(jù)的采集,此設(shè)計(jì)需要使用中斷服務(wù)程序(ISR),這樣設(shè)計(jì)才能夠精確的按照單位時(shí)間來(lái)采集需要的數(shù)據(jù),采集數(shù)據(jù)完畢之后,需要對(duì)數(shù)據(jù)進(jìn)行處理,因?yàn)橹绷⒖刂频木纫筝^高,因此需要控制信號(hào)處理時(shí)間,這需要放在中斷服務(wù)程序中來(lái)進(jìn)行.對(duì)于算法需要進(jìn)行優(yōu)化,否則在中斷中容易鎖死.CCD傳感器的采集時(shí)間較長(zhǎng),因此不能放在中斷服務(wù)程序中.然后需要考慮到在調(diào)試過(guò)程中的便捷性,由于每次燒寫(xiě)程序會(huì)消耗大量時(shí)間,此設(shè)計(jì)采用按鍵來(lái)設(shè)置核心參數(shù)的方法,這樣就可以直接在源程序上進(jìn)行修改,而不需要再一次在IDE中進(jìn)行修改和燒寫(xiě)[6-7].
在采集到CCD信號(hào)時(shí),需要通過(guò)陀螺儀與加速度傳感器完成對(duì)車體的整體平衡的控制,然后完成對(duì)CCD信息的處理以及對(duì)電機(jī)的控制,在電機(jī)控制過(guò)程中,采用了比較典型的PD算法,其原理源自于PID算法,是過(guò)程控制中一種模糊自適應(yīng)算法,用過(guò)去,和現(xiàn)在的狀態(tài)來(lái)預(yù)算未來(lái)的狀態(tài).用陀螺儀反饋出的角度來(lái)對(duì)電機(jī)狀態(tài)來(lái)進(jìn)行比例控制,用陀螺儀反饋角速度對(duì)電機(jī)狀態(tài)來(lái)進(jìn)行微分控制.比例控制代表著直接控制電機(jī)輸出得到的結(jié)果,微分控制代表著直接控制電機(jī)輸出得到的車體整體效果,其物理意義對(duì)應(yīng)為電機(jī)速度和加速度,而電機(jī)的加速度影響著車體回復(fù)直立的速度,則可以用角度來(lái)代替.
在直立的前提下,對(duì)電機(jī)進(jìn)行速度控制和方向控制,速度控制是利用光電編碼器的負(fù)反饋系統(tǒng).其中Pspeed為上一次脈沖計(jì)數(shù)和此時(shí)脈沖數(shù)的差值,對(duì)電機(jī)進(jìn)行比例控制,Dspeed為上一次差值與這一次差值之差對(duì)對(duì)采樣時(shí)間進(jìn)行微分運(yùn)算,從而對(duì)電機(jī)進(jìn)行控制.方向控制使用的是另一個(gè)陀螺儀的負(fù)反饋,算法過(guò)程與直立控制過(guò)程相同.按照上述設(shè)計(jì)出控制車體的控制程序,車體能直立沿著路面自動(dòng)循跡.程序框架如圖9所示.
圖9 程序框架圖
4 系統(tǒng)測(cè)試與實(shí)現(xiàn)
系統(tǒng)的測(cè)試主要是完成對(duì)系統(tǒng)的整體結(jié)構(gòu)檢查是否實(shí)現(xiàn)預(yù)期功能,系統(tǒng)設(shè)計(jì)最后一環(huán),在本系統(tǒng)測(cè)試中主要包括系統(tǒng)中的穩(wěn)壓電路測(cè)試,最小系統(tǒng)電路測(cè)試,光電編碼器測(cè)試,陀螺儀、加速度模塊測(cè)試,車體單片機(jī)與PC機(jī)通信電路測(cè)試,電機(jī)驅(qū)動(dòng)電路測(cè)試,線性CCD模塊測(cè)試,通過(guò)對(duì)各模塊的測(cè)試發(fā)現(xiàn),各模塊功能均正常,能夠完成預(yù)定目標(biāo)[8-9].
綜上所述,本文針對(duì)兩輪智能車完成了自動(dòng)循跡系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了智能車在規(guī)定的直行、S型、十字交叉路口、斜坡、自動(dòng)避障等賽道上自助循跡行使,速度能達(dá)到1.8 m/s的速度.另外基于本文所設(shè)計(jì)的智能車的控制系統(tǒng)的方法,也可以在其他自動(dòng)控制領(lǐng)域發(fā)揮作用.
[1] 卓晴,黃開(kāi)勝,邵貝貝,等.學(xué)做智能車—挑戰(zhàn)“飛思卡爾”杯[M].北京:北京航空航天大學(xué)出版,2007.
[2] 吳懷宇.大學(xué)生智能汽車設(shè)計(jì)基礎(chǔ)與實(shí)踐[M].北京:電子工業(yè)出版社,2008.
[3] 王威.HCS12微控制器原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007.
[4] 馬福良.智能車規(guī)劃與控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林:吉林大學(xué),2012.
(責(zé)任編輯:涂正文)
Design and Implementation of Two Wheels Self-Balancing Intelligent Car Tracing System
YU Shigan MIAO Qing ZHANG Lianjie ZHOU Hongzhi
In this paper, the two wheels and self-balancing intelligent car, which can automatic tracking on the road, is designed and realized based on single chip microcomputer. In this system, the single chip microcomputer MC9S12XS128 of Free scale and the model of two wheels intelligent car are adopted. The software is developed based on CodeWarrior with using C language tool as development environment. Finally after testing system, intelligent car can track the scheduled track with high speed and has stable performance.
intelligent car; self-balancing; module; PD algorithm
TP242.6
A
1009-8135(2016)03-0043-04
2016-02-15
余世干(1982-),男,安徽定遠(yuǎn)人,阜陽(yáng)師范學(xué)院講師,主要研究嵌入式系統(tǒng)開(kāi)發(fā),數(shù)字圖像.
安徽省教育廳自然科學(xué)研究項(xiàng)目(編號(hào):2015FXTZK01);安徽省質(zhì)量工程項(xiàng)目(編號(hào):2014sxzx049,2013jyxm555);安徽省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項(xiàng)目(AH201413619001);阜陽(yáng)師范學(xué)院自然科學(xué)研究項(xiàng)目(編號(hào):2013FSKJ15)階段性成果