版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于單片機的智能小車控制</p><p> 專 業(yè): 測控技術(shù)與儀器 </p><p> 姓 名: 咸蛋小超人 </p><p><b> 2013年 6 月</b></p><p> 基于單片機的智能小車控制</p>
2、<p> 摘要:智能化作為現(xiàn)代電子產(chǎn)品的新趨勢,是今后的電子產(chǎn)業(yè)的發(fā)展方向。智能化設(shè)計的電子產(chǎn)品可以按照預(yù)先設(shè)定的模式在一個環(huán)境里自動運作,不需要人為的管理,可應(yīng)用于科學(xué)勘探、環(huán)境監(jiān)測、智能家居等方面?;趩纹瑱C的智能小車控制就是其中的一個體現(xiàn)。本設(shè)計實現(xiàn)了一種基于51單片機的自動避障智能模型車系統(tǒng),通過紅外傳感器采集路況信息,通過對檢測信息的分析,自動控制轉(zhuǎn)向電機轉(zhuǎn)向,改變行駛路徑,繞過障礙物,從而實現(xiàn)車穩(wěn)定避障。<
3、/p><p> 本課題設(shè)計的智能小車,具有自動避障功能,超聲波測距報警,無線電遙控等功能。</p><p> 關(guān)鍵詞:智能車;51單片機;避障;紅外線</p><p> Smart car based on SCM control</p><p> Abstract:As a new trend of modern electronic
4、products, intelligent is the developmental direction of electronic industry after then. Electronic products, which are intelligently designed, can automatically operate following the mode that is pre-set. Without the man
5、agement of human beings, it can be used for scientific exploring, environmental monitoring, intelligent home furnishing, etc. One of the embodiments is the intelligent control car which is based on single chip microcompu
6、ter. In the des</p><p> In this paper, a car with the ability of intelligent judgment has been designed and made. It functions as the device which can dodge obstacles automatically, alarm with ultrasonic di
7、stance examination, and remote control by radio.</p><p> Key words: Smart Cart;Single-chip 51;Obstacle Avoidance;Infrared</p><p><b> 目 錄</b></p><p><b> 序 言3&l
8、t;/b></p><p> 第1章 總體設(shè)計方案4</p><p> 1.1課題任務(wù)分析4</p><p> 1.2 方案論證4</p><p> 1.2.1小車遙控部分5</p><p> 1.2.2小車驅(qū)動部分6</p><p> 第2章 系統(tǒng)硬件構(gòu)成7<
9、;/p><p> 2.1系統(tǒng)設(shè)計原理7</p><p> 2.2主要元器件簡介7</p><p> 2.2.1 STC89C52RC簡介7</p><p> 2.2.2 NRF24L01無線收發(fā)芯片簡介8</p><p> 2.2.3 L298N芯片直流電機驅(qū)動模塊9</p><
10、;p> 2.2.4 紅外避障模塊9</p><p> 2.2.5 HC-SR04超聲波測距模塊11</p><p> 2.2.6 蜂鳴器驅(qū)動電路13</p><p> 2.2.7 液晶顯示電路13</p><p> 2.2.8遙控部分獨立按鍵電路14</p><p> 第3章 軟件的設(shè)計與說
11、明15</p><p> 3.1軟件設(shè)計15</p><p> 3.2軟件的說明16</p><p> 3.2.1 遙控部分主程序流程16</p><p> 3.2.2 24L01子程序流程圖17</p><p> 3.2.3 小車部分主程序流程圖18</p><p>
12、第4章 調(diào)試與總結(jié)20</p><p> 4.1硬件部分20</p><p> 4.1.1硬件的焊接20</p><p> 4.1.2 24L01無線電模塊20</p><p> 4.1.3 外接電源模塊20</p><p> 4.2 軟件部分21</p><p> 4.
13、2.1 超聲波模塊21</p><p> 4.3 小車聯(lián)調(diào)21</p><p> 4.4 調(diào)試的總結(jié)23</p><p><b> 參考文獻24</b></p><p><b> 致 謝26</b></p><p><b> 附錄27</
14、b></p><p> 附件1 L298N電機驅(qū)動模塊27</p><p> 附件2 小車側(cè)視圖28</p><p> 附件3 小車俯視圖29</p><p> 附件4 小車的遙控部分30</p><p> 附件5 小車最終硬件圖31</p><p> 附件6 程序
15、清單32</p><p> 1.遙控部分程序32</p><p> 2.小車部分程序41</p><p> 附件7 元器件清單50</p><p> 附件8 英文資料及中文翻譯51</p><p><b> 序 言</b></p><p> 隨著我國科
16、學(xué)技術(shù)的進步,智能化和自動化技術(shù)越來越普及,各種高科技也廣泛應(yīng)用于智能小車和機器人玩具制造領(lǐng)域,使智能機器人越來越多樣化。智能小車是一個多種高新技術(shù)的集成體,它融合了機械、電子、傳感器、計算機硬件、軟件、人工智能等許多學(xué)科的知識,涉及到當(dāng)今許多前沿領(lǐng)域的技術(shù)[1]。而智能電動車正是智能機器人的一種,具有不可估量的實際意義。智能車輛是一個運用計算機、傳感、信息、通信、導(dǎo)航、人工智能及自動控制等技術(shù)來實現(xiàn)環(huán)境感知、規(guī)劃決策和自動行駛為一體的
17、高新技術(shù)綜合體。它在軍事、民用和科學(xué)研究等方面已獲得了應(yīng)用,對解決道路交通安全提供了一種新的途徑。隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來越受人關(guān)注。全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究,許多國家已經(jīng)把電子設(shè)計比賽作為創(chuàng)新教育的戰(zhàn)略性手段。電子設(shè)計涉及到多個學(xué)科,機械電子、傳感器技術(shù)、自動控制技術(shù)、人工智能控制、計算機與通信技術(shù)等等,是眾多領(lǐng)域的高科技[2]。電子設(shè)計技術(shù),它
18、是一個國家高科技實例的一個重要標(biāo)準,可見其研究意義很大。</p><p> 第1章 總體設(shè)計方案</p><p><b> 1.1課題任務(wù)分析</b></p><p> 當(dāng)前的電動小汽車基本上采取的是基于純硬件電路的一種開環(huán)控制方法, 或者是直線行使, 或者是在遙控下作出前進、后退、轉(zhuǎn)彎、停車等基本功能。但是這不能滿足某些特殊場合下的要求
19、?;诖耍疚脑O(shè)計了智能小車控制系統(tǒng)。</p><p> 智能小車是一個運用傳感器、單片機、信號處理、電機驅(qū)動及自動控制等技術(shù)來實現(xiàn)環(huán)境感和自動行駛為一體的高新技術(shù)綜合體,它在軍事、民用和科學(xué)研究等方面已獲得了應(yīng)用。</p><p> 通過各種選題之后,我們發(fā)現(xiàn)制作智能小車非常有意思,它喚起我們對玩具的革新思想,智能小車制作的興趣。自己遇到過的汽車的功能是怎樣的,想通過自己的手創(chuàng)作出屬
20、于自己的智能汽車。也夾雜一種童年時對玩具智能化的假想。所以我選定制作單片機智能小車。</p><p> 通過這次設(shè)計,掌握51單片機的原理,了解簡單傳感器組成原理,初步掌握傳感器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設(shè)計與裝配、調(diào)試,提高自己的動手能力,鞏固已學(xué)的理論知識,建立單片機理論和實踐的結(jié)合,了解傳感器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初
21、步掌握傳感器的調(diào)整及測試方法。提高動手能力和排除故障的能力。</p><p> 本設(shè)計采用直流減速電機,電機專用驅(qū)動芯片L298N進行電機驅(qū)動控制,主控芯片為STC89C52,測距部分采用超聲波模塊,控制器采用24L01無線電通信模塊,自動避障部分采用紅外收發(fā)模塊。</p><p> 本次設(shè)計雖然只是一個演示模型,但是具有充分的科學(xué)性和實用性。首先我們根據(jù)交通路面的復(fù)雜情況,按照適當(dāng)?shù)?/p>
22、比例制作出一個路況模型,包括彎道、直道以及路面上設(shè)置的障礙物等。在彎、直道上,小車沿著預(yù)定軌道自由行使,當(dāng)小車遇到障礙物時,脈沖調(diào)制的紅外線傳感器將檢測到的信號發(fā)送給單片機,單片機根據(jù)程序發(fā)出相應(yīng)的控制信號控制小車自動避開障礙物。由無線模塊控制小車進行倒車、前進、左轉(zhuǎn)、右轉(zhuǎn)等動作。</p><p><b> 1.2 方案論證</b></p><p> 1.2.1小
23、車遙控部分</p><p> 方案一:小車的無線通信模塊采用紅外遙控,紅外收發(fā)遙控是目前大部份遙控小車采用的遙控手段,紅外遙控具有代碼簡單,操作性強的特點。如圖1-1為紅外遙控模塊實物圖。</p><p> 圖1-1 紅外遙控模塊實物圖</p><p> 方案二:小車的通信模塊采用無線電NRF24L01模塊,NRF24L01是一款工作在2.4~2.5GHz,世
24、界通用ISM頻段的單片無線收發(fā)器芯片。無線收發(fā)器包括:頻率發(fā)生器、增強型SchockburstTM模式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器。輸出功率、頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進行設(shè)置。如1-2為NRF24L01無線模塊實物圖。</p><p> 圖1-2 NRF24L01無線模塊實物圖</p><p> 方案論證:方案一中的紅外遙控模塊的信號傳送距離有限,并且發(fā)
25、送和接收的紅外信號容易受到干擾。NRF20L01發(fā)射頻率高,所受到的干擾影響較小,無線通信的距離比紅外的要長許多。小車的遙控是小車的最主要的部分之一,所以選擇NRF24L01無線通信模塊,故選擇方案一。</p><p> 1.2.2小車驅(qū)動部分</p><p> 方案一:小車的電機驅(qū)動部分采用自己搭建的9012三極管電路來實行小車的驅(qū)動,9012三極管電路具有電路簡單,操作方便的等特點
26、。</p><p> 方案二:小車的電機驅(qū)動部分采用L298N芯片直流電機驅(qū)動模塊,該模塊具有較大的驅(qū)動帶載能力,驅(qū)動部分端子供電范圍Vs:+5V~+35V,并且另外自帶了5V、3V的輸出端口。</p><p> 方案論證:本設(shè)計為4輪驅(qū)動的小車,對于小車驅(qū)動部分要求能夠有較大的帯載能力,并且在小車的實際設(shè)計過程中,需要不同的輸出電壓來提供給小車的各個模塊。因此綜上所述采用方案二,小車
27、的電機驅(qū)動部分使用L298N芯片直流電機驅(qū)動模塊。</p><p> 第2章 系統(tǒng)硬件構(gòu)成</p><p><b> 2.1系統(tǒng)設(shè)計原理</b></p><p> 本設(shè)計主要分為兩部分:遙控部分和小車部分。遙控部分主要由電源電路,單片機最小系統(tǒng),無線電模塊組成,遙控部分的系統(tǒng)框圖如圖2-1所示。</p><p>
28、 圖2-1 遙控系統(tǒng)框圖</p><p> 小車部分由電源電路,單片機最小系統(tǒng),顯示電路,無線電木塊,報警電路,超聲波電路等電路模塊組成,小車部分的系統(tǒng)框圖如圖2-2所示。</p><p> 圖2-2 小車的系統(tǒng)框圖</p><p> 2.2主要元器件簡介</p><p> 2.2.1 STC89C52RC簡介 </p>
29、<p> 常用的單片機有很多種:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺灣華邦(Winbond)W78系列、荷蘭PiliPs的PCF80C51系列、MicrochiP公司系列4位單片機、臺灣義隆的EM-78系列等[1]。本次設(shè)計最終選用了STC89C52單片機。</p><p> 本系統(tǒng)采用最常用的STC89C52單片機,它是一種帶4K字節(jié)閃爍可編程
30、可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的STC89C52是一種高效微控制器。STC89C52單片機為很多嵌入式系統(tǒng)提供了一種靈活性高且價廉的方案。
31、[6]引腳排列如圖2-3所示。</p><p> 圖2-3 STC89系列引腳排列</p><p> 2.2.2 NRF24L01無線收發(fā)芯片簡介</p><p> NRF24L01是一款工作在2.4-2.5GHz,世界通用ISM頻段的單片無線收發(fā)器芯片。無線收發(fā)器包括:頻率發(fā)生器、增強型SchockburstTM模式控制器、功率放大器、晶體振蕩器、調(diào)制器、
32、解調(diào)器。輸出功率、頻道選擇和協(xié)議的設(shè)置可通過SPI接口進行設(shè)置。極低的電流消耗:當(dāng)工作在發(fā)射模式下發(fā)射功率為-6dBm時電流消耗為9mA,接收模式時為12.3mA。掉電模式和待機模式下電流消耗更低。NRF24L01引腳排列如圖2-4所示。</p><p> 圖2-4 NRF24L01引腳排列</p><p> 2.2.3 L298N芯片直流電機驅(qū)動模塊</p><
33、p> 該模塊由L298N作為雙H橋直流電機驅(qū)動芯片,驅(qū)動部分端子供電范圍Vs:+5V~+35V。如果在模塊上取電壓供電,則模塊供電范圍為Vs:+7V~+35V。模塊的驅(qū)動不封峰值電流Io為2A。其他相關(guān)參數(shù)見表2-1。模塊的實物圖見附錄附件1(注:紅色線框部分為電源接口)。</p><p> 表2-1 L298N芯片直流電機驅(qū)動模塊產(chǎn)品參數(shù)</p><p> 2.2.4 紅外
34、避障模塊</p><p> 紅外避障的原理:用紅外線傳感器進行避障。紅外線發(fā)射頭與接收頭于一體的檢測開關(guān),其工作原理是根據(jù)發(fā)射頭發(fā)出的光束,被物體反射,接收頭據(jù)此做出判斷是否有障礙物。當(dāng)有光線反射回來時,輸出低電平。當(dāng)沒有光線反射回來時,輸出高電平。單片機根據(jù)接收頭電平的高低做出相應(yīng)控制,避免小車碰到障礙物。由于接收管輸出TTL電平,有利于單片機對信號的處理。紅外接收二極管又叫紅外光電二極管,也可稱紅外光敏二極
35、管。它廣泛用于各種家用電器的遙控接收器中,如音響、彩色電視機、空調(diào)器、VCD視盤機、DVD視盤機以及錄像機等。紅外接收二極管能很好地接收紅外發(fā)光二極管發(fā)射的波長為94Onm的紅外光信號,而對于其他波長的光線則不能接收。因而保證了接收的準確性和靈敏度。 </p><p> 小車采用紅外線傳感器進行避障的電路原理圖如下圖2-5所示,實物圖如圖2-6所示。紅外模塊的功能指標(biāo)如表2-2所示。</p>&l
36、t;p> 表2-2 紅外模塊的功能指標(biāo)</p><p> 圖2-5 紅外線傳感器進行避障的電路原理圖</p><p> 圖2-6 紅外線傳感器進行避障的實物圖</p><p> 2.2.5 HC-SR04超聲波測距模塊</p><p> HC-SR04 超聲波測距模塊可提供 2cm-400cm 的非接觸式距離感測功能,測距精度
37、可達高到 3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。</p><p><b> 基本工作原理:</b></p><p> (1)采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號;</p><p> (2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;</p><p> (3)有信號返回,通
38、過IO口ECHO 輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2。</p><p> HC-SR04超聲波測距模塊的時序圖如圖2-7所示。</p><p> 圖2-7 超聲波模塊時序圖</p><p> 以上時序圖表明你只需要提供一個 10uS 以上脈沖觸發(fā)信號,該模塊內(nèi)部將</p>
39、<p> 發(fā)出 8 個 40kHz 周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號。回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到距離。公式:uS/58=厘米或者 uS/148=英寸;或是:距離=高電平時間*聲速(340M/S)/2;建議測量周期為 60ms 以上,以防止發(fā)射信號對回響信號的影響。</p><p> HC-SR04超聲波測距模塊
40、的電路圖如圖2-8所示,實物圖如圖2-9所示。</p><p> 圖2-8 超聲波模塊的電路圖</p><p> 圖2-9 超聲波模塊實物圖</p><p> 2.2.6 蜂鳴器驅(qū)動電路</p><p> 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定
41、時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準用“FM”、“LB”、“JD”等)表示。</p><p> 由于自激蜂鳴器是直流電壓驅(qū)動的,不需要利用交流信號進行驅(qū)動,只需對驅(qū)動口輸出驅(qū)動電平并通過三極管放大驅(qū)動電流就能使蜂鳴器發(fā)出聲音(其驅(qū)動電路如圖2-10所示),利用定時器來做定時,通過定時翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個
42、波形就可以用來驅(qū)動蜂鳴器了。</p><p> 圖2-10 蜂鳴器驅(qū)動電路</p><p> 2.2.7 液晶顯示電路</p><p> 該設(shè)計的顯示部分采用LCD1602來顯示超聲波測距模塊測得的距離。對于現(xiàn)實電路我們可以采用數(shù)碼管,也可以采用液晶顯示。液晶顯示相對于數(shù)碼管顯示電路更簡潔,顯示更明了,故我們采用液晶顯示電路。液晶又分字符型和點陣型,我們使用的
43、液晶是字符型液晶。LCD1602自帶字符庫,不需要查找代碼,英文字符可直接使用。液晶電路使用時,如果發(fā)現(xiàn)液晶不亮可以調(diào)節(jié)連接液晶的電位器,調(diào)節(jié)液晶的亮度。液晶顯示電路如圖2-11所示。</p><p> 圖2-11 液晶顯示電路</p><p> 2.2.8遙控部分獨立按鍵電路</p><p> 遙控部分的獨立按鍵與單片機的接口設(shè)置為P2.0、P2.1、P2.
44、2、P2.3、P2.4,分別控制小車的前進、后退、左轉(zhuǎn)彎、右轉(zhuǎn)彎、以及功能切換。獨立按鍵采用低電平觸發(fā),即當(dāng)按下按鍵時給單片機一個低電平信號,單片機隨后做出相應(yīng)的處理,當(dāng)按鍵松開時,單片機接收到一個高電平信號,單片機隨后繼續(xù)做出相應(yīng)處理。遙控部分的獨立按鍵電路如圖2-12所示。</p><p> 圖2-12 遙控部分獨立按鍵電路</p><p> 第3章 軟件的設(shè)計與說明</p&
45、gt;<p><b> 3.1軟件設(shè)計</b></p><p> 系統(tǒng)功能的實現(xiàn)依賴于軟、硬件的協(xié)同工作。主控芯片為STC89C52RC單片機。單片機控制軟件實現(xiàn)遙控和小車的各項功能。程序編譯采用Keil uVision4編程軟件,Keil uVision4程序編譯界面如圖3-1所示。程序部分采用目前單片機最通用的C語言進行編程。程序的燒錄軟件采用STC_ISP_V479軟
46、件燒寫編譯好的HEX文件,STC_ISP_V479軟件程序燒寫界面如圖3-2所示。</p><p> 圖3-1 Keil uVision4編程軟件界面</p><p> 圖3-2 STC_ISP_V479軟件程序燒寫界面</p><p><b> 3.2軟件的說明</b></p><p> 3.2.1 遙控部分主
47、程序流程</p><p> 遙控部分主程序流程圖如圖3-3所示。程序從主函數(shù)開始執(zhí)行,24L01無線模塊初始化,同時在主函數(shù)中定義單片機口對應(yīng)的按鍵按下時所發(fā)出的函數(shù)值。接下來判斷是否有按鍵按下,如果有按鍵按下,則發(fā)送相應(yīng)的按鍵對應(yīng)的函數(shù)值,接著判斷是否又有按鍵按下。如果未發(fā)現(xiàn)按鍵按下則在主函數(shù)中循環(huán)判斷是否有按鍵按下。</p><p> 圖3-3 遙控主程序流程圖</p>
48、<p> 3.2.2 24L01子程序流程圖</p><p> 24L01子程序流程圖如圖3-4所示,本模塊子程序采用收發(fā)一體的驅(qū)動程序,即使該模塊既可以在需要時發(fā)送信號,又可以在需要時接收信號。24L01子程序模塊先初始化,初始化的同時在設(shè)置的寫入reg函數(shù)中寫入本地地址,寫入接收端地址,并且設(shè)置頻道0自動ACK應(yīng)答允許。設(shè)置24L01的允許接收地址只有頻道0,并且是信道工作在2.4GHz,以
49、及設(shè)置數(shù)據(jù)長度為32字節(jié),發(fā)射速率為1MHz。</p><p> 圖3-4 24L01子程序流程圖</p><p> 3.2.3 小車部分主程序流程圖</p><p> 小車部分主程序流程圖如圖3-5所示。程序從主函數(shù)開始執(zhí)行,24L01無線模塊初始化,液晶顯示模塊初始化,24L01無線電模塊初始化,超聲波模塊初始化。各個模塊初始化完畢后,單片機判斷是否接受到
50、了信號,如果接收到信號,則判斷相應(yīng)的按鍵值,如果沒有接收到按鍵值則返回繼續(xù)判斷是否接受到信號。接收到信號后,小車開始執(zhí)行鍵值對應(yīng)的相應(yīng)的命令。而超聲波測距,并在液晶上顯示相應(yīng)距離,危險距離報警都是貫穿在整個while(1)的語句中的。</p><p> 圖3-5 小車部分主程序流程圖</p><p><b> 調(diào)試與總結(jié)</b></p><p&
51、gt; 基于單片機的智能小車控制有許多的模塊,在做整體設(shè)計之前首先是對每個模塊的調(diào)試。只有在確保每個模塊都正常的情況下才能進行總體的設(shè)計和總體的調(diào)試。每個模塊都需要軟硬件的調(diào)試才能確保模塊的正常。</p><p><b> 4.1硬件部分</b></p><p> 4.1.1硬件的焊接</p><p> 單片機的電路系統(tǒng)相對于簡單一些,
52、對于焊接只要多練習(xí)就不會出現(xiàn)問題,但是,單片機的電路系統(tǒng)中只要出于一處的錯誤,則會對檢測造成很大的不便,而且電路的交叉線較多,對于各種鋒利的引腳都要注意處理,否則會刺破帶有包皮的導(dǎo)線,則會對電路造成短路現(xiàn)象。</p><p> 在本次單片機的設(shè)計調(diào)試中遇到了很多的問題?;叵脒@些問題只要認真多思考都是可以避免的,主要問題在于單片機上的測試用燈不亮,原因出于焊接時間過長導(dǎo)致電路板上的金屬片脫落,造成斷路。</
53、p><p> 解決方案:重新引線使電路重新導(dǎo)通。</p><p> 4.1.2 24L01無線電模塊</p><p> 24L01模塊是直接購買的模塊,在調(diào)試的時候按照商家提供的時序圖,編寫程序后卻一直無法通信,既不接受信號也不發(fā)送信號。</p><p> 首先排除了程序上的錯誤,然后對硬件各部分電壓進行測量并無發(fā)現(xiàn)異常,最后詳細的閱讀了
54、說明書,發(fā)現(xiàn)24L01是3.3V~3.6V電壓供電,而自己設(shè)計的電源部分缺少了去耦電容導(dǎo)致了硬件的無法正常工作。</p><p> 解決方案:在3.3V電源處并入1個104瓷片電容,1個100uF電解電容,減少電源的波動對模塊帶來的影響。</p><p> 4.1.3 外接電源模塊</p><p> 在剛剛接觸小車的時候,本設(shè)計的小車應(yīng)為是4輪驅(qū)動的,所以比一
55、般的小車更加吃電流,剛剛開始使用的普通的電池僅僅調(diào)試幾次就沒電了,而使用的兩節(jié)3.7V的充電電池串聯(lián)效果也不盡理想,該小車使用的減速電機對電流的要求非常大,故購買了SONY的電腦適配器,該適配器可以提供19.5V的輸出電壓,以及高達4.5A的直流電流。所以設(shè)計了采用7805,與7809并聯(lián)的方式作為SONY適配器下級穩(wěn)壓輸出,成為了小車的外部供電電源。由于小車的電流需求非常大,小車在該電源的供電下只能維持10s的行駛時間。</p&
56、gt;<p> 在接下來的檢查中發(fā)現(xiàn),由于夏天天氣熱,7809散熱比較慢,而單個7809的最高輸出電流在1.5A。7809由于溫度過高進入了掉電保護模式。</p><p> 解決方案:在7809旁邊并入一個7809,相當(dāng)于加大了7809的輸出電流。在此同時,在7809的片子上加上散熱片,使7809及時散熱。該方案的實施使得小車的續(xù)航能力大大提高。</p><p><
57、b> 4.2 軟件部分</b></p><p> 4.2.1 超聲波模塊</p><p> 超聲波模塊是直接購買的模塊,在調(diào)試的時候按照商家提供的時序圖,編寫程序。但是編寫后超聲波測量時值測量一次,不能一直保持測量狀態(tài)。經(jīng)檢查后發(fā)現(xiàn),電路焊接正常,接口正常,所以排除了硬件問題的可能性。在接下來程序的檢查中發(fā)現(xiàn)了超聲波中count()計算函數(shù)放在了while(1)函數(shù)
58、外面。</p><p> 解決方案:超聲波中count()計算函數(shù)放在while(1)函數(shù)的循環(huán)內(nèi),并且根據(jù)時序圖加上1ms的延時。該方案的實施,使得小車能夠一直保持測距的狀態(tài),并且在LCM1602上一直持續(xù)顯示正確的數(shù)值。</p><p><b> 4.3 小車聯(lián)調(diào) </b></p><p> 小車的聯(lián)調(diào)是一個非常復(fù)雜的過程,在此過程中
59、,不僅僅是對平時的專業(yè)知識的考驗,更是對自己的耐心的考驗。</p><p> 小車聯(lián)調(diào)的時候遇到了很多問題:</p><p> 在無線電模塊調(diào)試的時候,小車執(zhí)行的動作與發(fā)射的信號的所需要執(zhí)行的動作不一致,要求小車往左的時候小車并沒有往左轉(zhuǎn)彎,要求小車前進的時候小車也并沒有前進。</p><p> 解決方案:對小車的控制電機轉(zhuǎn)動的IO口進行逐一排查,找出問題為小
60、車的IO口與程序定義的有所不同。重新再程序中定義IO口后,小車就能按照無線信號發(fā)射的要求做出相應(yīng)的動作。</p><p> 當(dāng)無線電模塊發(fā)射了相應(yīng)的信號后,小車執(zhí)行的動作正確,但是有時候并沒有執(zhí)行相應(yīng)的動作,如同“聾啞”一般不接收信號。當(dāng)按鍵多次按下后,小車才執(zhí)行相應(yīng)的動作。</p><p> 解決方案:小車的“聾啞”并不是真正的“聾啞”,無線電模塊在發(fā)射信號的時候并不是每次都能發(fā)射出
61、去,發(fā)射出去的信號小車的接收部分的無線模塊不一定能夠接收。而且,按鍵的抖動也會對無線的發(fā)射信號產(chǎn)生影響。故在程序中有按鍵按下時,發(fā)射5次信號信號,提高無線模塊的信號發(fā)射次數(shù),并且在按鍵程序中加入10ms的去抖程序。實施該方案后小車對信號的接受靈敏度大幅度提高,能夠準確快速的做出相應(yīng)的信號所要求的動作。</p><p><b> 4.4 調(diào)試的總結(jié)</b></p><p&
62、gt; 通過這次設(shè)計,掌握51單片機的原理,了解簡單傳感器組成原理,初步掌握傳感器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設(shè)計與裝配、調(diào)試,提高自己的動手能力,鞏固已學(xué)的理論知識,建立單片機理論和實踐的結(jié)合,了解傳感器各單元電路之間的關(guān)系及相互影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握傳感器的調(diào)整及測試方法。提高動手能力和排除故障的能力。調(diào)試期間要多向同學(xué)老師請教,有問題就該虛心請教。</p
63、><p> 經(jīng)過多次的反復(fù)測試與分析,可以對電路的原理及功能更加熟悉,同時提高了設(shè)計能力與對電路的分析能力,同時在軟件的編程方面得到更高的提高,對編程能力得到加強,同時對所學(xué)的知識得到很大的提高與鞏固。</p><p><b> 參考文獻</b></p><p> [1] 徐國華.移動機器人的發(fā)展現(xiàn)狀及其趨勢[J].機器人技術(shù)與應(yīng)用,2001
64、,(03):1102-1103,1150.</p><p> [2] 彭宏業(yè),段哲民編著.小型舞蹈機器人的驅(qū)動系統(tǒng)設(shè)計[J].國外電子元器件.2005,(04):56-65.</p><p> [3] 陳南主編.定位控制器的設(shè)計與實現(xiàn)[J].西安科技大學(xué)學(xué)報. 2003.</p><p> [4]譚浩強.C語言程序設(shè)計[M].北京:清華大學(xué)出版社,1998.&
65、lt;/p><p> [5]蘇衛(wèi)東,任思聰?shù)龋疁乜叵鋽?shù)學(xué)模型的建立及其自適應(yīng)PID控制[J].中國慣性技術(shù)學(xué)報,1995年,(3):4.</p><p> [6]萬福君. MCS-51單片機原理、系統(tǒng)設(shè)計與應(yīng)用[M]. 北京:清華大學(xué)出版社,2008.</p><p> [7] 彭宏業(yè),段哲民編著.小型舞蹈機器人的驅(qū)動系統(tǒng)設(shè)計[J].國外電子元器件.2005,(4
66、).</p><p> [8] 劉甘娜等編著.IBM-PC微機原理及接口技術(shù)[J].西安:西安電子科技大學(xué)出版社,1998.</p><p> [9]孫廣清.便攜式溫度傳感標(biāo)定裝置[D].西北工業(yè)大學(xué)碩士學(xué)位論文,2007.</p><p> [10] 鮑麗星,陳曉爭.一種高精度信號源的設(shè)計[J].南京航空航天大學(xué),2008,16(4):588-590.<
67、;/p><p> [11] 黨宏社.智能車輛系統(tǒng)發(fā)展及其關(guān)鍵技術(shù)概述[J].公路交通科技,2002.(4)</p><p> [12] 林敏.簡易數(shù)字化語音存儲與回放系統(tǒng)[J].儀表技術(shù),2008,28(9):13-18.</p><p> [13] 余祖俊.微機監(jiān)測與控制應(yīng)用系統(tǒng)設(shè)計, 北方交通大學(xué)出版社,2001.12</p><p>
68、 [14] 溫志明.運動控制系統(tǒng)分析與應(yīng)用[J],國防工業(yè)出版社,2008.2</p><p> [15] WANG SH X,WU G N,JIANG W,et al.The principle and illumination</p><p> applies of light emitting diode[J].Light and Lighting, 2006,14(5):21
69、-23.</p><p> [16]I.M Filanvsky,H.Baltes.CMOS Schmit Trigger Design[J].IEEE Transactioms on Circuits and System-Fundamental Theory andApplications.1994,41(1):46-49.</p><p><b> 致 謝</b&g
70、t;</p><p> 在作品完成之際,我們要特別感謝XXX老師的熱情關(guān)懷和悉心指導(dǎo)。在我們作品制作的過程中,老師們給了我們很多耐心的指導(dǎo)和啟發(fā),不僅讓我學(xué)到了專業(yè)知識,還讓我學(xué)到了很多做人的道理。特別是他們廣博的學(xué)識、深厚的學(xué)術(shù)素養(yǎng)、嚴謹?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我們終生受益,在此表示真誠地感謝。</p><p> 在作品的制作過程中,也得到了許多同學(xué)的寶貴建議,在此一并致以誠
71、摯的謝意。感謝所有關(guān)心、支持、幫助過我們的朋友。</p><p> 最后,向在百忙中抽出時間對本文進行評審并提出寶貴意見的各位領(lǐng)導(dǎo)老師表示衷心地感謝!由于自身水平有限,設(shè)計中一定存在很多不足之處,敬請各位老師批評指正。</p><p><b> 附錄</b></p><p> 附件1 L298N電機驅(qū)動模塊</p><
72、;p><b> 附件2 小車側(cè)視圖</b></p><p><b> 附件3 小車俯視圖</b></p><p> 附件4 小車的遙控部分</p><p> 附件5 小車最終硬件圖</p><p><b> 附件6 程序清單</b></p><
73、;p><b> 1.遙控部分程序</b></p><p> #include <reg52.h></p><p> #include <intrins.h></p><p> typedef unsigned char uchar;</p><p> typedef unsigne
74、d char uint;</p><p> //****************************************NRF24L01端口定義***************************************</p><p> sbit MISO=P1^0;</p><p> sbit MOSI=P1^1;</p>
75、<p> sbitSCK =P1^2;</p><p> sbitCE =P1^3;</p><p> sbitCSN=P1^4;</p><p> sbitIRQ=P1^5;</p><p> //************************************按鍵********
76、*******************************************</p><p> sbitKEY1=P2^0;</p><p> sbitKEY2=P2^1;</p><p> sbitKEY3=P2^2;</p><p> sbitKEY4=P2^3;</p><p> sb
77、itKEY5=P2^4;</p><p> //*********************************************NRF24L01*************************************</p><p> #define TX_ADR_WIDTH 5 // 5 uints TX address width</p>&
78、lt;p> #define RX_ADR_WIDTH 5 // 5 uints RX address width</p><p> #define TX_PLOAD_WIDTH 20 // 20 uints TX payload</p><p> #define RX_PLOAD_WIDTH 20 // 20 uints TX payload</p
79、><p> uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//本地地址</p><p> uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//接收地址</p><p> uchar TxBuf[20]
80、; // </p><p> //***************************************NRF24L01寄存器指令*******************************************************</p><p> #define READ_REG 0x00 // 讀寄存器指令</p><p&g
81、t; #define WRITE_REG 0x20 // 寫寄存器指令</p><p> #define RD_RX_PLOAD 0x61 // 讀取接收數(shù)據(jù)指令</p><p> #define WR_TX_PLOAD 0xA0 // 寫待發(fā)數(shù)據(jù)指令</p><p> #define FLUSH_TX 0
82、xE1 // 沖洗發(fā)送 FIFO指令</p><p> #define FLUSH_RX 0xE2 // 沖洗接收 FIFO指令</p><p> #define REUSE_TX_PL 0xE3 // 定義重復(fù)裝載數(shù)據(jù)指令</p><p> #define NOP 0xFF // 保留</p&
83、gt;<p> //*************************************SPI(nRF24L01)寄存器地址****************************************************</p><p> #define CONFIG 0x00 // 配置收發(fā)狀態(tài),CRC校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式</p><
84、;p> #define EN_AA 0x01 // 自動應(yīng)答功能設(shè)置</p><p> #define EN_RXADDR 0x02 // 可用信道設(shè)置</p><p> #define SETUP_AW 0x03 // 收發(fā)地址寬度設(shè)置</p><p> #define SETUP_RETR
85、 0x04 // 自動重發(fā)功能設(shè)置</p><p> #define RF_CH 0x05 // 工作頻率設(shè)置</p><p> #define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設(shè)置</p><p> #define STATUS 0x07 // 狀態(tài)寄存器</p>
86、<p> #define OBSERVE_TX 0x08 // 發(fā)送監(jiān)測功能</p><p> #define CD 0x09 // 地址檢測 </p><p> #define RX_ADDR_P0 0x0A // 頻道0接收數(shù)據(jù)地址</p><p> #define RX
87、_ADDR_P1 0x0B // 頻道1接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P2 0x0C // 頻道2接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P3 0x0D // 頻道3接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P4 0x0E // 頻道
88、4接收數(shù)據(jù)地址</p><p> #define RX_ADDR_P5 0x0F // 頻道5接收數(shù)據(jù)地址</p><p> #define TX_ADDR 0x10 // 發(fā)送地址寄存器</p><p> #define RX_PW_P0 0x11 // 接收頻道0接收數(shù)據(jù)長度</p><p&
89、gt; #define RX_PW_P1 0x12 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P2 0x13 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P3 0x14 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_
90、P4 0x15 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define RX_PW_P5 0x16 // 接收頻道0接收數(shù)據(jù)長度</p><p> #define FIFO_STATUS 0x17 // FIFO棧入棧出狀態(tài)寄存器設(shè)置</p><p> //***************************
91、***********************************************************</p><p> void Delay(unsigned int s);</p><p> void inerDelay_us(unsigned char n);</p><p> void init_NRF24L01(void);</
92、p><p> uint SPI_RW(uint uchar);</p><p> uchar SPI_Read(uchar reg);</p><p> void SetRX_Mode(void);</p><p> uint SPI_RW_Reg(uchar reg, uchar value);</p><p>
93、 uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);</p><p> uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);</p><p> unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);<
94、/p><p> void nRF24L01_TxPacket(unsigned char * tx_buf);</p><p> //*****************************************長延時*****************************************</p><p> void Delay(unsigned i
95、nt s)</p><p><b> {</b></p><p> unsigned int i;</p><p> for(i=0; i<s; i++);</p><p> for(i=0; i<s; i++);</p><p><b> }</b>&
96、lt;/p><p> //******************************************************************************************</p><p> uint bdata sta; //狀態(tài)標(biāo)志</p><p> sbitRX_DR=sta^6;</p><p
97、> sbitTX_DS=sta^5;</p><p> sbitMAX_RT=sta^4;</p><p> /******************************************************************************************</p><p><b> /*延時函數(shù)&l
98、t;/b></p><p> /******************************************************************************************/</p><p> void inerDelay_us(unsigned char n)</p><p><b> {</b&
99、gt;</p><p> for(;n>0;n--)</p><p><b> _nop_();</b></p><p><b> }</b></p><p> //************************************************************
100、****************************</p><p> /*NRF24L01初始化</p><p> //***************************************************************************************/</p><p> void init_NRF24L01(v
101、oid)</p><p><b> {</b></p><p> inerDelay_us(100);</p><p> CE=0; // chip enable</p><p> CSN=1; // Spi disable </p><p> SCK=0; // Spi
102、clock line init high</p><p> SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 寫本地地址</p><p> SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 寫接收端地址</p
103、><p> SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 頻道0自動ACK應(yīng)答允許</p><p> SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 </p><p> SPI_RW_Reg(WRITE_REG
104、 + RF_CH, 0); // 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致</p><p> SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)</p><p> SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //設(shè)置發(fā)射速率為1MHZ,
105、發(fā)射功率為最大值0dB</p><p><b> }</b></p><p> /****************************************************************************************************</p><p> /*函數(shù):uint SPI_RW(ui
106、nt uchar)</p><p> /*功能:NRF24L01的SPI寫時序</p><p> /****************************************************************************************************/</p><p> uint SPI_RW(uint uch
107、ar)</p><p><b> {</b></p><p> uint bit_ctr;</p><p> for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit</p><p><b> {</b></p><p&g
108、t; MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI</p><p> uchar = (uchar << 1); // shift next bit into MSB..</p><p> SCK = 1; /
109、/ Set SCK high..</p><p> uchar |= MISO; // capture current MISO bit</p><p> SCK = 0; // ..then set SCK low again</p><p><b> }</b></p>
110、<p> return(uchar); // return read uchar</p><p><b> }</b></p><p> /*********************************************************************************************
111、*******</p><p> /*函數(shù):uchar SPI_Read(uchar reg)</p><p> /*功能:NRF24L01的SPI時序</p><p> /**********************************************************************************************
112、******/</p><p> uchar SPI_Read(uchar reg)</p><p><b> {</b></p><p> uchar reg_val;</p><p> CSN = 0; // CSN low, initialize SPI communicati
113、on...</p><p> SPI_RW(reg); // Select register to read from..</p><p> reg_val = SPI_RW(0); // ..then read registervalue</p><p> CSN = 1; // CSN high,
114、terminate SPI communication</p><p> return(reg_val); // return register value</p><p><b> }</b></p><p> /*******************************************************
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的wifi智能小車畢業(yè)論文
- 基于51單片機的智能小車畢業(yè)論文
- 基于單片機的智能小車設(shè)計畢業(yè)論文
- 畢業(yè)論文(說明書)基于單片機的智能小車控制
- 基于單片機的智能小車的設(shè)計 畢業(yè)論文
- 基于單片機的智能小車的設(shè)計-畢業(yè)論文
- 基于單片機的智能循跡小車設(shè)計畢業(yè)論文
- 基于單片機的智能小車設(shè)計-畢業(yè)論文.doc
- 基于單片機的智能小車設(shè)計-畢業(yè)論文.doc
- 基于單片機的多功能智能小車設(shè)計-畢業(yè)論文
- 基于單片機的智能避障小車設(shè)計【畢業(yè)論文】
- 基于單片機的多功能智能小車設(shè)計-畢業(yè)論文
- 基于單片機的智能小車控制
- 基于單片機的智能小車控制系統(tǒng)(論文)
- 基于單片機的智能循跡小車的控制畢業(yè)設(shè)計論文
- 基于單片機的智能循跡小車的控制畢業(yè)設(shè)計論文
- 【畢業(yè)論文】基于單片機控制智能窗簾設(shè)計
- 基于單片機的智能循跡小車的控制畢業(yè)設(shè)計論文
- 【畢業(yè)論文】基于單片機控制智能窗簾設(shè)計
- 基于單片機的智能小車設(shè)計【畢業(yè)論文說明書】
評論
0/150
提交評論