作為現(xiàn)代社會(huì)的新發(fā)明,多種高科技技術(shù)的集中體現(xiàn),智能車輛將會(huì)是未來(lái)車輛發(fā)展的一個(gè)必然趨勢(shì)。它可以在無(wú)人參與的情況下,根據(jù)預(yù)習(xí)設(shè)定的信息,自動(dòng)地完成一系列的工作,從而將許多人從繁重地勞動(dòng)中解脫出來(lái)。與傳統(tǒng)汽車相比,智能車輛更加安全、節(jié)能、環(huán)保,可以大大地提高人們的生活質(zhì)量。目前為止,由最新技術(shù)生產(chǎn)的智能車輛已將在交通、運(yùn)輸、航天、工業(yè)等方面發(fā)揮出來(lái)舉足輕重地作用[1]。
單片機(jī)又名微控制器,它將一個(gè)大型計(jì)算機(jī)的幾乎所有功能都集中在了一個(gè)小小的芯片上,它體積小、質(zhì)量輕、功耗低,十分適合初學(xué)者進(jìn)行學(xué)習(xí)和開發(fā)使用,并且,單片機(jī)的結(jié)構(gòu)與真正的計(jì)算機(jī)幾乎相同,學(xué)習(xí)單片機(jī)是了解計(jì)算機(jī)原理和結(jié)構(gòu)的最佳選擇[2]。
在本次課題中,以AVR單片機(jī)為控制核心,以RPR220型光電對(duì)管、E18-D80NK傳感器等傳感器為輔助器件,設(shè)計(jì)并實(shí)現(xiàn)了智能小車系統(tǒng)。小車是一個(gè)二輪驅(qū)動(dòng)小車,后方由一個(gè)萬(wàn)向輪可以靈活轉(zhuǎn)向。在本文中,詳細(xì)介紹了智能小車的整體設(shè)計(jì)思路,以及各個(gè)部分的軟硬件設(shè)計(jì)。小車通過(guò)RPR220型光電對(duì)管實(shí)現(xiàn)了循跡功能,通過(guò)E18-D80NK傳感器實(shí)現(xiàn)了避障功能,并通過(guò)單片機(jī)將這些模塊有機(jī)的整合到一起,利用C語(yǔ)音進(jìn)行編程設(shè)計(jì),使用ICC7.22開發(fā)環(huán)境對(duì)小車進(jìn)行程序開發(fā)。小車具有運(yùn)行穩(wěn)定、價(jià)格便宜、能耗低等優(yōu)點(diǎn)
目錄
摘 要
Abstract
第1章 緒論
1.1 研究的背景和意義
1.2 國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展前景
1.3 本次設(shè)計(jì)的主要任務(wù)
第2章 系統(tǒng)方案設(shè)計(jì)
2.1 總體設(shè)計(jì)框圖
2.2 核心控制單元的選擇
2.3 循跡方案設(shè)計(jì)
2.4 避障方案設(shè)計(jì)
2.5 電機(jī)驅(qū)動(dòng)方案選
2.6 電機(jī)選擇
第3章 系統(tǒng)硬件電路設(shè)計(jì)
3.1 最小系統(tǒng)電路
3.2 循跡模塊電路
3.3 避障模塊
3.4 電機(jī)驅(qū)動(dòng)模塊
3.4.1 L298N電機(jī)驅(qū)動(dòng)芯片
3.4.2 PWM調(diào)速原理
3.4.3 驅(qū)動(dòng)電路
第4章 系統(tǒng)軟件設(shè)計(jì)
4.1 ICCAVR簡(jiǎn)介
4.2 主控制模塊主程序設(shè)計(jì)
4.3 紅外循跡模塊子程序設(shè)計(jì)
4.4 紅外避障模塊子程序設(shè)計(jì)
4.5 電機(jī)驅(qū)動(dòng)模塊子程序設(shè)計(jì)
第5章 結(jié)論
參考文獻(xiàn)
致 謝
附 錄A 總電路圖
附 錄B 源程序
第1章 緒論 1.1 研究的背景和意義 智能車輛技術(shù)集成了機(jī)械、電子、自動(dòng)化等多學(xué)科的發(fā)展,代表了現(xiàn)代技術(shù)發(fā)展的前沿。是未來(lái)車輛發(fā)展的必然趨勢(shì)。在實(shí)際生活中,智能車輛通常需要根據(jù)人們的預(yù)設(shè)程序完成跟蹤和避障。其中,大多數(shù)依靠傳感器技術(shù)來(lái)獲取路線和周圍的環(huán)境。 本文以AVR作為控制核心,設(shè)計(jì)制作了智能尋線小車。它使用光線對(duì)管和紅外傳感器收集周圍的各種信息,自動(dòng)沿著地面設(shè)定的路線行走,并且可以在行走過(guò)程中自動(dòng)躲避障礙物。智能小車采用前輪驅(qū)動(dòng),兩輪采用直流電機(jī),后輪采用萬(wàn)向輪。為了確保小車平穩(wěn)正常地運(yùn)行,我們采用PID算法控制直流電機(jī)地運(yùn)行。本系統(tǒng)具有操作簡(jiǎn)單、成本低、可靠性高、結(jié)構(gòu)緊湊等特點(diǎn)[4]。 1.2 國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展前景 智能車輛系統(tǒng)是一種集中了計(jì)算機(jī)技術(shù)、自動(dòng)化技術(shù)、傳感器技術(shù)等多種高科技技術(shù)于一體的綜合系統(tǒng)。從目前的發(fā)展趨勢(shì)來(lái)看,智能車輛將是未來(lái)世界汽車行業(yè)發(fā)展的最終形態(tài)。相比于傳統(tǒng)汽車,智能車輛擁有無(wú)法比擬的巨大優(yōu)勢(shì)。 首先,智能車輛是由智能計(jì)算機(jī)系統(tǒng)控制、連接互聯(lián)網(wǎng)自動(dòng)駕駛,相比于傳統(tǒng)汽車,不僅將駕駛?cè)藛T從繁重的駕駛工作中解放了出來(lái),還可以大大地提高汽車行駛的安全系數(shù)。據(jù)谷歌調(diào)查,大部分交通事故都是人為造成的。目前隨著輔助駕駛技術(shù)、半自動(dòng)駕駛技術(shù)的發(fā)展普及,智能駕駛系統(tǒng)可以實(shí)時(shí)監(jiān)控駕駛?cè)藛T的狀態(tài),防止駕駛?cè)藛T醉酒駕駛、疲勞駕駛、不遵守交通規(guī)則駕駛等行為,交通事故的發(fā)生率降低了50%~60%。在未來(lái),隨著技術(shù)的發(fā)展,全自動(dòng)駕駛普及后,完全不需要駕駛?cè)藛T,甚至可以完全避免交通事故的發(fā)生。 其次,智能車輛擁有更為先進(jìn)的人機(jī)交互界面。智能車輛不僅搭載有智能駕駛系統(tǒng),還擁有智能生活系統(tǒng),使駕駛?cè)藛T和乘客可以更舒適的享受在車上的時(shí)光。假如乘客有什么突發(fā)情況,智能生活系統(tǒng)還可以提供緊急解決方案。例如,在行駛過(guò)程中,如果乘客突發(fā)疾病,智能生活系統(tǒng)會(huì)主動(dòng)提出醫(yī)療知識(shí)提示,防止周圍的朋友因?yàn)椴欢t(yī)療知識(shí)而妄動(dòng)患者造成二次傷害。并且,智能生活系統(tǒng)會(huì)自動(dòng)將情況上傳至互聯(lián)網(wǎng),將病情告知醫(yī)院。而且,智能生活系統(tǒng)還會(huì)憑借車聯(lián)網(wǎng)疏散通往醫(yī)院車輛,使得汽車可以盡快到達(dá)醫(yī)院,使病人得到及時(shí)的治療。 最后,相比傳統(tǒng)汽車,智能車輛更為節(jié)能、環(huán)保。據(jù)谷歌調(diào)查,傳統(tǒng)汽車大部分時(shí)間都處于停用狀態(tài),利用率較低。智能車輛可以整合車輛信息,將車輛按需分配,提高車輛的利用率,從而減少車輛數(shù)量,達(dá)到節(jié)能、環(huán)保的效果。 國(guó)外許多發(fā)達(dá)國(guó)家大約在1950年左右就開始研究智能車輛了,截止到目前,一些簡(jiǎn)單地半自動(dòng)智能車已經(jīng)得到廣泛地應(yīng)用,但是,全自動(dòng)智能汽車仍然遙遙無(wú)期。2017年9月,美國(guó)運(yùn)輸部對(duì)汽車的無(wú)人駕駛系統(tǒng)的安全性做出了評(píng)估,為以后在國(guó)家層面制定相關(guān)法律法規(guī)奠定了基礎(chǔ)。截止現(xiàn)在,美國(guó)已經(jīng)有22個(gè)州以上通過(guò)了相關(guān)的法律。目前,輔助駕駛技術(shù)和半自動(dòng)駕駛技術(shù)已經(jīng)得到廣泛的普及,世界汽車巨頭正在致力于發(fā)展第三階段的全自動(dòng)駕駛。 與美國(guó)等發(fā)達(dá)國(guó)家相比,我國(guó)的智能車輛技術(shù)的發(fā)展之路還比較漫長(zhǎng)。我國(guó)的智能車輛技術(shù)大約是從1980年左右開始起步研究的,目前在一些沿海城市有了很大的發(fā)展。在我國(guó),人們正在不斷地加深對(duì)智能車輛的重視程度,國(guó)家正在不斷加大對(duì)智能車輛的研發(fā)資金投入力度。相信經(jīng)過(guò)我國(guó)的大力研究,以及龐大的市場(chǎng)刺激,我國(guó)戴爾智能車輛技術(shù)將會(huì)飛速提高。據(jù)大數(shù)據(jù)調(diào)查分析,未來(lái)我國(guó)對(duì)智能車輛的需求非常大,在2020年左右,半自動(dòng)駕駛汽車的市場(chǎng)占有率將達(dá)到30%,在2025年左右,將達(dá)到50%。在2018年,中國(guó)的智能汽車將達(dá)到50萬(wàn)輛。到時(shí)候,巨大的市場(chǎng)將會(huì)推動(dòng)技術(shù)的快速發(fā)展,刺激我國(guó)的汽車產(chǎn)業(yè)尋求技術(shù)突破,促進(jìn)智能汽車產(chǎn)業(yè)的優(yōu)勝劣汰。如圖1-1為常見的智能小車。 
圖1-1 智能小車 1.3 本次設(shè)計(jì)的主要任務(wù) 本次課題主要設(shè)計(jì)的是一個(gè)簡(jiǎn)易的智能電動(dòng)車,采用AVR單片機(jī)作為小車的檢測(cè)和控制核心。采用RPR220型光電對(duì)管來(lái)檢測(cè)道路上的黑線,從而把反饋到的信號(hào)送單片機(jī),是單片機(jī)按照預(yù)定的工作模式控制小車在各區(qū)域按預(yù)定的軌跡行駛。并且在小車的行駛過(guò)程中,可以自動(dòng)識(shí)別障礙物并自動(dòng)躲避。
第2章 系統(tǒng)方案設(shè)計(jì)
2.1 總體設(shè)計(jì)框圖 在系統(tǒng)層面而言,本系統(tǒng)由四個(gè)部分組成?刂坪诵、循跡模塊、避障模塊、電機(jī)驅(qū)動(dòng)模塊。首先,循跡模塊和避障模塊獲取周圍的信息,然后將信息傳遞至控制核心,控制核心進(jìn)行信息處理后,根據(jù)預(yù)習(xí)設(shè)定的程序,將信號(hào)傳遞至電機(jī)驅(qū)動(dòng)模塊,驅(qū)動(dòng)電機(jī)運(yùn)行。這樣,就完成了小車的循跡和避障功能。系統(tǒng)組成框圖如圖2-1所示[5]。 
圖2-1 總體設(shè)計(jì)框圖 2.2 核心控制單元的選擇 本課題采用ATmega16單片機(jī)作為核心控制單元,ATmega16單片機(jī)是采用 RISC結(jié)構(gòu)的AVR內(nèi)核單片機(jī)。ATmega16單片機(jī)擁有131個(gè)機(jī)器指令,32個(gè)8位通用工作寄存器等,并且在內(nèi)部具有2個(gè)時(shí)鐘周期的硬件乘法器。ATmega16單片機(jī)功耗低、價(jià)格便宜、運(yùn)行速度快,十分適合作為嵌入式控制核心。ATmega16單片機(jī)的實(shí)物圖如圖2-2所示。 
圖2-3 ATmega16單片機(jī)的實(shí)物圖 2.3 循跡方案設(shè)計(jì) 方案1:用光敏電阻組成光敏探測(cè)器 光敏電阻的阻值會(huì)隨著周圍環(huán)境中的光線強(qiáng)度變化而變化,光照越強(qiáng),阻值就越低。當(dāng)小車行駛時(shí),光敏探測(cè)器會(huì)不斷地對(duì)周圍的環(huán)境進(jìn)行探測(cè)。小車的行駛環(huán)境為純白色背景下的黑色軌跡。當(dāng)光敏探測(cè)器探測(cè)到白色背景時(shí),反射光強(qiáng)度較強(qiáng),光敏電阻的阻值會(huì)降低;當(dāng)探測(cè)到黑色軌跡時(shí),由于黑色的吸光作用,發(fā)射光的強(qiáng)度將會(huì)降低,光敏電阻的阻值將會(huì)變大。正是根據(jù)以上原理,小車可以使用光敏探測(cè)器進(jìn)行循跡檢測(cè)。但是由于光敏探測(cè)器受環(huán)境中光照強(qiáng)度的影響較大,不能穩(wěn)定的工作。 方案2:用CCD攝像頭傳感器 線性CCD傳感器攝像頭可以將光線信號(hào)轉(zhuǎn)換為電荷信號(hào),再傳送至單片機(jī)進(jìn)行處理。CCD攝像頭傳感器的優(yōu)點(diǎn)是探測(cè)距離遠(yuǎn),可以提前探測(cè)道路情況,以便做出減速轉(zhuǎn)彎等操作。使得小車的整體平均速度得到提高,具有良好的前瞻性。但是CCD攝像頭傳感器對(duì)于單片機(jī)小車來(lái)說(shuō),消耗資源略大,而且在實(shí)際過(guò)程中,發(fā)現(xiàn)CCD攝像頭在市場(chǎng)上比較稀少,購(gòu)買難度較大。 方案3:用RPR220型光電對(duì)管 RPR220與光敏探測(cè)器相似,是一款反射型的光電探測(cè)器。首先,RPR220型光電對(duì)管會(huì)發(fā)射出紅外線,當(dāng)紅外線傳至白色背景時(shí),會(huì)反射回來(lái)重新被探測(cè)器接收,進(jìn)而輸出一個(gè)高電平;若紅外線傳至黑色軌跡時(shí),黑色軌跡會(huì)將紅外吸收,探測(cè)器檢測(cè)不到反射光,就會(huì)輸出低電平。RPR220型光電對(duì)管具有體積小、結(jié)構(gòu)緊湊、電路簡(jiǎn)單、性能穩(wěn)定等優(yōu)點(diǎn)。 由于光敏電阻易受周圍環(huán)境光照強(qiáng)度影響,CCD 攝像頭對(duì)單片機(jī)片內(nèi)資源消耗大等原因,本課題最終確定選擇方案3 。 2.4 避障方案設(shè)計(jì) 方案1:使用超聲波探測(cè)器 超聲波探測(cè)器的原理是由探測(cè)器發(fā)出人耳不可聽見的超聲波,超聲波觸碰到物體后反射回探測(cè)器。通過(guò)檢測(cè)超聲波從發(fā)射到反射回來(lái)所使用的時(shí)間,就可以計(jì)算出與物體的距離。超聲波探測(cè)器的優(yōu)點(diǎn)是可以在較差的環(huán)境中正常工作,缺點(diǎn)是探測(cè)精度較低,使用成本較高。 方案2:使用激光測(cè)距傳感器 激光測(cè)距傳感器的測(cè)距原理與超聲波探測(cè)器類似,傳感器發(fā)射出激光,經(jīng)反射后回到傳感器,經(jīng)過(guò)處理計(jì)算后即可得到相應(yīng)的距離。激光測(cè)距傳感器的優(yōu)點(diǎn)是測(cè)量距離較長(zhǎng),測(cè)量精度較高;缺點(diǎn)是對(duì)資源的消耗較大,價(jià)格略昂貴。 方案3:使用紅外避障傳感器 E18-D80NK傳感器的邏輯非常簡(jiǎn)單,它由發(fā)射器和紅外接收器組成,負(fù)責(zé)感知某個(gè)物體的存在。它有一個(gè)圓柱形主體,通過(guò)鉆孔可以很容易地安裝到原型中,其中2個(gè)環(huán)用于固定,一個(gè)在內(nèi)部,另一個(gè)在原型外部。它的連接通過(guò)3個(gè)引腳完成,傳感器可以有兩種不同的連接模式,它有兩個(gè)信號(hào)電平,低電平(0.3到1.5V)和高電平(2.3到5V)。檢測(cè)距離可以在3到80厘米之間進(jìn)行調(diào)整,通過(guò)位于傳感器底部的電位計(jì)進(jìn)行。 由以上分析,本課題最終確定選擇方案3。 2.5 電機(jī)驅(qū)動(dòng)方案選 方案1:采用由晶體管組成的H橋電路 H橋電路可以將直流電逆變?yōu)榭勺冾l率的交流電,采用PWM 方式控制電機(jī)的運(yùn)行。PWM是一種脈沖寬度調(diào)制方式,其原理是通過(guò)調(diào)整脈沖的占空比來(lái)調(diào)整一個(gè)周期內(nèi)電機(jī)的通電時(shí)間,進(jìn)而調(diào)節(jié)電機(jī)的運(yùn)轉(zhuǎn)速度。H橋電路的優(yōu)點(diǎn)是穩(wěn)定性好,應(yīng)用廣泛。 方案2:采用L298N驅(qū)動(dòng)芯片 L298N屬于H橋集成電路,可驅(qū)動(dòng)大功率直流電機(jī)、步進(jìn)電機(jī)等。L298N的優(yōu)點(diǎn)是它的輸入端可以直接與單片機(jī)相連,這樣,可以便于直接受單片機(jī)控制。最重要的是,L298N可以同時(shí)驅(qū)動(dòng)兩臺(tái)直流電機(jī),恰好與本課題相符。 由于以上分析,本課題最終確定選擇方案2 。 2.6 電機(jī)選擇 方案1:采用步進(jìn)電機(jī) 步進(jìn)電機(jī)是由脈沖信號(hào)驅(qū)動(dòng)轉(zhuǎn)動(dòng)的,其特點(diǎn)是可以精確地定位其轉(zhuǎn)過(guò)的角度,進(jìn)而精確地確定其行駛的距離。但是,步進(jìn)電機(jī)難以獲得較大的轉(zhuǎn)矩,難以獲得較大的轉(zhuǎn)速,資源利用率略低,更多地使用在數(shù)控機(jī)床等需要精確控制的地方[6]。 方案2:采用直流減速電機(jī) 直流減速電機(jī)是指在普通直流電機(jī)的基礎(chǔ)上,配套齒輪減速箱。具有節(jié)省空間、能耗低、性能穩(wěn)定等優(yōu)點(diǎn),廣泛地應(yīng)用于自動(dòng)化行業(yè)中。 由以上分析,步進(jìn)電機(jī)不適用于本次設(shè)計(jì)的要求,故本課題最終確定采用方案2。
第3章 系統(tǒng)硬件電路設(shè)計(jì)
3.1 最小系統(tǒng)電路 本課題的中央處理器是ATMEGA16單片機(jī),其主要功能是不停地接收由尋跡模塊和避障模塊中的傳感器發(fā)送過(guò)來(lái)的信號(hào),經(jīng)過(guò)處理后將信息發(fā)送至電機(jī)驅(qū)動(dòng)模塊,從而實(shí)現(xiàn)對(duì)周圍環(huán)境的實(shí)時(shí)響應(yīng)。如圖3-1是較為常見的帶燒錄接口的單片機(jī)最小系統(tǒng)圖。 
圖3-1 最小系統(tǒng)電路 3.2 循跡模塊電路 循跡模塊電路所用傳感器是RPR220型光電對(duì)管,如圖3-2所示。RPR220是一款集成式光電探測(cè)器,其發(fā)射極為GaAs紅外發(fā)射二極管,接收器為高靈敏度硅平面光電晶體管。 
圖3-2 RPR220 GaAs紅外發(fā)射二極管向目標(biāo)發(fā)射紅外線,光電晶體管接收到由目標(biāo)反射的紅外線后,向單片機(jī)發(fā)射電平跳變信號(hào)。當(dāng)小車行駛在白色背景上時(shí),安裝在小車下方的發(fā)射極對(duì)地面發(fā)射紅外光,經(jīng)白色背景反射后,光電晶體管將打開。尋跡模塊電路如圖3-3所示。 
圖3-3尋跡模塊電路圖 當(dāng)小車行駛在黑色軌跡上時(shí),紅外光被黑色背景吸收,光電晶體管不能接收到反射光,LM339電壓比較器截止,輸出低電平至單片機(jī)。因此,根據(jù)單片機(jī)I/O口接收電平不同,即可判斷小車的行駛情況。 為了保證小車沿黑線行駛,采用了四個(gè)檢測(cè)器并行排列,檢測(cè)器排列位置如圖3-4所示。其編號(hào)1至4對(duì)應(yīng)的硬件電路分別接在單片機(jī)的PA0、PA1、PA2、PA3端口。在小車運(yùn)動(dòng)過(guò)程中,結(jié)合查詢方式,通過(guò)程序控制小車運(yùn)動(dòng)軌跡。如果2號(hào)紅外對(duì)管和3號(hào)紅外對(duì)管檢測(cè)到黑線,則單片機(jī)控制小車向前直走;如果2號(hào)紅外對(duì)管偏離黑線,3號(hào)紅外對(duì)管檢測(cè)到黑線,則單片機(jī)控制小車輕微左移;如果3號(hào)紅外對(duì)管偏離黑線,2號(hào)紅外對(duì)管檢測(cè)到黑線,則單片機(jī)控制小車輕微右移;如果2號(hào)和3號(hào)紅外對(duì)管偏離黑線,1號(hào)紅外對(duì)管檢測(cè)到黑線,則單片機(jī)控制小車向左移動(dòng);如果2號(hào)和3號(hào)紅外對(duì)管偏離黑線,4號(hào)紅外對(duì)管檢測(cè)到黑線,則單片機(jī)控制小車向左移動(dòng)[7]。 
圖3-4 檢測(cè)器位置 3.3 避障模塊 避障模塊采用型號(hào)為E18-D80NK的紅外避障傳感器,如圖3-5所示。 
圖3-5 E18-D80NK E18-D80NK傳感器的邏輯非常簡(jiǎn)單,它由發(fā)射器和紅外接收器組成,負(fù)責(zé)感知某個(gè)物體的存在。它有一個(gè)圓柱形主體,通過(guò)鉆孔可以很容易地安裝到原型中,其中2個(gè)環(huán)用于固定,一個(gè)在內(nèi)部,另一個(gè)在原型外部。它的連接通過(guò)3個(gè)引腳完成,傳感器可以有兩種不同的連接模式,它有兩個(gè)信號(hào)電平,低電平(0.3到1.5V)和高電平(2.3到5V)。檢測(cè)距離可以在3到80厘米之間進(jìn)行調(diào)整,通過(guò)位于傳感器底部的電位計(jì)進(jìn)行[8]。 
圖3-6 E18-D80NK原理圖 E18-D80NK電氣特性如表3-1。
表3-1 E18-D80NK電氣特性
E18-D80NK紅外避障傳感器在小車正常運(yùn)行時(shí),輸出高電平;當(dāng)檢測(cè)到前方有障礙物時(shí),輸出低電平,黃色的線作為E18-D80NK紅外避障傳感器的輸出口,直接與單片機(jī)相連,將檢測(cè)信號(hào)送入單片機(jī)中,經(jīng)進(jìn)一步處理后,使小車做出相應(yīng)的變化。避障模塊電路如圖3-7所示。避障模塊采用三只紅外避障傳感器,安裝于小車兩側(cè)及下中央,可以檢測(cè)兩側(cè)和正前方是否有障礙,檢測(cè)后將信號(hào)送入單片機(jī),單片機(jī)對(duì)信號(hào)進(jìn)行處理并發(fā)出相應(yīng)的信號(hào)驅(qū)動(dòng)小車電機(jī),使小車躲避障礙。其左中右三個(gè)傳感器的硬件電路分別接到單片機(jī)的PB0、PB1、PB2 端口。當(dāng)三個(gè)傳感器檢測(cè)到無(wú)障礙時(shí),小車正常前進(jìn)行駛;當(dāng)前側(cè)傳感器檢測(cè)到有障礙時(shí),小車右轉(zhuǎn);當(dāng)左側(cè)或左及前側(cè)傳感器檢測(cè)到障礙時(shí),小車右轉(zhuǎn);當(dāng)右側(cè)或右側(cè)及前側(cè)傳感器檢測(cè)到障礙時(shí),小車左轉(zhuǎn);當(dāng)三個(gè)傳感器都檢測(cè)到有障礙或左右側(cè)傳感器檢測(cè)到有障礙時(shí),小車停止[9]。 
圖3-7避障模塊電路 3.4 電機(jī)驅(qū)動(dòng)模塊 3.4.1 L298N電機(jī)驅(qū)動(dòng)芯片 L298N是由意法半導(dǎo)體公司研發(fā)制造的一款雙全橋大電流(2A*2)電機(jī)驅(qū)動(dòng)芯片,比較常見的是15腳MulTIwatt封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動(dòng)電路?梢苑奖愕尿(qū)動(dòng)兩個(gè)直流電機(jī),其實(shí)物圖及直流電機(jī)實(shí)物如圖3-8所示。

圖3-8 L298N及電機(jī)實(shí)物圖 L298N屬于H橋集成電路,可驅(qū)動(dòng)大功率直流電機(jī)、步進(jìn)電機(jī)等。L298N的平均輸出電流為2A,最大時(shí)甚至可達(dá)到4A,其輸入端可以直接與單片機(jī)相連,從而很方便地受單片機(jī)的控制。 圖3-9為L(zhǎng)298N的引腳圖,圖中Current sensing為電流感應(yīng)電阻,可以在Current sensing連接電流表,以此來(lái)檢測(cè)L298N中流過(guò)的電流。OUTPUT為L(zhǎng)298N的輸出端,其中,OUTPUT 1和OUTPUT 2為A相的兩個(gè)輸出,OUTPUT 3和OUTPUT 4為B相的兩個(gè)輸出,可以用來(lái)連接電機(jī)。INPUT是L298N的輸入端,INPUT的電平?jīng)Q定了相應(yīng)編號(hào)的OUTPUT的電平。ENABLE為L(zhǎng)298N的使能端,若ENABLE為高電平,則OTPUT就會(huì)與INPUT保持一致,否則,OUTPUT不與任何端口相連。LOGIC SUPPLY VOLTAGE VSS是L298N的邏輯電壓,為L(zhǎng)298N中的邏輯器件提供電源。GND為L(zhǎng)298N的接地端。SUPPLY VOLTAGE VSS為L(zhǎng)298N的驅(qū)動(dòng)電壓,為電機(jī)提供電源[10]。

圖3-9 L298N引腳 3.4.2 PWM調(diào)速原理 脈沖寬度調(diào)制(PWM)是英文“Pulse Width Modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制。PWM調(diào)速的原理是調(diào)節(jié)在一個(gè)周期內(nèi)驅(qū)動(dòng)脈沖的占空比,進(jìn)而調(diào)節(jié)電機(jī)的供電時(shí)間比例。在一個(gè)周期內(nèi),占空比越大,則電機(jī)的供電時(shí)間越長(zhǎng),電機(jī)的運(yùn)轉(zhuǎn)速度就越快。因此,電機(jī)的調(diào)速范圍最小為零,最大為持續(xù)供電的電機(jī)轉(zhuǎn)速[11]。 3.4.3 驅(qū)動(dòng)電路 直流電機(jī)驅(qū)動(dòng)電路使用H型全橋式驅(qū)動(dòng)電路。這種驅(qū)動(dòng)電路可以很方便實(shí)現(xiàn)直流電機(jī)的四象限運(yùn)行,分別對(duì)應(yīng)正轉(zhuǎn)、正轉(zhuǎn)制動(dòng)、反轉(zhuǎn)、反轉(zhuǎn)制動(dòng)。在本設(shè)計(jì)中電機(jī)驅(qū)動(dòng)電路由集成驅(qū)動(dòng)芯片L298N構(gòu)成,并結(jié)合PWM進(jìn)行調(diào)速。ATmega16單片機(jī)本身帶有四個(gè)PWM輸出端口,通過(guò)設(shè)定其內(nèi)部參數(shù)來(lái)控制PWM的輸出,來(lái)改變脈沖寬度調(diào)制的占空比。本設(shè)計(jì)選用四個(gè)I/O口中的PD4及PD5為PWM信號(hào)的輸出端口。它的基本原理圖如圖3-10所示[12]。 
圖3-10 驅(qū)動(dòng)電路 該驅(qū)動(dòng)電路可以驅(qū)動(dòng)兩路直流電機(jī),使能端ENA、ENB為高電平時(shí)有效,控制方式及直流電機(jī)狀態(tài)圖如表3-1所示。 表3-1 電機(jī)驅(qū)動(dòng)控制方式及直流電機(jī)狀態(tài)
若要對(duì)直流電機(jī)進(jìn)行PWM調(diào)速,需設(shè)置IN1和IN2,確定電機(jī)的轉(zhuǎn)動(dòng)方向,然后對(duì)使能端輸出PWM脈沖,即可實(shí)現(xiàn)調(diào)速。注意,當(dāng)使能信號(hào)為0時(shí),電機(jī)處于停止?fàn)顟B(tài);當(dāng)使能信號(hào)為1時(shí),00和11的IN1和IN2,制動(dòng)電機(jī),停止電機(jī)旋轉(zhuǎn)[13]。 對(duì)于汽車的轉(zhuǎn)向控制,需要向ENA和ENB輸入不同的PWM信號(hào),以實(shí)現(xiàn)直流電動(dòng)機(jī)的轉(zhuǎn)速差,從而實(shí)現(xiàn)汽車轉(zhuǎn)向。本設(shè)計(jì)中有微調(diào)轉(zhuǎn)彎和轉(zhuǎn)彎兩種轉(zhuǎn)彎狀態(tài),微調(diào)轉(zhuǎn)彎是其中一個(gè)PWM信號(hào)不變,另一個(gè)的占空比減少一半;轉(zhuǎn)彎是其中一個(gè)PWM信號(hào)不變,另一個(gè)無(wú)PWM信號(hào)輸出[14]。 1
沈陽(yáng)工業(yè)大學(xué)本科生畢業(yè)論文 第4章 系統(tǒng)軟件設(shè)計(jì) 本課題的系統(tǒng)軟件部分采用模塊化設(shè)計(jì)方案。模塊化設(shè)計(jì)方案不僅邏輯清晰,而且便于編程,發(fā)現(xiàn)錯(cuò)誤后,更是便于修改。系統(tǒng)軟件共分為四個(gè)模塊,分別為主程序模塊、尋跡模塊、避障模塊以及電機(jī)驅(qū)動(dòng)模塊。尋跡模塊和避障模塊不斷采集周圍環(huán)境的信息發(fā)送至處理器,再由處理器處理后發(fā)送至電機(jī)驅(qū)動(dòng)模塊,以便于小車可以隨環(huán)境變化而做出改變。本設(shè)計(jì)的源程序見附錄B。 4.1 ICCAVR簡(jiǎn)介 該設(shè)計(jì)使用的開發(fā)環(huán)境為ICCAVR開發(fā)環(huán)境。 ICCAVR是ATMEL公司專門為AT90系列單片機(jī)開發(fā)的編譯工具。ICCAVR是一個(gè)集成的工作環(huán)境,簡(jiǎn)稱IDE,它綜合了編輯器和工程管理器等功能,并且可以根據(jù)開發(fā)的單片機(jī)的不同,選擇不同的初始值,以及是否使用定時(shí)器等功能,十分強(qiáng)大,是一個(gè)被眾多單片機(jī)開發(fā)人員廣泛使用的開發(fā)環(huán)境。 
圖4-1 ICCAVR 界面 4.2 主控制模塊主程序設(shè)計(jì) 主控制模塊主程序流程圖如圖4-2,它的作用是整合小車的各個(gè)模塊,使其正常、協(xié)調(diào)的運(yùn)行。當(dāng)小車開始運(yùn)行后,初始化各個(gè)變量,并負(fù)責(zé)接收各個(gè)子模塊的信息,綜合處理后再按照預(yù)先的設(shè)定不斷的做出反應(yīng),從而實(shí)現(xiàn)本課題的設(shè)計(jì)要求[15]。 
圖4-2主程序流程圖 4.3 紅外循跡模塊子程序設(shè)計(jì) 循跡模塊的功能主要是不斷的采集周圍環(huán)境中的信息,并將其發(fā)送至控制核心單元,以便于小車進(jìn)行下一步操作。流程圖如圖4-3所示。 紅外跟蹤模塊子程序接收外圍紅外檢測(cè)電路信號(hào)并對(duì)接收到的信號(hào)進(jìn)行編碼,紅外檢測(cè)外圍電路紅外對(duì)管位置如圖3-4。當(dāng)紅外對(duì)管檢測(cè)到白色背景時(shí)輸出高電平,檢測(cè)到黑色軌跡時(shí)輸出低電平。外圍電路紅外對(duì)管狀態(tài)進(jìn)行信號(hào)編碼后對(duì)應(yīng)表格如表4-1,將信號(hào)進(jìn)行處理編碼之后,判斷信號(hào)類型,當(dāng)信號(hào)為:1000,1100,1110,0100時(shí),單片機(jī)送出左轉(zhuǎn)信號(hào);當(dāng)信號(hào)為:0001,0011,0111,0010時(shí),單片機(jī)送出右轉(zhuǎn)信號(hào);當(dāng)信號(hào)為:0111,1111時(shí),單片機(jī)送出直走信號(hào);當(dāng)信號(hào)為:0000時(shí),停止。信號(hào)0101,1010,1101,1011,1001為無(wú)效信號(hào)[16]。 
圖4-3 紅外循跡模塊子程序流程圖
表4-1 外圍電路紅外對(duì)管狀態(tài)進(jìn)行信號(hào)編碼后對(duì)應(yīng)表 | | | | 1號(hào)低2號(hào)低3號(hào)低4號(hào)低 | | 1號(hào)低2號(hào)低3號(hào)高4號(hào)低 | | 1號(hào)高2號(hào)高3號(hào)高4號(hào)高 | | 1號(hào)低2號(hào)高3號(hào)高4號(hào)低 | | 1號(hào)高2號(hào)低3號(hào)低4號(hào)低 | | 1號(hào)低2號(hào)低3號(hào)高4號(hào)高 | | 1號(hào)高2號(hào)高3號(hào)低4號(hào)低 | | 1號(hào)低2號(hào)低3號(hào)低4號(hào)高 | | 1號(hào)低2號(hào)高3號(hào)低4號(hào)低 | | 1號(hào)低2號(hào)高3號(hào)高4號(hào)高 | | 1號(hào)高2號(hào)高3號(hào)高4號(hào)低 | | | |
4.4 紅外避障模塊子程序設(shè)計(jì) 紅外避障模塊子程序流程圖如圖4-4所示。避障模塊采用E18-D80NK傳感器來(lái)探測(cè)前方的道路上15厘米的距離之內(nèi)有無(wú)障礙物,進(jìn)而將探測(cè)結(jié)果發(fā)送至核心控制單元,等待控制單元做出下一步的處理[17]。 
圖4-4 紅外避障程序流程圖
避障模塊不斷的通過(guò)傳感器采集周圍環(huán)境中的信息,當(dāng)前方15厘米內(nèi)沒有障礙物時(shí),小車保持前進(jìn)狀態(tài),若有障礙物則可通過(guò)小車前方及左右方的紅外避障傳感器,獲得障礙物的具體情況進(jìn)行信息處理編碼,編碼方式如下表4-2。 將外部信息進(jìn)行編碼后,通過(guò)對(duì)信號(hào)的判斷,控制小車的移動(dòng)方向:探測(cè)結(jié)果111,表明前方15cm內(nèi)無(wú)障礙物單片機(jī)送出“前進(jìn)”指令,小車保持前進(jìn)狀態(tài);探測(cè)結(jié)果000,表明前方及左右兩邊15cm內(nèi)均有障礙物,單片機(jī)送出“停止”指令;探測(cè)結(jié)果101,表明前方15cm內(nèi)有障礙物左右兩邊均無(wú)障礙物,單片機(jī)送出“右轉(zhuǎn)”指令(左右均無(wú)障礙物默認(rèn)右轉(zhuǎn));探測(cè)結(jié)果001,表明前方及左邊15cm內(nèi)有障礙物,單片機(jī)送出“右轉(zhuǎn)”指令;探測(cè)結(jié)果100,表明前方及右邊15cm內(nèi)有障礙物,單片機(jī)送出“左轉(zhuǎn)”指令;探測(cè)結(jié)果110,表明右邊15cm內(nèi)有障礙物,單片機(jī)送出“左轉(zhuǎn)”指令;探測(cè)結(jié)果011,表明左邊15cm內(nèi)有障礙物,單片機(jī)送出“右轉(zhuǎn)”指令;探測(cè)結(jié)果010,表明左邊及右邊15cm內(nèi)有障礙物,單片機(jī)送出“停止”指令[18]。
表4-2 紅外避障模塊外圍電路信息處理編碼表 | | 左邊無(wú)障礙物,前方無(wú)障礙物,右邊無(wú)障礙物 | | | | 左邊無(wú)障礙物,前方有障礙物,右邊無(wú)障礙物 | | | | | | 左邊無(wú)障礙物,前方無(wú)障礙物,右邊有障礙物 | | 左邊有障礙物,前方無(wú)障礙物,右邊無(wú)障礙物 | | | |
4.5 電機(jī)驅(qū)動(dòng)模塊子程序設(shè)計(jì) 電機(jī)驅(qū)動(dòng)模塊不斷的等待接受單片機(jī)發(fā)出的指令,并可以根據(jù)指令控制電機(jī)做出不同的反應(yīng),進(jìn)而控制小車的運(yùn)動(dòng)[19]。流程圖如圖4-5所示。 當(dāng)接收指令0x00:無(wú)數(shù)據(jù),無(wú)PWM波,無(wú)方向信號(hào)。當(dāng)接收指令0x01:小車前進(jìn),兩個(gè)電機(jī)驅(qū)動(dòng)器給予相同的PWM波,相同的方向信號(hào)。當(dāng)接收指令0x02:小車后退,在前進(jìn)的基礎(chǔ)上改變方向信號(hào)。當(dāng)接收指令0x03:小車停止,無(wú)PWM波,無(wú)方向信號(hào)。當(dāng)接收指令0x04:結(jié)合循跡模塊的信號(hào)向左微轉(zhuǎn)或左轉(zhuǎn)。當(dāng)接收指令0x05:結(jié)合循跡模塊的信號(hào)向右微轉(zhuǎn)或右轉(zhuǎn)。 
圖4-5電機(jī)控制程序流程圖
第5章 結(jié)論
通過(guò)這個(gè)學(xué)期的不斷深入學(xué)習(xí),深入了解了AVR單片機(jī)的各個(gè)特性,以及ICCAVR的使用方法,設(shè)計(jì)并實(shí)現(xiàn)了可以自動(dòng)循跡、避障的智能小車。大大提高了自己的動(dòng)手能力以及獨(dú)立學(xué)習(xí)的能力。通過(guò)本課題的學(xué)習(xí)研究,我深刻地認(rèn)識(shí)到,只學(xué)習(xí)課本上的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須緊跟時(shí)代的發(fā)展趨勢(shì),不斷地學(xué)習(xí)新的知識(shí),努力地提高自己,才能達(dá)到自己預(yù)期的目標(biāo)。 在本課題中,以AVR單片機(jī)為控制核心,以RPR220型光電對(duì)管、E18-D80NK傳感器等作為輔助模塊,完成了可以自動(dòng)循跡、避障的智能小車。小車實(shí)現(xiàn)了以下幾個(gè)功能: - 小車可以自動(dòng)沿著白色背景上的黑色軌跡行駛,一旦行駛過(guò)程中有所偏離,還可以自動(dòng)回到黑色軌跡上來(lái)。
- 小車在行駛過(guò)程中,可以自動(dòng)檢測(cè)前方的道路上有無(wú)障礙物。若有障礙物,可以實(shí)現(xiàn)自動(dòng)躲避并繼續(xù)行駛。
通過(guò)本次課題的學(xué)習(xí),我不但掌握了很多以前學(xué)的不明白的知識(shí),還學(xué)習(xí)了很多新知識(shí),有了很大的收獲。
致 謝 本論文的設(shè)計(jì)是在關(guān)新老師的悉心指導(dǎo)下完成的。從課題的選擇、到具體的設(shè)計(jì),無(wú)論在理論上還是在實(shí)踐中都給了我許多指導(dǎo)和幫助,使我得以改進(jìn)和提高。她嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,求真務(wù)實(shí)的學(xué)術(shù)作風(fēng),深厚的理論水平,豐富的項(xiàng)目經(jīng)驗(yàn),都深刻地影響著我,使我終身受益。值此論文完成之際,我謹(jǐn)向關(guān)新老師表示深深的感謝和崇高的敬意! 同時(shí),在撰寫畢業(yè)論文過(guò)程中,得到了我的同學(xué)李佳城、吳濟(jì)等同學(xué)各方面的熱誠(chéng)幫助,使我能夠順利完成畢業(yè)論文,在此致以深深的謝意!
附 錄A 總電路圖
附 錄B 源程序
|