0 引言
無人自動駕駛車輛作為一種高效、安全、靈活的交通車輛,促進了交通行業(yè)的大力發(fā)展。實際研究證明,將人放在路 - 車系統(tǒng)之外,可以相對降低事故率。[1] 近年來車輛無人駕駛作為智能交通的重要組成部分,已逐漸成為研究的熱點。無人駕駛技術(shù)中,智能小車發(fā)展快,應(yīng)用廣,從兒童玩具可推廣到汽車工業(yè)。
目前,智能小車已基本可實現(xiàn)循跡避障等功能,現(xiàn)今大學(xué)生智能車設(shè)計大賽又在向聲控系統(tǒng)發(fā)展。本課題主要實現(xiàn)了小車的循跡避障自動駕駛功能。
1 小型智能車自動駕駛原理
1. 1 小車自動避障的原理
紅外線發(fā)射管、PSD 與相應(yīng)的計算電路構(gòu)成了功能強大使用廣泛的 GP2D12紅外線傳感器,位置敏感檢測裝置能夠檢測到光子在其上運動產(chǎn)生的微量移動,微米級的分辨率使得測量更精確。利用這一特性,幾何原理測距可由GP2D12傳感器輕松實現(xiàn)[2] 。光束由發(fā)射管發(fā)出,遇到障礙物再反射到PSD上,如圖 1 所示,兩條光線與地面構(gòu)成了等腰三角形,三角形的底邊長度可由PSD測得,而兩個底角的值由發(fā)射管確定,可由此推算出高,也就是與障礙物的距離[3] 。
1. 2 小車循跡原理
用紅外探測法循跡指的是小車在白色地面上跟隨黑線行走,由于黑線和白色地面對光線的反射程度不一樣,可以根據(jù)接收到的反射光的強弱來尋找路線。
紅外探測法:路面信息的檢測是由光電傳感器發(fā)射管發(fā)射出一定波長的紅外線,在地面反射后回到接收管。由于黑白兩色對光線的反射程度不同,黑線吸收了大部分光線,而白色賽道反射了大部分光線,使得接收到的反射光線的強度存在差異,從而導(dǎo)致接收端特性曲線的變化程度不同,可近似認為接收管兩端的輸出阻值不等,分壓后的電壓也不等,由此黑線白地便可區(qū)分開來[4] 。
1. 3 測速原理
由于霍爾元件在磁場附近時能夠感應(yīng)出高電平,稍偏離時感應(yīng)強度較弱,可以通過霍爾元件的這一特性來實現(xiàn)測速[5] ?;魻栐袘?yīng)磁鐵產(chǎn)生脈沖信號,將4個小磁鐵均勻放置于每個車輪之下,由此計算每秒鐘感應(yīng)磁鐵產(chǎn)生的脈沖數(shù),再計算出每秒鐘小車輪子轉(zhuǎn)動的轉(zhuǎn)數(shù),再乘以小車車輪總的周長,推算出小車當前運行速度,經(jīng)過累加運算得到當前路程。
2. 1 系統(tǒng)總體設(shè)計圖
圖 2 為系統(tǒng)的總體設(shè)計圖。
2. 2 主控模塊
由于智能小車的要求不是很高,Atmel 公司的 AT99C52 單片機可作為控制核心。AT99C52 的性價比高,耗能低,其主要的性能參數(shù)為:兼容標準的 MCS -51 指令系統(tǒng)、9 字節(jié)可重擦寫閃存只讀程序存儲器、256X9 字節(jié)隨機存取數(shù)據(jù)儲存器、可編程串行 UART 通道、時鐘頻率 0Hz ~24MH、3 個 16 位定時/ 計數(shù)器、9 個中斷源、32 個可編程 I/0 口線[6] 。
2. 3 避障傳感器模塊
采用 3 只 GP2D12 紅外線傳感器分別探測正前方,前右側(cè),前左側(cè)障礙物信息,該傳感器的平均有效探測距離在 10 ~90 cm 范圍內(nèi)可調(diào),可以有效地抵抗干擾光,能夠在日光下正常運行(試驗過程中應(yīng)該盡量避免日光或者較強的光源直接照射在傳感器上)。小車經(jīng)過調(diào)速后的制動距離應(yīng)該控制在 30 cm 以內(nèi),一般維持在 10 ~20 cm,所以探測距離該根據(jù)設(shè)計小車的需求來設(shè)定。
2. 4 循跡傳感器模塊
為了實現(xiàn)循跡傳感,我們選擇反射型光電探測器 RPR220。它是一種有著一體化優(yōu)點的光電探測器。RPR 220 的發(fā)射器部分是一個 GaAs 紅外發(fā)光二極管,而其接收器的構(gòu)成中使用了一個靈敏度較高的硅光敏三極管。RPR220 采用 DIP4 封裝,具有如下特點:反應(yīng)靈敏、受離散光的干擾小、體積較小且結(jié)構(gòu)緊湊一體化、可簡化外圍電路設(shè)計,且性能較為穩(wěn)定。
2. 5 電機選擇與驅(qū)動模塊
電機的選擇采用直流電機。直流減速電機可提供較大的轉(zhuǎn)動力矩,安裝方便,操作簡單,質(zhì)量輕、體積小,能夠較好的滿足系統(tǒng)的要求。
如圖 3 所示,使用 L299N 芯片驅(qū)動電機。采用 SMT 工藝穩(wěn)定性高,采用高質(zhì)量鋁電解電容,使電路穩(wěn)定工作??梢灾苯域?qū)動兩路 3 ~35V 直流電機,并提供了 5V 輸出接口(輸入最低只要 6V),可以給 5V單片機電路系統(tǒng)供電(低紋波系數(shù)),支持 3. 3V MCU 和 ARM 控制,可以方便的控制直流電機速度和方向,也可以控制 2 相步進電機,5 線 4 相步進電機。用該芯片作為電機驅(qū)動,操作便捷,穩(wěn)定性好,且工作性能較為突出。
驅(qū)動模塊主要功能是使主控芯片來發(fā)出的信號并將該信號發(fā)送給 L299N 電機控制芯片,L299N 電機控制芯片將使小車按照指令執(zhí)行相應(yīng)的動作。VDD 引腳和 VCC 引腳作為 L299N 芯片電源引腳,電機的電源是 VDD 引腳接的 +9V 電源,芯片由接到 VCC 引腳上的 +5V 電源供能。
為了保證小車轉(zhuǎn)向成功,讓轉(zhuǎn)向電機以最大功率輸出以獲得最大的扭矩,轉(zhuǎn)向電機的輸出功率不需再控制,所以 ENA 引腳(即轉(zhuǎn)向電機使能引腳)直接接入 +5V,即讓轉(zhuǎn)向電機一直使能。
對于后置的驅(qū)動電機,除了要控制其實現(xiàn)前進、后退和停止外,還需控制其轉(zhuǎn)速以解決因電量不足而使小車速度變慢的問題。因此,可通過將 L299N 芯片的 ENB 引腳與 AT99C52 的 P1. 7 引腳連接起來,以實現(xiàn) PWM 調(diào)速。
L299N 芯片的 IN1 和 IN2 引腳分別和 AT99C52 的 P1. 2 和 P1. 3 引腳連接用來接收主控芯片輸出的動作指令,并通過端口 OUT1 和 OUT2 將指令轉(zhuǎn)化為電機轉(zhuǎn)向(正轉(zhuǎn)或反轉(zhuǎn))的動作,至此實現(xiàn)了小車的橫向控制。
L299N 芯片的 IN3 和 IN4 引腳分別與 AT99C52 的 P1. 4 和 P1. 5 引腳連接用來接收主控芯片輸出的動作指令,并通過端口 OUT3 和 OUT4 來控制驅(qū)動電機的轉(zhuǎn)向,最終功能的實現(xiàn)表現(xiàn)在小車的前進、后退、停止。
2. 6 直流調(diào)速模塊
調(diào)速的實現(xiàn)是選擇基于 PWM 為主控電路的調(diào)速系統(tǒng)。相較于傳統(tǒng)的直流調(diào)速技術(shù),PWM(脈寬調(diào)制技術(shù))直流調(diào)速系統(tǒng)具有較大的優(yōu)越性:主電路線路簡單,需要的功率元件少;主電路元件工作在開關(guān)狀態(tài),導(dǎo)通損耗小,低速性能好,穩(wěn)速精度高,因而調(diào)速范圍寬;系統(tǒng)頻帶寬,快速響應(yīng)性能好,動態(tài)抗干擾能力強;開關(guān)頻率高,電流容易連續(xù),諧波少,電機損耗和發(fā)熱都較小;裝置效率高[7] 。
一般通過調(diào)節(jié)各路 PWM 的占空比來改變直流電動機電樞兩端電壓,這里采用定頻調(diào)寬法。保證頻率一定,通過程序控制單片機的定時計數(shù)器計數(shù)次數(shù),或使用軟件延時等方法均可達到調(diào)整脈寬的目的。此方式可以使硬件電路簡化,且具有操作性強等優(yōu)點。要求做直線運動時,分別控制左右兩電機的 PWM 的占空比使它們相同,即可讓小車以相應(yīng)速度的直線運動。
要求做曲線運動時,在初始狀態(tài)給定小車車輪一定轉(zhuǎn)速,將小車起始位置設(shè)置在原點。由逆運動學(xué)進行速度分析,要使小車沿著一定半徑做曲線運動,則根據(jù)該半徑大小可以推算出小車左右輪所需的速度大小和差值。對擬合曲線方程進行分析,可以得到相應(yīng)的電機驅(qū)動右輪的 PWM 占空比。因為速度和PWM 的脈沖寬度有著正比例關(guān)系,所以我們在程序中通過脈沖寬度調(diào)節(jié)速度。
3 系統(tǒng)的軟件設(shè)計分析
3. 1 程序設(shè)計主流程圖與主控制策略
在尋跡和避障中,控制的電機方式基本一樣。當左邊的避障傳感器或右邊的尋跡傳感器檢測到信號時,都是左轉(zhuǎn)速不變,右輪轉(zhuǎn)速減小 PWM 的占空比,從而使右輪轉(zhuǎn)速減慢,實現(xiàn)差速轉(zhuǎn)彎,向右轉(zhuǎn)的同時實現(xiàn)避障和尋跡;右邊也是如此。如果當左右尋跡傳感器同時檢測到信號,或是左邊避障和左邊尋跡、右邊避障和右邊尋跡。這種情況下不能同時滿足避障和尋跡,只能使車停下。圖 4 為程序流程圖。
3. 2 傳感器數(shù)據(jù)處理及尋跡程序流程
車底的 6 個傳感器用一個字節(jié)來表示,并將傳感器當前的檢測狀態(tài)用字節(jié)中的每一個位來表示,小車直線行駛時有三種情況。圖 5 為傳感器子程序流程圖。當位于車體中央的四個傳感器都檢測到黑線時,小車恰好位于賽道正上方,此時系統(tǒng)控制兩電機等速全速前進。當檢測到某一側(cè)一個或兩個傳感器偏離黑線,此時小車偏離黑線程度較小,系統(tǒng)將一個電機速度調(diào)快,另一個電機速度調(diào)慢,實現(xiàn)方向上的微調(diào)。當傳感器檢測到有 3 個電機偏離運行,小車偏離范圍較大,這時系統(tǒng)大幅降低一個電機速度,并使另一電機以最高速度運行,在短時間內(nèi)實現(xiàn)方向調(diào)整。使用這種 3 級調(diào)速的循跡算法程序構(gòu)思清晰,程序執(zhí)行可靠性高。
4 結(jié)語
本文所設(shè)計的自動駕駛系統(tǒng)實現(xiàn)的功能和現(xiàn)有的智能小車近似。創(chuàng)新之處在于利用兩個電機的差動調(diào)節(jié),控制電動小車的自動避障、尋光及自動停車;由單片機系統(tǒng)來控制智能車的行駛狀態(tài);并用 PWM技術(shù)實現(xiàn)了電動機的多級調(diào)速,革新了控制策略與程序,使整機工作更加可靠,節(jié)約能源,在將來的機動車市場上能發(fā)揮更大作用。
責(zé)任編輯:ct
評論