




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
開放性實驗報告智能循跡小車姓名: 黨樹林 學(xué)號: 06124143 專業(yè):電氣工程及其自動化 指導(dǎo)老師: 趙勇 時間:2013.9.17-2013.12.02 15智能循跡小車目錄1.系統(tǒng)功能介紹22.設(shè)計要求與任務(wù)23.系統(tǒng)硬件設(shè)計23.1舵機(jī)模塊23.2數(shù)碼管計數(shù)33.3循跡接收模塊33.4避障模塊33.5 單片機(jī)硬件最小系統(tǒng)34.實驗演示結(jié)果45.實驗總結(jié)4附錄一41.系統(tǒng)功能介紹本設(shè)計采取以單片機(jī)為最小系統(tǒng),小車內(nèi)部電路結(jié)構(gòu)由舵機(jī)模塊,數(shù)碼管計數(shù)模塊,遙控接收模塊,循跡模塊、避障這五大部分組成。舵機(jī)模塊主要是利用脈沖信號控制舵機(jī)進(jìn)行360度旋轉(zhuǎn)。數(shù)碼管計數(shù)模塊通過以秒為單位進(jìn)行計數(shù)顯示。遙控接收模塊通過遙控控制小車進(jìn)行各個方位的行進(jìn)。循跡模塊主要是小車可以自主沿著黑色的軌跡行進(jìn)。避障模塊當(dāng)檢測到障礙物之后主動改變原來方向,避開障礙物后繼續(xù)前進(jìn)。2.設(shè)計要求與任務(wù)熟悉51系列單片機(jī)的使用原理及操作方法。掌握基本電路設(shè)計技巧和c程序設(shè)計。掌握數(shù)碼管、舵機(jī)等器材的基本使用方法并了解其原理。設(shè)計并靈活調(diào)試小車的各方面行進(jìn)功能。3.系統(tǒng)硬件設(shè)計3.1舵機(jī)模塊pwm信號進(jìn)行控制,獲得一個直流偏置壓。該輸出的pwm波以驅(qū)動電機(jī)正反轉(zhuǎn)。利用占空比的變化改變舵機(jī)的位置。給它提供一定的脈寬,它的輸出軸就會保持在一個相對應(yīng)的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個另外寬度的脈沖信號它才會改變輸出角度到新的對應(yīng)的位置上。舵機(jī)內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期20ms,寬度1.5ms的基準(zhǔn)信號,有一個比較器,將外加信號與基準(zhǔn)信號相比較,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動信號。3.2數(shù)碼管計數(shù)數(shù)碼管分為共陰極和共陽極兩種類型,其實共陰極就是將八個led的陰極連在一起,讓其接地,這樣給任何一個led的另一端高電平,它便能點亮。而共陽極就是將八個led的陽極連在一起。3.3循跡接收模塊迅即模塊主要通過st188光電傳感器,當(dāng)沒有物體反射紅外線時,ce之間截止,無電流流過,輸出電壓為電源電壓,高電平。當(dāng)有物體反射紅外線時,be飽和導(dǎo)通ce也就導(dǎo)通了,輸出端就相當(dāng)于接地。輸出電壓為低電平。設(shè)置檢測電路,當(dāng)檢測到黑顯示輸出低電平,否則輸出高電平且控制舵機(jī)轉(zhuǎn)向,熟悉掌握st188的引腳功能,設(shè)計電路3.4避障模塊檢測距離可以根據(jù)要求進(jìn)行調(diào)節(jié)。該傳感器具有探測距離遠(yuǎn)、受可見光干擾小、價格便宜、易于裝配、使用方便等特點,可以廣泛應(yīng)用于機(jī)器人避障、流水線計件等眾多場合。前方無障礙輸出高電平(1),有障礙輸出口(黃色)電平會從高電平變成低電平(0),工作原理已經(jīng)標(biāo)在圖上了。背面圖有一個電位器可以調(diào)節(jié)障礙的檢測距離。3.5 單片機(jī)硬件最小系統(tǒng)試驗的控制器件是at89c51系列單片機(jī),它在整個實驗中起了核心作用,采用內(nèi)部時鐘方式,給它的引腳外接晶振,這樣就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時鐘脈沖信號,給晶振的每個角又接了一個30pf的電容,讓晶振快速起振并可以達(dá)到12m穩(wěn)定頻率,給單片機(jī)的rst口按鍵開關(guān)使之構(gòu)成復(fù)位電路。4.實驗演示結(jié)果當(dāng)開啟循跡時,小車放在跑道上,打開電源后,沿著跑道行進(jìn),在轉(zhuǎn)彎處能根據(jù)跑道拐彎等動作前進(jìn)。開啟遙控時,用遙控指揮小車的各個方向運動及停止行走過程。加上避障后,在距離障礙物20厘米左右小車會自動改變方向,避開障礙物后再次沿著原來的方向前進(jìn),從而達(dá)到集循跡、遙控、避障為一體的智能小車。5.實驗總結(jié)這次實驗完成了循跡遙控避障的功能,我從開始的單片機(jī)c程序及相關(guān)軟件學(xué)習(xí)到后來的電路設(shè)計,在關(guān)于實驗的學(xué)習(xí)的過程中,獲得一定的實驗知識儲備。在實驗中掌握了一定的知識,也遇到了問題:比如避障模塊,當(dāng)遇到障礙物時,小車回多轉(zhuǎn)動360度后才能沿著原來的方向繼續(xù)前進(jìn),我認(rèn)為應(yīng)該是c程序定義之間有沖突,導(dǎo)致運行時發(fā)生混淆,從而使顯示發(fā)生錯誤。經(jīng)過反復(fù)試驗和努力到目前為止也沒能解決這個問題,所以只能在以后的時間繼續(xù)進(jìn)行思索和改進(jìn)。在實際實驗中才發(fā)現(xiàn),理論和實際有一定的差距,所以在實際中要不斷理解深入,只有進(jìn)行實際的操作才能切實掌握知識的精華和作用所在,并鞏固自己的理論知識,在解決問題中深化自己。附錄一循跡遙控代碼#include #define uchar unsigned char#define uint unsigned intvoid delay1(int ms);void delay2(uchar x);sbit left=p10;/左舵機(jī)控制信號sbit p1_1=p11; /工作指示燈 sbit right=p12;/右舵機(jī)控制信號sbit left_s=p13;/左傳感器信號sbit middle_s=p14;/中傳感器信號sbit right_s=p15;/右傳感器信號sbit eye=p35;/紅外接近傳感器信號sbit in1=p24;sbit in2=p25;sbit in3=p26;sbit ge_w = p22;sbit shi_w = p21;sbit bai_w = p23; uint a=2700,c=0;/舵機(jī)信號變量uint count=0,flag = 0, ge , shi, bai,num;/計時變量uchar ircom7;uchar code number=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f; /數(shù)碼管編碼表void delay(uint a)uchar x;uint y;for(y=a;y0;y-)for(x=110;x0;x-);void delay(void)/舵機(jī)控制延時函數(shù) uint t=2222; while(t-) void time1() interrupt 3/定時器t1中斷 th1=(65536-50000)/256; tl1=(65536-50000)%256;/50ms flag+;if(flag=20)flag = 0;num+;if(num=1000)num = 0;ge = num%10;shi = num/10%10;bai = num/100; void display(uchar ge,uchar shi,uchar bai)/數(shù)碼管顯示函數(shù)shi_w = 0;p0 = numbershi;delay(5);/p0 = 0x00;shi_w = 1;bai_w = 0;p0 = numberbai;delay(5);/p0 = 0x00;bai_w = 1;ge_w = 0;p0 = numberge;delay(5);/p0 = 0x00;ge_w = 1;void timer0(void) interrupt 1 /定時器t0中斷l(xiāng)eft=0; right=0; c=10000-c; th0=-(c/256);tl0=-(c%256); c=a; void servo(uint b,uint d)/舵機(jī)控制函數(shù)left=b;right=d;c=a;th0=-(a/256); tl0=-(a%256); et0=1;/定時器t0中斷允許tr0=1;/定時器t0啟pt0=0;/定時器t0低優(yōu)級void go_forward(void)/前進(jìn)函數(shù)servo(1,1);delay();et0=0;tr0=0;void go_left(void)/左轉(zhuǎn)函數(shù)servo(0,1); delay(); et0=0;tr0=0;void go_right(void) /右轉(zhuǎn)函數(shù) servo(1,0); delay();et0=0;tr0=0;void stop(void)/停止函數(shù) servo(0,0);delay(); et0=0;tr0=0;void turn_head(uint l,uint r)/轉(zhuǎn)向函數(shù),參數(shù)為(1,0),左轉(zhuǎn);為(0,1),右轉(zhuǎn) uint aa=360; while(aa-)servo(r,l);delay();et0=0; tr0=0;display(ge,shi,bai); if (middle_s=0)break; void main(void)/主函數(shù) uint i=0; p1_1=0;/工作狀態(tài)顯示in1=1;in2=1;in3=1; ea=1; et1=1; tr1=1; pt1=1; tmod=0x11; /定時器工作方式為1 /ie = 0x81; /允許總中斷中斷,使能 int0 外部中斷 /tcon = 0x01; /觸發(fā)方式為脈沖負(fù)邊沿觸發(fā) while(1) display(ge,shi,bai); /調(diào)用顯示函數(shù),各判斷中也或有調(diào)用以保持顯示的連續(xù)性 if (eye=0)/檢測到障礙物,轉(zhuǎn)向turn_head(1,0); else if (left_s=0&middle_s=0&right_s=0) /遇到障礙物回來后檢測到節(jié)點,轉(zhuǎn)向 i=6; while (i-)go_forward();turn_head(0,1); /* else if (left_s1=1&right_s1=0)/前進(jìn)途中遇到轉(zhuǎn)向節(jié)點,轉(zhuǎn)向 turn_head(0,1); */ else if (middle_s=0)|(in1=1&in2=0&in3=1)/前進(jìn) go_forward(); else if (left_s=0&right_s=1)|(in1=0&in2=1&in3=1)/左轉(zhuǎn) go_left(); else if (left_s=1&right_s=0)|(in1=1&in2=1&in3=0)/右轉(zhuǎn) go_right(); else if(left_s=1&middle_s=1&right_s=1)|(in1=1&in2=1&in3=0)/停止 go_forward();else if(in1=1&in2=1&in3=1)stop();et0=0;/以下為狀態(tài)清零 tr0=0; et1=0; tr1=0; ea=0; while (1)/顯示系統(tǒng)用時 display(ge,shi,bai); 2數(shù)碼管代碼#include #include #define nop() _nop_() /* 定義空指令 */#define uchar unsigned char#define uint unsigned int#define delaynop(); _nop_();_nop_();_nop_();_nop_();void delay(uchar x); /x*0.14msvoid delay1(int ms);void beep(void);sbit irin = p32; /紅外接收器數(shù)據(jù)線uchar ircom7;sbit in1=p24;sbit in2=p25;sbit in3=p26; void turn_left(void)in1=0;in2=1;in3=1;void turn_right(void)in1=1;in2=1;in3=0; void go(void)in1=1;in2=0;in3=1;void stop(void)in1=1;in2=1;in3=1; unsigned char y0;/*/main() ie = 0x81; /允許總中斷中斷,使能 int0 外部中斷 tcon = 0x01; /觸發(fā)方式為脈沖負(fù)邊沿觸發(fā) irin=1; /i/o口初始化 delay1(10); /延時 in1=1;in2=1;in3=1; while(1); /end main/*/void ir_in(void) interrupt 0 /外部中斷服務(wù)程序 unsigned char j,k,n=0; ex0 = 0; delay(15); if (irin=1) ex0 =1; return; /確認(rèn)ir信號出現(xiàn) while (!irin) /等ir變?yōu)楦唠娖剑^9ms的前導(dǎo)低電平信號。 delay(1); for (j=0;j4;j+) /收集四組數(shù)據(jù) for (k=0;k=30) ex0=1; return; /0.14ms計數(shù)過長自動離開。 /高電平計數(shù)完畢 ircomj=ircomj 1; /數(shù)據(jù)最高位補(bǔ)0 if (n=8) ircomj = ircomj | 0x80; /數(shù)據(jù)最高位補(bǔ)1 n=0; /end for k /end for j if (ircom2!=ircom3) ex0=1; return; ircom5=ircom2 & 0x0f; /取鍵碼的低四位 ircom6=ircom2 4; /右移4次,高四位變?yōu)榈退奈?if(ircom59) ircom5=ircom5+0x37;/十進(jìn)制轉(zhuǎn)ascall的值 else/ascall碼0到9對應(yīng)的十六進(jìn)制是0x30-0x39 a-f對應(yīng)的0x41-0x46 ircom5=ircom5+0x30; if(ircom69) ircom6=ircom6+0x37; else ircom6=ircom6+0x30; switch(ircom2) case 0x45: ; break; case 0x46: ; break; case 0x47: ; break; case 0x44: ; break; case 0x40: ; break; case 0x43: ; break; case 0x07: ; break; case 0x15: ; break; case 0x09: ; break; if (ircom2=0x45) turn_left(); delay(1); if (ircom2=0x46) go();
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)分析與商業(yè)智能的關(guān)系的試題及答案
- 軟件設(shè)計師考試筆試技巧試題及答案
- 小學(xué)生道德判斷能力的培養(yǎng)計劃
- 企業(yè)靈活創(chuàng)新與戰(zhàn)略風(fēng)險轉(zhuǎn)變的實質(zhì)考核試題及答案
- 幼兒園創(chuàng)意手工活動計劃
- 財務(wù)報表中隱含的信息分析計劃
- 福建省南平市劍津片區(qū)2025屆八下數(shù)學(xué)期末監(jiān)測模擬試題含解析
- 學(xué)生自我管理與反思計劃
- 2024年臺州溫嶺市箬橫鎮(zhèn)中心衛(wèi)生院招聘真題
- 2024年陜西工運學(xué)院輔導(dǎo)員考試真題
- GB 5585.1-1985電工用銅、鋁及其合金母線第1部分:一般規(guī)定
- 等級保護(hù)定級指南(第十二期)講解課件
- 接觸網(wǎng)設(shè)備檢測課件
- 銅綠假單胞菌下呼吸道感染專家共識課件
- 故都的秋公開一等獎?wù)n件
- 土石壩填筑的施工方法
- 【高中化學(xué)會考】山西省普通高中畢業(yè)會考化學(xué)試題樣題
- 2023高考地理高三一輪復(fù)習(xí)教學(xué)計劃和備考策略
- 2022年虹口區(qū)事業(yè)單位公開招聘面試考官練習(xí)試題附答案
- Java程序設(shè)計項目教程(第二版)教學(xué)課件匯總完整版電子教案
- 小學(xué)音樂說課萬能模板
評論
0/150
提交評論