第一章 緒論
1.1 課題背景和意義
隨著計(jì)算機(jī)、微電子、信息技術(shù)的快速發(fā)展,智能化技術(shù)的發(fā)展速度越來越快,智能化與人們生活的聯(lián)系也越來越緊密,智能化是未來社會(huì)發(fā)展的必然趨勢。智能小車實(shí)際上就是一個(gè)可以自由移動(dòng)的智能機(jī)器人,比較適合在人們無法工作的地方工作,也可取代人們完成一些復(fù)雜、危險(xiǎn)性質(zhì)的工作。作為現(xiàn)代自動(dòng)控制領(lǐng)域內(nèi)十分偉大的一項(xiàng)發(fā)明智能小車、機(jī)器人已經(jīng)和人們的生產(chǎn)生活緊密的聯(lián)系在了一起。
智能小車,是一個(gè)包含周圍環(huán)境探測、識別反應(yīng)、自動(dòng)控制等功能于一體的綜合系統(tǒng),它綜合地運(yùn)用了微控制器、傳感、遙控、機(jī)械結(jié)構(gòu)、電子基礎(chǔ)、自動(dòng)控制等多學(xué)科的知識。智能小車是一個(gè)復(fù)雜而又龐大的系統(tǒng),其內(nèi)部有許多塊控制芯片作為其控制核心,多種傳感器來采集外部環(huán)境信息并將接收到的信息傳給主控制器,然后由控制器來控制其各個(gè)模塊執(zhí)行相應(yīng)的動(dòng)作。智能小車由于成本較低,甚至還能夠勝任一些人們都無法勝任的工作,它已逐步深入到工業(yè)、農(nóng)業(yè)以及社會(huì)生活的各個(gè)方面。本課題設(shè)計(jì)的智能小車中用到的遙控技術(shù)、顯示技術(shù)、單片機(jī)控制系統(tǒng)、傳感技術(shù)、自動(dòng)避障技術(shù)已廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)、國防軍事、醫(yī)療衛(wèi)生、宇宙探測等諸多領(lǐng)域,特別是其在軍事偵察、反恐、防暴、防核化及污染等危險(xiǎn)和惡劣環(huán)境中有著廣闊的應(yīng)用前景,由此可見其有著及其重要的研究意義。
1.2 課題研究現(xiàn)狀和發(fā)展趨勢
1.2.1 研究現(xiàn)狀
智能小車、機(jī)器人的發(fā)展研究從上世紀(jì)60年代至今已有幾十年的歷史,自從上世紀(jì)60年代末期,第一臺(tái)能夠自主移動(dòng)機(jī)器人問世以后,經(jīng)過幾十年的發(fā)展智能機(jī)器人已經(jīng)從最初的示教模仿機(jī)器人發(fā)展到現(xiàn)在的具有感知功能的智能機(jī)器人,在技術(shù)上取得了很大的進(jìn)步許多國家都對智能機(jī)器人進(jìn)行了大量的研究。由于各國的科研實(shí)力不同,其水平也有高低,其中美國和日本在該項(xiàng)技術(shù)的研究處于領(lǐng)先地位。
法國提出了讓智能機(jī)器人具有自動(dòng)認(rèn)知功能的一項(xiàng)科技計(jì)劃,使其能夠在復(fù)雜的環(huán)境中通過自主感知判斷來自動(dòng)執(zhí)行各種動(dòng)作。美國發(fā)明的智能機(jī)器人,可以幫助人們送信件、食品等生活用品,還可以牽引吸塵器來打掃衛(wèi)生。日本目前已經(jīng)研制成功的人形機(jī)器人,其可以模仿人們的各種面部表情而且非常逼真。近年來發(fā)明的的手術(shù)機(jī)器人已經(jīng)廣泛的應(yīng)用在實(shí)際醫(yī)療手術(shù)中而且穩(wěn)定性好,安全性高。我國的智能小車、機(jī)器人的研究已經(jīng)有三十多年的歷史,特別是在軍事領(lǐng)域的應(yīng)用方面已經(jīng)取得了較大的成果,已經(jīng)相繼研制出了復(fù)雜的智能機(jī)器人,危險(xiǎn)作業(yè)機(jī)器人、仿人機(jī)器人、復(fù)合結(jié)構(gòu)移動(dòng)機(jī)器人等。國內(nèi)的許多高校也都在不停的進(jìn)行著這方面的研究而且也有了層出不窮的成果,例如中科院研制的能夠和人對話的機(jī)器人、上海交大研制的具有較強(qiáng)越障能力的仿人關(guān)節(jié)結(jié)構(gòu)的機(jī)器人等。與此同時(shí),我國也開展了智能移動(dòng)機(jī)器人基礎(chǔ)理論研究,在某些方面取得了世界領(lǐng)先的成果,正在逐漸縮小與發(fā)達(dá)國家的差距。
1.2.2 發(fā)展趨勢
隨著各方面技術(shù)的不斷進(jìn)步與完善,各個(gè)國家對于智能小車、機(jī)器人的科研能力都再逐步的加強(qiáng),未來的智能機(jī)器人可能會(huì)朝著以下幾個(gè)方面發(fā)展:使用高強(qiáng)度的輕質(zhì)材料讓機(jī)器人的結(jié)構(gòu)越來越靈巧動(dòng)作執(zhí)行也更加靈活;應(yīng)用網(wǎng)絡(luò)化技術(shù)來遠(yuǎn)距離操作控制機(jī)器人群體為人們工作;通過復(fù)雜生物機(jī)電系統(tǒng)和人機(jī)耦合系統(tǒng)來研究出具有仿生感知、生物神經(jīng)的仿人機(jī)器人。相信未來會(huì)有具有更高智能化的、更加生動(dòng)有趣的智能機(jī)器人出現(xiàn)在我們的周圍,而且會(huì)極大的改變和方便人們的生產(chǎn)生活。
1.3 課題內(nèi)容和要求
本設(shè)計(jì)的智能小車用微處理器(即單片機(jī))作為整個(gè)系統(tǒng)的控制核心部分,主要包括單片機(jī)控制模塊、遙控模塊、避障模塊、循跡模塊、數(shù)據(jù)顯示模塊等模塊。要求能夠?qū)崿F(xiàn)以下幾種功能:
(1)遙控功能,即通過遙控器來控制小車的啟動(dòng)、停止、左轉(zhuǎn)、右轉(zhuǎn)、后退等動(dòng)作。
(2)自動(dòng)避障功能,即小車在前方遇到障礙時(shí)可以立即做出反應(yīng),自動(dòng)左轉(zhuǎn)或右轉(zhuǎn)躲避障礙。
(3)自動(dòng)循跡功能,即小車可以自動(dòng)沿著規(guī)定的路線行駛。
(4)能夠?qū)崟r(shí)顯示小車行駛的速度、路程等數(shù)據(jù)。
要求通過此次的實(shí)際動(dòng)手設(shè)計(jì)掌握以下基本技能:
(1)學(xué)會(huì)電子產(chǎn)品的設(shè)計(jì)開發(fā)過程;
(2)掌握單片機(jī)原理、遙控原理、顯示原理等;
(3)能夠熟練進(jìn)行系統(tǒng)的硬件電路設(shè)計(jì)以及軟件設(shè)計(jì);
(4)熟練使用相關(guān)的電子設(shè)計(jì)和仿真軟件;
(5)查閱國內(nèi)外相關(guān)文獻(xiàn),掌握智能小車的最新研究動(dòng)態(tài)和未來發(fā)展趨勢。
第二章 總體方案設(shè)計(jì)與論證
本設(shè)計(jì)方案采用微處理器(AT89C52單片機(jī))作為整個(gè)系統(tǒng)控制的中心,主要由兩個(gè)部分構(gòu)成,紅外遙控發(fā)射部分和智能小車部分。其中智能小車部分主要由以下子模塊構(gòu)成:單片機(jī)控制模塊、電源模塊、電機(jī)驅(qū)動(dòng)模塊、循跡避障模塊、轉(zhuǎn)速檢測模塊、紅外接收器和數(shù)據(jù)顯示模塊組成;紅外遙控發(fā)射部分主要由遙控按鍵、編碼芯片、紅外發(fā)射三個(gè)部分構(gòu)成。其總體設(shè)計(jì)框圖包括兩個(gè)部分,如圖2.1所示:

a 遙控部分框圖 b 小車部分框圖
圖2.1 系統(tǒng)總體設(shè)計(jì)框圖
2.1 遙控控制模塊設(shè)計(jì)與論證
目前比較常用的遙控控制方式有兩種,紅外遙控控制系統(tǒng)和無線遙控控制系統(tǒng)。
方案一:選擇紅外遙控裝置作為小車的遙控控制器。紅外遙控是通過遙控發(fā)射器內(nèi)的編碼芯片將按鍵信息調(diào)制成一串0和1的二進(jìn)制代碼,然后通過紅外線發(fā)出,最后被紅外接收裝置接收進(jìn)行解碼,再運(yùn)用單片機(jī)對解碼后的碼信息進(jìn)行識別,然后再根據(jù)不同的碼信息進(jìn)行不同的控制操作[9]。
方案二:選擇無線電遙控裝置作為小車的遙控控制器。無線電遙控是利用不同頻率的無線電波對遠(yuǎn)方的各種機(jī)構(gòu)進(jìn)行控制的遙控設(shè)備。這些信號被遠(yuǎn)方的接收設(shè)備接收后,可以驅(qū)動(dòng)其他各種相應(yīng)的機(jī)械或者電子設(shè)備去完成各種操作[6]。
紅外遙控和無線遙控是對不同的載波來說的,紅外遙控器是用紅外線來傳送控制信號的,它的特點(diǎn)是有方向性中間不能被阻擋,在室內(nèi)使用時(shí)大概在7m的范圍內(nèi)有效;無線遙控器是用無線電波來傳送控制的信號的,它的特點(diǎn)是無方向性,可以不面對面控制,距離遠(yuǎn),有效距離可達(dá)數(shù)十米甚至數(shù)公里。
以上兩種方案均可作為本設(shè)計(jì)的遙控控制器,雖然無線遙控控制的距離更遠(yuǎn)也更加靈敏,但對于本設(shè)計(jì)來說使用紅外遙控已經(jīng)足夠了,而且紅外遙控的原理更加簡單易懂,所以本設(shè)計(jì)采用方案一即紅外遙控作為小車的遙控控制系統(tǒng)。
2.2 電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)與論證
目前比較常用的小車驅(qū)動(dòng)電機(jī)主要有兩種選擇:
方案一:選擇直流電機(jī)作為小車的動(dòng)力驅(qū)動(dòng)。直流電機(jī)是將直流電能轉(zhuǎn)換為機(jī)械能的一種裝置,因其轉(zhuǎn)動(dòng)力矩大、體積較小、重量很輕、使用方便,所以其在一些小型的電動(dòng)裝置中的應(yīng)用較多。直流電機(jī)的運(yùn)行方式是這樣的:在它里面有圓形的磁體會(huì)產(chǎn)生磁場,當(dāng)給它轉(zhuǎn)子上的繞組通電時(shí),通電線圈在磁場中便會(huì)產(chǎn)生洛倫茲力帶著線圈即轉(zhuǎn)子轉(zhuǎn)動(dòng),當(dāng)轉(zhuǎn)子轉(zhuǎn)動(dòng)時(shí)通電線圈內(nèi)的磁場方向?qū)?huì)改變,所以繞組上的電流也要變換流向,在方向一直不變的洛倫茲力控制下電機(jī)將向順時(shí)針或逆時(shí)針持續(xù)轉(zhuǎn)動(dòng)。由H型橋式電路直接驅(qū)動(dòng)直流電機(jī)控制電機(jī)的正反轉(zhuǎn),通過軟件編程使單片機(jī)輸出不同占空比的PWM(脈寬調(diào)制信號)來控制直流電機(jī)的轉(zhuǎn)速進(jìn)而控制小車的行駛速度[6]。
方案二:選擇步進(jìn)電機(jī)作為小車的動(dòng)力驅(qū)動(dòng)。步進(jìn)電機(jī)是將輸入端輸入的電脈沖信號轉(zhuǎn)變?yōu)檗D(zhuǎn)子的角位移的可以實(shí)現(xiàn)精確定位的電機(jī)。電機(jī)轉(zhuǎn)動(dòng)的快慢取決于脈沖信號的頻率、轉(zhuǎn)動(dòng)的圈數(shù)取決于脈沖的個(gè)數(shù),在不超載的情況下其轉(zhuǎn)動(dòng)速度不受負(fù)載的影響,即給步進(jìn)電機(jī)輸入一個(gè)脈沖信號,電機(jī)的轉(zhuǎn)子則轉(zhuǎn)過一個(gè)角度,給其加上連接不斷的脈沖波形則步進(jìn)電機(jī)就能持續(xù)轉(zhuǎn)動(dòng)下去[5]。
相比直流電機(jī),步進(jìn)電機(jī)轉(zhuǎn)過的角度是由脈沖信號控制的其可以實(shí)現(xiàn)小車的精確定位停車,步進(jìn)電機(jī)調(diào)速也更加容易,只要輸入不同頻率的脈沖信號就能控制小車的行駛速度,而且它還有很好的止動(dòng)能力。所以在本設(shè)計(jì)中我們選用了步進(jìn)電機(jī)作為小車的驅(qū)動(dòng)電機(jī)。
2.3 避障循跡模塊設(shè)計(jì)與論證
目前主要有兩種方案來實(shí)現(xiàn)小車的自動(dòng)避障功能:
方案一:采用紅外反射式光電傳感器、電壓比較器及一些電阻構(gòu)成的障礙物檢測電路來檢測小車前方的障礙。障礙物檢測電路安裝在小車前部的中間及左右兩邊,來檢測小車前方的障礙物。其障礙檢測過程如下:紅外發(fā)光二極管發(fā)出紅外光,如果遇到小車前面的障礙物,紅外線就會(huì)被物體反射回來,被光敏三極管吸收此時(shí)光敏三極管導(dǎo)通,并在輸出端輸出低電平信號至單片機(jī),然后單片機(jī)調(diào)用尋跡避障子程序控制小車做出相應(yīng)的避障反應(yīng),當(dāng)左邊遇到障礙物時(shí)單片機(jī)會(huì)自動(dòng)調(diào)用右轉(zhuǎn)子程序控制其右轉(zhuǎn),當(dāng)右邊遇到障礙物時(shí)單片機(jī)會(huì)自動(dòng)調(diào)用左轉(zhuǎn)子程序控制其左轉(zhuǎn)。當(dāng)無障礙物時(shí),發(fā)出的紅外線不被反射,光敏三極管截止,輸出高電平信號,小車?yán)^續(xù)向前行駛[8]。
方案二:采用超聲波原理來檢測小車前方的障礙。其檢測障礙的原理如下:先由超聲波發(fā)射器向小車前方發(fā)射超聲波,超聲波在向前傳播過程中,若遇到障礙物則會(huì)被反射回去,反射波被超聲波回收裝置接收后會(huì)產(chǎn)生一個(gè)電信號然后被轉(zhuǎn)化為高低電平信號反饋給單片機(jī),若為高電平則說明前方遇到障礙,然后由單片機(jī)調(diào)用避障子程來控制小車做出相應(yīng)的躲避障礙的動(dòng)作[7]。
在本設(shè)計(jì)我們采用了第一種方案實(shí)現(xiàn)小車的自動(dòng)避障功能。
2.4 數(shù)據(jù)顯示模塊設(shè)計(jì)與論證
根據(jù)題目的要求小車可以實(shí)時(shí)顯示其運(yùn)動(dòng)的速度、距離等數(shù)據(jù)。主要有兩種方案來實(shí)現(xiàn):
方案一:用共陽極數(shù)碼管和可編程的鍵盤接口芯片組成數(shù)據(jù)顯示電路,接口芯片直接與單片機(jī)的I/O口相連,由單片機(jī)精確控制實(shí)現(xiàn)LED動(dòng)態(tài)顯示。
方案二:用LCD液晶顯示屏直接與單片機(jī)相連組成數(shù)據(jù)顯示電路。LCD液晶顯示屏是一種專門用來顯示字符和數(shù)字的點(diǎn)陣型液晶模塊,它是由若干個(gè)5X7或5X11點(diǎn)陣字符位組成的,一個(gè)字符占據(jù)一個(gè)點(diǎn)陣字符位,每位之間有一個(gè)點(diǎn)距的間隔將字符隔開,行與行之間也有間隔[8]。
由于本設(shè)計(jì)需要顯示的數(shù)據(jù)較多,若用LED數(shù)碼管來顯示需多個(gè)數(shù)碼管才能滿足要求,這樣電路設(shè)計(jì)過于復(fù)雜,相反只用一個(gè)LCD液晶顯示屏即可顯示要求數(shù)據(jù),所以本設(shè)計(jì)我們采用方案二即LCD顯示屏來顯示實(shí)時(shí)數(shù)據(jù)。
2.5 轉(zhuǎn)速測量模塊設(shè)計(jì)與論證
方案一:選擇霍爾開關(guān)型傳感器測量小車車輪轉(zhuǎn)速。具體做法是:在非磁性材料制作的轉(zhuǎn)子上,固定好一片鋼性磁體,將霍爾開關(guān)型傳感器的感知接收面和磁體的磁極相對, 并在安裝架上安裝好(注意磁場方向不要弄錯(cuò)),輪子轉(zhuǎn)動(dòng)時(shí)磁體會(huì)跟著轉(zhuǎn)動(dòng),在磁體轉(zhuǎn)到和傳感器的接收面相對時(shí), 霍爾傳感器便輸出一個(gè)脈沖信號, 由兩個(gè)脈沖間的時(shí)間間隔,便可算出轉(zhuǎn)速,然后再根據(jù)車輪半徑編程便可算出小汽車運(yùn)行的速度[10]。
方案二:選擇直射式光電檢測器測量小車車輪轉(zhuǎn)速。具體做法是: 在小車的驅(qū)動(dòng)輪的主軸上安裝一個(gè)開有十個(gè)透光槽的圓形葉片,保持葉片和驅(qū)動(dòng)輪能夠同步轉(zhuǎn)動(dòng),然后在驅(qū)動(dòng)輪旁安裝好直射式光電檢測器,葉片隨著車輪的轉(zhuǎn)動(dòng)不斷切割紅外發(fā)射管與紅外接受管之間的紅外線通路,當(dāng)葉片轉(zhuǎn)動(dòng)至透光槽與紅外線通路重合時(shí),檢測器導(dǎo)通,紅外接受管通過電流,當(dāng)葉片轉(zhuǎn)動(dòng)至使透光槽遮住時(shí),光通路斷開。隨著車輪不斷的轉(zhuǎn)動(dòng),便會(huì)輸出連續(xù)的脈沖序列,測出脈沖的個(gè)數(shù)便可知葉片轉(zhuǎn)過的孔數(shù),從而可計(jì)算出車輪轉(zhuǎn)動(dòng)的轉(zhuǎn)角和轉(zhuǎn)速,然后再根據(jù)車輪半徑由軟件編程便可算出小車運(yùn)行的速度[11]。
以上兩種方案都能夠測出小車車輪的轉(zhuǎn)速。但是在本設(shè)計(jì)中,對于方案一來說,要想在很小的小車車輪上密集安裝磁片比較困難,而且彼此之間也容易產(chǎn)生干擾。因此本設(shè)計(jì)擬采用方案二測量小車的轉(zhuǎn)速。
2.6 電源模塊設(shè)計(jì)與論證
電源是整個(gè)小車系統(tǒng)運(yùn)行的基本條件,它的性能的好壞直接決定整個(gè)系統(tǒng)運(yùn)行的穩(wěn)定性和性能。小車的供電電源包含兩部分,單片機(jī)控制模塊電源和電機(jī)驅(qū)動(dòng)模塊電源,我們將單片機(jī)及其外圍電路和步進(jìn)電機(jī)分開供電,兩者互相不影響,實(shí)現(xiàn)穩(wěn)定供電。由于步進(jìn)電機(jī)需較高的供電電壓而單片機(jī)和其邏輯單元最大供電電壓不能超過5V,因此需設(shè)計(jì)穩(wěn)壓電路。
方案一:采用8節(jié)1.5V干電池串聯(lián)共12V直接給步進(jìn)電機(jī)供電,然后經(jīng)過由LM7805穩(wěn)壓芯片構(gòu)成的穩(wěn)壓電路將電壓降至5V后給電片機(jī)及其外圍邏輯電路供電。但是本方案由于電池電量有限,而且數(shù)量較多的干電池重量較大會(huì)給驅(qū)動(dòng)電機(jī)帶來太大負(fù)擔(dān),也占用了太大的空間在體積較小的小車上使用太不方便,所以放棄了該方案。
方案二:采用12V蓄電池直接給步進(jìn)電機(jī)供電,將電壓降至5V后給單片機(jī)及其外圍電路供電。蓄電池具有較長的續(xù)航能力以及電壓輸出的值基本不怎么變化,但是因?yàn)樾铍姵氐捏w積和質(zhì)量過大,并不適合本設(shè)計(jì)的使用,所以我們并沒有使用蓄電池來供電。
方案三:采用3節(jié)4.2V鋰電池串聯(lián)的方式共直接給步進(jìn)電機(jī)供電,然后經(jīng)過由穩(wěn)壓芯片構(gòu)成的穩(wěn)壓電路將電壓降至5V后給單片機(jī)及其外圍邏輯電路供電。本方案鋰電池的電量較足并且可以充電重復(fù)利用,3節(jié)鋰電池重量和占用的空間都較小,因此該方案比較可行,最終我們選擇了該方案作為小車的驅(qū)動(dòng)電源[14]。
第三章 各模塊硬件電路設(shè)計(jì)
本設(shè)計(jì)的遙控智能小車的硬件部分共分為兩大模塊:紅外遙控發(fā)射器硬件模塊和智能小車部分硬件模塊。其中紅外遙控發(fā)射硬件模塊包含遙控按鍵、編碼芯片、紅外發(fā)射三個(gè)子模塊;智能小車部分硬件模塊包含單片機(jī)控制模塊、電機(jī)驅(qū)動(dòng)模塊、避障循跡模塊、顯示模塊、紅外接收器模塊、電源模塊6個(gè)子模塊。
首先介紹紅外遙控發(fā)射器部分即遙控按鍵、編碼芯片、紅外發(fā)射三個(gè)子模塊的硬件設(shè)計(jì)。
3.1 紅外遙控發(fā)射器模塊
3.1.1 紅外遙控模塊的工作原理
紅外線遙控是比較常見的一種遙控設(shè)備,它是利用波長為0.76~1.5μm之間的紅外線來傳送控制信號的遙控設(shè)備。其占據(jù)空間小、價(jià)格便宜、使用方便,在我們常用的家用電器比如電視、DVD,錄音機(jī)、空凋等和一些小型電動(dòng)玩具裝置上均已應(yīng)用了紅外線遙控設(shè)備。但是紅外遙控也有缺點(diǎn)比如容易受到空間和距離的限制,一般在7m的范圍內(nèi)有效且發(fā)射和接收之間不能被物體隔擋,但對于本設(shè)計(jì)的智能小車來說已經(jīng)能夠滿足要求。
紅外遙控系統(tǒng)一般由兩大部分組成:一個(gè)紅外發(fā)射部分,一個(gè)紅外接收部分。其中發(fā)射部分主要由按鍵鍵盤、編碼調(diào)制、LED紅外發(fā)送器構(gòu)成,它最重要的部分就是應(yīng)用編碼芯片對按鍵信息進(jìn)行編碼和發(fā)送;接收部分由光電轉(zhuǎn)換放大器、解調(diào)、解碼電路構(gòu)成,其最重要的部分是對接收到的編碼進(jìn)行解調(diào)。其原理如圖3.1所示:

圖3.1 紅外遙控系統(tǒng)原理框圖
按下遙控器的一個(gè)按鍵,遙控器的編碼芯片會(huì)對按鍵信息進(jìn)行編碼,然后通過LED紅外發(fā)射器發(fā)出脈沖編碼,被紅外接收頭接收后將編碼解出并輸入到單片機(jī)的外部中斷,對接收到的脈沖編碼進(jìn)行位“0”和位“1”的識別,再根據(jù)不同的碼信息調(diào)用相應(yīng)的子程序來對小車進(jìn)行不同的控制操作。
3.1.2 HT6221編碼芯片簡介
HT6221是合泰公司生產(chǎn)的多功能遙控編碼芯片,工作電壓在1. 8V-3.5V,其采用PPM(Pulse Position Modulation)進(jìn)行編碼,周期能編碼16位地址碼和8位數(shù)據(jù)碼,最多能同時(shí)支持32個(gè)活動(dòng)鍵。其引腳結(jié)構(gòu)如圖3.2所示:

圖3.2 HT6221引腳圖
其各引腳說明如下表3-1所示:
表3-1HT6221芯片引腳說明
| | |
| | |
| | |
| | |
| | |
| | 串行數(shù)據(jù)輸出引腳, 38KHz發(fā)射頻率 |
| | |
| | 最重要數(shù)據(jù)位(DT)代碼設(shè)置 |
| | |
| | |
遙控編碼有兩種:位0和位1,其低電平脈寬相同但高電平脈寬不一樣。采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的脈沖表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的脈沖表示二進(jìn)制的“1”。其波形如圖3.3所示:

圖3.3 遙控碼的“0”和“1”(注:接收端的波形與發(fā)射斷相反)
3.1.3 紅外遙控發(fā)射器
遙控發(fā)射器專用芯片很多,在本設(shè)計(jì)中我們運(yùn)用了HT6221芯片來實(shí)現(xiàn)紅外編碼的發(fā)射。其電路如圖3.4所示: 
圖3.4 遙控發(fā)射器電路原理圖
圖3.4中當(dāng)有任意一個(gè)按鍵按下后,按鍵指示燈(D1)發(fā)光,HT6221編碼芯片能夠產(chǎn)生脈沖編碼,該脈沖編碼會(huì)被調(diào)制成38KHz的脈沖信號然后通過圖中的紅外發(fā)射二極管(D2)發(fā)射出去[8]。
所按的按鍵不同其發(fā)出的編碼脈沖也不同,按鍵所代表的功能也就不同,其各按鍵的功能分配如下表3-2所示:
表3-2 按鍵功能分配表
下面是智能小車部分即單片機(jī)控制模塊、紅外接收器模塊、電機(jī)驅(qū)動(dòng)模塊、避障循跡模塊、顯示模塊、電源模塊6個(gè)子模塊的硬件設(shè)計(jì)介紹。
3.2 單片機(jī)控制模塊
3.2.1 單片機(jī)模塊電路
本設(shè)計(jì)我們采用AT89C52單片機(jī)作為智能小車部分的控制核心,AT89C52單片機(jī)是AT89系列的標(biāo)準(zhǔn)型8位單片機(jī),其與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)和8052產(chǎn)品引腳兼容,功耗低、性能強(qiáng)大、價(jià)格便宜適用于許多較為復(fù)雜控制的場合。AT89C52單片機(jī)的內(nèi)部結(jié)構(gòu)如下:一個(gè)以ALU為中心的8位中央處理器,256字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM),8K字節(jié)用來存儲(chǔ)程序的Flash內(nèi)部程序存儲(chǔ)器即片內(nèi)ROM(可反復(fù)擦寫1000次),4個(gè)8位可編程I/O口(P0、P1、P2、P3),3個(gè)16位定時(shí)/計(jì)數(shù)器,8個(gè)中斷源,兩個(gè)中斷優(yōu)先級的中斷控制系統(tǒng),一個(gè)全雙工串行通信口,一個(gè)片內(nèi)振蕩器和時(shí)鐘電路[1]。AT89C52單片機(jī)最小應(yīng)用系統(tǒng)主要由單片機(jī)、復(fù)位電路、振蕩電路等部分組成。本設(shè)計(jì)的單片機(jī)控制模塊原理圖如圖3.5所示:

圖3.5 單片機(jī)控制模塊
本設(shè)計(jì)中我們使用了AT89C52單片機(jī)的大部分引腳,其具體的引腳功能分配如下表3-3所示:
表3-3 單片機(jī)引功能分配表
| |
| 接LCD1602的D0-D7引腳,作為數(shù)據(jù)信息的輸出引腳 |
| 接LCD1602的RS、RW、E引腳,作為數(shù)據(jù)信息的控制端 |
| |
| |
| 連接電機(jī)驅(qū)動(dòng)芯片的脈沖信號輸入端 |
| |
| |
| |
3.2.2 復(fù)位電路
單片機(jī)的復(fù)位,是為了初始化單片機(jī)的工作狀態(tài),有時(shí)當(dāng)程序運(yùn)行出錯(cuò)或因操作錯(cuò)誤而使系統(tǒng)處于鎖死狀態(tài),為了擺脫困境,也可按復(fù)位鍵重新初始化單片機(jī)。RST引腳是復(fù)位信號的輸入端,要實(shí)現(xiàn)復(fù)位操作必須使RST引腳上至少保持兩個(gè)機(jī)器周期的高電平,再從高電平變?yōu)榈碗娖酵瓿蓮?fù)位。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩種方式,本設(shè)計(jì)采用按鍵復(fù)位實(shí)現(xiàn)復(fù)位操作。單片機(jī)按鍵復(fù)位電路如圖3.6所示:

圖3.6 復(fù)位電路
按鍵復(fù)位是通過按鍵使復(fù)位引腳經(jīng)電阻R0與VCC電源接通來實(shí)現(xiàn)的,按下復(fù)位鍵時(shí),RST引腳為高電平;松開復(fù)位按鍵后,RST引腳逐漸將為低電平,復(fù)位結(jié)束。
3.2.3 振蕩電路
AT89C52單片機(jī)內(nèi)有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為芯片引腳XTAL2。只要在片外通過XTAL1和XTAL2引腳跨接振蕩元件(如晶體振蕩器),則可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,單片機(jī)通電后即可工作。其外部振蕩電路如圖3.7所示:

圖3.7 振蕩電路
AT89C52單片機(jī)內(nèi)部RAM容量很小,當(dāng)單片機(jī)需要存放大量數(shù)據(jù)時(shí)就必須擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器。此外AT89C52單片機(jī)的I/O口數(shù)量和功能很有限,也常常要擴(kuò)展外部接口芯片。由于本設(shè)計(jì)不需要太多的I/O口,內(nèi)部程序存儲(chǔ)器也夠用,所以不用擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器和外部接口芯片。
3.3 紅外接收器及解碼
紅外接收器也叫做一體化紅外接收頭,其內(nèi)部是由紅外監(jiān)測二極管,放大器,限副器,帶通濾波器,積分電路,比較器等構(gòu)成的。紅外監(jiān)測二極管接收到紅外信號后,會(huì)把信號送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平。交流信號進(jìn)入帶通濾波器,帶通濾波器只允許30khz到60khz的負(fù)載波通過,然后脈沖信號再通過解調(diào)電路和積分電路進(jìn)入比較器,由比較器輸出高低電平信號,還原出發(fā)射端的信號波形。但為了提高接收的靈敏度輸出的高低電平和發(fā)射端是反相的。紅外接收頭有很多的種類,一般都有電源引腳、信號輸出引腳和接地引腳。根據(jù)發(fā)射端調(diào)制載波的不同應(yīng)選用相應(yīng)解調(diào)頻率的接收頭,本設(shè)計(jì)我們采用一體化紅外接收頭1838來解調(diào)HT6221編碼芯片的編碼。其實(shí)物圖如圖3.8所示:

圖3.8 1838紅外接收頭
由于紅外接收頭內(nèi)部放大器也很大的增益,這樣很會(huì)容易引起干擾,因此在接收頭的電源引腳上須加上大小在22uf以上的濾波電容。本設(shè)計(jì)的紅外接收電路如圖3.9所示:

圖3.9 紅外接收電路圖
其中U6為1838紅外接收頭,電容C4為濾波電容,DOUT 是解調(diào)信號的輸出端,直接與單片機(jī)的P3.2引腳即INT0中斷相連[8]。
解碼的重點(diǎn)是怎樣識別位0和位1,由于位0和位1的低電平脈寬相同但高電平脈寬不一樣。所以需要根據(jù)高電平的寬度區(qū)別位0和位1,如果從0.56ms低電平信號過后延時(shí)了0.56ms以后如果能讀到低電平信號說明該位為0反之則為1,為了可靠起見延時(shí)必須介于0.56ms和1.12ms之間,否則如果該位為0讀到的已是下一位的高電平,因此我們?nèi)∑渲虚g值即(1.12ms+0.56ms)/2=0.84ms。
當(dāng)按下遙控器的按鍵后,便有紅外脈沖編碼信號發(fā)出,經(jīng)紅外接收頭接收解碼后在其輸出端輸出檢波整形后的方波信號,然后直接輸入至單片機(jī)外部中斷進(jìn)行碼信息的識別,單片機(jī)再調(diào)用相應(yīng)子程序執(zhí)行對應(yīng)的操作。具體解碼操作流程圖如圖3.10所示:

圖3.10 紅外接收解碼流程圖
3.4 電機(jī)驅(qū)動(dòng)模塊
3.4.1 步進(jìn)電機(jī)的工作原理
步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓位移的電機(jī)。電機(jī)轉(zhuǎn)動(dòng)的快慢取決于脈沖信號的頻率、轉(zhuǎn)動(dòng)的圈數(shù)取決于脈沖的個(gè)數(shù),在不超載的情況下其轉(zhuǎn)動(dòng)速度不受負(fù)載的影響,即給步進(jìn)電機(jī)輸入一個(gè)脈沖信號,電機(jī)的轉(zhuǎn)子就轉(zhuǎn)過一個(gè)固定角度(步距角),給其輸入連續(xù)的脈沖信號步進(jìn)電機(jī)就能連續(xù)轉(zhuǎn)動(dòng)[5]。
在本設(shè)計(jì)中我們采用步距角為1.8度的四相步進(jìn)電機(jī)作為小車的驅(qū)動(dòng)電機(jī),其內(nèi)部結(jié)構(gòu)及元件圖如圖3.11所示:

圖3.11 步進(jìn)電機(jī)結(jié)構(gòu)和元件圖
四相步進(jìn)電機(jī)有著比較小的體積和轉(zhuǎn)矩,該電機(jī)共有5根引出線,分別是內(nèi)部四組繞組線圈A、B、C、D的四根引出線,一根電源引出線,其采用單極性直流電源供電,使A、B、C、D四相繞組輪流供電,轉(zhuǎn)子就會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。其旋轉(zhuǎn)角度與脈沖數(shù)成正比,旋轉(zhuǎn)頻率與脈沖頻率成正比。
本設(shè)計(jì)的步進(jìn)電機(jī)采用四相八拍的工作方式,即A-AB-B-BC-C-CD-D-DA-A
的通電順序工作。當(dāng)通電順序?yàn)锳-AB-B-BC-C-CD-D-DA時(shí)電機(jī)正轉(zhuǎn),當(dāng)通電順序?yàn)镈A-D-CD-C-BC-B-AB-A時(shí)電機(jī)反轉(zhuǎn)。步進(jìn)電機(jī)工作時(shí)的時(shí)序波形圖如圖3.12所示:

圖3.12 步進(jìn)電機(jī)工作時(shí)序波形圖
3.4.2 ULN2003芯片簡介
ULN2003驅(qū)動(dòng)芯片可以直接用來驅(qū)動(dòng)電流小于0.5A的步進(jìn)電機(jī)。ULN2003芯片是美國TI公司和Sprague公司開發(fā)的高壓大電流達(dá)林頓晶體管陣列電路具有較高的電流增益和工作電壓、較寬的溫度范圍、較強(qiáng)的驅(qū)動(dòng)負(fù)載能力等特點(diǎn),適和應(yīng)用于各種高速大功率的驅(qū)動(dòng)系統(tǒng)中。其內(nèi)部結(jié)構(gòu)及引腳如圖3.13所示:

圖3.13 ULN2003芯片引腳圖
其引腳說明如表3-4所示:
表3-4ULN2003芯片引腳說明
| |
| |
| |
| 驅(qū)動(dòng)信號輸出端(接步進(jìn)電機(jī)) |
| |
ULN2003驅(qū)動(dòng)芯片的輸出結(jié)構(gòu)是集電極開路的,所以要在輸出端接一個(gè)上拉電阻,通常單片機(jī)驅(qū)動(dòng)ULN2003時(shí),上拉2K的電阻較為合適。
3.4.3 步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)
由于單片機(jī)的輸出電流太小,而步進(jìn)電機(jī)需要較大的驅(qū)動(dòng)電流,所以需要驅(qū)動(dòng)電路來連接單片機(jī)和步進(jìn)電機(jī)。本設(shè)計(jì)中我們采用四相步進(jìn)電機(jī)作為小車的驅(qū)動(dòng)電機(jī),用單極性直流電源供電。采用ULN2003芯片直接驅(qū)動(dòng)步進(jìn)電機(jī),步進(jìn)電機(jī)驅(qū)動(dòng)電路如圖3.14所示:

圖3.14 步進(jìn)電機(jī)驅(qū)動(dòng)電路
ULN2003的輸入端直接與單片機(jī)的P2.4-P2.7引腳相連,單片機(jī)輸出不同的脈沖信號,這些脈沖信號經(jīng)ULN2003驅(qū)動(dòng)芯片放大后分別控制步進(jìn)電機(jī)的啟動(dòng)、停止、正轉(zhuǎn)、反轉(zhuǎn)、加速和減速。本設(shè)計(jì)中只要對步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。正、反轉(zhuǎn)可由輸入不同順序的脈沖信號來控制以實(shí)現(xiàn)小車的前進(jìn)和后退;我們使用兩個(gè)步進(jìn)電機(jī)分別控制小車的左輪和右輪,通過單片機(jī)輸出不同頻率的脈沖使左右兩個(gè)車輪具備不同的轉(zhuǎn)速,由轉(zhuǎn)速差實(shí)現(xiàn)小車的轉(zhuǎn)向,當(dāng)左側(cè)車輪轉(zhuǎn)速大于右側(cè)車輪時(shí)小車右轉(zhuǎn),當(dāng)右側(cè)車輪轉(zhuǎn)速大于左側(cè)時(shí)小車左轉(zhuǎn)。
3.5 避障循跡模塊
本設(shè)計(jì)我們采用了紅外反射式光電傳感器、電壓比較器及一些電阻來構(gòu)成障礙物檢測電路,并直接與單片機(jī)的P1.4引腳相連,其可將檢測到的模擬信號轉(zhuǎn)化為高低電平信號然后輸入到單片機(jī),單片機(jī)根據(jù)輸入的高低電平信號來判斷是否有障礙物,若有則調(diào)用自動(dòng)避障子程序控制小車做出相應(yīng)的避障動(dòng)作。障礙物檢測電路如圖3.15所示:

圖3.15 障礙物檢測電路
圖中U3紅外反射式光電傳感器是由紅外發(fā)光二級管和光敏三極管組成的,紅外發(fā)光二級管用來發(fā)射紅外線,光敏三極管用來接收被反射回來的紅外線。紅外接收/檢測器有一個(gè)內(nèi)置的只允許紅外光線通過的光濾波器和一個(gè)只允許38.5 kHz左右電信號通過的電子濾波器,這樣就防止了外來光源對紅外接收器的干涉。
U4是電壓比較器,它能夠?qū)⑤斎氲哪M電壓信號轉(zhuǎn)化為高低電平信號,當(dāng)3腳電平大于4腳時(shí),輸出端1腳輸出為高電平,反之輸出為低電平。障礙物檢測電路安裝在小車前部的中間及左右兩邊,來檢測小車前方的障礙物。其障礙檢測過程如下:紅外二極管發(fā)出紅外光,如果遇到小車前面的障礙物,紅外線就會(huì)被物體反射回來并被光敏三極管吸收,此時(shí)光敏三極管導(dǎo)通并在輸出端輸出低電平信號至單片機(jī),然后單片機(jī)調(diào)用尋跡避障子程序控制步進(jìn)電機(jī)做出相應(yīng)的避障反應(yīng),當(dāng)左邊遇到障礙物時(shí)小車右轉(zhuǎn),當(dāng)右邊遇到障礙物時(shí)小車左轉(zhuǎn)。當(dāng)無障礙物時(shí),發(fā)出的紅外線不被反射,光敏三極管截止,輸出高電平信號,小車?yán)^續(xù)向前行駛[9]。
循跡的原理和避障的原理是相同的,循跡電路安裝在小車底部,循跡是通過辨別黑白色來行走。工作過程如下:紅外發(fā)光二極管發(fā)出紅外光,當(dāng)遇到黑色,不反射紅外光,比較器輸出為高電平;當(dāng)遇到白線,紅外光被反射回來,比較器輸出為低電平。單片機(jī)根據(jù)輸入電平的變化判斷小車的行駛路線是否偏離,然后調(diào)用自動(dòng)避障子程序?qū)崿F(xiàn)小車的自動(dòng)循跡,當(dāng)左邊檢測到白色時(shí)小車右轉(zhuǎn),當(dāng)右邊檢測到白色時(shí)小車左轉(zhuǎn);當(dāng)兩邊檢測到的都是黑色時(shí)小車前進(jìn),當(dāng)兩邊檢測到的都是白色時(shí)小車停止。
3.6 轉(zhuǎn)速檢測模塊
施密特觸發(fā)器是具有特殊功能的非門,當(dāng)它的輸入端的電壓上升到某個(gè)值時(shí),輸出端會(huì)立即從高電平跳變?yōu)榈碗娖?而當(dāng)輸入端的電壓下降到某一個(gè)值時(shí),輸出端會(huì)立即從低電平跳變?yōu)楦唠娖健1驹O(shè)計(jì)采用直射式光電檢測器、施密特觸發(fā)器、三極管和若干電阻構(gòu)成的電路與單片機(jī)的P1.6引腳相連來測量小車車輪的轉(zhuǎn)速,其實(shí)物圖和電路圖如圖3.16所示:


圖3.16 透射式光電測速實(shí)物和電路圖
具體的轉(zhuǎn)速檢測方法是:在小車的驅(qū)動(dòng)輪的主軸上安裝一個(gè)開有十個(gè)透光槽的圓形葉片,保持葉片和驅(qū)動(dòng)輪能夠同步轉(zhuǎn)動(dòng),然后在驅(qū)動(dòng)輪旁安裝好直射式光電檢測器,葉片隨著車輪的轉(zhuǎn)動(dòng)不斷切割紅外發(fā)射管與紅外接受管之間的光通路,當(dāng)葉片轉(zhuǎn)動(dòng)至透光槽與光通路重合時(shí),光通路導(dǎo)通,光敏三極管通過電流,輸出端會(huì)輸出一個(gè)低電平信號,當(dāng)葉片轉(zhuǎn)動(dòng)至使透光槽遮住時(shí),光通路斷開,輸出端會(huì)輸出一個(gè)高電平信號。隨著車輪不斷的轉(zhuǎn)動(dòng),光通路不斷的導(dǎo)通和斷開,輸出端便會(huì)輸出連續(xù)的脈沖序列,測出脈沖的個(gè)數(shù)便可知葉片轉(zhuǎn)過的孔數(shù),由葉片轉(zhuǎn)過的孔數(shù)可以知道車輪轉(zhuǎn)過的圈數(shù),從而可計(jì)算出車輪轉(zhuǎn)動(dòng)的轉(zhuǎn)速,然后再根據(jù)車輪半徑便可算出小車運(yùn)行的速度和路程[11]。
3.7 數(shù)據(jù)顯示模塊
本設(shè)計(jì)中小車的數(shù)據(jù)顯示電路采用液晶顯示屏LCD1602,LCD1602具有8位并行2線或者3線串行兩種接口方式。LCD1602液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn)。具體的液晶顯示電路如圖3.17所示:

圖3.17 LCD液晶顯示電路
電路中LCD1602與AT89C52單片機(jī)使用并行數(shù)據(jù)通信。引腳1接電源電壓正極,引腳0、14、15分別接電源電壓負(fù)極,為LCD1602提供電源與背光電源;2腳接一個(gè)10K電位器用于調(diào)節(jié)背光燈光度;3、4、5腳分別接P1.0、P1.1、P1.2腳作為單片機(jī)控制信號輸入與輸出端;6—13腳接單片機(jī)的P0.0—P0.7腳作為單片機(jī)數(shù)據(jù)信息輸入端。數(shù)據(jù)顯示的原理為:首先通過數(shù)據(jù)顯示子程序?qū)⑿≤嚨乃俣取⒙烦痰葦?shù)據(jù)信息計(jì)算出來,然后再將這些數(shù)據(jù)信息通過單片機(jī)的P0.0-P0.7引腳直接輸出至LCD1602的DO-D7引腳[8]。
3.8 電源模塊
電源是整個(gè)小車系統(tǒng)運(yùn)行的基本條件,它的性能的好壞直接決定整個(gè)系統(tǒng)運(yùn)行的穩(wěn)定性和性能。小車的供電電源包含兩部分,單片機(jī)控制模塊電源和電機(jī)驅(qū)動(dòng)模塊電源,我們將單片機(jī)及其外圍電路和步進(jìn)電機(jī)分開供電,兩者互相不影響,實(shí)現(xiàn)穩(wěn)定供電。
本設(shè)計(jì)中我們采用3節(jié)4.2V鋰電池串聯(lián)共12.6V直接給步進(jìn)電機(jī)供電,用于驅(qū)動(dòng)小車電機(jī),也可降至5V后給單片機(jī)及其他邏輯單元供電。這三節(jié)電池的體積和重量都比較小,便于安裝在小車底座,不會(huì)造成電機(jī)負(fù)載過大,而且價(jià)格低、電流驅(qū)動(dòng)能力強(qiáng)。為了給單片機(jī)及其他邏輯單元供電,必須將鋰電池組的電壓降至5V,這里我們采用LM7805穩(wěn)壓芯片進(jìn)行降壓,穩(wěn)壓電路如圖3.18所示:
圖3.18 5V穩(wěn)壓電路
第四章 系統(tǒng)軟件設(shè)計(jì)
在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)對象的實(shí)際需要設(shè)計(jì)應(yīng)用程序,小車能否實(shí)現(xiàn)要求功能取決于軟件的編程是否合理。本設(shè)計(jì)采用模塊化程序設(shè)計(jì)法進(jìn)行系統(tǒng)軟件的設(shè)計(jì),主要包含主程序、避障循跡子程序、數(shù)據(jù)顯示子程序等程序模塊。由于本人水平和能力有限只完成了部分模塊的程序設(shè)計(jì)。
4.1 系統(tǒng)總體程序流程圖
系統(tǒng)的總體程序流程圖如圖4.1所示:
圖4.1 系統(tǒng)程序流程圖
在圖4.1系統(tǒng)程序流程圖中,開始時(shí)先是系統(tǒng)的初始化,包括定時(shí)器初始化,外部中斷的初始化,液晶顯示器的初始化。其中避障循跡子程序用于控制小車自動(dòng)躲避障礙和自動(dòng)沿著特定的黑線行駛;數(shù)據(jù)顯示子程序主要是將測得的車輪轉(zhuǎn)速換算成小車的行駛的速度、路程等數(shù)據(jù)進(jìn)而在LCD1602液晶顯示屏顯示。
4.2 避障循跡模塊程序設(shè)計(jì)
4.2.1 避障程序流程圖

圖4.2 避障程序流程圖
圖4.2所示為小車避障程序流程圖,小車在行駛過程中由位于小車前部的四個(gè)障礙物檢測電路不斷檢測小車周圍環(huán)境,若遇到障礙物則將低電平信號輸入至單片機(jī),然后由單片機(jī)調(diào)用避障子程序控制小車作出相應(yīng)的避障動(dòng)作。如果左邊遇到障礙則調(diào)用右轉(zhuǎn)子程序,右邊遇到障礙則調(diào)用左轉(zhuǎn)子程序,前方遇到障礙則調(diào)用左轉(zhuǎn)或右轉(zhuǎn)子程序,沒有遇到障礙則調(diào)用直行子程序。具體的程序請見附錄B避障子程序。
4.2.2 循跡程序流程圖

圖4.3 循跡程序流程圖
圖4.3所示為循跡程序流程圖,小車在循跡行駛過程中安裝在小車底部的四個(gè)紅外反射式光電開關(guān)不斷檢測小車的行駛路線,若小車偏離黑線則將檢測到的低電平信號輸入至單片機(jī),單片機(jī)再調(diào)用循跡子程序控制小車使其沿著黑線行駛,如果小車偏向黑線左邊則調(diào)用右轉(zhuǎn)子程序,偏向黑線右邊則調(diào)用左轉(zhuǎn)子程序,在黑線上則調(diào)用直走子程序,完全偏離黑線則調(diào)用后退子程序。具體的程序請見附錄B循跡子程序。
4.3數(shù)據(jù)顯示模塊程序設(shè)計(jì)

圖4.4 數(shù)據(jù)顯示程序流程圖
在圖4.4數(shù)據(jù)顯示程序流程圖中,首先初始化LCD1602,然后在液晶的第一行顯示“路程: cm”,液晶第二行顯示“速度: cm/s”然后由主程序不斷調(diào)用數(shù)據(jù)顯示程序不斷刷新cm或者cm/s前面的數(shù)字實(shí)現(xiàn)實(shí)時(shí)顯示的目的。具體的程序請見附錄B數(shù)據(jù)顯示子程序。
第五章 總結(jié)與展望
5.1 總結(jié)
本設(shè)計(jì)的智能小車基本上實(shí)現(xiàn)了題目要求的各項(xiàng)功能,可以用遙控來控制小車的啟停、左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、倒退,小車能自動(dòng)沿著黑線行駛,遇到障礙時(shí)能夠自動(dòng)躲避障礙,而且可以實(shí)時(shí)顯示運(yùn)行的速度、路程等數(shù)據(jù)。通過本次設(shè)計(jì)讓我學(xué)會(huì)了電子產(chǎn)品的設(shè)計(jì)開發(fā)過程,掌握了紅外遙控原理、步進(jìn)電機(jī)的驅(qū)動(dòng)原理、采用紅外反射式光電開關(guān)檢測障礙的原理、顯示原理等自己以前并不了解的新知識,對單片機(jī)的結(jié)構(gòu)和其控制系統(tǒng)也有了更深的理解和認(rèn)識,對于Altium Designer、Proteus等電路設(shè)計(jì)和仿真軟件的操作也更加熟練,特別是在、自己最不擅長的軟件編程方面也有了一定的提高。
但是由于本人水平和能力有限,本設(shè)計(jì)中還存在一些不足之處。例如由于安裝在小車上面的紅外傳感器檢測范圍有限,存在一些檢測盲區(qū),光電檢測也容易收到外界環(huán)境和太陽光的干擾,有時(shí)可能會(huì)導(dǎo)致小車的循跡避障功能失效;小車是利用轉(zhuǎn)速差來轉(zhuǎn)彎的但是這種方法轉(zhuǎn)彎不夠順暢也不能持續(xù)轉(zhuǎn)彎并且對電機(jī)的損耗也較大,這些都有待進(jìn)一步的改進(jìn)和完善。
5.2 改進(jìn)與展望
在本設(shè)計(jì)中我們可以采用超聲波避障來代替紅外避障以減少外界干擾;多安裝幾個(gè)尋跡電路,在小車的車頭底部左右兩邊各一個(gè),中間底部左右兩邊各一個(gè),車尾底部左右兩邊各一個(gè),這樣可提高小車尋跡功能的可靠性和靈敏性;通過多組速度(不同脈沖所對應(yīng)的速度)的實(shí)際測試,尋找更合適的轉(zhuǎn)向速度,以提高轉(zhuǎn)向的精確度。
我們還可以為小車添加語音控制模塊,用語音來控制小車的一些狀態(tài),這樣將大大增加其人機(jī)交互控制的趣味性。
致謝
不知不覺三個(gè)月的時(shí)間過去了,從開始的搜集查找相關(guān)文獻(xiàn)資料確定一個(gè)大體的設(shè)計(jì)思路到后來一步步的進(jìn)行各個(gè)模塊的具體設(shè)計(jì)再到現(xiàn)在最終設(shè)計(jì)的完成,特別感謝我的指導(dǎo)老師楊安平老師在設(shè)計(jì)過程中給予我的極大幫助,雖然老師平時(shí)很忙,但每周仍會(huì)抽出兩次時(shí)間來對我不懂的地方進(jìn)行耐心的指導(dǎo),并對我的設(shè)計(jì)方案提出一些改進(jìn)的意見,教會(huì)了我解決相關(guān)問題的具體思路和方法,并且在我不擅長的硬件設(shè)計(jì)和軟件設(shè)計(jì)方面給予了我細(xì)心的講解。本設(shè)計(jì)能夠順利完成設(shè)計(jì)任務(wù),除了楊老師外還有很多同學(xué)也對我的設(shè)計(jì)進(jìn)行了一些指導(dǎo)和幫助,在此對你們表示最誠摯的感謝!
最后還要感謝各位評閱老師在百忙之中抽出時(shí)間對本論文進(jìn)行評閱,謝謝!