基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告_第1頁(yè)
基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告_第2頁(yè)
基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告_第3頁(yè)
基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告_第4頁(yè)
基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告;1基于89s51單片機(jī)的循跡小車設(shè)計(jì)報(bào)告摘 要本文介紹了基于at89s52單片機(jī)的智能小車的設(shè)計(jì)與實(shí)現(xiàn)。小車完成的主要功能是能夠自主識(shí)別黑色引導(dǎo)線并根據(jù)黑線走向?qū)崿F(xiàn)快速穩(wěn)定的尋線行駛。小車系統(tǒng)以 AT89S52 單片機(jī)為系統(tǒng)控制處理器;采用紅外對(duì)管獲取賽道的信息;通過數(shù)字PID控制策略和PWM控制技術(shù)來對(duì)小車的方向和速度進(jìn)行控制。本文介紹了小車硬件和軟件系統(tǒng)的設(shè)計(jì)過程。關(guān)鍵字:at89s52單片機(jī); 光電管; PID;第 I 頁(yè) 共 I頁(yè)目 錄摘 要2第一章 引言21.1 設(shè)計(jì)目的21.2 設(shè)計(jì)方案介紹21.3 技術(shù)報(bào)告內(nèi)容安排2第二章 技術(shù)方案概要說

2、明3第三章 硬件電路的設(shè)計(jì)43.1 單片機(jī)最小系統(tǒng)43.2 傳感器電路43.3 電源電路設(shè)計(jì)53.4 舵機(jī)及電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)5第四章 軟件系統(tǒng)的實(shí)現(xiàn)64.1主程序設(shè)計(jì)64.2 程序思路6第五章 結(jié)論7附錄:源程序主代碼8第 10 頁(yè) 共 10 頁(yè)第一章 引言1.1 設(shè)計(jì)目的通過設(shè)計(jì)進(jìn)一步掌握單片機(jī)的應(yīng)用,特別是在嵌入式系統(tǒng)中的應(yīng)用。進(jìn)一步學(xué)習(xí)單片機(jī)在系統(tǒng)中的控制功能,能夠合理設(shè)計(jì)單片機(jī)的外圍電路,并使之與單片機(jī)構(gòu)成整個(gè)系統(tǒng)。1.2 設(shè)計(jì)方案介紹該智能車采用紅外對(duì)管方案進(jìn)行道路檢測(cè),單片機(jī)根據(jù)采集到的紅外對(duì)管的不同狀態(tài)判斷小車當(dāng)前狀態(tài),通過控制發(fā)出控制命令,控制舵機(jī)和電機(jī)的工作狀態(tài)以實(shí)現(xiàn)對(duì)小車姿

3、態(tài)的控制。1.3 技術(shù)報(bào)告內(nèi)容安排本技術(shù)報(bào)告主要分為三個(gè)部分。第一部分是對(duì)整個(gè)系統(tǒng)實(shí)現(xiàn)方法的一個(gè)概要說明,主要內(nèi)容是對(duì)整個(gè)技術(shù)方案的概述;第二部分是對(duì)硬件電路設(shè)計(jì)的說明,主要介紹系統(tǒng)傳感器的設(shè)計(jì)及其他硬件電路的設(shè)計(jì)原理等;第三部分是對(duì)系統(tǒng)軟件設(shè)計(jì)部分的說明,主要內(nèi)容是智能模型車設(shè)計(jì)中主要用到的控制理論、算法說明及代碼設(shè)計(jì)介紹等。第二章 技術(shù)方案概要說明本模型車的電路系統(tǒng)包括電源管理模塊、單片機(jī)模塊、傳感器模塊、電機(jī)驅(qū)動(dòng)模塊、舵機(jī)控制模塊。在整個(gè)系統(tǒng)中,由電源管理模塊實(shí)現(xiàn)對(duì)其他各模塊的電源管理。其中,對(duì)單片機(jī)、光電管、舵機(jī)提供5V電壓,對(duì)電機(jī)提供6V電壓。路徑識(shí)別電路由8對(duì)光電發(fā)送與接收管組成。

4、由于路面存在黑色引導(dǎo)線,落在黑線區(qū)域內(nèi)的光電接收管接收到反射的光線的強(qiáng)度與白色的路面不同,進(jìn)而在光電接收管兩端產(chǎn)生不同的電壓值,由此判斷路線的走向。傳感器模塊將當(dāng)前采集到的一組電壓值傳遞給單片機(jī),進(jìn)而根據(jù)一定得算法對(duì)舵機(jī)進(jìn)行控制,使小車自動(dòng)尋線行走。 單片機(jī)模塊是智能車的核心部分,主要完成對(duì)外圍各個(gè)模塊的管理,實(shí)現(xiàn)對(duì)外圍模塊的信號(hào)發(fā)送,以及對(duì)傳感器模塊的信號(hào)采集,并根據(jù)軟件算法對(duì)所采集的信號(hào)進(jìn)行處理,發(fā)送信號(hào)給執(zhí)行模塊進(jìn)行任務(wù)執(zhí)行,還對(duì)各種突發(fā)事件進(jìn)行監(jiān)控和處理,保證整個(gè)系統(tǒng)的正常運(yùn)作。 舵機(jī)控制模塊則根據(jù)檢測(cè)情況經(jīng)單片機(jī)處理后發(fā)出相應(yīng)的PWM波對(duì)舵機(jī)進(jìn)行轉(zhuǎn)向的控制。電機(jī)驅(qū)動(dòng)模塊采用橋驅(qū)動(dòng),通

5、過PWM 波對(duì)電機(jī)進(jìn)行控制,以實(shí)現(xiàn)對(duì)小車速度的調(diào)節(jié)。第三章 硬件電路的設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)小車采用atmel公司的at89s52單片機(jī)作為控制芯片,圖3-1是其最小系統(tǒng)電路。主要包括:時(shí)鐘電路、電源電路、復(fù)位電路。其中各個(gè)部分的功能如下:1、時(shí)鐘電路:給單片機(jī)提供一個(gè)外接的16MHz的石英晶振。2、電源電路:給單片機(jī)提供5V電源。3、復(fù)位電路:在電壓達(dá)到正常值時(shí)給單片機(jī)一個(gè)復(fù)位信號(hào)。圖3-1 單片機(jī)最小系統(tǒng)原理圖3.2 傳感器電路光電尋線方案一般由多對(duì)紅外收發(fā)管組成,通過檢測(cè)接收到的反射光強(qiáng),判斷黑白線。原理圖由紅外對(duì)管和電壓比較器兩部分組成,紅外對(duì)管輸出的模擬電壓通過電壓比較器轉(zhuǎn)換成數(shù)

6、字電平輸出到單片機(jī)。3-2賽道檢測(cè)原理圖:3.3 電源電路設(shè)計(jì)模型車通過自身系統(tǒng),采集賽道信息,獲取自身速度信息,加以處理,由芯片給出指令控制其前進(jìn)轉(zhuǎn)向等動(dòng)作,各部分都需要由電路支持,電源管理尤為重要。在本設(shè)計(jì)中,51單片機(jī)使用5V電源,電機(jī)及舵機(jī)使用6V電源。考慮到電源為充電電池組,額定電壓為7.2V,實(shí)際充滿電后電壓則為6.5-6.8V,所以單片機(jī)及傳感器模塊采用7805穩(wěn)壓后的5V電源供電,舵機(jī)及電機(jī)直接由電池供電。3.4 舵機(jī)及電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)舵機(jī)的驅(qū)動(dòng)電路比較簡(jiǎn)單,電源直接由電池組提供,其輸入信號(hào)為單片機(jī)輸出的pwm波。本系統(tǒng)使用的電機(jī)驅(qū)動(dòng)板為一個(gè)由分立元件制作的直流電動(dòng)機(jī)可逆雙極型

7、橋式驅(qū)動(dòng)器,其功率元件由四支N溝道功率MOSFET管組成,由此電路,通過設(shè)置51輸出的PWM波的占空比可以達(dá)到控制電機(jī)轉(zhuǎn)速的效果。3-3 H橋驅(qū)動(dòng)電路第四章 軟件系統(tǒng)的實(shí)現(xiàn)4.1主程序設(shè)計(jì)單片機(jī)系統(tǒng)需要接收路徑識(shí)別電路的信號(hào),采用某種路徑搜索算法進(jìn)行尋線判斷,進(jìn)而控制舵機(jī)和直流驅(qū)動(dòng)電機(jī)的工作。小車系統(tǒng)的軟件使用C語言實(shí)現(xiàn)。主體控制框架:模型車采用的控制方法是根據(jù)傳感器采集到的路況信息,通過計(jì)算得到具體的方向偏移量和速度,控制小車的行走狀態(tài)。路況信息數(shù)據(jù)處理偏轉(zhuǎn)方向車 速4.2 程序思路智能車?yán)昧艘蛔中闻挪嫉膫€(gè)傳感器來探測(cè)道路,并將每個(gè)傳感器采集到的信息轉(zhuǎn)換成了數(shù)字電平。因此個(gè)傳感器的數(shù)據(jù)正好

8、構(gòu)成一個(gè)字節(jié),由單片機(jī)口讀入。由于讀入的數(shù)據(jù)并不方便直接參與控制計(jì)算,因此先將該數(shù)據(jù)集分成類,分別對(duì)應(yīng)于小車不同的位置信息,由0-15表示,其中表示引導(dǎo)線位于小車最左側(cè),7表示引導(dǎo)線位于小車中部,14表示引導(dǎo)線位于小車最右側(cè),15表示未檢測(cè)到引導(dǎo)線或其他錯(cuò)誤情況。將上面的轉(zhuǎn)換后的數(shù)據(jù)作為控制計(jì)算的反饋輸入,與相減即得到小車偏差信息,然后通過增量型pid算法計(jì)算出舵機(jī)的控制信息。將小車偏差信息的微分作為速度pid的輸入,依然通過增量型pid算法得到電機(jī)的控制信息。至此小車完成一次控制周期。由于at89s51單片機(jī)沒有PWM模塊,因此需要通過通用I/O口進(jìn)行模擬來輸出舵機(jī)和電機(jī)所需的PWM波。可以

9、分別使用一個(gè)定時(shí)器來作為一路PWM波的計(jì)時(shí)器。先將I/O口置位,設(shè)定高電平時(shí)間及定時(shí)器的初值,當(dāng)定時(shí)器產(chǎn)生中斷時(shí),再將I/O口清零,并設(shè)定低電平時(shí)間,由此循環(huán)即可產(chǎn)生PWM波。其中,高電平時(shí)間有控制計(jì)算得出,低電平時(shí)間有PWM周期減去高電平時(shí)間得到。第五章 結(jié)論本設(shè)計(jì)主要用到了單片機(jī)的通用IO口的讀寫,定時(shí)器,中斷等基本功能,通過實(shí)際操作進(jìn)一步掌握了51單片機(jī)的使用。同時(shí),通過單片機(jī)外圍電路的設(shè)計(jì),更深入學(xué)習(xí)了51單片機(jī)在嵌入式系統(tǒng)中的應(yīng)用。通過實(shí)際焊接電路,編寫程序,也進(jìn)一步提高了我的動(dòng)手能力以及分析解決錯(cuò)誤的能力,是我能夠更好的將所學(xué)知識(shí)應(yīng)用到實(shí)際中來。本系統(tǒng)能夠基本滿足設(shè)計(jì)要求,能夠較快

10、較平穩(wěn)的是小車沿引導(dǎo)線行駛,但由于經(jīng)驗(yàn)?zāi)芰τ邢蓿撓到y(tǒng)還存在著許多不盡人意的地方有待于進(jìn)一步的完善與改進(jìn)。附錄:源程序主代碼#include <reg52.h>#include <intrins.h>#include <math.h>#define uchar unsigned char #define uint unsigned int#define MIDDLE 1390/舵機(jī)中心位置#define LEFT 1600 #define RIGHT 1000#define T 20000#define HIGH 7300 /電機(jī)基準(zhǔn)速度sbit rudde

11、r=P10; /定義舵機(jī)PWM波輸出端口為P1.0口sbit pulse=P11; /定義后輪PWM波輸出端口為P1.1口char flag1=0,flag2=0;/定義全局變量(flag1用于控制舵機(jī)/PWM標(biāo)志位,flag2用于控制電機(jī)PWM)uint b=0,a=0;/b用來裝載電機(jī)所需的高電平時(shí)間,a用于保存電機(jī)所需高電平時(shí)間void main()uchar receive,ek4=7,7,7,7;uint pidr=0;uint pidlr=0;uint ppid=0;IE=0x8a; TMOD=0x11;TH0=0x00;TL0=0x00;TR0=1;TH1=0x00;TL1=0x

12、00;TR1=1;while(1) receive=P2; /采集光電傳感器的值/*-switch-*/switch(receive) /根據(jù)采集到的值進(jìn)行判斷case 0x7f:ek3=0;break; /0111 1111 最左邊(或右邊)1個(gè)光電傳感器檢測(cè)到黑線case 0x3f:ek3=1;break; /0011 1111 最左邊(或右邊)2個(gè)光電傳感器檢測(cè)到黑線case 0xbf:ek3=2;break; /1011 1111 依次類推case 0x9f:ek3=3;break; /1001 1111case 0xdf:ek3=4;break; /1101 1111case 0xc

13、f:ek3=5;break; /1100 1111case 0xef:ek3=6;break; /1110 1111case 0xe7:ek3=7;break; /1110 0111case 0xf7:ek3=8;break; /1111 0111case 0xf3:ek3=9;break; /1111 0011case 0xfb:ek3=10;break; /1111 1011case 0xf9:ek3=11;break; /1111 1001case 0xfd:ek3=12;break; /1111 1101case 0xfc:ek3=13;break; /1111 1100case 0x

14、fe:ek3=14;break; /1111 1110default: ek3=15;break; /1111 1111 沒有檢測(cè)到黑線(是需要保持上一次測(cè)量值的)/*-switch-*/if(ek3= =15) pidr = pidlr;else pidr=0.2*pidlr+0.8*(23*(ek3-7)+2*(ek3+ek2+ek1+ek0-28)+7*(ek3-ek2);if(ek2!=ek3)ppid=-160*(cabs(ek3-7)+220*(cabs(ek1-7)-cabs(ek3-7); a=HIGH+ppid; /a是電機(jī)高電平時(shí)間b=pidr+MIDDLE; /b就是舵機(jī)PWM波高電平時(shí)間 if(b>LEFT) b=LEFT; if(b<RIGHT) b=RIGHT; char i; for(i=0;i<3;i+) eki=eki+1; pidlr=pidr;void zhongduan_t0(void) interrupt 1 /產(chǎn)生舵機(jī)PWM波中斷子程序(T0中斷)if(flag1=0) TH0=(uchar)(65536-b)/256); TL0=(uchar)(65536-b)%256);flag1=1;rudder=1;elseTH0=(uchar)(38869+b)/256); TL0=(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論