版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 攀枝花學(xué)院本科綜合實(shí)驗(yàn)(論文)</p><p> 基于單片機(jī)技術(shù)的智能循跡小車設(shè)計(jì)</p><p> 學(xué)生姓名: 彭韜_ __ _ _</p><p> 學(xué)生學(xué)號(hào): 201310501044 _</p><p> 院(系): 電氣信息工程學(xué)院_</p><p
2、> 年級(jí)專業(yè): 2013級(jí)電子信息工程</p><p> 指導(dǎo)教師: 孫艷忠 _ _ _</p><p> 同組成員: _魯亞霜 羅梅_ _ _</p><p><b> 二〇一六年五月</b></p><p><b> 目 錄</b></p>
3、<p> 第1章 緒論…………………………………………………………………………………………3</p><p> 1.1引言................................................................3</p><p> 1.2課題任務(wù)要求…………………………………………………………………………3</p>
4、<p> 1.3本論文研究的內(nèi)容……………………………………………………………………3</p><p> 第2章 系統(tǒng)總體設(shè)計(jì)……………………………………………………………………………4</p><p> 2.1智能小車的結(jié)構(gòu)組成及設(shè)計(jì)…………………………………………………………4</p><p> 2.2智能小車尋跡基本原理…………………
5、……………………………………………4</p><p> 2.3智能小車測速基本原理………………………………………………………………5</p><p> 2.3.1 光電編碼器測量小車速度的原理……………………………………………………5</p><p> 第3章 系統(tǒng)硬件設(shè)計(jì)……………………………………………………………………………7</p>&
6、lt;p> 3.1控制器的選擇…………………………………………………………………………7</p><p> 3.1.1概述………………………………………………………………………………7</p><p> 3.1.2AT89S52開發(fā)工具特性…………………………………………………………7</p><p> 3.2硬件電路設(shè)計(jì)……………………………
7、……………………………………………7</p><p> 3.2.1系統(tǒng)電源電路……………………………………………………………………7</p><p> 3.2.2伺服電機(jī)…………………………………………………………………………7</p><p> 3.2.3 QTI循跡傳感器…………………………………………………………………………………………….9&
8、lt;/p><p> 3.2.4 小車循跡策略……………………………………………………………………9</p><p> 第4章 系統(tǒng)軟件設(shè)計(jì)……………………………………………………………………………11</p><p> 4.1編譯環(huán)境………………………………………………………………………………11</p><p> 4.2智能
9、小車設(shè)計(jì)算法……………………………………………………………………11</p><p> 4.3 智能小車程序調(diào)試……………………………………………………………………12</p><p> 第5章 系統(tǒng)調(diào)試分析……………………………………………………………………………20</p><p> 5.1系統(tǒng)設(shè)計(jì)中的注意事項(xiàng)……………………………………………
10、…………………20</p><p> 5.1.1外部因素………………………………………………………………………20</p><p> 5.1.2內(nèi)部因素………………………………………………………………………20</p><p> 5.2 硬軟件總體調(diào)試……………………………………………………………………………20 </p><p
11、> 第6章 結(jié)束語……………………………………………………………………………………21</p><p> 致謝…………………………………………………………………………………………………21</p><p> 參考文獻(xiàn)……………………………………………………………………………………………21</p><p> 附錄圖…………………………………………………
12、………………………………………………21</p><p> 總結(jié)……………………………………………………………………………………………………23</p><p><b> 第一章 緒論</b></p><p><b> 1.1引言</b></p><p> 我們所處的這個(gè)時(shí)代是信息革命的時(shí)代
13、,各種新技術(shù)、新思想層出不窮,縱觀世界范圍內(nèi)智能汽車技術(shù)的發(fā)展,每一次新的進(jìn)步無不是受新技術(shù)新思想的推動(dòng)。</p><p> 隨著汽車工業(yè)的迅速發(fā)展,傳統(tǒng)的汽車的發(fā)展逐漸趨于飽和。伴隨著電子技術(shù)和嵌入式技術(shù)的迅猛發(fā)展,這使得汽車日漸走向智能化。智能汽車由原先的駕駛更加簡單更加安全更加舒適,逐漸的向智能駕駛系統(tǒng)方向發(fā)展。智能駕駛系統(tǒng)相當(dāng)于智能機(jī)器人,能代替人駕駛汽車。它主要是通過安裝在前后保險(xiǎn)杠及兩側(cè)的紅外線攝像
14、機(jī),對(duì)汽車前后左右一定區(qū) 域進(jìn)行不停地掃描和監(jiān)視。計(jì)算機(jī)、電子地圖和光化學(xué)傳感器等對(duì)紅外線攝像 機(jī)傳來的信號(hào)進(jìn)行分析計(jì)算,并根據(jù)道路交通信息管理系統(tǒng)傳來的交通信息,代替人的大腦發(fā)出指令,指揮執(zhí)行系統(tǒng)操作汽車。</p><p><b> 1.2課題任務(wù)要求</b></p><p> 應(yīng)用AT89S52微控制器中的端口、外部中斷、定時(shí)器等基本模塊,實(shí)現(xiàn)核心控制,再結(jié)合
15、電源板、電機(jī)驅(qū)動(dòng)板來控制電機(jī)的轉(zhuǎn)向,最后加上QTI傳感檢測模塊,實(shí)現(xiàn)小車的智能尋跡。 </p><p> 1.3本論文研究的內(nèi)容</p><p> 本論文是基于AT89S52單片機(jī)開發(fā),主要是研究3輪小車的
16、路徑識(shí)別及其控制算法。</p><p> 第二章 系統(tǒng)總體設(shè)計(jì)</p><p> 2.1智能小車的結(jié)構(gòu)組成及設(shè)計(jì)</p><p> 智能循跡小車的車體結(jié)構(gòu)圖如圖1所示,智能循跡小車的主要結(jié)構(gòu)有電源、控制電路板、傳感器、電機(jī)驅(qū)動(dòng)、液晶顯示</p><p> 系統(tǒng)的總體框架圖如上圖所示。本次實(shí)驗(yàn)主要實(shí)現(xiàn)智能循跡小車的循跡功能,總體設(shè)計(jì)方案
17、如下:</p><p> 智能循跡小車以AT89S52單片機(jī)作為整個(gè)控制電路板的核心,外接控制電機(jī)信號(hào)以及QTI傳感器;</p><p> 智能循環(huán)小車的電機(jī)是使用伺服舵機(jī)來驅(qū)動(dòng)小車進(jìn)行基本的動(dòng)作(前行、后退、左右轉(zhuǎn)、掉頭、停止);</p><p> 傳感器方面智能循跡小車選擇的是QTI紅外傳感器來探測地面上的黑白線,小車車體的下面分別從左到右安裝了四個(gè)QTI
18、紅外傳感器,傳感器的信號(hào)連接著單片機(jī)的四個(gè)引腳,單片機(jī)根據(jù)傳感器所檢測到的信號(hào)來控制小車沿著軌跡進(jìn)行行駛;</p><p> 小車的底盤部件分別包括了電池盒、底盤木體、尾輪和左右輪等一些部件。三輪結(jié)構(gòu)的小車前方的兩側(cè)分別為驅(qū)動(dòng)輪,在小車的后方有一個(gè)尾輪,可以起到支撐的作用,這樣小車在隱性的過程中可以靈活地循跡。</p><p> 2.2智能小車巡跡小車基本原理</p>&
19、lt;p> 寶貝車使用QTI傳感器,QTI灰度傳感器是一個(gè)反射型光電傳感器。是使用光電接收管來檢測物體表面反射光強(qiáng)度的傳感器。因此這種光電傳感器便可應(yīng)用在檢測物體表面顏色的深度和測量一定距離的移動(dòng)物體。反射型光電傳感器的結(jié)構(gòu)是由一個(gè)紅外發(fā)射管和一個(gè)紅外接收管組成,在一定距離內(nèi),當(dāng)發(fā)射出去的紅外光線被顏色深度較淺的物體所接受時(shí),會(huì)將這些紅外光線反射回來,紅外接收管便可以接收到這個(gè)返回來的信號(hào);若發(fā)射出去的紅外光線被顏色深度較深的物
20、所接受時(shí),較深的顏色物體能吸收紅外光而反射回來的紅光線很弱或沒有反射回來紅外光線,這時(shí)接收管接收不到信號(hào)。這樣便可以用這兩種狀態(tài)來判斷被測物體的顏色深度。用這個(gè)結(jié)構(gòu)的光電傳感器再外加一些阻容件便可以將光能轉(zhuǎn)為電能了。</p><p> 一組QTI傳感器的元器件。一組QTI傳感器的元器件包括:</p><p> 1.QTI傳感器光電接收頭1 個(gè);</p><p>
21、 2.公母銅柱1 組;</p><p> 3.3pin 插頭1 個(gè);</p><p> 4. 塑料墊圈2 個(gè);</p><p><b> 5.螺絲2 個(gè);</b></p><p> 6.3 針杜邦線1 根; </p><p> 其系統(tǒng)結(jié)構(gòu)如所圖 2.2示:</p>&l
22、t;p> 2.3 智能小車測速基本原理</p><p> 2.3.1光電編碼器測速基本原理</p><p> 光電編碼器是由一個(gè)紅外發(fā)射接受裝置和一個(gè)碼盤構(gòu)成。當(dāng)紅外光由發(fā)射器射出,射于黑色條紋上時(shí),將被間斷地反射于接收器上,在接收器的輸入端會(huì)受到通輪子轉(zhuǎn)速為正比關(guān)系的光脈沖信號(hào),進(jìn)而在接收器的輸出端形成具有一定頻率的電信號(hào)。再利用微處理器對(duì)電脈沖進(jìn)行計(jì)算,就可以得到小車的移
23、動(dòng)速度。 其中小車行駛距離L的表達(dá)式為:L=πD/n*nx公式中:n為碼盤上黑白條紋的個(gè)數(shù);D為驅(qū)動(dòng)輪的外徑;nx為實(shí)際測量中電脈沖政府跳變的次數(shù)。小車的行駛速度V的計(jì)算表達(dá)式為 :V=L/t公式中: t表示時(shí)間。</p><p> 2.3.2光電編碼測速的實(shí)現(xiàn)</p><p> 光電編碼的發(fā)光裝置一般由發(fā)光二極管來實(shí)現(xiàn)。光敏元件則由光敏三極管接
24、上拉電阻來完成。光電式旋轉(zhuǎn)編碼器是轉(zhuǎn)速或轉(zhuǎn)角的檢測元件,旋轉(zhuǎn)的編碼器與電動(dòng)機(jī)相連,當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),帶動(dòng)碼盤旋轉(zhuǎn),便發(fā)出轉(zhuǎn)速或轉(zhuǎn)角信號(hào)。其信號(hào)示意圖如下:</p><p> 第3章 系統(tǒng)硬件設(shè)計(jì)</p><p> 3.1 控制器的選擇</p><p><b> 3.1.1選擇</b></p><p> 本次設(shè)計(jì)采用的
25、是AT89S52單片機(jī)。</p><p><b> 概述</b></p><p> AT89S52是一個(gè)8位單片機(jī),片內(nèi)ROM全部采用FLASH ROM技術(shù),與MCS-51系列完全兼容,它能以3V的超低電壓工作,晶振時(shí)鐘最高可達(dá)24MHz。AT89S52是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,有4個(gè)八位的并行雙向I/O端口,分別記作P0、P1、P2、P3
26、。第31引腳需要接高電位使單片機(jī)選用內(nèi)部程序存儲(chǔ)器;第9引腳是復(fù)位引腳,要接一個(gè)上電手動(dòng)復(fù)位電路;第40腳為電源端VCC,接+5V電源,第20引腳為接地端VSS,通常在VCC和VSS引腳之間接0.1μF高頻濾波電容。第18、19腳之間接上一個(gè)12MHz的晶振為單片機(jī)提供時(shí)鐘信號(hào)。8K字節(jié)的程序存儲(chǔ)器,256字節(jié)的RAM,32條I/O線,2個(gè)16位定時(shí)器/計(jì)數(shù)器, 一個(gè)5中斷源兩個(gè)優(yōu)先級(jí)的中斷結(jié)構(gòu),一個(gè)雙工的串行口,
27、 片上震蕩器和時(shí)鐘電路。</p><p> AT89S52也是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中
28、得到廣泛應(yīng)用。</p><p> Atmel 公司為全球性的業(yè)界領(lǐng)先企業(yè),致力于設(shè)計(jì)和制造各類微控制器、電容式觸摸解決方案、先進(jìn)邏輯、混合信號(hào)、非易失性存儲(chǔ)器和射頻 (RF) 元件。憑借業(yè)界最廣泛的知識(shí)產(chǎn)權(quán) (IP) 技術(shù)組合之一,Atmel 為電子行業(yè)提供針對(duì)工業(yè)、消費(fèi)、安全、通信、計(jì)算和汽車市場的全面的系統(tǒng)解決方案。 </p><p> AT89S52 開發(fā)工具特性</p&g
29、t;<p> 1,89S52內(nèi)核,5V工作電壓,操作頻率0~40MHZ;</p><p> 2,16KB片內(nèi)Flash存儲(chǔ)器,1KB片內(nèi)SRAM;</p><p> 3,SPI串行通信接口和增強(qiáng)型UART;</p><p> 4,PCA(可編程計(jì)數(shù)器列陣),具有PWM和捕獲、比較功能;</p><p> 5,4個(gè)8位I
30、/O口,含有三個(gè)高電流P1口(每個(gè)I/O口的電流為16mA);</p><p> 6,8個(gè)中斷源,4個(gè)中斷優(yōu)先級(jí),3個(gè)16位定時(shí)器/計(jì)數(shù)器和可編程看門狗定時(shí)器(WDT);</p><p> 7,2個(gè)DPTR寄存器;</p><p> 3.2 硬件電路設(shè)計(jì)</p><p> 3.2.1系統(tǒng)電源電路</p><p&g
31、t; 交流電經(jīng)過全波電路在經(jīng)過電容濾波,在經(jīng)過穩(wěn)壓電源芯片做成穩(wěn)壓電路,輸出電壓5V、7.2V的直流電源。其電源電路原理圖如圖所示。</p><p> 小車的驅(qū)動(dòng)電機(jī)的供電電壓為7.2V,經(jīng)過電容濾波后接7805進(jìn)行穩(wěn)壓,穩(wěn)壓輸出5V的電壓。提供單片機(jī)所需5V電壓。</p><p> 3.2.2伺服電機(jī):</p><p> 伺服舵機(jī)在選擇的時(shí)候要能夠按照指令
32、來控制小車的位置和速度。它的外觀如圖3所示,伺服舵機(jī)上有三條輸入線,分別是紅色、黑色、白色,紅色的是電源線,黑色是地線,白色的是信號(hào)控制線。伺服舵機(jī)的信號(hào)控制周期是20ms的脈寬調(diào)制(PWM)信號(hào)。在伺服舵機(jī)的內(nèi)部有一個(gè)基準(zhǔn)電路,能夠產(chǎn)生的基準(zhǔn)信號(hào)寬度為1.5m、周期為20ms;另外還有一個(gè)比較器,可以將基準(zhǔn)信號(hào)與外加信號(hào)進(jìn)行比較,以此來判斷方向以及大小,進(jìn)而產(chǎn)生出電機(jī)的轉(zhuǎn)動(dòng)信號(hào)。</p><p> 圖上的脈沖
33、序列以高電平1.5ms、低電平20ms進(jìn)行不斷重復(fù)。這個(gè)脈沖經(jīng)過零點(diǎn)標(biāo)定后的不會(huì)旋轉(zhuǎn)的伺服電機(jī)。如果發(fā)現(xiàn)此時(shí)的伺服電機(jī)在進(jìn)行旋轉(zhuǎn),就表明該電機(jī)需要進(jìn)行標(biāo)定。通過圖可知,電機(jī)的轉(zhuǎn)速是由高電平持續(xù)時(shí)間控制的;在高電平持續(xù)的時(shí)間為1.3ms時(shí),電機(jī)進(jìn)行順時(shí)針的高速旋轉(zhuǎn);在高電平持續(xù)的時(shí)間為1.7ms時(shí),電機(jī)進(jìn)行逆時(shí)針的高速旋轉(zhuǎn)。</p><p> 選擇P1.0的電機(jī)來控制小車右輪,選擇P1.1的電機(jī)來控制小車左輪。伺
34、服電機(jī)和單片機(jī)之間的接口如圖所示。</p><p> 3.2.3 QTI循跡傳感器</p><p> 2.2.1 傳感器的選擇。傳感器的接線圖如下圖所示。在接線圖中的W表示的是VCC引腳,是白色的線;R表示的是SIG引腳接到單片機(jī)I/O引腳,是紅色的線;B表示的是GND引腳,是黑色的線。QTI是通過一個(gè)發(fā)光的二極管和一個(gè)光敏三極管的耦合得到一個(gè)類似光敏電阻的元件來對(duì)信號(hào)等的電平進(jìn)行控
35、制。傳感器對(duì)于黑色的表面,反射率很低,光敏三極管沒有導(dǎo)通,此時(shí)由三極管和電容組成的RC電路的時(shí)間常數(shù)就比較大,電壓大部分都降在三極管的兩端,其中R端輸出高電平1。反之,當(dāng)傳感器經(jīng)過亮表面時(shí),反射率就比較高,此時(shí)的光敏三極管導(dǎo)通,RC電路的時(shí)間常數(shù)比較小,電壓大部分降在電容的兩端,R端輸出低電平0。</p><p> 3.2.4 小車循跡策略</p><p> 將四個(gè)QTI傳感器的信號(hào)線
36、連接到小車相應(yīng)的I/O口,我們選定的對(duì)象是P2中的P2.1、P2.2、P2.3、P2.4。在連接相應(yīng)的信號(hào)線時(shí),使用不同顏色的線,這樣在進(jìn)行錯(cuò)誤的檢查時(shí)就非常簡單清晰。傳感器的接口設(shè)計(jì)圖如下:</p><p> 在圖中,我們可以看到傳感器是集中在一條直線上的,P2.2和P2.3引腳信號(hào)是第一級(jí)方向上的傳感信號(hào),P2.1和P2.4是第二級(jí)傳感信號(hào)。小車在前進(jìn)的過程中,黑線一直在第一級(jí)傳感器下面,當(dāng)小車偏離的時(shí)候,
37、傳感器就可以及時(shí)地檢測出來并予以糾正。第二級(jí)的傳感器實(shí)際上是第一級(jí)的后備裝置,當(dāng)小車偏離的角度過大時(shí),第二級(jí)可以進(jìn)行糾正,提高了小車的循跡可靠性。</p><p> 第4章 系統(tǒng)軟件設(shè)計(jì)</p><p><b> 4.1 編譯環(huán)境</b></p><p> USBASP是一種基于ATMEL公司的AVR系列RISC單片機(jī)的高性價(jià)比和一個(gè)由純
38、軟件的USB通信協(xié)議棧而構(gòu)成的一個(gè)可以向51系列,AVR系列單片機(jī)下載(燒寫)程序的下載器.</p><p> 4.2智能小車設(shè)計(jì)算法</p><p> 1.如果中間任何一個(gè)或者兩個(gè)傳感器檢測到黑線,左、右兩個(gè)傳感器都沒有檢測到黑線,則小車前進(jìn)一步; 2.如果最左邊的兩個(gè)傳感器檢測到黑線,最右邊右兩個(gè)傳感器都沒有檢測到黑線,則小車左轉(zhuǎn)一小步;</p><p&
39、gt; 3、如果最左邊的1個(gè)傳感器檢測到黑線,另外3個(gè)傳感器沒有檢測到黑線,則機(jī)器人左轉(zhuǎn)1小步。</p><p> 4、如果左邊的3個(gè)傳感器檢測到黑線,另外1個(gè)傳感器沒有檢測到黑線,則機(jī)器人左轉(zhuǎn)90°</p><p> 5、如果右邊的3個(gè)傳感器檢測到黑線,另外1個(gè)傳感器沒有檢測到黑線,則機(jī)器人右轉(zhuǎn)90°。</p><p> 6、如果最右邊
40、的2個(gè)傳感器檢測到黑線,另外2個(gè)傳感器沒有檢測到黑線,則機(jī)器人右轉(zhuǎn)1小步。</p><p> 7、如果最右邊的1個(gè)傳感器檢測到黑線,另外3個(gè)傳感器沒有檢測到黑線,則機(jī)器人右轉(zhuǎn)1小步。</p><p> 8、如果四個(gè)傳感器都檢測到黑線,則機(jī)器人右轉(zhuǎn)90°。</p><p> 9. 如果四個(gè)傳感器都檢測到白線,則機(jī)器人右轉(zhuǎn)掉頭。</p>&
41、lt;p> 10、如果傳感器檢測值出現(xiàn)其他的情況,則機(jī)器人停止運(yùn)動(dòng)。</p><p> 4.3智能小車程序調(diào)試</p><p> 1.QTI傳感器測試程序</p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p>
42、 int P1_4_state(void)</p><p><b> {</b></p><p> return(P1&0x10)?1:0;</p><p><b> }</b></p><p> int P1_5_state(void)</p><p>&
43、lt;b> {</b></p><p> return(P1&0x20)?1:0;</p><p><b> }</b></p><p> int P1_6_state(void)</p><p><b> {</b></p><p>
44、return(P1&0x40)?1:0;</p><p><b> }</b></p><p> int P1_7_state(void)</p><p><b> {</b></p><p> return(P1&0x80)?1:0;</p><p>
45、;<b> }</b></p><p> int main(void)</p><p><b> {</b></p><p> uart_Init();</p><p> printf("Program Running!\n");</p><p>
46、;<b> while(1)</b></p><p><b> {</b></p><p> printf("OTIL=%d",P1_7_state());</p><p> printf("OTIM1=%d",P1_6_state());</p><p&
47、gt; printf("OTIM2=%d",P1_5_state());</p><p> printf("OTIR=%d\n",P1_4_state());</p><p> delay_nms(500);</p><p><b> }</b></p><p&g
48、t;<b> 2.原地左轉(zhuǎn):</b></p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p> void main()</p><p><b> {</b></p><p>
49、<b> P1_1=1;</b></p><p> delay_nus(1300);</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1300);</p><
50、p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p><p><b> 3.原地右轉(zhuǎn)</b></p><p> #include<BoeBot.h></p>
51、<p> #include<uart.h></p><p> void main()</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1700);</p><p>&
52、lt;b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1700);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p&g
53、t;<b> }</b></p><p><b> 4.向前走</b></p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p> void main()</p><p>&l
54、t;b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1700);</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p>&
55、lt;p> delay_nus(1300);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p><p><b> 5.向后走</b></p><p&
56、gt; #include<BoeBot.h></p><p> #include<uart.h></p><p> void main()</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p>
57、; delay_nus(1300);</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1700);</p><p><b> P1_0=0;</b></p>&l
58、t;p> delay_nms(20);}</p><p><b> 6.從前面向右旋轉(zhuǎn)</b></p><p> void main()</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p&g
59、t; delay_nus(1700); //修改脈沖實(shí)現(xiàn)</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1500);</p><p><b> P1_0=0;</b>&l
60、t;/p><p> delay_nms(20);</p><p><b> }</b></p><p> 7.從后面向右旋轉(zhuǎn)</p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p
61、> void main()</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1300); //修改脈沖實(shí)現(xiàn)</p><p><b> P1_1=0;</b></p>
62、<p><b> P1_0=1;</b></p><p> delay_nus(1500);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p>&l
63、t;p><b> 8.從前面向左旋轉(zhuǎn)</b></p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p> void main()</p><p><b> {</b></p>&l
64、t;p><b> P1_1=1;</b></p><p> delay_nus(1500); //修改脈沖實(shí)現(xiàn)</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(130
65、0);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p><p><b> 9.從后面向左旋轉(zhuǎn)</b></p><p> #include<Bo
66、eBot.h></p><p> #include<uart.h></p><p> void main()</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1700);
67、 //修改脈沖實(shí)現(xiàn)</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1700);</p><p><b> P1_0=0;</b></p><p>
68、 delay_nms(20);</p><p><b> } </b></p><p> 10.ControlServoRunTimes</p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p>
69、int main(void)</p><p><b> {</b></p><p><b> int i;</b></p><p> uart_Init();</p><p><b> while(1)</b></p><p><b>
70、 {</b></p><p> for(i=1;i<100;i++)</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1700);</p><p><b>
71、P1_1=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p><p> for(i=1;i<200;i++)</p><p><b> {</b></p><p><b> P1_0
72、=1;</b></p><p> delay_nus(1700);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p><p><b> }</b
73、></p><p><b> }</b></p><p> 11.StartAndStopWithRamping</p><p> #include<BoeBot.h></p><p> #include<uart.h></p><p> int main(
74、)</p><p><b> {</b></p><p><b> int i;</b></p><p> uart_Init();</p><p><b> while(1)</b></p><p><b> {</b>
75、</p><p> for(i=1;i<=200;i=i+1)</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1500+i);</p><p><b> P1_1=0;&
76、lt;/b></p><p><b> P1_0=1;</b></p><p> delay_nus(1500+i);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> } &
77、lt;/b></p><p> for(i=1;i<=75;i++)</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1700);</p><p><b> P1_1
78、=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1300);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }
79、 </b></p><p> for(i=200;i>=0;i=i-1)</p><p><b> {</b></p><p><b> P1_1=1;</b></p><p> delay_nus(1500+i);</p><p><b&g
80、t; P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(1500+i);</p><p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p>&l
81、t;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 12.RobotTourChina</p><p> #include<BoeBot.h></p><p> #inc
82、lude<uart.h></p><p> int right90steps=48;</p><p> int left90steps=48;</p><p> int uturnsteps=48;</p><p> int get_4QTI_state(void)</p><p><b>
83、; {</b></p><p> return P1&0xf0;</p><p><b> }</b></p><p> void MoveAStep(int leftp,int rightp)</p><p><b> {</b></p><p&g
84、t;<b> P1_1=1;</b></p><p> delay_nus(leftp);</p><p><b> P1_1=0;</b></p><p><b> P1_0=1;</b></p><p> delay_nus(rightp);</p>
85、<p><b> P1_0=0;</b></p><p> delay_nms(20);</p><p><b> }</b></p><p> void rightturn(int steps)</p><p><b> {</b></p>
86、<p><b> int i;</b></p><p> for(i=0;i<steps;i++)</p><p><b> {</b></p><p> MoveAStep(1550,1500);</p><p><b> }</b></p&
87、gt;<p><b> }</b></p><p> void leftturn(int steps)</p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0;i<steps;i++)
88、</p><p><b> {</b></p><p> MoveAStep(1500,1250);</p><p><b> }</b></p><p><b> }</b></p><p> void rotate(int steps)&l
89、t;/p><p><b> {</b></p><p><b> int i;</b></p><p> for(i=0;i<steps;i++)</p><p><b> {</b></p><p> MoveAStep(1550,1550
90、);</p><p><b> }</b></p><p><b> }</b></p><p> void backward(int steps)</p><p><b> {</b></p><p><b> int i;<
91、/b></p><p> for(i=0;i<steps;i++)</p><p><b> {</b></p><p> MoveAStep(1250,1550);</p><p><b> }</b></p><p><b> }</
92、b></p><p> void follow_line(void)</p><p><b> {</b></p><p> int QTIState;</p><p> int leftpulse,rightpulse;</p><p> QTIState=get_4QTI_st
93、ate();</p><p> printf("4QTI=%4d",QTIState);</p><p> switch(QTIState)</p><p><b> {</b></p><p> case 0x10: leftpulse=1550;</p><p>
94、 rightpulse=1550;</p><p><b> break;</b></p><p> case 0x30: leftpulse=1550;</p><p> rightpulse=1550;</p><p><b> break;</b></p><p&g
95、t; case 0x20: leftpulse=1550;</p><p> rightpulse=1250;</p><p><b> break;</b></p><p> case 0x40: leftpulse=1550;</p><p> rightpulse=1250;</p><
96、;p><b> break;</b></p><p> case 0x60: leftpulse=1550;</p><p> rightpulse=1250;</p><p><b> break;</b></p><p> case 0x80: leftpulse=1250;&l
97、t;/p><p> rightpulse=1550;</p><p><b> break;</b></p><p> case 0xc0: leftpulse=1500;</p><p> rightpulse=1250;</p><p><b> break;</b>
98、;</p><p> case 0xe0: leftturn(left90steps); </p><p> leftpulse=1250;</p><p> rightpulse=1250;</p><p><b> break;</b></p><p> case 0x70:righ
99、tturn(right90steps);</p><p> leftpulse=1650;</p><p> rightpulse=1650;</p><p><b> break;</b></p><p> case 0xf0: rightturn(right90steps);</p><p
100、> leftpulse=1650;</p><p> rightpulse=1650;</p><p><b> break;</b></p><p> case 0x00: rotate(uturnsteps);</p><p> leftpulse=1500;</p><p>
101、 rightpulse=1500;</p><p><b> break;</b></p><p> default: leftpulse=1500;</p><p> rightpulse=1500;</p><p><b> break;</b></p><p&
102、gt;<b> }</b></p><p> MoveAStep(leftpulse,rightpulse);</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p>
103、; uart_Init();</p><p> printf("Program Running!\n");</p><p><b> while(1)</b></p><p><b> {</b></p><p> follow_line();</p>&
104、lt;p><b> }</b></p><p><b> }</b></p><p> 第5章 系統(tǒng)調(diào)試分析</p><p> 5.1 系統(tǒng)設(shè)計(jì)中的注意事項(xiàng)</p><p> 5.1.1 外部因素</p><p> 外部因素主要有環(huán)境光線、地圖材質(zhì)等因素。以
105、采用光電尋跡方案的智能車為例,如果接收的信號(hào)中有很多噪聲成分,或者黑白區(qū)分不清晰,就很難識(shí)別路線,從而對(duì)后續(xù)的控制過程造成很大影響。因此,合理的傳感器離地間隙和反射角度、較好的濾波電路設(shè)計(jì)都是需要考慮的。</p><p> 5.1.2 內(nèi)部因素</p><p><b> 重量因素 </b></p><p> 整車質(zhì)量的增加,對(duì)系統(tǒng)動(dòng)力性有
106、較大影響。因此,除了智能車工作必須的電路之外,應(yīng)盡可能減少車重。即使是必備部件,可應(yīng)該采用輕量化的設(shè)計(jì)。比如為了測量模型車的速度,需要在驅(qū)動(dòng)輪上加裝轉(zhuǎn)速傳感器,一般購買的電機(jī)編碼器重量都較大,有的隊(duì)伍就利用鼠標(biāo)上的光電電路設(shè)計(jì)制作了一個(gè)輕量化的轉(zhuǎn)速傳感器,從而大大減小了重量。 </p><p><b> 過度轉(zhuǎn)向的避免 </b></p><p> 由于是后輪驅(qū)動(dòng),
107、在彎曲的路線上加速可能會(huì)出現(xiàn)過度轉(zhuǎn)向現(xiàn)象,因此在車輛彎道行駛時(shí)需要小心控制車輛的轉(zhuǎn)向速度。</p><p><b> 傳感器的影響</b></p><p> 剛開始的時(shí)候,我的傳感器裝的比較高,這樣就不能很好的感應(yīng)到路線,以至于出現(xiàn)亂跑的現(xiàn)象。如果在以后的設(shè)計(jì)中需要的話,可以采用激光傳感器進(jìn)行探測,這樣就會(huì)更精準(zhǔn)的尋跡。</p><p>
108、 5.2 硬軟件總體調(diào)試</p><p> 硬件、軟件獨(dú)立調(diào)試都有效果之后,下一步就是硬軟件總體調(diào)試了,在硬軟件總體調(diào)試之前,應(yīng)現(xiàn)把各個(gè)跳線接后,然后在用貼有黑膠帶的白紙來回在紅外線發(fā)射接收管左右移動(dòng),看小車的電機(jī)轉(zhuǎn)速是否會(huì)發(fā)生變化,如果用貼有黑膠帶的白紙來回在各個(gè)紅外線發(fā)射接收管左右移動(dòng)時(shí),電機(jī)的轉(zhuǎn)速都會(huì)發(fā)生改變,則說明總體調(diào)試初步有效,最后讓小車在賽道上進(jìn)行行走,在初次調(diào)試的時(shí)候,小車的速度不能太大。<
109、;/p><p><b> 第6章 結(jié)束語</b></p><p><b> 致謝</b></p><p> 感謝孫艷忠老師。孫老師在上課期間耐心地為我們講了很多,無論是在學(xué)習(xí)上還是精神上,都支持著我們。</p><p> 感謝實(shí)驗(yàn)室的伙伴們,每次去找他們時(shí),他們都不惜自己的時(shí)間給我們講解難點(diǎn)以及
110、告訴我們他們的經(jīng)驗(yàn)。感謝這次綜合實(shí)訓(xùn)里面的各位同學(xué),因?yàn)槲覀兊姆止ず献?,才很好的完成了這次綜合實(shí)訓(xùn)。</p><p> 感謝攀枝花學(xué)院給我這個(gè)學(xué)習(xí)的環(huán)境,這是讓我夢想起航的地方。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 秦志強(qiáng)等 《C語言原來可以這樣學(xué)》.電子工業(yè)出版社</p><p&
111、gt; [2] 秦志強(qiáng)等. 《 基于機(jī)器人制作項(xiàng)目的學(xué)習(xí)和實(shí)踐》. 電子工業(yè)出版社</p><p><b> 附錄圖</b></p><p><b> 總結(jié)</b></p><p> 經(jīng)過幾個(gè)禮拜的忙碌,在大家共同的努力下,終于給智能循跡 小車畫上了句號(hào)。誰說不上是完美,但總算成功了。剛開始接觸 這個(gè)項(xiàng)目,我們幾
112、個(gè)男生對(duì)其一點(diǎn)也不了解,無從下手。后來從 硬件電路開始,慢慢了解其原理,也算知道個(gè)大概。在這期間, 我們也遇到過很多問題。很多問題都是不知道怎么解決的,孫老師給了我們很多指導(dǎo),我們也在網(wǎng)上查閱了很多資料,最開始的便是尋跡電路板。其 次是程序,程序是不可能一次性成功的。在不斷的修改調(diào)試之后, 小車最終還是實(shí)現(xiàn)了預(yù)想的功能。通過這次的循跡小車的制作,我們學(xué)到了團(tuán)隊(duì)合作的重要性以及如何去學(xué)習(xí)一個(gè)以前完全不知道的新東西。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的智能循跡小車
- 畢業(yè)設(shè)計(jì)論文基于單片機(jī)的智能循跡小車
- 基于單片機(jī)的智能循跡小車設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)循跡小車設(shè)計(jì)
- 基于單片機(jī)的智能循跡避障小車設(shè)計(jì)
- 基于單片機(jī)的智能循跡小車---答辯ppt
- 基于單片機(jī)的智能循跡小車的控制畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的智能循跡小車的控制畢業(yè)設(shè)計(jì)論文
- 測控技術(shù)與儀器畢業(yè)論文基于單片機(jī)的智能循跡小車設(shè)計(jì)
- 基于單片機(jī)的智能循跡小車的控制畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的智能循跡小車外文翻譯
- 智能小車論文單片機(jī)循跡測速避障顯示
- 基于單片機(jī)的循跡小車的設(shè)計(jì)【畢業(yè)論文】
- 單片機(jī)智能循跡小車
- 機(jī)電專業(yè)畢業(yè)設(shè)計(jì)--基于單片機(jī)的智能循跡小車
- 基于單片機(jī)的智能循跡小車外文翻譯
- 基于51單片機(jī)的循跡小車系統(tǒng)設(shè)計(jì)
- 測控技術(shù)與儀器畢業(yè)設(shè)計(jì)基于單片機(jī)的智能循跡小車設(shè)計(jì)
- 基于單片機(jī)控制的智能小車循跡技術(shù)研究【電氣論文+開題+中期+圖紙】
- 單片機(jī)循跡小車課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論