第1章 緒論
1.1 課題背景2010年10月1日18時59分57秒345毫秒,嫦娥2號點(diǎn)火,19時整成功發(fā)射。在飛行后的29分53秒時,星箭分離,衛(wèi)星進(jìn)入軌道。19時56分太陽能帆板成功展開……這次探月衛(wèi)星的成功發(fā)射,標(biāo)志著中國自動化領(lǐng)域進(jìn)入了一個新的階段。
隨著自動化的發(fā)展,自動化開始向復(fù)雜的系統(tǒng)控制和高級的智能控制發(fā)展,并廣泛地應(yīng)用到國防、科學(xué)研究和經(jīng)濟(jì)等各個領(lǐng)域,實(shí)現(xiàn)更大規(guī)模的自動化,例如大型企業(yè)的綜合自動化系統(tǒng)、全國鐵路自動調(diào)度系統(tǒng)、國家電力網(wǎng)自動調(diào)度系統(tǒng)、空中交通管制系統(tǒng)、城市交通控制系統(tǒng)、自動化指揮系統(tǒng)、國民經(jīng)濟(jì)管理系統(tǒng)等。自動化的應(yīng)用正從工程領(lǐng)域向非工程領(lǐng)域擴(kuò)展,如醫(yī)療自動化、人口控制、經(jīng)濟(jì)管理自動化等。自動化將在更大程度上模仿人的智能,機(jī)器人已在工業(yè)生產(chǎn)、海洋開發(fā)和宇宙探測等領(lǐng)域得到應(yīng)用,專家系統(tǒng)在醫(yī)療診斷、地質(zhì)勘探等方面取得顯著效果。工廠自動化、辦公自動化、家庭自動化和農(nóng)業(yè)自動化將成為新技術(shù)革命的重要內(nèi)容,并得到迅速發(fā)展。
智能小車,也稱輪式機(jī)器人,是一種以汽車電子為背景,涵蓋智能控制、模式識別、傳感技術(shù)、電子電氣、計(jì)算機(jī)、機(jī)械等多學(xué)科的科技創(chuàng)意性設(shè)計(jì),更是自動化的一種綜合體現(xiàn)。一般主要由路徑識別、速度采集、角度控制及車速控制等模塊組成。近些年來全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究,可見其研究意義很大,也正因此掀起了智能車研究的一股熱潮[1]。
1.1.1 研究目的與意義小車,也就是輪式機(jī)器人,最適合在那些人類無法工作的環(huán)境中工作,該技術(shù)可以應(yīng)用于無人駕駛機(jī)動車,無人生產(chǎn)線,倉庫,服務(wù)機(jī)器人等領(lǐng)域。在危險(xiǎn)環(huán)境下,機(jī)器人非常適合使用。在這些險(xiǎn)惡的環(huán)境下工作,人類必需采取嚴(yán)密的保護(hù)措施。而機(jī)器人可以進(jìn)入或穿過這些危險(xiǎn)區(qū)域進(jìn)行維護(hù)和探測工作,且不需要得到像對人一樣的保護(hù)。例如美國的“勇氣”號和“機(jī)遇”號,在火星探測過程中分別在其著陸區(qū)域附近找到火星上過去曾有過水的證據(jù),為人類對火星的探測做出了巨大的貢獻(xiàn)[1]。
機(jī)器人的應(yīng)用正逐步滲入到工業(yè)和社會的各個層面,如采用帶有專用新型傳感器的移動式機(jī)器人,連續(xù)監(jiān)視采礦狀態(tài),以便及早發(fā)現(xiàn)事故突發(fā)的先兆,采取相應(yīng)的預(yù)防措施;智能輪椅運(yùn)用口令識別與語音合成、機(jī)器人自定位、動態(tài)隨機(jī)避障、多傳感器信息融合、實(shí)時自適應(yīng)導(dǎo)航控制等功能,運(yùn)用了現(xiàn)代高新技術(shù)來改善殘障人們的生活質(zhì)量和生活自由度。在智能車輛領(lǐng)域,智能小車自動行駛功能的研究將有助于智能車輛的研究。智能車輛駕駛?cè)蝿?wù)的自動完成將給人類社會的進(jìn)步帶來巨大的影響,例如能切實(shí)提高道路網(wǎng)絡(luò)的利用率、降低車輛的燃油消耗量,尤其是在改進(jìn)道路交通安全等方面提供了新的解決途徑。
“工欲善其事,必先利其器”。人類在認(rèn)識自然、改造自然、推動社會進(jìn)步的過程中,不斷地創(chuàng)造出各種各樣為人類服務(wù)的工具,其中許多具有劃時代的意義。作為20世紀(jì)自動化領(lǐng)域的重大成就,機(jī)器人已經(jīng)和人類社會的生產(chǎn)、生活密不可分。因此為了使智能小車工作在最佳狀態(tài),進(jìn)一步研究及完善其速度和方向的控制是非常有必要的。
本文所研究的內(nèi)容涉及尋跡、避障、人工操控等多種功能,初步實(shí)現(xiàn)智能化,可做為各類科研的基礎(chǔ)模型,具有較大的研究空間,適合于多種領(lǐng)域的智能化研究與開發(fā)。
1.2 國內(nèi)外文獻(xiàn)綜述智能車輛的研究始于20世紀(jì)50年代初,美國Barrett Electronics公司開發(fā)出的世界上第一臺自動引導(dǎo)車輛系統(tǒng)(Automated Guided Vehicle System,AGVS)。1974年,瑞典的VolvoKalmar轎車裝配工廠與Schiinder--Digitron公司合作,研制出一種可裝載轎車車體的AGVS,并由多臺該種AGVS組成了汽車裝配線,從而取消了傳統(tǒng)應(yīng)用的拖車及叉車等運(yùn)輸工具。由于Kalmar工廠采用AGVS獲得了明顯的經(jīng)濟(jì)效益,許多西歐國家紛紛效仿Volvo公司,并逐步使AGVS在裝配作業(yè)中成為一種流行的運(yùn)輸手段。在世界科學(xué)界和工業(yè)設(shè)計(jì)界中,眾多的研究機(jī)構(gòu)正在研發(fā)智能車輛,使智能車技術(shù)迅速展起來。
德意志聯(lián)邦大學(xué)已經(jīng)研發(fā)出多輛智能原型車輛。在1985年,第一輛VaMoRs智能原型車輛就已經(jīng)在戶外高速公路上以l00km/h的速度進(jìn)行了測試。使用機(jī)器視覺來保證橫向和縱向的車輛控制。1988年,在都靈的PROMETHEUS項(xiàng)目第一次委員會會議上,智能車輛維塔(VrrA)進(jìn)行了展示,該車可以自動停車、行進(jìn),并可以向后車傳送相關(guān)駕駛信息。這兩種車輛都配備UBM視覺系統(tǒng)。這是一個雙目視覺系統(tǒng),具有極高的穩(wěn)定性,同時還包括一些其他種類的傳感器:三個加速度計(jì)、一個車輪位置編碼器(可作為里程表或速度計(jì)),在VaMoRs車中,ZIPS接收機(jī)可以實(shí)現(xiàn)車輛位置的初步估算。
美國俄亥俄州立大學(xué)智能交通研究所所研發(fā)的三輛智能原型車輛,配備不同的傳感器來實(shí)現(xiàn)數(shù)據(jù)融合和錯誤檢測技術(shù):基于視覺的系統(tǒng);雷達(dá)系統(tǒng)(檢測與車道的橫向位置);激光掃描測距器(障礙物檢測);其他傳感器,如側(cè)向雷達(dá)、轉(zhuǎn)向陀螺儀。利用基于視覺的方法實(shí)現(xiàn)道路檢測。利用一臺安裝在后視鏡處的CCD攝像機(jī),位置要盡可能高,車道檢測系統(tǒng)可以處理這樣的單幅灰度圖像。算法假設(shè)道路是水平地,并且有連續(xù)或點(diǎn)化的車道標(biāo)志線。前幾幀檢測的車道標(biāo)志線數(shù)據(jù)也用來決定下一步興趣熱點(diǎn)區(qū)域,以簡化圖像處理。算法從圖像中提取出重要的亮域,并以向量行駛存儲,如道路消失點(diǎn)或道寬這樣的數(shù)據(jù)參數(shù),都可以作為計(jì)算車道標(biāo)志線的參考,最后為了處理點(diǎn)劃車道線,可以通過一階多項(xiàng)式曲線來擬合,在進(jìn)行向量計(jì)算。如果檢測到左右車道標(biāo)志線,就可以利用左右標(biāo)志線來估計(jì)車道中心線;否則也可以利用估計(jì)的車道寬度及相關(guān)可視標(biāo)志來估算中心線[2]。
在我國,吉林大學(xué)智能車輛課題組長期從事智能車輛自主導(dǎo)航機(jī)理及關(guān)鍵技術(shù)研究。20世紀(jì)90年代以來,課題組開展的組態(tài)式柔性制造單元及圖像識別自動引導(dǎo)車的研究對我國獨(dú)立自主開發(fā)一種新型自動引導(dǎo)車輛系統(tǒng),從而為我國生產(chǎn)組織模式向柔性或半柔性生產(chǎn)組織轉(zhuǎn)化提供了有意義的技術(shù)支撐和關(guān)鍵設(shè)備。另外,我國清華大學(xué)、北京理工大學(xué)等單位也正在研發(fā)智能車輛。汽車自主駕駛技術(shù)是集模式識別、智能控制、計(jì)算機(jī)科學(xué)和汽車操縱動力等多門學(xué)科于一體的綜合性技術(shù),汽車自主駕駛功能水平的高低常被用來作為衡量一個國家控制技術(shù)水平的重要標(biāo)準(zhǔn)之一。智能車輛的相關(guān)技術(shù),也將為促進(jìn)輪式機(jī)器人的研究。
1.3 論文研究內(nèi)容本課題主要開發(fā)一個基于路徑處理的的智能小車控制系統(tǒng),通過該系統(tǒng),我們可以給小車給定一條軌跡,使其按預(yù)定路徑行始。小車可以獨(dú)自運(yùn)行,也可人工及時操控調(diào)整,使其按正確的軌跡運(yùn)行。本文主要有以下內(nèi)容:
1.智能小車相關(guān)領(lǐng)域的研究現(xiàn)狀,本文首要介紹了與智能小車相關(guān)的機(jī)器人、智能車輛的發(fā)展歷史、國內(nèi)外研究現(xiàn)狀。
2.智能小車硬件系統(tǒng)的設(shè)計(jì)。詳細(xì)介紹智能小車硬件電路的設(shè)計(jì)與實(shí)現(xiàn)。智能小車選擇STC89C52單片機(jī)最小系統(tǒng)作為核心控制單元,完成電源模塊、傳感器模塊、直流電機(jī)驅(qū)動模塊、路徑識別模塊、等功能模塊的設(shè)計(jì)。
3.障基本原理。采用光電紅外對管來識別路徑,紅外發(fā)射管與紅外一體接收頭來識別障礙。
4.控制原理。采用紅外識別,遙控器解碼技術(shù),來控制小車的行進(jìn)方向,從而達(dá)到人工操控的目地。
5.行實(shí)車試驗(yàn),對小車進(jìn)行調(diào)試。
第2章 系統(tǒng)方案論證與分析本章主要介紹方案的選擇與分析,主要包括單片機(jī)模塊、電源模塊、電機(jī)驅(qū)動模塊、黑線檢測模塊以及液晶顯示模塊的方案選擇與分析。
2.1 小車構(gòu)架方案論證小車行走機(jī)構(gòu)的方案分析與選擇:
方案一:履帶式行走機(jī)構(gòu):運(yùn)行平穩(wěn)、可靠,走直線效果很好;但結(jié)構(gòu)相對復(fù)雜、移動速度較慢,轉(zhuǎn)彎過程的控制性能較差。
方案二:腿式行走機(jī)構(gòu):可以走出多種復(fù)雜的路線,但結(jié)構(gòu)復(fù)雜、運(yùn)動中的平衡性和穩(wěn)定性差、移動速度較慢。
方案三:兩輪式行走機(jī)構(gòu):結(jié)構(gòu)簡單、運(yùn)動平穩(wěn)、移動速度快、轉(zhuǎn)彎性能好,且易于控制,適用于小功率的行走驅(qū)動。
方案四:四輪式行走機(jī)構(gòu):結(jié)構(gòu)簡單、運(yùn)動平穩(wěn)、移動速度快、易于控制。
通過以上四種方案的優(yōu)缺點(diǎn),方案三與方案四可具有較大的可行性,但四輪式行走機(jī)構(gòu)需要四個電機(jī),控制算法相對復(fù)雜,且需要很大的驅(qū)動電流,對硬件要求較高,而兩輪式能滿足此設(shè)計(jì)要求,且結(jié)構(gòu)簡單,算法方便,要求驅(qū)動電流小,硬件結(jié)構(gòu)簡單。本設(shè)計(jì)以對稱結(jié)構(gòu),簡單方便為主,固綜上考慮,采用方案三的設(shè)計(jì)思想。
2.2 電機(jī)選擇方案論證電動機(jī)選擇方案與分析:
方案一:采用步進(jìn)電機(jī):步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個脈沖信號,電機(jī)則轉(zhuǎn)過一個步距角,這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn)。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單。所以,若采用步進(jìn)電機(jī)作為該系統(tǒng)的驅(qū)動電機(jī),由于其轉(zhuǎn)動的角度可以精確定位,可以實(shí)現(xiàn)小車前進(jìn)距離和位置的精確定位。
方案二:采用直流電機(jī):采用直流減速電機(jī),直流減速電機(jī)轉(zhuǎn)動力矩大,體積小,重量輕,裝配簡單,使用方便,過載能力強(qiáng),能承受頻繁的沖擊負(fù)載,可實(shí)現(xiàn)無級快速啟動、制動和反轉(zhuǎn);能滿足各種不同的特殊運(yùn)行要求。很方便的就可以實(shí)現(xiàn)通過單片機(jī)對直流減速電機(jī)前進(jìn)、后退、停止等操作。
通過以上兩種方案的比較,兩種方案均具有較大的可行性,但步進(jìn)電機(jī)并不能象普通的直流電機(jī)、交流電機(jī)在常規(guī)下使用。它必須由雙環(huán)形脈沖信號、功率驅(qū)動電路等組成控制系統(tǒng)方可使用。步進(jìn)電機(jī)的輸出力矩較低,隨轉(zhuǎn)速的升高而下降,且在較高的轉(zhuǎn)速時會急劇下降,其轉(zhuǎn)速較低時不適于小車等對速度有一定要求的系統(tǒng)。在價(jià)格方面,直流電機(jī)低于步進(jìn)電機(jī),易于購買,且對硬件要簡單,完全可以實(shí)現(xiàn)此設(shè)計(jì)的要求,固綜上考慮,此次設(shè)計(jì)采用直流電機(jī)作為動力源。
2.3 電機(jī)驅(qū)動方案論證小車運(yùn)行過程中要求電動機(jī)的轉(zhuǎn)速在一定范圍內(nèi)調(diào)節(jié),調(diào)速范圍根據(jù)負(fù)載的要求而定。由公式(2-1)

(2-1)
N:電樞轉(zhuǎn)速,

:電機(jī)端電壓,

:電機(jī)端電流,

:電樞電阻,

:常數(shù),

:各極總磁通
可以看出,調(diào)速可以有三種方法:
1.改變電機(jī)端電壓

,即改變電樞電源電壓;
2.改變磁通

,即改變激磁回路的調(diào)節(jié)電阻

以改變激磁電流

;
3.在電樞回路中串聯(lián)調(diào)節(jié)電阻

。此時的轉(zhuǎn)速公式(2-2)為:

(2-2)
在實(shí)際電路設(shè)計(jì)中,改變電機(jī)的磁通

或調(diào)節(jié)樞回路中串聯(lián)調(diào)節(jié)電阻

并不方便、實(shí)用。因此,主要選擇通過改變電機(jī)兩端電壓的方法來實(shí)現(xiàn)電機(jī)的調(diào)速控制。
下面是通過調(diào)節(jié)電機(jī)兩端電壓達(dá)到調(diào)速目的的三種方案:
方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目的。但是電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價(jià)格比較昂貴。更主要的問題在于一般電動機(jī)的電阻很小,但電流很大,分壓不僅會降低效率且實(shí)現(xiàn)困難。
方案二:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。這個方案的優(yōu)點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時間慢、機(jī)械結(jié)構(gòu)易損壞,壽命較短、可靠性不高。
方案三:采用由達(dá)林頓管組成的H型PWM電路。用單片機(jī)控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高。H型電路保證了可以簡單的實(shí)現(xiàn)轉(zhuǎn)速和方向的控制。電子開關(guān)的速度很快,穩(wěn)定性也極強(qiáng),是一種廣泛采用的PWM調(diào)速技術(shù)。L298為SGS-THOMSON Microelectronics所出產(chǎn)的雙全橋步進(jìn)電機(jī)專用驅(qū)動芯片(Dual Full-Bridge Driver) ,可以方便的驅(qū)動兩個直流電機(jī),或一個兩相步進(jìn)電機(jī)。內(nèi)含二H-Bridge的高電壓、大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn) TTL邏輯準(zhǔn)位信號,可驅(qū)動46V、2A以下的步進(jìn)電機(jī),輸出電壓最高可達(dá)50V?梢灾苯油ㄟ^電源來調(diào)節(jié)輸出電壓,可以直接用單片機(jī)的IO口提供信號,而且電路簡單,使用比較方便。
PWM脈寬調(diào)制實(shí)際上就是改變電機(jī)端電壓的平均值從而進(jìn)行調(diào)速的一種方法。這種方法便于與單片機(jī)等數(shù)字系統(tǒng)接口,實(shí)現(xiàn)方便,而前兩種方法必須要配合一定的外圍模擬電路才能達(dá)到單片機(jī)控制目的,基于以上分析, 在電動機(jī)驅(qū)動模塊上擬選定采用PWM脈寬調(diào)制方法。選用L298雙全橋驅(qū)動芯片。
2.4 供電電源方案論證供電電源方案的選擇與分析:
方案一:采用兩個電源供電,將電動機(jī)驅(qū)動電源與單片機(jī)以及其周圍電路電源完全隔離,利用光電耦合器傳輸信號。這樣可以使電動機(jī)驅(qū)動所造成的干擾徹底消除,提高了系統(tǒng)的穩(wěn)定性。
方案二:采用單一電源供電。所用器件采用12V蓄電池為直流電機(jī)供電。因電動機(jī)啟動瞬間電流很大,而且PWM驅(qū)動的電動機(jī)電流波動較大,會造成電壓不穩(wěn) 、有毛刺等干擾,可采用將12V電壓降壓、穩(wěn)壓后給單片機(jī)系統(tǒng)和其它芯片供電。這樣供電比較簡單[3]。
基于以上的分析,兩種方案均具有可行性,但方案一使用兩個電源,增加了小車的重量與體積,增大了小車的慣性,雖然具有較大的優(yōu)勢,但綜合考慮,符合設(shè)計(jì)要求的情況下,選擇方案二做為小車的供電電源。
2.5 尋跡檢測方案論證尋跡檢測方案的選擇與分析:
方案一:采用對射式紅外光電傳感器。用可見發(fā)光二極管與光敏二極管組成的發(fā)射-接收分立對管光電傳感器。這種方案的缺點(diǎn)在于,其他環(huán)境光源會對光敏二極管的工作產(chǎn)生很大干擾,一旦外界光亮條件改變,很可能造成誤判和漏判。雖然采取超高亮發(fā)光管可以降低一定的干擾,但這又將增加額外的功率損耗。在跑道上設(shè)置檢測裝置很不方便,故無法應(yīng)用對射式光電開關(guān)探測跑道標(biāo)志,只能采用反射式光電開關(guān)。
方案二:采用反射式紅外光電傳感器,利用紅外線發(fā)射管發(fā)射紅外線,紅外線二極管進(jìn)行接收。采用紅外線發(fā)射,外面可見光對接收信號的影響較小,尋跡電路中采用比較器LM393,信號進(jìn)入后就會被放大,可以直接送給單片機(jī)進(jìn)行操作,同時可以加一可調(diào)電阻,可以調(diào)節(jié)傳感器的靈敏度,易于調(diào)試。本方案也易于實(shí)現(xiàn),比較可靠[4]。
綜上所述,方案二具有可行性,選擇方案二作為尋跡方案。
2.6 避障方案論證避障方案的選擇與分析:
方案一:脈沖調(diào)制的反射式紅外線接受器。由于該有交流分量的調(diào)制信號,則可大幅度減少外界干擾;另外紅外紅線接受的最大工作電流取決于平均電流。如果采用占空比小的調(diào)制信號,再平均電流不變的情況下,順勢電流很大(50~100mA),則大大提高了信噪比。并且其反應(yīng)靈敏,外圍電路也很簡單。它的優(yōu)點(diǎn)是消除了外界光線的干擾提高了靈敏度。
方案二:采用超聲波傳感器,如果傳感器接收到反射的超聲波,則通知單片機(jī)前方有障礙物,否則通知單片機(jī)可以向前行駛。市場上很多紅外光電探頭也是基于這個原理。這樣不但能準(zhǔn)確完成測量,而且能避免電路的復(fù)雜性[5]。
通過以上兩種方案的比較,兩種方案均可行,但第二種方案超聲波傳感器價(jià)格比格昂貴,所以與方案一相比,在要求不是很嚴(yán)格的情況下,方案一具有更大的選擇性。
2.7 無線遙控方案論證無線在各領(lǐng)域均有廣泛的運(yùn)用,而要實(shí)現(xiàn)無線控制,則要實(shí)現(xiàn)信號的無線接收與發(fā)送,基于無線的基本原理,提出以下幾種方案進(jìn)行選擇與分析:
方案一:采用PT2263與PT2272芯片作為系統(tǒng)的編碼與解碼,其中PT2262為無線發(fā)送芯片,PT2272解碼輸出,來實(shí)現(xiàn)無線信號的收發(fā),從而達(dá)到無線控制的目的。
方案二:采用NRF24L01成品收發(fā)模塊。發(fā)射距離遠(yuǎn),信號穩(wěn)定,體積小,市場價(jià)格較低。
方案三:使用紅外線進(jìn)行遙控,采用常用的紅外遙控器進(jìn)行紅外信號的發(fā)射,用一體化紅外接收頭1838芯進(jìn)行信號的接收,使用軟件進(jìn)行紅外信號的解碼,以此來識別按鍵,控制小車的行動[6]。
以上三種方案均為常用的無線收發(fā)方式,但方案一不僅加大了硬件的需求,而且手工制作接收與發(fā)射模塊,對手工要求較高,且發(fā)射距離較短。方案二采用成品的收發(fā)模塊,體積小,性能穩(wěn)定,可使用范圍最高可達(dá)200m左右,市場價(jià)格較低。方案三采用紅外一體接收頭1838,解調(diào)信號輸出端DOUT可直接被單片機(jī)識別,同時使用軟件進(jìn)行解碼,大大簡化了電路,發(fā)射距離 30m左右,能夠滿足設(shè)計(jì)需求。經(jīng)過以上三種方案的比較,決定采用方案三做為小車的無線遙控方案。
2.8 控制方案論證智能小車系統(tǒng)的核心模塊即為主控單片機(jī)。選擇一片數(shù)據(jù)處理能力強(qiáng)大、片內(nèi)資源豐富的單片機(jī),對設(shè)計(jì)各功能的更好實(shí)現(xiàn)具有極大意義。一個單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含有兩部分內(nèi)容:一是系統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的功能單元,如ROM﹑RAM﹑I/O口﹑定時/記數(shù)器﹑中斷系統(tǒng)等。若不能滿足應(yīng)用系統(tǒng)的要求時,必須在片外進(jìn)行擴(kuò)展。二是系統(tǒng)配置,既按照系統(tǒng)功能要求配置外圍設(shè)備,如液晶顯示器﹑A/D﹑D/A轉(zhuǎn)換器等,且需要設(shè)計(jì)合適的接口電路?刂葡到y(tǒng)是機(jī)械運(yùn)行的核心,同樣,在本次智能車的設(shè)計(jì),為了實(shí)現(xiàn)小車的初步智能化,一個良好與否的控制芯片關(guān)系到最終的成敗,而控制類的芯片多種多樣,下面就以下兩種進(jìn)行選擇與分析:
方案一:采用AT89C51芯片,具有體積小、可靠性高、功耗低、結(jié)構(gòu)簡單、運(yùn)算速度快等優(yōu)點(diǎn),同時被列入教科書已進(jìn)行系統(tǒng)的學(xué)習(xí)與分析,是最早比較了解的芯片。其片內(nèi)數(shù)據(jù)存儲器RAM有128B,片內(nèi)程序存儲器Flash ROM 有4KB;可尋址片外64KB的RAM;兩個16位的定時器/計(jì)數(shù)器;五個中斷源、兩個優(yōu)先級的中斷控制系統(tǒng);
方案二:采用STC89C52芯片,繼承了AT89C51的功能,同時在其基礎(chǔ)上進(jìn)行了優(yōu)良的改進(jìn),功能較強(qiáng)大。其片內(nèi)8k ROM,256x8bit內(nèi)部RAM,3個16位可編程定時/計(jì)數(shù)器,6個中斷源,4層優(yōu)先級中斷結(jié)構(gòu)[7]。
以上兩種芯片均可行,但AT89C51與STC89C52相比,后者具有較大優(yōu)勢,同時基于對STC89C52較為熟悉,所以采用方案二,使用STC89C52作為智能小車的總體控制芯片。
2.9 本章小結(jié)本章主要介紹智能小汽車的設(shè)計(jì)思想與主要功能傳感器的選擇,分別介紹了小車本體的選擇方案,電動機(jī)的選擇策略,電動機(jī)驅(qū)動芯片的選擇方案,尋跡、避障傳感器以及無線遙控方案的選擇,并且也講述了如何供電電源的分配情況。通過上面的詳細(xì)講述,我們就可以科學(xué)合理的制作自己的小車,并把我們需要的功能加到上面,此款智能小汽車無論從工藝制作到傳感器的選擇,再到電源、電機(jī)的分配都較為合理,而且結(jié)構(gòu)簡單方便,適合電子愛好者進(jìn)一步開發(fā)與研究。
本次設(shè)計(jì)僅為智能自動化的初步研究,以展現(xiàn)基本自動化原理為主,具有很高的科學(xué)研究價(jià)值,在醫(yī)療器械、考古、軍事、智能玩具以及機(jī)器人等方面都留有很大的研究與發(fā)展空間,相信會給更多的人提供一個研究智能電子產(chǎn)品的平臺。智能單片機(jī)由軟件和硬件結(jié)合控制,實(shí)現(xiàn)電路設(shè)定功能,其具有速度快、功耗低、體積小、外圍器件少等優(yōu)點(diǎn),除此之外,智能電子產(chǎn)品還具有穩(wěn)定性好、可靠性高,電路簡單、功能實(shí)現(xiàn)容易,技術(shù)可升級,產(chǎn)品檔次高等優(yōu)勢。隨著社會不斷地發(fā)展,在未來的日子里,智能化電子產(chǎn)品會越來越受到人們的關(guān)注與重視,此款小車就是一個簡單可以從事一些設(shè)定功能的智能化電子產(chǎn)品。
第3章 硬件設(shè)計(jì)3.1 硬件原理圖 電動智能小車采用STC89C52單片機(jī)進(jìn)行智能控制。開始先手動啟動小車開關(guān),進(jìn)行模式選擇,并設(shè)有復(fù)位按鈕。尋跡模式下,小車采用反射型光電探測器檢測黑帶,將信號傳給單片機(jī)進(jìn)行識別,同時通過單片機(jī)控制電機(jī)使小車前進(jìn),以及左、右拐彎的操作。避障模式下,避障模塊開始工作,開始進(jìn)行避障處理,小車開始進(jìn)行自由避障,當(dāng)進(jìn)入停車區(qū)時,由紅外進(jìn)行識別,小車自動停車。系統(tǒng)原理圖如圖3—1所示。
圖3-1 系統(tǒng)原理圖
3.2 控制電路設(shè)計(jì)控制電路是整個智能車的核心,相當(dāng)于人類的大腦一樣,控制著整量車的行車方式,通過編寫程序來實(shí)現(xiàn)各種功能,但單片機(jī)的工作需要一定的外圍電路以及下載電路才能保證單片機(jī)的正常工作以及程序的下載,下面就將介紹STC89C52單片機(jī)的基本功能以及其外圍電路、下載電路的設(shè)計(jì)。
3.2.1 STC89C52單片機(jī)硬件結(jié)構(gòu)STC89C52單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲器、程序存儲器、并行I/O口、串行口、定時器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。
1.中斷系統(tǒng):具有6個中斷源,2級中斷優(yōu)先權(quán)。
2.定時器/計(jì)數(shù)器:片內(nèi)有3個16位定時器/計(jì)數(shù)器,具有四種工作方式。
3.串行口:1個全雙工的串行口,具有四種工作方式?捎脕磉M(jìn)行串行通訊,擴(kuò)展并行I/O口,甚至與多個單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣。
4.P1口、P2口、P3口、P4口為4個并行8位I/O口。使單片機(jī)對輸出的控制更加靈活[7]。
STC89C52主要功能如表3-1所示。
表3-1 STC89C52主要功能
|
| |
| |
3個16位可編程定時/計(jì)數(shù)器中斷 | |
| |
| |
| |
| |
3.2.2 最小系統(tǒng)的設(shè)計(jì)1.時鐘電路
STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時鐘電路如圖3-2(a) 所示,在RXD和TXD引腳上外接定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。
外部方式的時鐘電路如圖3-2(b)所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機(jī)使用。
(a)內(nèi)部方式時鐘電路 (b)外部方式時鐘電路
圖3-2時鐘電路
2.復(fù)位及復(fù)位電路
(1)復(fù)位操作
復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵重新啟動。
除PC之外,復(fù)位操作還對其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表3-2所示。
表3-2 一些寄存器的復(fù)位狀態(tài)
(2)復(fù)位信號及其產(chǎn)生
RST引腳是復(fù)位信號的輸入端。復(fù)位信號是高電平有效,其有效時間應(yīng)持續(xù)24個振蕩周期(即二個機(jī)器周期)以上。若使用頗率為12MHz的晶振,則復(fù)位信號持續(xù)時間應(yīng)超過2μs才能完成復(fù)位操作。
整個復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個機(jī)器周期的S5P2時刻對施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號。
復(fù)位操作有上電自動復(fù)位和按鍵手動復(fù)位兩種方式。
上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,其電路如圖3-3(a)所示。這佯,只要電源Vcc的上升時間不超過1ms,就可以實(shí)現(xiàn)自動上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。
按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,其電路如圖3-3(b)所示;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,其電路如圖3-3(c)所示:
電路圖中的電阻、電容參數(shù)適用于12MHz晶振,能保證復(fù)位信號高電平持續(xù)時間大于2個機(jī)器周期[8]。
本系統(tǒng)的復(fù)位電路采用圖3-3(b)上電復(fù)位方式。
(a)上電復(fù)位 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位
圖3-3復(fù)位電路
3.2.3 下載端口設(shè)計(jì)單片機(jī)程序的下載實(shí)質(zhì)上就是單片機(jī)的通信,是指單片機(jī)與計(jì)算機(jī)之間的信息交換,通常單片機(jī)與計(jì)算機(jī)之間的通信我們用的有并行和串行兩種通信方式,而在單片機(jī)系統(tǒng)以及現(xiàn)代單片機(jī)測控系統(tǒng)中,信息的交換多采用串行通信方式。
串行通信又有兩種方式:異步串行通信和同步串行通信。
異步串行通信是發(fā)送端和接收端可以由各自的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘源彼此獨(dú)立,互不同步,一位接一位地順序傳送,由此可見,異步串行通信實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加2~3位,用于起止位、校驗(yàn)位和停止位,各幀之間還有間隔,因此傳輸效率不高。
同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個數(shù)據(jù)字符。它們均由同步字符、數(shù)據(jù)字符和校驗(yàn)字符(CRC)組成。其中同步字符位于幀開頭,用于確認(rèn)數(shù)據(jù)字符的開始。數(shù)據(jù)字符在同步字符之后,個數(shù)沒有限制,由所需傳輸?shù)臄?shù)據(jù)塊長度來決定;校驗(yàn)字符有1到2個,用于接收端對接收到的字符序列進(jìn)行正確性的校驗(yàn)。同步通信的缺點(diǎn)是要求發(fā)送時鐘和接收時鐘保持嚴(yán)格的同步
在單片機(jī)與單片機(jī),單片機(jī)與計(jì)算機(jī)之間通信時,通常采用異步串行通信方式。
PC機(jī)的串行口采用的是標(biāo)準(zhǔn)的RS-232接口,單片機(jī)的串行口電平是TTL電平,而TTL電平特性與RS-232的電氣特性不匹配,因此為了使單片機(jī)的串行口能與RS-232接口通信,必須將串行口的輸入/輸出電平進(jìn)行轉(zhuǎn)換。通常用MAX232芯片來完成電平轉(zhuǎn)換。
MAX232芯片是MAXIM公司生產(chǎn)的、包含兩路接收器和驅(qū)動器的IC芯片,它的內(nèi)部有一個電源電壓變換器,可以把輸入的+5V電源電壓變換成為RS-232輸出電平所需的+10V電壓。所以,采用此芯片接口的品德通信系統(tǒng)只需單一的+5V電源就可以了。對于沒有+12V電源的場合,其適應(yīng)性更強(qiáng),加之其價(jià)格適中,硬件接口簡單,所以被廣泛采用[8]。圖3-4即為MAX232的基本接線圖。
圖3-4 MAX232基本接線圖
根據(jù)MAX232的基本接線與原理,結(jié)合單片機(jī)的基礎(chǔ)知識,采用串口9針的母頭做為單片機(jī)的通信接口,電路圖如圖3-5下所示。
圖3-5 下載通信端口原理
3.3 電源模塊設(shè)計(jì)電源模塊為系統(tǒng)其它各個模塊提供所需要的電源,主要為單片機(jī)、電機(jī)及其驅(qū)動、尋跡模塊、臂章模塊供電。供電電壓有9V、6V、5V三種電壓值。本系統(tǒng)采用12V的蓄電池做為供電電源,為得到所需電壓需進(jìn)行降壓及穩(wěn)壓操作,采用常用的穩(wěn)壓芯片7809、7806、7805,分別得到9V、6V、5V穩(wěn)定電壓,設(shè)計(jì)電路圖如圖3-6所示:
圖3-6 電源模塊
3.4 電機(jī)驅(qū)動模塊設(shè)計(jì)智能小車區(qū)別于普通的電動玩具小車的最大特點(diǎn)是:可以智能調(diào)節(jié)小車運(yùn)行狀態(tài)。如改變其運(yùn)動方向、運(yùn)動速度。在接收到外部主控單片機(jī)發(fā)出的指令后,能迅速做出“應(yīng)答”,這就需要電機(jī)驅(qū)動芯片發(fā)揮作用。主控單片機(jī)發(fā)出指令給電機(jī)驅(qū)動芯片,驅(qū)動芯片接收到單片機(jī)指令后,通過輸出端口控制電機(jī)迅速作出相應(yīng)動作。
本設(shè)計(jì)采用PWM調(diào)速技術(shù)來實(shí)現(xiàn)小車轉(zhuǎn)向、調(diào)速控制,因?yàn)樵O(shè)計(jì)的電動小車采用2個直流電機(jī),左、右兩側(cè)電機(jī)獨(dú)立控制。
經(jīng)過之前論證分析后,決定選用L298電機(jī)驅(qū)動芯片。 L298雙全橋步進(jìn)電機(jī)專用驅(qū)動芯片,比較常見的是15腳Multiwatt封裝的L298如圖3-7所示:
圖3-7 L298N Multiwatt封裝外形圖
內(nèi)部包含4信道邏輯驅(qū)動電路,可以方便的驅(qū)動兩個直流電機(jī),或一個兩相步進(jìn)電機(jī)。恒壓恒流橋式2A驅(qū)動芯片L298內(nèi)含二個H-Bridge 的高電壓、大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn) TTL邏輯準(zhǔn)位信號,可驅(qū)動46V、2A以下的步進(jìn)電機(jī),輸出電壓最高可達(dá)50V?梢灾苯油ㄟ^電源來調(diào)節(jié)輸出電壓,可以直接用單片機(jī)的IO口提供信號,而且電路簡單,使用比較方便。
圖3-8 電機(jī)驅(qū)動控制示意圖
通過圖3-8,可清楚看出單片機(jī)→電機(jī)驅(qū)動芯片→直流電機(jī)的三級控制結(jié)構(gòu)。采用此種控制結(jié)構(gòu),各級職責(zé)明確,結(jié)構(gòu)清晰易于實(shí)現(xiàn)。
本設(shè)計(jì)采用的是基于PWM原理的H型驅(qū)動電路實(shí)現(xiàn)調(diào)速功能。采用H橋電路可以增加驅(qū)動能力,同時保證了完整的電流回路。
采用 PWM 方法調(diào)整電機(jī)的速度,首先應(yīng)確定合理的脈沖頻率。脈沖寬度一定時,頻率對電機(jī)運(yùn)行的平穩(wěn)性有較大影響,脈沖頻率高,馬達(dá)運(yùn)行的連續(xù)性好,但帶負(fù)載能力差,脈沖頻率低則反之。當(dāng)脈沖頻率在 100Hz 以下時,電機(jī)轉(zhuǎn)動有明顯的跳動現(xiàn)象,小車不能連續(xù)順暢運(yùn)行。經(jīng)反復(fù)試驗(yàn),選擇脈沖頻率1000Hz,電機(jī)轉(zhuǎn)動較平穩(wěn),控制效果較佳。
脈寬調(diào)速實(shí)質(zhì)上是調(diào)節(jié)加在電機(jī)兩端的平均功率,其表達(dá)式(3-3)為:

(3-3)
式中

為電機(jī)兩端的平均功率;

為電機(jī)全速運(yùn)轉(zhuǎn)的功率;

為脈寬。 當(dāng)

時,相當(dāng)于加入直流電壓,這時電機(jī)全速運(yùn)轉(zhuǎn),

;當(dāng)

時,相當(dāng)于電機(jī)兩端不加電壓,電機(jī)靠慣性運(yùn)轉(zhuǎn)。
當(dāng)電機(jī)穩(wěn)定開動后,有

(

為摩擦力 )則

(3-4)

(3-5)
由(3-5)式可知智能小車的速度與脈寬成正比。
由上述分析,U1、U2這對控制電壓采用了1000Hz 的周期信號控制,通過對其占空比的調(diào)整,對車速進(jìn)行調(diào)節(jié)。同時,可以通過U1、U2的切換來控制電動機(jī)的正轉(zhuǎn)與反轉(zhuǎn)。對于L298驅(qū)動芯片,內(nèi)部已集成2個H橋,只需在使能控制端EN1、EN2加載PWM波,通過調(diào)節(jié)PWM波的占空比,即改變加載到電機(jī)兩端的電壓平均值,來實(shí)現(xiàn)調(diào)速功能。
當(dāng)IN1端為高電平、IN2端為低電平時,二極管D1到D4導(dǎo)通,電機(jī)正轉(zhuǎn);反之,二極管D3到D2導(dǎo)通,電機(jī)反轉(zhuǎn)。IN3、IN4端控制方法與IN1、IN2端相同,不再贅述。
下圖3-10為Mutiwatt15封裝形式的L298驅(qū)動芯片引腳及外形圖。
圖3-10 L298引腳及外形圖
表3-3列出了L298的各引腳功能。
表3-3 L298引腳符號及功能表
| |
|
|
|
| | |
| | 輸出端,與對應(yīng)輸入端(IN1、IN2)同邏輯 |
| | 驅(qū)動電壓,最小值需比輸入的低電平電壓高2.5V |
| | |
| | |
| | |
| | |
| | |
| | 輸出端,與對應(yīng)輸入端(IN3、IN4)同邏輯 |
下圖3-11為L298驅(qū)動小車電機(jī)的PROTEUS功能仿真圖。L298需要兩個電壓,一個為邏輯電路工作所需的5V電壓Vcc,另一個為功率電路所需的驅(qū)動電壓Vs。為保護(hù)電路,需加上八個續(xù)流二極管,二極管的選用要根據(jù)PWM的頻率和電機(jī)的電流來確定。二極管要有足夠的回復(fù)時間和足夠電流承受能力。
圖3-11 L298驅(qū)動電機(jī)PROTEUS仿真圖
在編寫完成Keil C調(diào)速、轉(zhuǎn)向程序,與PROTEUS軟件進(jìn)行聯(lián)合仿真后,通過在線調(diào)試。 經(jīng)多次實(shí)際測試,采用PWM技術(shù)進(jìn)行小車調(diào)速、轉(zhuǎn)向操作具有如下優(yōu)點(diǎn):
1.電流一定連續(xù)
2.可使電動機(jī)在四象限中運(yùn)行
3.電機(jī)停止時有微振電流,能消除靜摩擦死區(qū)
4.低速時,每個晶體管的驅(qū)動脈沖仍較寬,有利于保證晶體管可靠導(dǎo)通
5.低速平穩(wěn)性好,調(diào)速范圍較大
3.5 尋跡模塊設(shè)計(jì)根據(jù)此前方案論證,選用紅外反射式光電傳感器,它是一種集發(fā)射器和接收器于一體的傳感器,由1個紅外發(fā)射管(發(fā)射器)和1個光電二極管(接收器)構(gòu)成。紅外發(fā)射管發(fā)出的紅外光在遇到反光性較強(qiáng)的物體(表面為白色或近白色)后被折回,被光電二極管接收到,引起光電二極管光生電流的增大。將這個變化轉(zhuǎn)為電壓信號,就可以被處理器接受并處理,進(jìn)而實(shí)現(xiàn)對反光性差別較大的兩種顏色(如黑白兩色)的識別[9]。
本次設(shè)計(jì)采用TCRT5000反射式紅外光電傳感器(如圖3-12所示),具有以下特點(diǎn):
(1)采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成。
(2)檢測距離可調(diào)整范圍大,4~13cm可用。
(3)采用非接觸檢測方式。
圖3-12 TCRT5000紅外傳感器
為使反射信號可直接被單片機(jī)所識別,使用LM393進(jìn)行信號的放大,原理圖如圖3-13所示:
圖3-13尋跡模塊原理圖
3.6 避障模塊設(shè)計(jì)根據(jù)避障方案的先擇,本次設(shè)計(jì)采用NE555電路進(jìn)行紅外信號的調(diào)制,經(jīng)紅外發(fā)射管發(fā)射后,當(dāng)紅外線遇到障礙物時發(fā)生漫反射,反射光被紅外接收一體的1838紅外接收頭所識別并傳給單片機(jī),再由單片機(jī)進(jìn)行判斷并發(fā)出行進(jìn)避障指令,使小車做出相應(yīng)的動作。
我們在小車車頭處裝有三個光電開關(guān),中間一個光電開關(guān)對向正前方,兩側(cè)的光電開關(guān)向兩邊分開。小車在行進(jìn)過程中由光電開關(guān)向前方發(fā)射出紅外線,小車根據(jù)三個光電開關(guān)接受信號的情況來判斷前方是否有障礙物。
1.紅外發(fā)射電路設(shè)計(jì)
本系統(tǒng)采用555構(gòu)成的多諧振蕩器電路來產(chǎn)生38KHz左右的方波,以此來控制紅外信號的發(fā)射。它具有占空比可調(diào)的優(yōu)點(diǎn),555各管腳功能如下:
1腳:外接電源負(fù)端Vss或接地,一般情況下接地。
2腳:
低觸發(fā)端 3腳:輸出端Vo
4腳:RD是直接清零端。當(dāng)RD端接低電平,則時基電路不工作,此時不論TL、TH處于何電平,時基電路輸出為“0”,該端不用時應(yīng)接高電平。
5腳:VC為控制電壓端。若此端外接電壓,則可改變內(nèi)部兩個比較器的基準(zhǔn)電壓,當(dāng)該端不用時,應(yīng)將該端串入一只0.01μF電容接地,以防引入干擾。
6腳:TH高觸發(fā)端。
7腳:放電端。該端與放電管集電集相連,用做定時器時電容的放電。
8腳:外接電源VCC
根據(jù)555的功能,使用第3引角做為紅外信號觸發(fā)端,具體電路如圖3-14所示[10]:
圖3-14 紅外發(fā)射電路
2.紅外接收電路設(shè)計(jì)
該模塊使用一體化紅外接收頭1838,其電路如圖3-15所示。
圖3-15 紅外接收電路
瓷片電容104為去耦電容,DOUT即是解調(diào)信號的輸出端,直接與單片機(jī)的接口相連。有紅外編碼信號發(fā)射時,輸出為檢波整形后的方波信號,并直接提供給單片機(jī),單片機(jī)進(jìn)行識別處理后,再發(fā)出指令,控制小車的行進(jìn)。
其中1838紅外一體化接收頭具內(nèi)部電路包括紅外監(jiān)測二極管,放大器,限副器,帶通濾波器,積分電路,比較器等。紅外監(jiān)測二極管監(jiān)測到紅外信號,然后把信號送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平,而不論紅外發(fā)射器和接收器的距離遠(yuǎn)近。交流信號進(jìn)入帶通濾波器,帶通濾波器可以通過30khz到60khz的負(fù)載波,通過解調(diào)電路和積分電路進(jìn)入比較器,比較器輸出高低電平,還原出發(fā)射端的信號波形。注意輸出的高低電平和發(fā)射端是反相的,這樣的目的是為了提高接收的靈敏度[11]。
3.7 遙控模塊設(shè)計(jì)隨著電子技術(shù)的飛速發(fā)展.無線遙控已被廣泛的應(yīng)用到日常生活中及工業(yè)中.電視機(jī)、電冰箱.視頻監(jiān)控系統(tǒng)、電視演播系統(tǒng)、電視會議系統(tǒng)、微能控制等多種領(lǐng)域都有應(yīng)用。在智能控制中,無線遙控更是成為了不可或缺的一部分,同時也是為了在特殊情況下按照人為的意愿進(jìn)行操作的最佳選擇。
根據(jù)上文方案的選擇,本次遙控方案采用紅外紅進(jìn)行遙控,紅外線特點(diǎn)是不干擾其它設(shè)備工作,也不會影響周邊環(huán)境。電路調(diào)試簡單,若對發(fā)射信號進(jìn)行編碼,可實(shí)現(xiàn)多路紅外遙控功能。
本次設(shè)計(jì),紅外遙控發(fā)射采用常用的遙控器。
接收電路仍采用避障模塊中的紅外接收電路,如上圖3-15所示,其中,紅外1838接收到紅外信號后,傳輸給單片機(jī),由單片機(jī)采用程序處理進(jìn)行紅外的解碼,以此來識別遙控器的按鍵,并發(fā)出指令執(zhí)行相應(yīng)的操作。
3.8 本章小結(jié)本章主要介紹了智能小車在硬件的方案設(shè)計(jì)以及部分使用器件的功能、用法。硬件是智能小車的基礎(chǔ),只有一個合理、完整的硬件系統(tǒng)才能發(fā)揮出應(yīng)有的功能,同時穩(wěn)定的硬件系統(tǒng)也為小車的運(yùn)行提供了良好的軟件運(yùn)行環(huán)境,從而使小車整個系統(tǒng)達(dá)到和諧的目的。
針對方案的論證選擇,本章對主控單片機(jī)的應(yīng)用進(jìn)行了詳細(xì)的設(shè)計(jì),其中包括復(fù)位電路、時鐘電路、以及程序下載接口電路,保證了單片機(jī)的正常運(yùn)行及程序的下載。隨后,由于要對電機(jī)進(jìn)行控制,設(shè)計(jì)了電源模塊與電機(jī)的驅(qū)動模塊,以便電機(jī)的靈活應(yīng)用,再加以尋跡、避障、遙控等模塊的設(shè)計(jì),完成了小車初步智能化的硬件保證,至此,小車的基本構(gòu)架完成。
第4章 軟件設(shè)計(jì)在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時,除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個生產(chǎn)對象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)控制系統(tǒng)設(shè)計(jì)中占重要地位。對于本系統(tǒng),軟件更為重要。
在單片機(jī)控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過程控制兩個基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波、標(biāo)度變換等。過程控制程序主要是使單片機(jī)按一定的方法進(jìn)行計(jì)算,然后再輸出,以便控制生產(chǎn)。
為了完成上述任務(wù),在進(jìn)行軟件設(shè)計(jì)時,通常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊”,實(shí)質(zhì)上就是所需要完成一定功能,相對獨(dú)立的程序段,這種程序設(shè)計(jì)方法叫模塊程序設(shè)計(jì)法。
模塊程序設(shè)計(jì)法的主要優(yōu)點(diǎn)是:
1.單個模塊比起一個完整的程序易編寫及調(diào)試;
2.模塊可以共存,一個模塊可以被多個任務(wù)在不同條件下調(diào)用;
3.模塊程序允許設(shè)計(jì)者分割任務(wù)和利用已有程序,為設(shè)計(jì)者提供方便。
本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序﹑定時/計(jì)數(shù)子程序、尋跡子程序﹑避障子程序﹑遙控子程序等構(gòu)成。
4.1 軟件設(shè)計(jì)環(huán)境簡介軟件是實(shí)現(xiàn)編程與下載的手段,在設(shè)計(jì)中不可缺少,在本次設(shè)計(jì)中,采用Keil uVision2軟件進(jìn)行編程,采用STC專用的下載軟件STC_ISP進(jìn) 行程序的下載。
4.1.1 Keil開發(fā)環(huán)境介紹Keil軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面將介紹Keil開發(fā)系統(tǒng)各部分功能和使用。
1.基本項(xiàng)目建立
(1) 建立項(xiàng)目
選擇Project菜單下的New Project命令,創(chuàng)建新工程,在對話框中設(shè)定新工程的位置,輸入新工程名字保存即可。
(2)選擇CPU
在出現(xiàn)的為新工程選擇CPU的界面,在“data base”欄下選擇所使用的CPU。如圖4-1所示,在此我們選擇Atmel下的AT80C52,確定后,會彈出一“Copy Standard 8051 Startup Code to Project Folder and Add File to Project”信息, 一般選擇“是”即可。
圖4-1 芯片型號選擇界面
(3)給項(xiàng)目加入程序文件
加入的文件可以是C文件,也可以是匯編文件。加入程序文件的過程如下。
(a)在項(xiàng)目管理器窗口中展開Target1文件夾,可以看到Source Group1。
(b)向Source Group1添加文件。在Source Group1點(diǎn)擊鼠標(biāo)右鍵,會彈出一菜單,其中有一“Add Files to Group‘Source Group1’”命令,點(diǎn)擊后會彈出一對話框,選擇需要加入的程序文件,并且一次可以加入多個文件。如圖4-2所示
圖4-2 添加文件界面
(c)移走項(xiàng)目:在欲移走的文件上點(diǎn)擊鼠標(biāo)右鍵,會彈出一菜單,執(zhí)行其中的“Remove File ‘***’”命令即可。
(d)對文件分組:可以按功能對項(xiàng)目管理器中的文件分成組。先使用圖4-2中的“Manage Components”命令建立組,然后用鼠標(biāo)直接在組之間移動文件即可。
2. Keil基本操作
編輯狀態(tài)的操作界面主要由5部分組成:最上面的菜單欄、菜單欄下面的工具欄、左邊的工程管理窗口、中間的編輯窗口、下面的輸出信息窗口。菜單項(xiàng)主要有:文件、編輯、視圖(View)、工程、調(diào)試、片內(nèi)外設(shè)(Peripherals)、工具、軟件版本控制系統(tǒng)(SVCS)、窗口、幫助。 工具都是相應(yīng)菜單項(xiàng)的快捷操作按鈕,如圖4-3所示:
圖4-3 Keil操作界面
(2)項(xiàng)目的編譯鏈接
設(shè)置輸出.hex文件:在Target1上點(diǎn)擊鼠標(biāo)的右鍵,出現(xiàn)類似圖4-9所示的菜單,點(diǎn)擊執(zhí)行“Options for Target ‘Target1’”命令,在彈出的會話界面選擇“Output”標(biāo)簽,選中“Create HEX File”項(xiàng)即可。
編譯鏈接方法:使用Project菜單下的Build target命令或Rebuild all target Files命令,或者直接點(diǎn)擊工具欄中對應(yīng)的按鈕。
編譯鏈接結(jié)果:若有錯誤則不能通過,并且會在信息窗口給出相應(yīng)的錯誤信息。編譯鏈接通過后,會產(chǎn)生一.hex目標(biāo)文件[12]。
4.1.2 STC_ISP程序下載說明產(chǎn)生的hex文件需要下載入單片機(jī)中,這樣才能使單片機(jī)按照預(yù)定的程序執(zhí)行相應(yīng)的命令,本次設(shè)計(jì)采用的是STC的單片機(jī),所以使用其專用的下載軟件SRC-ISP,打開后的界面如圖4-4所示:
圖4-4 STC_ISP界面
單擊左上角下拉菜單,選擇單片機(jī)型號,之后選擇好相應(yīng)的文件及波特率,在單片機(jī)與電腦連接完好后,點(diǎn)擊下載按扭,此時給單片機(jī)通電,等待程序完成下載,至此,程序下載完成。
4.2 尋跡程序設(shè)計(jì)在硬件設(shè)計(jì)中,采用五個反射式光電紅外管做為尋跡,當(dāng)中間位置的紅外管尋到黑線時,證時此時小車正在預(yù)定軌道上,直行前進(jìn),當(dāng)其它紅外管尋到黑線時,說明此時小車偏離,需要進(jìn)行較正,具體如表4-1[13]:
表4-1 小車行進(jìn)狀態(tài)表
小車程序設(shè)計(jì)流程圖如圖4-5所示:
圖4-5 尋跡流程圖
4.3 避障程序設(shè)計(jì)在小車車頭處裝有三個紅外線發(fā)射管,中間一個發(fā)射管對向正前方,兩側(cè)的發(fā)射管向兩邊分開。小車在行進(jìn)過程中由紅外發(fā)射管發(fā)射出紅外線,如果遇到障礙物,剛紅外線反射,同樣,在小車頭部裝有三個相應(yīng)的紅外線接收裝置,若其接收到紅外信號,則小車會根據(jù)三個接收裝置接受信號的情況來判斷前方是否有障礙物,再將所得信息分別傳遞給單片機(jī),由單片機(jī)發(fā)出相應(yīng)的指令控制小車的運(yùn)行情況,其行進(jìn)指令具體如表4-2所示:
表4-2 避障行進(jìn)表
避障程序流程圖如下所示:
圖4-6 避障流程圖
4.4 遙控程序設(shè)計(jì)本次設(shè)計(jì)采用的是紅外遙控器進(jìn)行控制,用1838一體紅外接收頭進(jìn)行紅外信號的接收,如此,紅外遙控部分可分為紅外的解碼與遙控兩個部分,下面將分別說明:
(1)紅外解碼
小車進(jìn)行紅外遙控,能否正確識別紅外信號是關(guān)鍵,而要進(jìn)行紅外信號的識別,首先要將得到的紅外信號進(jìn)行正確的解碼,如此才能保證紅外信號的有效性。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:
采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms 的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms 的組合表示二進(jìn)制的“1”。遙控器在按鍵按下后,周期性地發(fā)出同一種32 位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時間隨它包含的二進(jìn)制“0”和“1”的個數(shù)不同而不同,大約在45~63ms 之間。當(dāng)一個鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms 的編碼脈沖,這108ms 發(fā)射代碼由一個起始碼(9ms),一個結(jié)果碼(4.5ms),低8 位地址碼(9ms~18ms),高8 位地址碼(9ms~18ms),8位數(shù)據(jù)碼(9ms~18ms)和這8 位數(shù)據(jù)的反碼(9ms~18ms)組成。如果鍵按下超過108ms 仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成[14]。
由紅外遙控器的發(fā)射特征,設(shè)計(jì)解碼程序,其中解碼流程圖如圖4-7所示:
圖4-7 紅外解碼
根據(jù)紅外解碼程序,將紅外遙控器的按鍵進(jìn)行解碼,得到一組該按鍵的唯一編碼?紤]到小車的功能,一共8個按鍵進(jìn)行解碼,分別對其設(shè)定功能,主要有行進(jìn)功能:前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止;指令選擇功能:尋跡選擇、避障選擇、遙控選擇[15]。
4.5 主程序設(shè)計(jì)根據(jù)整體思想,將各個模塊進(jìn)行整合,首先對紅外按鍵進(jìn)行度取,根據(jù)相應(yīng)的按鍵設(shè)定信息,調(diào)用相應(yīng)的功能模塊,執(zhí)行相應(yīng)的指令,主程序流程圖如圖4-8所示:
圖4-8 主程序流程圖
4.6 本章小結(jié)本章主要在硬件的基礎(chǔ)上,對軟件進(jìn)行了詳細(xì)的設(shè)計(jì),主要介紹了軟件的開發(fā)環(huán)境、下載方式以及針對尋跡、避障和無線紅外遙控的基本原理,進(jìn)行了初步的軟件設(shè)計(jì),實(shí)現(xiàn)了小車的初步智能化。軟件程是小車行動的指揮官,是其靈魂所在,如同人類的思想一樣,指引著前進(jìn)的方向,但現(xiàn)代化的軟件技術(shù)知識還未能達(dá)到如同人類一樣的隨心所欲,不能夠完全處理任何突發(fā)事件,所以,軟件技術(shù)在發(fā)展、在不斷的完善,本章程序也僅是程序智能化的初步模型與設(shè)想,仍需要不斷進(jìn)行完善,如此才能達(dá)到人類的目標(biāo),達(dá)到完全的智能化。
結(jié)論
本文針對智能車模型進(jìn)行了簡單的設(shè)計(jì),并實(shí)現(xiàn)了軟件的控制,從而實(shí)現(xiàn)了小車的初步智能化。
在現(xiàn)在社會中,智能化日趨完善,已經(jīng)深入到各個領(lǐng)域中,對于當(dāng)代學(xué)生,學(xué)習(xí)智能化的基本原理,實(shí)現(xiàn)簡單的智能控制,對以后的學(xué)習(xí)研究與發(fā)展有著重大的作用。對于學(xué)習(xí)智能自動化的方法,不僅要從理論入手,更要與實(shí)踐相結(jié)合,如此才能更好的學(xué)習(xí)自動化知識,達(dá)到學(xué)以至用,為此,本文設(shè)計(jì)了簡易的智能小車,趣味性大,同時制作簡單,可以應(yīng)用到教學(xué)之中,增加學(xué)生的實(shí)際動手能力。尤其在當(dāng)代的大學(xué)中,智能車大賽在每個大學(xué)中都有不同程度的開展,日漸得到師生的得視,可見智能車是大學(xué)生了解智能化的一個較好途徑。同時,該智能小車更是智能控制的基本模型,可以做為科研項(xiàng)目的基礎(chǔ)模型,在本車的基礎(chǔ)上,可以增加擴(kuò)展,能夠滿足多種需求。
本次的智能小車主要實(shí)現(xiàn)了尋跡、避障、遙控三種功能,用以展示智能小車的基本原理,在此基礎(chǔ)上,可以做多種擴(kuò)展設(shè)計(jì)或改動,來實(shí)現(xiàn)其它功能,如添加射像頭,用射像頭來識別路徑,如此不僅使路徑識別更加準(zhǔn)確,更能學(xué)習(xí)硬件知識及提高編程技術(shù)。同時也可改換避障模塊,采用超聲波等避障方案,也可添加金屬探測、尋聲、尋光、測速等等多種功能,可見本智能小車的靈活性及其發(fā)展空間。
對于本次智能小車的設(shè)計(jì),在制做過程中,硬件起到了最基本的保證作用,為軟件提供了運(yùn)行環(huán)境,可見,硬件系統(tǒng)的穩(wěn)定性也很重要,在軟件智能化的同時,不能忽略硬件,只有如此才能保證一個完整的系統(tǒng),在本設(shè)計(jì)中,不僅給出了硬件的方案,更詳細(xì)的對硬件進(jìn)行了設(shè)計(jì)與分析,同時又結(jié)合了軟件的設(shè)計(jì)支持,其中本著以簡化、易懂為主,在硬件選擇上,采用了簡單、基本的方案,在軟件上同樣采用了基本設(shè)計(jì)思想,最終完成了此次智能車的設(shè)計(jì)。
致謝
時光如水,歲月如梭,歷時三個月的畢業(yè)設(shè)計(jì)已經(jīng)告一段落。經(jīng)過自己不斷的搜索努力以及指導(dǎo)老師的耐心指導(dǎo)和熱情幫助,本設(shè)計(jì)已經(jīng)基本完成。在這段時間里,指導(dǎo)老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和熱忱的工作作風(fēng)令我十分欽佩,他的指導(dǎo)使我受益匪淺。同時本系單片機(jī)原理實(shí)驗(yàn)室的開放也為我的設(shè)計(jì)提供了實(shí)習(xí)場地。在此對實(shí)驗(yàn)室的全體老師表示深深的感謝。
通過這次畢業(yè)設(shè)計(jì),使我深刻地認(rèn)識到學(xué)好專業(yè)知識的重要性,也理解了理論聯(lián)系實(shí)際的含義,并且檢驗(yàn)了大學(xué)四年的學(xué)習(xí)成果。雖然在這次設(shè)計(jì)中對于知識的運(yùn)用和銜接還不夠熟練。但是我將在以后的工作和學(xué)習(xí)中繼續(xù)努力、不斷完善。這三個月的設(shè)計(jì)是對過去所學(xué)知識的系統(tǒng)提高和擴(kuò)充的過程,為今后的發(fā)展打下了良好的基礎(chǔ)。
由于自身水平有限,設(shè)計(jì)中一定存在很多不足之處,敬請各位老師批評指正。
參考文獻(xiàn)
1 飛思卡爾半導(dǎo)體公司.全國大學(xué)生智能車競賽與飛思卡爾S12單片機(jī).單片機(jī)與入式系統(tǒng)應(yīng)用[J].2007,(8):78-79
2 徐鶴.淺談自動導(dǎo)向車(AGV)原理與應(yīng)用[J].天津成人高等學(xué)校聯(lián)合學(xué)報(bào)2005,7(5):50-52
3 Chen.Bo.the electric power drags along to move automatic control systemversion 2,Peking:the machine industrial publisher 2000:127-130
4 高月華.基于紅外光電傳感器的智能車自動尋跡系統(tǒng)設(shè)計(jì)[J].半導(dǎo)體光電,2009,30(1):134-137
5 王丹,萬威,石維亮.第一屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽路虎AC隊(duì)技術(shù)報(bào)告[R].東南大學(xué),2006
6 王朝盛,基于16單片機(jī)MC9S12DG128B智能車系統(tǒng)設(shè)計(jì)[D],天津工業(yè)大學(xué),2007
7 G.Zhang.the Peng pleased dollar,lately wove MCS-51 the single slice of machine applied a design,version 1,industrial university publisher in Harbin,2003:25-27,411-417
8 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:清華大學(xué)出版社,2004
9 黃開勝,邵貝貝.學(xué)做智能車[M].北京航空航天大學(xué)出版社,2007
10 X.Bo.the single slice of machine application system designs,Peking:The aerospace aviation university publisher,2-5:46-50
11 第四屆全國大學(xué)生“飛思卡爾”杯智能汽車競賽華東賽區(qū)培訓(xùn)會關(guān)于規(guī)則及創(chuàng)意競賽事項(xiàng)說明[A].杭州電子科技大學(xué).2009
12 李廣弟.單片機(jī)基礎(chǔ).北京.北京航空航天大學(xué)出版社,2001:56—64
13 韓飛,陳放,戴春博.第三屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽CyberSmart隊(duì)技術(shù)報(bào)告.上海交通大學(xué),2008
14 劉林,楊理龍,葉虹.第二屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽AUTO-2隊(duì)技術(shù)報(bào)告[R].重慶郵電大學(xué),2007
15 Wang Xiuquan.Route Identification and Direction Control of Smart Car Based on CMOS Image Sensor.ISECS International Colloquium on Computing, Communica -tion,Control,and Management.2008
附錄A
英文原文
Route Identification and Direction Control of Smart Car Based on CMOS ImageSensor
Abstract
This paper is designed for the 2nd Freescale Cup National Undergraduate Smart Car Competition. With MC9S12DG128 single chip and smart car model supplied by the committee, a CMOS image sensor is applied to detect the black track on white raceway, which extends the detection range and is helpful to predict the forward path. In this paper, ten-line pixels in an image are analyzed to locate the black track, and the PD algorithm based on PID is employed to control the direction and angle of the steering gear respectively. By repeated testing, the smart car can run stably on the given raceway at a high speed.
Keywords: route identification, direction control, smart car, MC9S12DG128 single chip, image sensor, PID
algorithm.
1. Introduction
The rules of 2nd Freescale Cup National Undergraduate Smart Car Competition [1] may be summarized as follows: the raceway consists of a lot of white boards on which a black track is attached; the smart car designed by participants runs along the black track;every car runs two circles in this game and the best times of two circles will be the final score of this car, and apparently the team whose car takes the best times will bear the palm. According to the rules, we should ensure that the car can distinguish the black track from white board in order to make the smart car run stably. There are two common methods for route identification: one is using infrared diode as the sensor, and another is using CCD/CMOS image sensor [2]. This paper using CMOS image sensor as route identification sensor, the reasons for which are as follows: (1) The range which is covered by a infrared diode sensor is much smaller than a CMOS image sensor covers, and only we can do is to use several diode sensors, but the maximum number of diode sensors used in the smart car is 16; (2) The working voltage of a CMOS image sensor(3.3V) is less than a CCD(12V) or 16 infrared diodes. Apparently, using CMOS image sensor can not only reduce the power consumption but also extend the visible range of the smart car, and also enable the car to predict the forward path. This paper presents a systemic solution for identifying the raceway and controlling the direction of smart car.
2. CMOS camera
There are several kinds of CMOS image sensors in the market. In comparison with other CMOS image sensors, the OV6130 CMOS image sensor [3] made by OmniVision Technologies Inc. is the best choice for us to design a CMOS camera for smart car whether from the viewpoint of cost and performance or power consumption. The OV6130 is a black and white sensor which has a 1/4 inch CMOS imaging device containing approximately 101,376 pixels (352×288). This sensor includes a 356×292 resolution image array, an analog signal processor, dual 8-bit A/D converters, analog video multiplexer, digital data formatter, video port, SCCB interface, registers, and digital controls that include timing block, exposure control, black level control, and white balance.By assembling the experimental circuit we test the OV6130 output ports timing (VSYNC, FODD, HERF). Figure 1 shows the experimental timing diagrams.

(a) VSYNC-FODD timing
(b) FODD-HERF timing
Figure 1 OV6130 experimental timing diagrams
Figure 2 Structure of the image capturing and displaying system
Referring to the OV6130 datasheet, these timing diagrams match well with those given in datasheet, thus we produce the OV6130 CMOS camera based on the experimental circuit. In order to check whether the images captured by camera have clear definition and sharp contrast or not, and also to confirm the visible range of the camera, we design a VB program for capturing the images and displaying them on computer screen. This program bases on three hardware devices: CMOS camera, MCU or single chip, PC. Figure 2 presents how these three devices work together.
Figure 3 compares the original image of a snake line of raceway with the image captured by CMOS camera and then displayed on screen by VB program. It can be seen that the captured image has clear definition and sharp contrast, and this lays a foundation for route identification to be discussed later.
(a) Smart car ready to scan the raceway
(b) Captured image by CMOS camera
Figure 3 Comparison between original image and captured image
3. Route identification
Route identification aims at helping the smart car to recognize the forward track by a method which picks up the black line from the image captured by CMOS camera,and in fact, this method works well in the following cases:straight line, curving line and snake line. By repeated testing, we decide to analyze 10 lines of a whole image to predict the forward condition of smart car. Figure 4 illustrates how we analyze the 10-line pixels of an image.
Figure 4 Route identification diagram
The detailed algorithm is introduced as follows:
Step 1: Calculate coordinates of the black pixel for each line ready to be analyzed. As is illustrated in figure 4, the lines (L0, L1, …, L8, L9) are to be analyzed, and the white points (P0, P1, …, P8, P9) are black pixels for each line. The origin O is superposed by P9, which means there is no black pixel in line L9. Assumed that P(x) and P(y) indicate x-coordinate and y-coordinate of point P,respectively, here both P9(x) and P9(y) equal 0.The key of this step is to find the black pixel of each line. Here, by taking the following datum which shows the gray values of all pixels in a line as example, we introduce
a new approach:
195 210 207 215 208 228 236 243 238 234 238 235 231 233 230 235 230 222 196 207 204 208 209 129 160 65 17 15 19 18 79 151 172 153 173 150 147 159 141 153 147 154 137 139 156 136 141 9 141 133 138 4 127 110 141 112 104
(1) Assumed that P is the black pixel of this line, G(i)denotes a pixel and i indicates it’s position in this line, V(i) is the gray value of G(i), j is the position of the first black pixel appearing in the line from left to right. Here both P(x) and P(y) are initiated to 0, and j is 0 from the start.
(2) As for each pixel in this line from left to right,comparing its gray value with the black value B, here we set B as 30, G(i) is a black pixel on condition that V(i)is less than B. In the line above, the pixels underlined in bold, whose gray values are 17,15,16,18, are component points of the black track, and the pixels underlined both in bold and italic, whose gray values are 9,4, are invalid or interferential pixels. If V(i) is less than B, set j as i. Then compare V(j+1) andV(j+2) with B respectively, results go to two sides: ① If both V(j+1) and V(j+2) are less than B, check the gray value for each pixel from G(j+3) to the end pixel of this line. If the total number of white pixels whose gray values are greater than B surpasses or equals to 3, then set P as G(j+1). Otherwise, go to (3); ② If not, repeat this way from the point G(j+3) on.
(3) If there is no black pixel in this line, set both P(x) and P(y) as 0.
Step 2: Calculate the average coordinates of 10 black pixels. As is showed in Figure 4,
M is the average point,
M(x) and
M(y) are expressed as follows:
Step 3: According to the position of M in the image,we can decide in which direction (ahead, left, or right) the smart car should turn. In Figure 4, the smart car should turn right obviously.
Step 4: Calculate how many angles the car should turn.Further descriptions is illustrated in Figure 5, where α is the very angle by which the car should turn right, F is the central point of two front wheels, M is the average point mentioned previously (see Figure 4), D and L1 indicate the width and height of the visible range of CMOS camera respectively, L2 is the distance between visible range and front wheels, L3 is a half of front wheel’s diameter, L2+L3 means the distance between visible range and the axis of front wheels. Referring to Figure 5, it is very easy to calculate the angle α.
Figure 5 Calculating the angle for turning
4. Direction control
The central unit for direction control of smart car is steering gear, its input signal is PWM (Pulse-Width Modulation) pulse, and it outputs corresponding angle in radian. This paper uses the PWM output port of MC9S12DG128 single chip [4] as the input signal of steering gear. By inputting the given discrete width of pulse, we test the relationship between the input and the output. The formula below expresses it:

where
X is tangential value of the output angle,
Y is width of the input pulse,
y0 is the corresponding value when the output angel equals 0 and
k is slope. Using this linear relationship we can operate the smart car simply just by inputting the target angel, thus the width of pulse which is the input signal of steering gear can be computed easily,this method, however, doesn’t work well in the following cases: curving line and snake track. Therefore we apply the PID [5] (Proportional, Integral, and Differential) controller which is very popular in fields of automation and control technology. The kernel theory of PID is to do proportional, integral and differential operations on the input difference respectively, then join the three results as the final output value. In practice, it is very flexible for us to use according to features and demands of the object to be controlled. We may choose one or two or all of PID modules, for example, we can use proportional and integral modules to make up of PI controller.As for the smart car, it is no necessary to consider the tracks which have been gone across, so we only use proportional and differential modules as PD adjuster, and P adjuster has been described previously (see Formula(2)), and the following formula shows the D adjuster:
where enew , eold define the differences of this time and last time when the angle is computed (here difference means the angel by which the steering gear should turn), t is scanning period of CMOS camera, kd is differential coefficient which runs from 0.5 to 1.5, D_out is the output of D adjuster.
5. Conclusions
The challenge of this work is a systemic solution for identifying the black route and controlling the direction of smart car. The performance of CMOS camera is apparently superior to infrared diode whether in scanning range or whether in power consumption, and the clear definition and sharp contrast of image are also important for the further recognition and control. By repeated testing, it is proved that the PD adjuster works well when
the car runs whether on curving line or on snake track at a high speed, and the stability of smart car is also promoted.
中文譯文
基于CMOS攝像頭的智能車路徑識別與方向控制
摘要
本文是為第二屆飛思卡爾杯全國大學(xué)生智能車大賽而設(shè)計(jì)的。用單片機(jī)MC9S12DG128和由組委會提供的智能車模型,一個用于檢查白色底板上的黑線的CMOS圖像傳感器,增大了檢測范圍和前瞻距離。本文,每幀圖像數(shù)據(jù)采集10行進(jìn)行分析,確定黑線位置,用基于PID算法的PD控制器應(yīng)用于舵機(jī)的方向和角度控制。通過反復(fù)測試,智能車能以高速穩(wěn)定的巡線。
關(guān)鍵字:路徑識別,方向控制,智能車,MC9S12DG128單片機(jī),圖像傳感器,PID
1、引言
第二屆飛思卡爾杯全國大學(xué)生智能車大賽規(guī)則可歸納如下:賽道由多個白色底板并在上面粘上黑色膠帶構(gòu)成;由參賽隊(duì)員設(shè)計(jì)的只能車需沿黑線運(yùn)行;每輛車在賽道上跑兩圈,兩圈中的最好成績算作最終得分,顯然哪支隊(duì)伍取得的成績最好則贏得比賽。根據(jù)規(guī)則,我們可以確定的是車必須能從白色底板上識別出黑線才能讓智能車穩(wěn)定運(yùn)行。一般有兩種方式檢測路徑:一種是用紅外對管作為傳感器,另外一種就是用CCD/CMOS圖像傳感器。本文使用CMOS圖像傳感器作為路徑識別傳感器,原因有以下幾點(diǎn):(1)紅外對管檢測范圍遠(yuǎn)小于CMOS圖像傳感器,眾所周知,要想增大紅外對管檢測范圍只有增加紅外對管數(shù)量才能達(dá)到目標(biāo),但是傳感器使用的最大數(shù)目不得超過16個;(2)CMOS圖像傳感器的工作電壓(3.3V)遠(yuǎn)小于CCD(12V)或者16個紅外對管。很明顯,用CMOS圖像傳感器不僅會減小功耗而且還能增加智能車的視野,另外也提高了智能車的前瞻性。本文提出了一種智能車的路徑識別和方向控制的系統(tǒng)性解決方案。
2、CMOS攝像頭
市場上有多種CMOS圖形傳感器。與其他CMOS圖像傳感器相比,由OmniVision科技有限公司制造的OV6130 CMOS傳感器,無論從價(jià)格或者是性能、功耗方面都是我們設(shè)計(jì)智能車的最好選擇。OV6130是一個黑白圖像傳感器,內(nèi)部有1/4英寸的CMOS感光設(shè)備,包含了101376個像素點(diǎn)(352×288)。此傳感器包含了一個356×292分辨率的圖像陣列,一個模擬信號處理器,雙8位精度A/D轉(zhuǎn)換器,模擬信號多路復(fù)用器,二進(jìn)制數(shù)據(jù)格式器,視頻輸出口,SCCB接口,寄存器和數(shù)字控制寄存器,該寄存器包括時鐘模塊,曝光控制,黑色電平控制和白平衡。
通過連接實(shí)驗(yàn)性電路,我們開始測試OV6130輸出口的時序(VSYNC, FODD,HERF)。圖1表示了實(shí)驗(yàn)得到的時序表
(b) FODD-HERF 時序圖
圖1 OV6130實(shí)驗(yàn)所得時序圖
圖2 圖像采集和現(xiàn)實(shí)系統(tǒng)結(jié)構(gòu)
根據(jù)OV6130的數(shù)據(jù)手冊,這些時序圖與手冊上給出的數(shù)據(jù)非常吻合,因此,我們開發(fā)了基于實(shí)驗(yàn)電路的OV6130電路板。為了核實(shí)攝像頭獲得的圖像是否有較高清晰度和對比度,以及確認(rèn)攝像頭的可視區(qū)域,我們?yōu)榕臄z到的圖像設(shè)計(jì)了VB上位機(jī)程序以方便在計(jì)算機(jī)屏幕上顯示所得數(shù)據(jù)。此程序基于三個硬件設(shè)備:CMOS攝像頭,單片機(jī),PC。圖2表示了三個設(shè)備是如何同時在一起工作的。
圖3比較了CMOS攝像頭獲得的彎道原始圖像,之后用VB程序?qū)⑵滹@示在計(jì)算機(jī)上。從它可以看出獲得的圖像有較高清晰度和對比度,這為以后的路徑識別奠定了基礎(chǔ)。
(a)智能車準(zhǔn)備掃面賽道
(b)由CMOS攝像頭拍攝到的圖像
圖3 原始圖像與拍攝到的圖像對比
3、路徑識別
路徑識別的目的是通過從獲得的圖像中提取一條黑線幫助智能車感知前方路徑信息。事實(shí)上,這種方法用在以下幾種賽道上都工作的很好:直到,彎道,S道。通過重復(fù)測試,我們覺定每幅圖像提取10行來預(yù)知智能車前方的路況信息。圖4說明了我們?nèi)绾畏治鲆环鶊D像中的10行數(shù)據(jù)。
圖4 路徑識別示意圖
詳細(xì)的算法介紹如下:
Step1:計(jì)算每行中黑點(diǎn)的坐標(biāo)準(zhǔn)備分析。如同圖4所示,每行(L0,L1,…,L8,L9)都要分析。圖中的白點(diǎn)(P0,P1,…,P8,P9)表示每行測得的黑點(diǎn)。原點(diǎn)O與P9疊加,意味著字L9沒有黑點(diǎn)。假定P(x)和P(y)表示P點(diǎn)的x坐標(biāo)和y坐標(biāo),故此,知P9(x)和P9(y)均等0。
本步的關(guān)鍵在于如何找到各行的黑色像素點(diǎn)。這里,以一行的灰度值為例我們介紹一種新方法:
195 210 207 215 208 228 236 243 238 234 238 235 231 233 230 235 230 222 196 207 204 208 209 129 160 65 17 15 19 1879 151 172 153 173 150 147 159 141 153 147 154 137 139 156 136 141 9141 133 138 4127 110 141 112 104
(1)假定P是此行的黑色像素點(diǎn),G(i)表示一個像素點(diǎn),i表示該像素點(diǎn)在此行的位置,V(i)是點(diǎn)G(i)的灰度值,j就是此行從左到右出現(xiàn)的第一個黑色像素點(diǎn)。這里P(x)和P(y)均是從0開始,j也是從0開始。
(2)對于此行從左到右的每個像素點(diǎn),用閾值B比較他的灰度值,這里B設(shè)置值為30,如果V(i)小于B,則G(i)就是一個黑色像素點(diǎn)。在這一行靠前的部分,加粗且?guī)聞澗的像素17、15、16、18,就是組成黑線的點(diǎn)。斜體加粗且?guī)聞澗的像素點(diǎn),9、4,是無效點(diǎn)或者干擾點(diǎn)。如果V(i)比B小,則讓j等于i。然后各自與B比較V(j+1)和V(j+2),只有兩種結(jié)果:①如果V(j+1)和V(j+2)均小于B,從G(j+3)開始核對每個像素點(diǎn)的灰度值直到此行的最后一個像素點(diǎn)。如果白色像素點(diǎn)總數(shù),也就是那些灰度值大于B的像素點(diǎn)超過或等于3,則設(shè)P等于G(j+1)。否則跳到(3);②如果不是,則從點(diǎn)G(j+3)重復(fù)此方法。
(3)如果此行沒有黑色像素點(diǎn),將P(x),P(y)均設(shè)為0。

Step2:計(jì)算10個像素點(diǎn)的平均坐標(biāo)。參考圖4,M就是平均得到的坐標(biāo)點(diǎn),M(x)和M(y)被展開如下:
圖5 計(jì)算轉(zhuǎn)角α
Step3:通過圖像中M點(diǎn)的位置我們可以確定出智能車要往那個方向走(直走,左拐,右拐)。在圖4中,很明顯的就可以判斷智能車要往右拐。
Step4:計(jì)算智能車要轉(zhuǎn)多大的角度。更多的描述可以從圖5看出,α是智能車應(yīng)該轉(zhuǎn)向的確切控制量,F(xiàn)是兩個前輪的中心點(diǎn),M是先前提到的平均點(diǎn)(見圖4),D和L1表示CMOS攝像頭可見區(qū)域的寬度和高度,分別的,L2就是可視區(qū)域與前輪到的距離,L3是前輪的半徑,L2+L3意味著可視區(qū)域與前輪軸線的距離。如圖5所示,可非常容易的計(jì)算出角度α。
4、方向控制
智能車方向控制最核心的擔(dān)憂就是舵機(jī),它的輸入信號是PWM(Pulse-Width Modulation),它的輸出與角度的大小成正比。本文用MC9S12DG128單片機(jī)的的PWM輸出腳作為舵機(jī)的輸入信號。通過輸入給定的離散脈沖寬度,我們測得輸入和輸出之間的關(guān)系。下面的算式就是用來表示輸入與輸出之間的關(guān)系:

這里X就是輸出角度的正切值,Y就是輸入脈沖寬度,y0就是輸出角度為0時,相應(yīng)的脈沖寬度,k就是斜率。用這個線性關(guān)系,我們可以簡單的通過目標(biāo)角度來操作智能車,因此舵機(jī)輸入的脈沖寬度可被簡單的計(jì)算出來。這個方法,盡管如此,在下列情況不能工作的很好:彎道和S道。因此我們應(yīng)用了PID(比例,積分,微分)控制器,此方法在自動控制領(lǐng)域應(yīng)用相當(dāng)普遍。PID的核心理論是分別對輸入偏差量做比例,積分,微分操作,然后將三個結(jié)果聯(lián)合起來作為最終輸出值。實(shí)際上,對我們來說根據(jù)被控物體的特征及需要來實(shí)現(xiàn)PID是非常靈活的。我們可以選取一個或兩個或所有的PID模塊來應(yīng)用,例如,我們可以用比例和積分模塊組成PI控制器。

對于智能車,不必考慮我們已走過的路徑,所以我們只用比例和微分模塊組成PD控制器即可,P調(diào)節(jié)前面已經(jīng)描述過(見公式2),下面的公式則是D調(diào)節(jié):
這里當(dāng)角度被計(jì)算時enew , eold定義作此刻和前一時刻的差值(這里差值的意思是指舵機(jī)應(yīng)轉(zhuǎn)的角度和實(shí)際角度的差值),t是CMOS攝像頭的掃描周期,kd就是脈沖寬度由0.5ms到1.5ms的微分系數(shù),D_out是D調(diào)節(jié)器的輸出值。
5、結(jié)論
此項(xiàng)工作的挑戰(zhàn)性在于找到一個解決路徑識別和智能車方向控制的一個系統(tǒng)方法。CMOS攝像頭就目前來看是優(yōu)于紅外對管的,無論從掃描范圍還是功耗方面。高清晰度和對比度對于更超前的識別和控制是非常有用的。通過反復(fù)測試,證明PD調(diào)節(jié)器在智能車運(yùn)行時工作良好。無論是彎道還是S道均能以高速完美過彎,并且智能車的穩(wěn)定性也得到了提高。
附錄C
部分硬件原理圖
附圖一 尋跡原理圖
(a)發(fā)射原理圖
(b)接收原理圖
附圖二 避障原理圖
附圖三 電機(jī)驅(qū)動原理圖
附錄B
部分原理程序
尋跡程序: