版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二章 智能尋跡避障小車尋跡系統(tǒng)設(shè)計(jì)1任務(wù) 任務(wù)一:產(chǎn)生智能尋跡避障小車沿黑線轉(zhuǎn)圈的控制程序;任務(wù)二:產(chǎn)生智能尋跡避障小車帶狀態(tài)顯示沿黑線轉(zhuǎn)圈的控制程序;2要求(1)能控制智能尋跡避障小車沿黑線實(shí)現(xiàn)轉(zhuǎn)圈功能;(2)行走過程中小車一直壓著黑線走,不得沖出黑線圓圈之外或之內(nèi);(3)智能尋跡避障小車可以從小于90度的任意方向?qū)ふ业胶诰€圓圈;2.1 項(xiàng)目描述該項(xiàng)目的主要內(nèi)容是:在智能尋跡避障小車電機(jī)控制系統(tǒng)之上擴(kuò)展尋跡電路,然后運(yùn)用C語言對系統(tǒng)進(jìn)行編程,使智能尋跡避障小車實(shí)現(xiàn)沿黑線轉(zhuǎn)圓圈的功能,并且在行走過程中小車一直壓著黑線走,不得沖出黑線圓圈之外或之內(nèi);當(dāng)人為將小車拿開,再從小于90度的任意方向放
2、置小車,小車應(yīng)能重新找回軌道,并沿黑線繼續(xù)轉(zhuǎn)圈。通過該項(xiàng)目的學(xué)習(xí)與實(shí)踐,可以讓讀者獲得如下知識和技能: 繼續(xù)掌握單片機(jī)I/O端口的應(yīng)用; 掌握紅外線收、發(fā)對管的工作原理與控制方法; 掌握數(shù)碼管的工作原理與控制方法; 掌握單片機(jī)C語言的編程方法與技巧; 能夠編寫出智能尋跡避障小車沿黑線實(shí)現(xiàn)轉(zhuǎn)圈功能的控制函數(shù);2.1 必備知識 2.1.1 關(guān)于紅外線傳感器紅外線定義:在光譜中波長自0.76至400微米的一段稱為紅外線,紅外線是不可見光線。所有高于絕對零度(-273.15)的物質(zhì)都可以產(chǎn)生紅外線。現(xiàn)代物理學(xué)稱之為熱射線。醫(yī)用紅外線可分為兩類:近紅外線與遠(yuǎn)紅外線。紅外線發(fā)射器:紅外線發(fā)射管在LED封裝
3、行業(yè)中主要有三個(gè)常用的波段,如下850NM、875NM、940NM。根據(jù)波長的特性運(yùn)用的產(chǎn)品也有很大的差異,850NM波長的主要用于紅外線監(jiān)控設(shè)備,875NM主要用于醫(yī)療設(shè)備,940NM波段的主要用于紅外線控制設(shè)備。如:紅外線遙控器、光電開關(guān)、光電計(jì)數(shù)設(shè)備等。紅外線對管應(yīng)用:本項(xiàng)目中,小車的尋跡功能采用紅外線收、發(fā)對管實(shí)現(xiàn)。具體工作過程如下:兩對紅外線收、發(fā)對管安裝在智能尋跡避障小車底盤正前方,紅外發(fā)射管一直發(fā)射信號,接收管時(shí)刻準(zhǔn)備接收信號。兩對對著地的紅外管發(fā)射紅外信號,信號在白色的地面上反射回接收管,通過接收管把信號送回單片機(jī)進(jìn)行處理,完成相應(yīng)的動(dòng)作。假如在黑色的地面上,信號被地面吸收,就
4、無信號返回,單片機(jī)檢測到無信號,根據(jù)程序也會(huì)做出相應(yīng)的動(dòng)作。如圖2.1所示為紅外線收、發(fā)對管外型示意圖。 圖2.1 紅外收、發(fā)對管外形圖2.3 案例設(shè)計(jì) 2.3.1 系統(tǒng)設(shè)計(jì)方案本項(xiàng)目采用單片機(jī)最小系統(tǒng)+紅外尋線傳感器來實(shí)現(xiàn)小車尋線功能。系統(tǒng)設(shè)計(jì)框圖如圖2.2所示。 圖2.2 系統(tǒng)設(shè)計(jì)框圖2.3.2 硬件電路設(shè)計(jì)智能尋跡避障小車尋線電路原理圖如圖2.3所示:它是在單片機(jī)最小系統(tǒng)的基礎(chǔ)上直接由單片機(jī)的P3?礎(chǔ)_0ol_1連接紅外線收、發(fā)對個(gè)構(gòu)成的,其中單片機(jī)的P3.5端口控制左邊尋線電路模塊,右邊尋線電路模塊由P3.6控制。為了保準(zhǔn)巡線信號的準(zhǔn)確度,一般要求左、右紅外發(fā)射對管安裝時(shí)離地面高度控制
5、在0.5cm內(nèi)比較理想,距離太大,可能造成信號不靈敏,巡線不夠準(zhǔn)確,距離太小,也可能造成小車前進(jìn)會(huì)與地面產(chǎn)生刮擦,從而損壞器件;另外,左、右收、發(fā)對管安裝的距離應(yīng)保持在比黑線條的寬度多一點(diǎn),做到夾在黑線條,并處于黑線條的邊緣,不能壓在黑線上。這樣巡線才能準(zhǔn)確。 圖2.3 智能尋跡避障小車尋線電路原理圖2.3.3 系統(tǒng)軟件設(shè)計(jì) 任務(wù)一:產(chǎn)生智能尋跡避障小車沿黑線轉(zhuǎn)圈的控制程序; 1、源程序#include<at89x52.h>#define uint unsigned int#define uchar unsigned char#define out P2sbit zuo1=P01;
6、sbit zuo2=P00;sbit you1=P03;sbit you2=P02;sbit zuod=P35;sbit youd=P36;sbit qiand=P37;/左 右 前 3個(gè)紅外傳感器sbit jiao=P06;sbit D1=P20;sbit D2=P07;void delay(uint x)uchar i;while(x-)for(i=0;i<123;i+);void qian()zuo1=0;zuo2=1;/左邊往前you1=0;you2=1;/右邊往前void hou()zuo1=1;zuo2=0;/左邊往后you1=1;you2=0;/右邊往后void zuo()
7、zuo1=1;zuo2=0;/左邊往后you1=0;you2=1;/右邊往前void you()zuo1=0;zuo2=1;/左邊往前you1=1;you2=0;/右邊往后void main()while(1)if(zuod=0&youd=0)/如果左右兩個(gè)傳感器沒有檢測到黑線qian();/直走if(zuod=1&youd=0)/如果左邊的傳感器檢測到黑線while(1)zuo(); /左轉(zhuǎn)D1=0;if(zuod=0)/一直左轉(zhuǎn)到傳感器檢測不到為止D1=1;break;/跳出循環(huán)if(youd=1&zuod=0)while(1)you();D2=0;if(youd=
8、0)D2=1;break;/道理同上 2、程序運(yùn)行及調(diào)試按圖2.3連接智能尋跡避障小車控制電路,編譯以上程序,將產(chǎn)生的可執(zhí)行文件燒寫到智能尋跡避障小車的單片機(jī)程序存儲(chǔ)器,然后將小車放置在黑線圓圈的任意位置,開啟電源,小車會(huì)沿著黑線不斷轉(zhuǎn)圈;將小車從黑線上拿走,然后再放放置黑線旁邊,只要小車與黑線不成90度放置,則小車通過自我修正,會(huì)重新找到黑線軌跡,繼續(xù)轉(zhuǎn)圈。3、程序設(shè)計(jì)思路基本思路是:先判斷智能尋線小車左、右尋線傳感器是否夾在黑線邊緣,如果是說明尋線傳感器處于白色區(qū)域,則小車前進(jìn);如果不是,則再判斷左、右傳感器所處的位置,如果左邊傳感器壓到黑線,左傳感器指示燈D1亮,說明小車已經(jīng)偏右,則應(yīng)調(diào)
9、左轉(zhuǎn)函數(shù)修正,使左邊傳感器退出黑色區(qū)域;當(dāng)退出黑色區(qū)域后,左傳感器指示燈D1滅;當(dāng)右邊傳感器壓到黑是,方法跟左邊處理類是:調(diào)用右轉(zhuǎn)函數(shù)修正,同時(shí)D2亮,修正完,D2滅??傊≤囋谘睾诰€轉(zhuǎn)圈過程中,左、右尋線傳感器始終是夾在黑線邊緣(即白色區(qū)域)的,如果不在白色區(qū)域,就要根據(jù)情況調(diào)用左轉(zhuǎn)、或右轉(zhuǎn)函數(shù)進(jìn)行修正。程序流程圖如圖2.4所示:圖2.4 智能尋跡避障小車尋黑線轉(zhuǎn)圈流程圖 任務(wù)二:產(chǎn)生智能尋跡避障小車帶狀態(tài)顯示沿黑線轉(zhuǎn)圈的控制程序;1、源程序#include<at89x52.h>#define uint unsigned int#define uchar unsigned ch
10、ar#define out P2sbit zuo1=P01;sbit zuo2=P00;sbit you1=P03;sbit you2=P02;sbit zuod=P35;sbit youd=P36;sbit qiand=P37;/左 右 前 3個(gè)紅外傳感器sbit jiao=P06;sbit D1=P20;sbit D2=P07;uchar code ZM=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,;void delay(uint x)uchar i;while(x-)for(i=0;i<123;i+);void qian()z
11、uo1=0;zuo2=1;/左邊往前you1=0;you2=1;/右邊往前void hou()zuo1=1;zuo2=0;/左邊往后you1=1;you2=0;/右邊往后void zuo()zuo1=1;zuo2=0;/左邊往后you1=0;you2=1;/右邊往前void you()zuo1=0;zuo2=1;/左邊往前you1=1;you2=0;/右邊往后void main()while(1)if(zuod=0&youd=0)/如果左右兩個(gè)傳感器沒有檢測到黑線qian();/直走out=ZM1;if(zuod=1&youd=0)/如果左邊的傳感器檢測到黑線while(1)z
12、uo();out=ZM3;/左轉(zhuǎn)D1=0;if(zuod=0)/一直左轉(zhuǎn)到傳感器檢測不到為止D1=1;break;/跳出循環(huán)if(youd=1&zuod=0)while(1)you();out=ZM4;D2=0;if(youd=0)D2=1;break;/道理同上 2、程序運(yùn)行及調(diào)試程序的運(yùn)行與調(diào)試與任務(wù)一相同,當(dāng)程序下載到小車控制電路單片機(jī)中,開機(jī)運(yùn)行,小車除完成任務(wù)一的動(dòng)作外,還會(huì)在小車行進(jìn)過程中在數(shù)碼管上顯示小車的狀態(tài),比如,小車前進(jìn),則在數(shù)碼管上顯示“1”;小車左轉(zhuǎn)彎則在數(shù)碼管上顯示“3”;小車右轉(zhuǎn)彎則在數(shù)碼管上顯示“4”。3、程序設(shè)計(jì)思路 程序設(shè)計(jì)思路與任務(wù)一基本相同,只是在
13、小車直行、左轉(zhuǎn)、右轉(zhuǎn)函數(shù)后面調(diào)用相應(yīng)的狀態(tài)顯示字符。其程序流程圖如圖2.5所示。 圖2.5 帶小車行走狀態(tài)顯示、轉(zhuǎn)圈程序流程圖2.4 相關(guān)知識 2.4.1 顯示模塊顯示器是最常用的輸出設(shè)備,其種類繁多,但在單片機(jī)系統(tǒng)設(shè)計(jì)中常用的是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD)兩種。由于這兩種顯示器結(jié)構(gòu)簡單,價(jià)格便宜,接口容易實(shí)現(xiàn),因而得到廣泛應(yīng)用。下面介紹發(fā)光二極管顯示器(LED)的結(jié)構(gòu)、工作原理及其接口電路。1、LED結(jié)構(gòu)與原理LED顯示器又稱為數(shù)碼管,它主要由8個(gè)發(fā)光二極管組成,如圖2.6(a)所示。圖中,ag為數(shù)字或字符顯示段,h段為小數(shù)點(diǎn)顯示,通過ag為7個(gè)發(fā)光段的不同組合,可以顯示
14、09和AF共16個(gè)數(shù)字和字母。例如,當(dāng)a、b、g、e、d段亮?xí)r,顯示數(shù)字“2”,當(dāng)a、f、e、g段亮?xí)r,則顯示字母“F”。LED可以分為共陰極和共陽極兩種結(jié)構(gòu),如圖2.6(b)和(c)所示。其中圖(b)為共陰極結(jié)構(gòu)。即把8個(gè)發(fā)光二極管陰極連在一起。這時(shí)如果需要點(diǎn)亮ag中的任何一盞燈,則只需要在相應(yīng)端輸入高電平即可;輸入低電平則截止。比如我們現(xiàn)在要顯示數(shù)字“3”,則只要在對應(yīng)的a、b、c、d、g段送入高電平,在其他端送入低電平即可,點(diǎn)亮為“3”。圖(c)為共陽極結(jié)構(gòu)。其顯示端輸入低電平有效,高電平截止。 (a)引腳分布圖 (b)共陰LED (c)共陽LED圖2.6八段LED顯示塊表2-1列出了共
15、陽極與共陰極LED顯示器顯示數(shù)字、字母與顯示代碼之間的對應(yīng)關(guān)系。表2-1顯示器顯示數(shù)字、字母與顯示代碼之間的對應(yīng)關(guān)系顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03FHC087FH80H106HF996FH90H25BHA4A77H88H34FHB0B7CH83H466H99HC39HC656DH92HD5EHA1H67DH82HE79H86H707HF8F71H8EH2、LED顯示器顯示方式點(diǎn)亮LED顯示器有兩種方式:一是靜態(tài)顯示;二是動(dòng)態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止。如圖2.7所示為4位靜態(tài)LED顯示器電路。該電路每一位可單
16、獨(dú)顯示。只要在要顯示的那位的段選線上保持段選碼電平,該位就能保持顯示相應(yīng)的顯示字符。這種電路的優(yōu)點(diǎn)是:在同一瞬間可以顯示不同的字符;但缺點(diǎn)就是占用端口資源較多。從圖2.8可以看出,每位LED顯示器需單獨(dú)占用8根端口線,也就是說需要占用單片機(jī)的1個(gè)端口,而對于MCS51單片機(jī)而言,端口資源是比較少的。因而,在顯示的數(shù)據(jù)位較多時(shí)往往不采用此種設(shè)計(jì)方法,而是采用動(dòng)態(tài)顯示方式。所謂動(dòng)態(tài)顯示,就是將要顯示的多位LED顯示器采用一個(gè)8位的段選端口,然后采用動(dòng)態(tài)掃描方式一位一位地輪流點(diǎn)亮各位顯示器。如圖2.8所示為4位LED動(dòng)態(tài)顯示電路。圖2.7 4位靜態(tài)LED顯示器電路圖2.8 4位動(dòng)態(tài)LED顯示器電路在
17、此電路中,單片機(jī)的P1口用于控制4位LED的段選碼;P2口的P2.0P2.3用于控制4位LED位選碼。由于所有的段選碼連在一起,所以同一瞬間只能顯示同一種字符。但如果要顯示不同字符,則要借助位選口來控制。(如果LED為共陰,則P2.0P2.3輸出高電平,為共陽則P2.0P2.3輸出為低電平。)例如,現(xiàn)在要顯示5678四個(gè)數(shù)字,則首先應(yīng)該將“5”的顯示代碼(共陰LED的顯示代碼為6DH,共陽LED的顯示代碼為92H)由P1.0送出。然后P2.0P2.3輸出相應(yīng)位碼(共陰LED時(shí)P2.0P2.3輸出1000,共陽LED時(shí)P2.0P2.3輸出0111)時(shí),則可以看到在數(shù)碼管1上的顯示數(shù)字“5”。再將
18、顯示的數(shù)字“5”延時(shí)510ms,以造成視覺暫留效果;同時(shí)代碼由P1.0送出。用同樣的方法將其余3個(gè)數(shù)字“678”送數(shù)碼管2、3、4顯示,最后則可以在4位LED上看到“5678”四個(gè)數(shù)字。為了使顯示效果穩(wěn)定,可以使每個(gè)數(shù)碼管顯示的數(shù)字不斷重復(fù),當(dāng)重復(fù)頻率達(dá)到一定程度時(shí),加之人眼視覺暫留作用,便可以看到相當(dāng)穩(wěn)定的“5678”四個(gè)數(shù)字。表2-2為模擬以上顯示的過程表(以共陰LED設(shè)置顯示代碼,共陽與此相反。)表2-2 4位動(dòng)態(tài)LED掃描顯示狀態(tài)段選碼P1.7至P1.0段選碼P2.3至P2.0LED顯示數(shù)碼管1數(shù)碼管2數(shù)碼管3數(shù)碼管46DH01H7DH02H07H04H7FH08H3、LED顯示器接口
19、實(shí)例 實(shí)例1:用LED數(shù)碼管顯示數(shù)字“6”本例用LED數(shù)碼管顯示數(shù)字“6”,接口電路如圖2.9所示(采用共陽極數(shù)碼管)。實(shí)現(xiàn)方法:圖2.9中數(shù)碼的電源由單片機(jī)P2.0引腳控制,當(dāng)P2.0為低電平時(shí)數(shù)碼管被點(diǎn)亮,然后由P0控制數(shù)碼管顯示的數(shù)字,根據(jù)表21輸出數(shù)字”6”。圖2.9數(shù)碼與單片機(jī)的接口電路程序設(shè)計(jì)如下:/實(shí)例1:用LED數(shù)碼管顯示數(shù)字“6”#include<reg51.h> / 包含51單片機(jī)寄存器定義的頭文件void main(void) P2=0xfe; /P2.0引腳輸出低電平,數(shù)碼顯示器接通電源準(zhǔn)備點(diǎn)亮 P0=0x82; /讓P0口輸出數(shù)字"5"
20、的段碼92H實(shí)例2:用4位數(shù)碼管靜態(tài)顯示“1234”實(shí)現(xiàn)方法:圖2.10為4位靜態(tài)顯示電路,在該電路中每一個(gè)數(shù)碼管占用1個(gè)單片機(jī)并行端口,因而可以同時(shí)顯示不同的數(shù)字,但這種方式由于過多地占用了單片機(jī)端口資源,故在實(shí)際設(shè)計(jì)中不實(shí)用,特別是顯示數(shù)位數(shù)多時(shí),不采用該種方式,而是采用動(dòng)態(tài)方式實(shí)現(xiàn)。 圖2.10 4位數(shù)碼管靜態(tài)顯示電路程序設(shè)計(jì)如下:/實(shí)例2:靜態(tài)顯示數(shù)字“1234”#include<reg51.h> /包含51單片機(jī)寄存器定義的頭文件/*函數(shù)功能:主函數(shù)*/void main(void) P0=0x6d; /將數(shù)字5的段碼送P0口 P1=0x7d; /將數(shù)字6的段碼送P1口 P2=0x07; /將數(shù)字5的段碼送P2口 P3=0x7f; /將數(shù)字6的段碼送P3口 while(1) /無限循環(huán),防止程序跑飛 ; 實(shí)例3:用4位數(shù)碼管動(dòng)態(tài)顯示“1234”實(shí)現(xiàn)方法:上例雖然實(shí)現(xiàn)同時(shí)顯示不同數(shù)字的功能,但浪費(fèi)端口資源嚴(yán)重,故在實(shí)現(xiàn)多位同時(shí)顯示不同數(shù)字時(shí)多采用如圖2.11所示的動(dòng)態(tài)顯示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版代理采購協(xié)議免責(zé)
- 成都醫(yī)學(xué)院《病原生物與免疫學(xué)Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都信息工程大學(xué)《會(huì)展策劃管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都文理學(xué)院《非物質(zhì)文化遺產(chǎn)設(shè)計(jì)與推廣》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都理工大學(xué)工程技術(shù)學(xué)院《產(chǎn)品開發(fā)與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 自動(dòng)閥門施工方案模板
- 成都錦城學(xué)院《植物生理學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都工業(yè)職業(yè)技術(shù)學(xué)院《景觀設(shè)計(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都工業(yè)學(xué)院《國文經(jīng)典》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都工貿(mào)職業(yè)技術(shù)學(xué)院《建設(shè)工程造價(jià)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 煤礦塌陷治理土地復(fù)墾主要問題和政策措施
- 中國聯(lián)通MPLS VPN業(yè)務(wù)開通測試報(bào)告
- 中國風(fēng)鎏金年終總結(jié)PPT模板
- 年產(chǎn)萬噸丁二烯畢業(yè)設(shè)計(jì)
- 醫(yī)學(xué)課件-檢驗(yàn)科質(zhì)量控制教學(xué)課件
- 高中化學(xué)必修二教學(xué)進(jìn)度表
- T-CAAMM 8-2018 動(dòng)力換檔拖拉機(jī) 通用技術(shù)條件
- 收款賬戶確認(rèn)書
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標(biāo)志
- 修復(fù)學(xué)全口義齒
- 機(jī)械設(shè)備租賃合同范本簡單版(9篇)
評論
0/150
提交評論