電子信息工程基于STC89C52單片機(jī)的自動照明智能小車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
電子信息工程基于STC89C52單片機(jī)的自動照明智能小車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
電子信息工程基于STC89C52單片機(jī)的自動照明智能小車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
電子信息工程基于STC89C52單片機(jī)的自動照明智能小車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
電子信息工程基于STC89C52單片機(jī)的自動照明智能小車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 基于STC89C52單片機(jī)的自動照明智能小車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) Design and implementation of automatic lighting intelligent car system based on STC89C52 摘要隨著經(jīng)濟(jì)的發(fā)展,信息化和智能自動化越來越成為世界主流的發(fā)展趨勢,也是各國科研機(jī)構(gòu)和學(xué)術(shù)單位的研究方向?,F(xiàn)如今也研究出了許多先進(jìn)的智能機(jī)器人技術(shù),其中智能小車作為智能機(jī)器人的其中一員,受到的人們的關(guān)注也越來越多。通常智能小車能過循跡功能尋找預(yù)先設(shè)定好的路線,并依照路線進(jìn)行移動。本設(shè)計(jì)主要是關(guān)于智能小車的循跡功能的研究,在此基礎(chǔ)上拓展其他功能,如主動避障功能

2、、光線感知功能等。智能小車主要使用了STC89C52單片機(jī)作為主要控制元件,兩個L293D電機(jī)驅(qū)動芯片控制的直流減速電機(jī)作為動力源,RPR220反射型光電探測器作為避障模塊傳感器;主要功能表現(xiàn)為自律行駛時能夠識別前方障礙物并轉(zhuǎn)向規(guī)避障礙物、能夠跟隨黑色軌跡路線行駛、能夠通過遙控器切換智能小車當(dāng)前執(zhí)行功能。通過這些功能達(dá)到智能小車“智能”的目的要求。關(guān)鍵詞: 智能循跡小車 STC89C52單片機(jī) 避障 遙控Abstract With the development of economy, information technology and intelligent automation have

3、 become more and more the mainstream of the world, and also the research direction of scientific research institutions and academic units in various countries. Nowadays, many advanced intelligent robot technologies have been developed. As one of the intelligent robots, the intelligent car has attrac

4、ted more and more attention. Generally, the intelligent car can find a pre-set route through the tracking function and move according to the route. This design is mainly about the research of the tracking function of the intelligent car. On this basis, it expands other functions, such as active obst

5、acle avoidance function, light perception function and so on. The intelligent car mainly uses STC89C52 as the main control element, two L293D motors drive the DC decelerating motor controlled by the chip as the power source, and rpr220 reflective photodetector as the obstacle avoidance module sensor

6、. The main functions of the intelligent car are that it can identify the obstacles in front and turn to avoid the obstacles when driving autonomously, it can follow the black track route, and it can travel through the distance The controller switches the current executive function of the intelligent

7、 car. Through these functions to achieve the purpose of intelligent car intelligent.Key words: intelligent tracking car STC89C52 single chip microcomputer obstacle avoidance remote control廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)目錄第一章 緒言11.1 選題目的與意義11.2 研究現(xiàn)狀1第二章 系統(tǒng)硬件設(shè)計(jì)32.1 系統(tǒng)總體設(shè)計(jì)32.2 電機(jī)驅(qū)動模塊42.3 紅外避障模塊42.4 紅外循跡模塊52.5 紅外遙控模塊6

8、2.6 光照感應(yīng)模塊7第三章 系統(tǒng)軟件設(shè)計(jì)83.1 軟件設(shè)計(jì)流程83.2 電機(jī)驅(qū)動軟件設(shè)計(jì)83.3 紅外避障程序設(shè)計(jì)103.4 紅外循跡程序設(shè)計(jì)123.5 紅外遙控解碼程序設(shè)計(jì)133.6 蜂鳴器控制程序17第四章 測試結(jié)果184.1 智能小車實(shí)物設(shè)計(jì)184.2 電機(jī)驅(qū)動測試184.3 紅外避障模塊測試194.4 循跡模塊測試204.5 遙控功能測試214.6 光照感知功能測試21第五章 總結(jié)與展望22參考文獻(xiàn)23致謝24第一章 緒言1.1選題目的與意義智能作為現(xiàn)代社會的新產(chǎn)物,是以后的發(fā)展方向,他可以按照預(yù)先設(shè)定的模式在一個特定的環(huán)境里自動的運(yùn)作,無需人為管理,便可以完成預(yù)期所要達(dá)到的或是更高

9、的目標(biāo)。在電子競賽中也有一個比較熱門課題, 就是智能尋跡小車的制作。在不需要人工干預(yù)的情況下, 小車能夠按照指定的軌道行駛, 并且能夠躲避障礙物。智能車輛信息處理速度快、誤差小,具有比人類更高的可靠性。在極端條件下或緊急意外事故條件下,智能車輛能通過自動駕駛等一系列技術(shù),將承載人員或貨物安全高效的脫離危險(xiǎn)地帶和安全送達(dá)目的地。兒童通常對能夠自律行動、發(fā)出燈光、發(fā)出聲響的玩具抱有極大的興趣,所以將智能小車裝飾成色彩鮮艷的玩具小車,便能取得孩童的喜愛;同時,智能小車具有高可編程性和高拓展性,對于兒童智力啟蒙、培養(yǎng)智能機(jī)械興趣愛好有著積極影響,甚至還可以為將來相關(guān)技術(shù)方面的人才培養(yǎng)提前打好興趣基礎(chǔ)和

10、技術(shù)基礎(chǔ)。1.2研究現(xiàn)狀20世紀(jì)60年代至今, 智能小車的發(fā)展正在一步一步的前進(jìn)。自20世紀(jì)60年代末期, 第一臺自主移動機(jī)器人從最初的示教機(jī)器人發(fā)展到具有感知功能的智能機(jī)器人, 技術(shù)上的突破促使著各國都對智能化機(jī)器的深入研究。由于各國的科研實(shí)力不同, 水平高低不同, 美國和日本在該項(xiàng)技術(shù)的掌握處于領(lǐng)先地位。各個國家對于智能小車、機(jī)器人的科研能力都在逐步的加強(qiáng), 未來的智能機(jī)器人可能會朝著以下幾個方面發(fā)展:使用高強(qiáng)度的輕質(zhì)材料讓機(jī)器人的結(jié)構(gòu)靈巧, 動作靈活;應(yīng)用網(wǎng)絡(luò)化技術(shù)來實(shí)現(xiàn)遠(yuǎn)距離操作控制;運(yùn)用復(fù)雜生物機(jī)電系統(tǒng)研究出具有仿生感知、生物神經(jīng)的仿人機(jī)器人。以智能小車技術(shù)理論為基礎(chǔ),可以發(fā)展大型智

11、能車輛,用于替代從事危險(xiǎn)工作的人工,或作為省力的新代步工具。智能車輛需要許多方面的技術(shù)支撐,不僅包括各類傳感器技術(shù)、物體辨識采集與分析處理技術(shù),還包括自動化控制技術(shù)、人工智能驅(qū)動技術(shù)和計(jì)算機(jī)云端物聯(lián)網(wǎng)技術(shù),這些技術(shù)的發(fā)展都將為智能車的技術(shù)發(fā)展奠定基礎(chǔ)。而目前,對于智能車輛的相關(guān)研究都是集中在自動控制駕駛方面,也是對于車輛安全最重要的方面。隨著智能小車比賽的開展,智能小車的研究也引起越來越多人關(guān)注。得益于飛思卡半導(dǎo)體公司的自主,我國全國范圍內(nèi)的智能小車競賽于2006年成功舉辦。改競賽被命名為“飛思卡爾”智能車競賽。該賽事的主辦方為教育部高等學(xué)校自動化專業(yè)教學(xué)指導(dǎo)委員會。同時隨著全國各高校對相關(guān)專

12、業(yè)的人才培養(yǎng),智能小車因體積小,可擴(kuò)展性高,更是成為相關(guān)技術(shù)的綜合練習(xí)工具。第二章 系統(tǒng)硬件設(shè)計(jì)2.1 系統(tǒng)總體設(shè)計(jì)智能小車系統(tǒng)總體設(shè)計(jì)如圖2-1-1所示圖2-1-1 智能小車系統(tǒng)總體設(shè)計(jì)示意圖智能小車的系統(tǒng)框圖如圖所示,信息的采集智能小車上的各傳感器模塊。智能小車實(shí)現(xiàn)功能的原理是通過傳感器采集地面導(dǎo)引線信息,將采集到的信息傳遞給單片機(jī),單片機(jī)根據(jù)采集到的信息選用合適的控制算法控制運(yùn)動電機(jī)的運(yùn)動,從而實(shí)現(xiàn)智能小車的自動循跡。智能小車的控制芯片使用宏晶公司生產(chǎn)的STC89C52芯片作為控制核心,不僅能控制電機(jī)轉(zhuǎn)動速度和轉(zhuǎn)動方向,實(shí)現(xiàn)控制小車運(yùn)動速度和運(yùn)動方向,還可以處理控制各部分傳感器電位信號,

13、擴(kuò)展小車功能,比如主動規(guī)避障礙物的避障功能、追蹤黑線前進(jìn)的循跡功能、按鍵遙控功能等。作為底盤的車型PCB板正面搭載焊接4節(jié)5號電池盒、STC89C52芯片主控板、紅外接收傳感器等;底盤反面焊接作為動力輸出的兩個電機(jī)、兩個定向輪連接電機(jī)作為動力輪、一組同軸定向輪作為從動輪;底盤前端焊接作為避障模塊的紅外傳感器,前端預(yù)留有接口可焊接超聲波傳感器,預(yù)防紅外傳感器失靈導(dǎo)致避障失效問題。底盤底面焊接兩個紅外探頭作為循跡模塊的探測器,同時底盤表面連接兩個紅色LED二極管作為循跡傳感器的信號指示燈。一個無源蜂鳴器連接一個單片機(jī)接口,在小車運(yùn)行時,可以發(fā)出蜂鳴聲作為信號改變的提示音。同時主控面板旁焊接有紅色的

14、共陽數(shù)碼管,可以顯示0至9的數(shù)字,將小車功能編號,在執(zhí)行相應(yīng)功能時,數(shù)碼管能夠顯示對應(yīng)功能的編號數(shù)字。主控面板還應(yīng)留有USB2.0接口,可通過USB接口下載編程代碼,同時還可作為智能小車的電源接口。2.2 電機(jī)驅(qū)動模塊動力是車的基礎(chǔ),能夠動起來才謂之車,智能小車主要以直流電機(jī)作為動力來源。圖2-2-1 小車搭載的直流電機(jī)本設(shè)計(jì)以L293D電機(jī)驅(qū)動模塊控制兩個直流減速電機(jī)作為主動力輸出。L293D 提供雙向驅(qū)動電流高達(dá) 600 毫安,電源電壓范圍是4.5 V至36 V,專為驅(qū)動繼電器,電磁閥,直流雙極步進(jìn)電機(jī)等感性負(fù)載,也可以給其他高電流/高電壓提供電源負(fù)載。當(dāng)使能輸入為高電平時,相關(guān)聯(lián)的驅(qū)動器

15、被啟用且他們的輸出處于活動狀態(tài),并在其輸入端的同相。圖2-2-2 L293D芯片當(dāng)使能輸入為低電平時,這些驅(qū)動器被禁用,其輸出關(guān)閉,處在高阻抗?fàn)顟B(tài)。因小車使用的是定向輪,所以控制兩個電機(jī)高低電平,一個電機(jī)運(yùn)轉(zhuǎn),一個電機(jī)停止,造成動力輪的差速轉(zhuǎn)動,從而實(shí)現(xiàn)小車的轉(zhuǎn)向。2.3 紅外避障模塊紅外避障模塊主要使用RPR220反射型光電探測器(圖2-3-1)圖2-3-1 紅外發(fā)射管與接收管RPR220 是一種一體化反射型光電探測器。其發(fā)射器是一個砷化鎵紅外發(fā)光二極管,而接收器是一個高靈敏度,硅平面光電三極管。當(dāng)接收器接收到發(fā)射器發(fā)出的紅外光后,將會產(chǎn)生電位變化。故而可調(diào)整接收靈敏度,小車行進(jìn)過程中,紅外

16、光發(fā)射器持續(xù)向前發(fā)射紅外光,光線遇到障礙物后反射回來,接收器接收反射回來的紅外光,當(dāng)接收的紅外光強(qiáng)度達(dá)到設(shè)定閾值,即小車將要觸碰障礙物時,接收器做出響應(yīng),輸出端輸出低電平,STC89C52主控芯片接收信號,以預(yù)先編程事件控制電機(jī)停止運(yùn)轉(zhuǎn),而后單邊電機(jī)運(yùn)轉(zhuǎn),控制小車轉(zhuǎn)向,轉(zhuǎn)向完成后正常運(yùn)轉(zhuǎn)電機(jī)使小車?yán)^續(xù)前行,以此來實(shí)現(xiàn)小車的避障功能。2.4 紅外循跡模塊與避障模塊類似,循跡模塊利用紅外探頭檢測地面信息,黑線相對于其他顏色的地面紅外光線的反射率要低很多,以至于紅外接收探頭不會產(chǎn)生電位變化。車頭左、中、右三個紅外感應(yīng)探頭即可判斷小車是否在黑線上,探頭探測到黑色時,接收紅外光信號低于響應(yīng)反射率,輸出端

17、處于高電平狀態(tài);探頭探測到折射率高的顏色時,紅外光接收量達(dá)到響應(yīng)程度,光敏電阻做出響應(yīng),輸出端輸出低電平;圖2-4-1 紅外循跡模塊具體實(shí)現(xiàn)為:黑線在小車中間位置時,左右紅外探頭均正常接收反射紅外光,中間紅外探頭則無接收信號;或左中右紅外探頭均無信號,說明循跡的黑線寬度大于三個傳感器的距離;此時STC89C52芯片接收處理電位信號,電機(jī)同步正向轉(zhuǎn)動,小車作正常前進(jìn)行駛;黑線在小車左側(cè)時,左探頭無接收信號,右探頭有接收信號,此時中間探頭的信號可忽略不做處理,有接收信號或無接收信號取決于黑線的寬度和偏斜角度,出現(xiàn)情況均為黑線在左側(cè)的情況;STC89C52芯片接收電位信號變化后,根據(jù)事先編程的步驟,

18、控制電機(jī)差速,右電機(jī)正常運(yùn)轉(zhuǎn),左電機(jī)減速或停止運(yùn)轉(zhuǎn),使小車左轉(zhuǎn),直至紅外探頭的電位信號發(fā)生改變;黑線在小車右側(cè)時,左側(cè)探頭有接收信號,輸出低電平信號,右側(cè)探頭則無接收信號,中間探頭的信號忽略不作處理,主控芯片接收信號后,按預(yù)先編寫的程序設(shè)置,控制右側(cè)電機(jī)減速或停止轉(zhuǎn)動,左側(cè)電機(jī)正常運(yùn)轉(zhuǎn),使小車右轉(zhuǎn),直至紅外探頭的電位信號發(fā)生改變;當(dāng)三個紅外探頭均能接收紅外光信號,輸出低電平時,此時小車因到達(dá)終點(diǎn)或外部因素處于脫離黑線狀態(tài),主控芯片接收信號,控制兩個電機(jī)停止轉(zhuǎn)動,使小車停止。就這樣通過處理紅外探頭的電位變化,從而實(shí)現(xiàn)循跡功能。2.5 紅外遙控模塊紅外遙控模塊使用HT6221 遙控器芯片進(jìn)行鍵位的

19、解碼,紅外接收管進(jìn)行信號接收。圖2-5-1 紅外接收管當(dāng)遙控器的一個鍵按下超過36ms,振蕩器使芯片激活;如果一個鍵被按下,且延遲為108ms左右,則這 108ms的發(fā)射代碼由一個起始碼,一個結(jié)果碼,低 8位的地址碼、高 8位的地址碼, 8位的數(shù)據(jù)碼和這8位數(shù)據(jù)碼的反碼組成,其中起始碼占9ms,結(jié)果碼占4.5ms,低8位地址碼占918 ms,高8位地址碼占918 ms,數(shù)據(jù)碼占918 ms,數(shù)據(jù)碼反碼占918 ms;當(dāng)一個鍵被按下,且超過 108ms仍未松開,則接下來發(fā)射的代碼將僅由起始碼和結(jié)束碼組成,其中起始碼9ms,結(jié)束碼僅2.5ms。將紅外遙控模塊連接STC89C52芯片的外部中斷引腳,

20、外部中斷開關(guān)打開時,遙控模塊接收到遙控器發(fā)出的紅外信號,遙控芯片傳遞給主控芯片產(chǎn)生外部中斷,進(jìn)入外部中斷程序,同時關(guān)閉外部中斷開關(guān),防止再有信號接收到達(dá),程序延時跳過起始碼,然后記錄數(shù)據(jù)碼,并判斷接收的數(shù)據(jù)碼是否與事先設(shè)定的按鍵碼相同,相同則跳轉(zhuǎn)至鍵碼對應(yīng)函數(shù);不同則不做程序響應(yīng),打開外部中斷開關(guān),繼續(xù)接收紅外遙控信號。這樣便實(shí)現(xiàn)了紅外遙控功能。2.6 光照感應(yīng)模塊本設(shè)計(jì)使用了5528光敏電阻作為光線傳感器,光敏接收到光線時,輸出低電平,反之輸出高電平;圖2-6-1 5528光敏電阻芯片主板兩側(cè)各焊接了一個光敏傳感器,標(biāo)記為左、右光敏傳感器。當(dāng)兩個光敏傳感器都輸出低電平時,表明此時小車正處于明

21、亮處,程序不做出響應(yīng);當(dāng)兩個光敏傳感器都輸出高電平時,表明此時小車正處在暗處,主控芯片開啟外接燈管開關(guān),照亮小車前方。當(dāng)左傳感器輸出高電平,右傳感器輸出低電平時,表明小車左側(cè)進(jìn)入暗處;左傳感器輸出低電平,右傳感器輸出高電平時,表明小車右側(cè)進(jìn)入暗處;當(dāng)這兩種情況發(fā)生時,主控芯片接收處理信號,通過PWM控制輸出,使燈管亮度降低,表示正在進(jìn)入暗處或部分進(jìn)入暗處。第三章 系統(tǒng)軟件設(shè)計(jì)3.1 軟件設(shè)計(jì)流程智能小車開始運(yùn)行后,各傳感器不斷的采集各類信息數(shù)據(jù),并將采集的數(shù)據(jù)結(jié)果傳輸至單片機(jī),單片機(jī)對端口進(jìn)行不間斷的掃描檢測以此發(fā)現(xiàn)出各端口電平的變化,如果有端口的電平發(fā)生變化,單片機(jī)就將調(diào)用相關(guān)程序進(jìn)行數(shù)據(jù)處

22、理,并把處理結(jié)果反饋給相應(yīng)模塊。圖3-1-1是軟件設(shè)計(jì)的總流程圖:圖3-1-1 軟件設(shè)計(jì)主程序流程圖3.2 電機(jī)驅(qū)動軟件設(shè)計(jì)將左側(cè)電機(jī)定義為M1,將右側(cè)電機(jī)定義為M2;電機(jī)兩個接口分別定義為A、B,在A、B端口不同電位信號時,電機(jī)有三種狀態(tài),如圖3-2-1。電機(jī)狀態(tài)A端電位B端電位電機(jī)靜止00電機(jī)反轉(zhuǎn)01電機(jī)正轉(zhuǎn)10圖3-2-1 電機(jī)狀態(tài)表所以可以依據(jù)電機(jī)端口特點(diǎn),編寫出小車的電機(jī)驅(qū)動程序:停止函數(shù):Void tingzhi()M1A = 0;M1B = 0;M2A = 0;M2B = 0;將電機(jī)兩個接口處都設(shè)為低電平,此時電機(jī)停止轉(zhuǎn)動;前進(jìn)函數(shù):Void qianjin()M1A=1;M1B

23、=0;M2A=1;M2B=0;將兩個電機(jī)的A端設(shè)置為高電平,B端設(shè)置為低電平,電機(jī)正向轉(zhuǎn)動驅(qū)使小車向前運(yùn)動;后退函數(shù):Void houtui()M1A=0;M1B=1;M2A=0;M2B=1; 將兩個電機(jī)的A端設(shè)置為低電平,B端設(shè)置為高電平,電機(jī)反向轉(zhuǎn)動驅(qū)使小車向后倒退運(yùn)動;左轉(zhuǎn)函數(shù):Void zuozhuan()M1A=0;M1B=1;M2A=1;M2B=0; 將左電機(jī)B端設(shè)為高電平,左電機(jī)反轉(zhuǎn);右電機(jī)A端設(shè)為高電平,右電機(jī)正轉(zhuǎn);使得小車原地向左旋轉(zhuǎn),實(shí)現(xiàn)左轉(zhuǎn);右轉(zhuǎn)函數(shù):Void youzhuan()M1A=1;M1B=0;M2A=0;M2B=1;將左電機(jī)A端設(shè)為高電平,左電機(jī)正轉(zhuǎn);右電機(jī)B

24、端設(shè)為高電平,右電機(jī)反轉(zhuǎn);使得小車原地向右旋轉(zhuǎn),實(shí)現(xiàn)右轉(zhuǎn);3.3 紅外避障程序設(shè)計(jì)紅外避障程序設(shè)計(jì)流程如圖3-3-1所示,若傳感器沒有探測到障礙物時,小車向前直線運(yùn)動;當(dāng)傳感器探測到障礙物時,小車先停止運(yùn)動,隨后做轉(zhuǎn)彎回避,接著繼續(xù)向前直行。圖3-3-1 避障程序設(shè)計(jì)流程圖用變量FrontIR定義前段紅外探頭:sbit FrontIR=P37當(dāng)紅外探頭探測到障礙物時,電信號為低電平,即FrontIR = 0.可用if else語句判斷FrontIR的值;當(dāng)FrontIR的值為1時:if (FrontIR = 1)qianjin();delay(10);前方無障礙物時FrontIR的值為 1 ,

25、所以控制小車前進(jìn)。當(dāng)FrontIR的值為0時:if (FrontIR = 0)tingzhi();delay(300);houtui();delay(300);zuozhuan();delay(1500);前方探測到障礙物時,F(xiàn)rontIR的值為0,先調(diào)用停止函數(shù)使小車停止,再讓小車往后退一些,防止轉(zhuǎn)彎時小車尾部磕碰障礙物,最后調(diào)用左轉(zhuǎn)函數(shù)。3.4 紅外循跡程序設(shè)計(jì)紅外循跡程序設(shè)計(jì)流程圖如圖3-4-1所示:圖3-4-1 循跡程序設(shè)計(jì)流程圖傳感器檢測黑線,單片機(jī)判斷小車是否偏離黑線,從而驅(qū)動小車前進(jìn)或轉(zhuǎn)向;若未檢測到黑線則停止待機(jī)。用變量定義紅外探頭:sbit LeftIR=P35;定義左側(cè)紅外

26、探頭;sbit RightIR=P36; 定義右側(cè)紅外探頭;sbit FrontIR=P37;定義前端紅外探頭;小車在黑線上時,左右兩側(cè)紅外探頭均檢測到黑線,LeftIR和RightIR的值都為0,此時應(yīng)驅(qū)使小車向前運(yùn)動:if (LeftIR = 1 & RightIR = 1)qianjin();delay(10);當(dāng)左側(cè)探頭探測到黑線,而右側(cè)探頭無結(jié)果時,黑線位于小車左側(cè),LeftIR的值為1,RightIR的值為0,小車向左轉(zhuǎn)以校準(zhǔn)黑線位置:if(LeftIR = 1 & RightIR = 0)zuozhuan();delay(10);當(dāng)右側(cè)探頭探測到黑線,而左側(cè)探頭無結(jié)果時,黑線位于

27、小車右側(cè),LeftIR的值為0,RightIR的值為1,小車向右轉(zhuǎn)以校準(zhǔn)黑線位置:if(LeftIR = 0 & RightIR = 1)youzhuan();delay(10);當(dāng)左、中、右三個探頭均檢測不到黑線時,小車到達(dá)終點(diǎn)或完全偏離軌跡,LeftIR、FrontIR、RightIR的值均為1,小車停止行進(jìn):if (LeftIR = 1 & FrontIR = 1 & RightIR = 1)tingzhi();delay();3.5 紅外遙控解碼程序設(shè)計(jì)紅外遙控的功能設(shè)計(jì)流程如圖3-5-1所示:圖3-5-1 紅外遙控程序流程圖首先使用數(shù)組保存需要的鍵碼地址:unsigned char

28、code RecvData =0x19,0x46,0x15,0x43,0x44,0x40,0x0D,0x45,0x00,0x0F;定義紅外接收器的端口,用變量IRIN接收端口的電位信號:sbit IRIN = P33;定義外部中斷函數(shù):void IR_IN() interrupt 2 using 0產(chǎn)生外部中斷后,關(guān)閉外部中斷開關(guān):EX1=0;為防止按下按鍵時產(chǎn)生的抖動導(dǎo)致的信號誤差,此處休眠延遲一段時間進(jìn)行按鍵消抖:delay(15);進(jìn)行按鍵消抖后,繼續(xù)判斷紅外信號,看信號是否消失,若是紅外信號消失,則打開外部中斷的開關(guān),并退出外部中斷程序,等待下個紅外信號的到達(dá):if (IRIN=1)

29、EX1 =1;return 0; 起始碼在信號時長中占9ms,此時端口為低電平,故做循環(huán)等待,以跳過起始碼時間,當(dāng)端口變回高電平時,結(jié)束等待循環(huán):while (!IRIN) delay(1);因起始碼后續(xù)是低8位地址碼、高8位地址碼、數(shù)據(jù)碼和數(shù)據(jù)碼的反碼,所以用總循環(huán)為4次的for循環(huán)來接收紅外數(shù)據(jù),又因?yàn)槊總€碼有8位數(shù)據(jù),所以在原循環(huán)基礎(chǔ)上再嵌套一個循環(huán)次數(shù)為8的for循環(huán):for (j=0;j4;j+) for (k=0;k=30) EX1=1; return; IRCOMj=IRCOMj 1; if (N=8) IRCOMj = IRCOMj | 0x80; N=0; 接收紅外信號數(shù)據(jù)完

30、成后,將數(shù)據(jù)碼的反碼再次取反,判斷數(shù)據(jù)碼與數(shù)據(jù)碼反碼的取反是否相同,若相同則進(jìn)入下一步,若不同,則打開外部中斷開關(guān),并退出外部中斷程序:if (IRCOM2!=IRCOM3) EX1=1;return;經(jīng)過數(shù)據(jù)碼與數(shù)據(jù)碼反碼的判斷后,可以獲得正確的數(shù)據(jù)碼地址,將接收的數(shù)據(jù)碼與預(yù)設(shè)按鍵碼進(jìn)行對比,就可以判斷是否按下了預(yù)設(shè)的按鍵,若有與預(yù)設(shè)相同數(shù)據(jù)碼,則調(diào)用按鍵對應(yīng)的遙控功能,若無對應(yīng)按鍵碼,則忽略此按鍵碼。這里使用for循環(huán)進(jìn)行鍵位判斷:for(i=0;i10;i+) if(IRCOM2=RecvDatai)yaokong(i); 判斷完成后,打開外部中斷開關(guān):EX1=1;紅外遙控的外部中斷程序

31、到此完成。3.6 蜂鳴器控制程序蜂鳴器與STC89C52單片機(jī)的P06接口相連,將接口設(shè)置為高電平時,蜂鳴器便能發(fā)出鳴響。用變量SB1定義接口P06:sbit SB1=P06;若要產(chǎn)生蜂鳴,則將SB1的值改為1,可以配合各個模塊功能使用;例如將避障模塊與蜂鳴器配合使用:SB1=FrontIR;if (FrontIR =1 )tingzhi();delay(50);zuozhuan();delay(500);這樣就是當(dāng)前端紅外探頭檢測到障礙物時,蜂鳴器發(fā)出蜂鳴聲響,同時小車做出回避轉(zhuǎn)向。第四章 測試結(jié)果4.1 智能小車實(shí)物設(shè)計(jì)根據(jù)系統(tǒng)功能設(shè)計(jì),將各部分模塊零件焊接、接線等一系列工作,最終完成智能

32、小車的實(shí)物。圖4-1-1 智能小車實(shí)物圖4.2 電機(jī)驅(qū)動測試電機(jī)驅(qū)動測試分六部分測試,分別是單側(cè)電機(jī)正轉(zhuǎn)、單側(cè)電機(jī)反轉(zhuǎn)、兩側(cè)電機(jī)同時正轉(zhuǎn)、兩側(cè)電機(jī)同時反轉(zhuǎn)、兩側(cè)電機(jī)反向轉(zhuǎn)動、電機(jī)轉(zhuǎn)動時控制電機(jī)停止;設(shè)左側(cè)電機(jī)為M1,右側(cè)電機(jī)為M2,電機(jī)兩個接口為A、B;若模塊正常,則有以下情況:單側(cè)電機(jī)正轉(zhuǎn):M1A設(shè)為高電平,其余設(shè)為低電平時,左側(cè)電機(jī)正轉(zhuǎn);M2A設(shè)為高電平,其余設(shè)為低電平時,右側(cè)電機(jī)正轉(zhuǎn);單側(cè)電機(jī)反轉(zhuǎn):M1B設(shè)為高電平,其余設(shè)為低電平時,左側(cè)電機(jī)反轉(zhuǎn);M2B設(shè)為高電平,其余設(shè)為低電平時,右側(cè)電機(jī)反轉(zhuǎn);兩側(cè)電機(jī)同時正轉(zhuǎn):M1A、M2A設(shè)為高電平,M1B、M2B設(shè)為低電平時,兩側(cè)電機(jī)均做正轉(zhuǎn);兩

33、側(cè)電機(jī)同時反轉(zhuǎn):M1B、M2B設(shè)為高電平,M1A、M2A設(shè)為低電平時,兩側(cè)電機(jī)均做反轉(zhuǎn);兩側(cè)電機(jī)反向轉(zhuǎn)動:M1A、M2B設(shè)為高電平,M1B、M2A設(shè)為低電平時,左電機(jī)正轉(zhuǎn),右電機(jī)反轉(zhuǎn);M1B、M2A設(shè)為高電平,M1A、M2B設(shè)為低電平時,左電機(jī)反轉(zhuǎn),右電機(jī)正轉(zhuǎn);電機(jī)正常正轉(zhuǎn)一段時間后停止轉(zhuǎn)動:M1A、M2A設(shè)為高電平,M1B、M2B設(shè)為低電平,兩側(cè)電機(jī)均做正轉(zhuǎn)。等待一段時間后將全部端口都設(shè)為低電平,電機(jī)停止轉(zhuǎn)動;測試次數(shù)為5次,測試結(jié)果如圖4-2-1所示,經(jīng)過測試得出電機(jī)驅(qū)動模塊已正常安裝。正常運(yùn)行次數(shù)異常次數(shù)單側(cè)電機(jī)正轉(zhuǎn)50單側(cè)電機(jī)反轉(zhuǎn)50兩側(cè)電機(jī)同時正轉(zhuǎn)50兩側(cè)電機(jī)同時反轉(zhuǎn)50兩側(cè)電機(jī)反向

34、轉(zhuǎn)動50電機(jī)正常正轉(zhuǎn)一段時間后停止轉(zhuǎn)動50圖4-2-1 電機(jī)測試結(jié)果圖4.3 紅外避障模塊測試紅外避障模塊測試主要是驗(yàn)證避障模塊是否能夠?qū)崿F(xiàn)避障功能,而避障功能的實(shí)現(xiàn)取決于紅外傳感探頭能否正確發(fā)射和接收信號,可將蜂鳴器與探頭信號連接,若紅外探頭正常檢測障礙,則鳴響蜂鳴器。測試避障模塊前先測試蜂鳴器是否正常運(yùn)作:設(shè)蜂鳴器為SB1,若蜂鳴器焊接正確且結(jié)構(gòu)完好,則將SB1設(shè)為高電平時,蜂鳴器就能夠正常鳴響;將前端紅外探頭設(shè)為FrontIR;將FrontIR的信號賦值給SB1,這樣賦值后當(dāng)探頭檢測到障礙物時,蜂鳴器就會鳴響;運(yùn)行智能小車的避障功能,在前方無障礙情況時,兩側(cè)電機(jī)均正向轉(zhuǎn)動,用手把小車前端

35、的紅外探頭遮擋住,若模塊焊接正常且運(yùn)行正常,探頭被遮擋住后,電機(jī)停止轉(zhuǎn)動,隨后反向轉(zhuǎn)動,這樣就能完成避障模塊的測試。經(jīng)過測試,已確定避障模塊正常安裝。4.4 循跡模塊測試測試循跡模塊分為硬件部分測試和軟件部分測試,硬件部分指作為循跡傳感器的紅外探頭能否正確循跡,軟件部分指單片機(jī)能否根據(jù)預(yù)先下載的代碼進(jìn)行相應(yīng)的電機(jī)驅(qū)動。硬件部分可以將紅外探頭的電位信號傳遞給車頭紅色LED燈,當(dāng)傳感器探測到反射回來的紅外光線時,對應(yīng)的LED燈亮起,即可驗(yàn)證傳感器正常。實(shí)際操作為:將小車前端一左一右兩個LED指示燈設(shè)為LeftLed和RightLed,前端左右兩個紅外探頭的輸出端分別設(shè)為LeftIR和RightIR

36、。將LeftLed = LeftIR,RightLed = RightIR,接通小車電源,將手掌分別遮擋左右傳感器探測頭,觀測對應(yīng)LED的點(diǎn)亮情況,若模塊正常則當(dāng)遮住左傳感探頭時,左LED燈亮起;當(dāng)遮住右傳感探頭時,右LED燈亮起;將小車放置在黑線上,若探頭正對黑線,則對應(yīng)LED燈不亮,若探頭沒有正對黑線,則LED燈亮起;在硬件功能正常情況下可進(jìn)行軟件功能測試,將小車懸空并運(yùn)行循跡功能,若程序正確并正常運(yùn)行,則當(dāng)紅外探頭不被遮擋時,LED指示燈不亮,動力輪向前轉(zhuǎn)動;當(dāng)用手遮擋左探頭時,左LED指示燈亮起,左輪向前轉(zhuǎn)動,右輪反向轉(zhuǎn)動;當(dāng)用手遮擋右探頭時,右LED指示燈亮起,右輪向前轉(zhuǎn)動,左輪反向

37、轉(zhuǎn)動;當(dāng)用手同時遮擋左右兩個紅外探頭時,兩個LED指示燈均亮起,兩個動力輪都停止轉(zhuǎn)動;圖4-4-1 用手遮擋探頭時LED燈亮起經(jīng)過測試,循跡功能正常運(yùn)行。4.5 遙控功能測試因?yàn)槿说娜庋鄄荒苤苯臃直娉黾t外光線,所以測試紅外遙控功能需要其他現(xiàn)象來反映紅外光線的接收狀況。在外部中斷程序中寫入使能蜂鳴器,在接收到紅外信號進(jìn)入外部中斷程序時,蜂鳴器就會鳴響,便能反饋是否接收到遙控信號。若模塊正確焊接且正常運(yùn)行,則:在遙控器上按下非指定按鍵并放開時,蜂鳴器鳴響,小車不做其他響應(yīng);按下“前進(jìn)”鍵位并放開,蜂鳴器鳴響,電機(jī)驅(qū)動小車前進(jìn);按下“后退”鍵位并放開,蜂鳴器鳴響,電機(jī)驅(qū)動小車后退;按下“左轉(zhuǎn)”鍵位并放開,蜂鳴器鳴響,電機(jī)驅(qū)動小車向左轉(zhuǎn)動;按下“右轉(zhuǎn)”鍵位并放開,蜂鳴器鳴響,電機(jī)驅(qū)動小車向右轉(zhuǎn)動;在小車運(yùn)動時按下“停止”鍵位并放開,蜂鳴器鳴響,電機(jī)停止轉(zhuǎn)動;這樣就能驗(yàn)證遙控模塊是否正常運(yùn)行;4.6 光照感知功能測試光照感知模塊是靠光敏電阻接收光照信息,用LED燈做信息反饋的指示燈。將感應(yīng)探頭的接口信息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論