版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、於處杯壌丈學(xué)機(jī)器人實(shí)訓(xùn)總結(jié)學(xué) 院:專(zhuān)業(yè)班級(jí): 姓名學(xué)號(hào):指導(dǎo)教師: 2013年7月為期一周的機(jī)器人實(shí)訓(xùn)轉(zhuǎn)眼就過(guò)去了,個(gè)人認(rèn)為這是我上大學(xué)以來(lái)參加的最有意思的 一次課程設(shè)計(jì)了,在實(shí)訓(xùn)期間,同學(xué)們親自動(dòng)手組裝機(jī)器人小車(chē)并通過(guò)修改調(diào)試程序使自 己的小車(chē)完成要求的任務(wù),將平時(shí)學(xué)習(xí)的 c語(yǔ)言和單片機(jī)知識(shí)運(yùn)用到了實(shí)際操作中,極大 地調(diào)動(dòng)了我們學(xué)習(xí)的積極性并提高了動(dòng)手能力,是我們受益匪淺!任務(wù)一:組裝小車(chē)并完成基本調(diào)試實(shí)訓(xùn)第一天我們的主要任務(wù)便是將實(shí)訓(xùn)機(jī)器人小車(chē)按要求組裝好,這看似簡(jiǎn)單的任務(wù) 是極其需要耐心與細(xì)致的,每一個(gè)螺絲都要擰緊,每一個(gè)電子元件都要安裝于指定位置, 特別要注意左右輪的接線,如果反接將會(huì)
2、使小車(chē)反向運(yùn)行。經(jīng)過(guò)半小時(shí)的摸索,我們的小 車(chē)終于成形,但當(dāng)給它錄入一個(gè)前行程序時(shí),小車(chē)竟然莫名其妙的在原地打轉(zhuǎn),我們仔細(xì) 査閱了實(shí)訓(xùn)指導(dǎo)書(shū),才發(fā)現(xiàn)問(wèn)題所在,原來(lái),每一個(gè)新組裝的機(jī)器人都需要進(jìn)行調(diào)零檢測(cè) 才能保證其運(yùn)行的準(zhǔn)確,調(diào)零程序如下:# include #includeint main(void)uart_Init();printf(HThe LED connected to P l_0 is blinking!nH);while (1);Pl_0=l;delay_nus(1500);Pl_0=0;delay_nus(20000);將程序錄入小車(chē)并運(yùn)行,旋轉(zhuǎn)車(chē)輪旁的旋鈕直至車(chē)輪停轉(zhuǎn)便達(dá)到
3、了調(diào)零的目的。接下來(lái),我們便要完成實(shí)訓(xùn)要求的第一個(gè)程序:控制小車(chē)LED燈的亮滅。通過(guò)參考指導(dǎo)書(shū)的已有程序,我們比較順利的完成了該任務(wù),任務(wù)程序如下:(在試驗(yàn)中需要注意LED燈的正負(fù)極)# include #includeint main(void)uart_Init();printf(HThe LED connected to P l_0 is blinking!nn);while (1)Pl_0=0;Pl_l = l;delay_nms(500);Pl_0=l;Pl_l=0;delay_nms(500);任務(wù)二:機(jī)器人觸覺(jué)導(dǎo)航該任務(wù)要求機(jī)器人碰到障礙物時(shí),接觸開(kāi)關(guān)會(huì)有所察覺(jué),通過(guò)編程讓機(jī)器人
4、避開(kāi)障礙 物。在安裝胡須時(shí),需要注意胡須距傳感立柱既不能太遠(yuǎn)也不能太近,太遠(yuǎn)會(huì)導(dǎo)致機(jī)器人 碰到障礙物后反應(yīng)過(guò)慢,太近則會(huì)使機(jī)器人在前方?jīng)]有障礙物的情況下進(jìn)行避障操作,影 響小車(chē)正常行進(jìn)。胡須機(jī)器人避障程序如下:# include #includeint Pl_4state(void)/ 獲取 Pl_4 的狀態(tài),右胡須re turn (P l&OxlO)? 1:0;int P2_3state(void)/ 獲取 P2_3 的狀態(tài),左胡須return (P2&0x08)? 1:0;void Forward (void)Pl_l = l;delay_nus(1700);Pl_l=0;Pl_0=l;d
5、elay_nus(1300);Pl_0=0;delay_nms(20);void Left_Turn(void)int i;for(i=l ;iv 二 26;i+)Pl_l = l; delay_nus(1300);Pl_l=0;Pl_0=l; delay_nus(1300);Pl_0=0; delay_nms(20);void Right_Turn(void)int i;for(i=l ;iv=26;i+)Pl_l = l; delay_nus(1700);Pl_l=0;Pl_0=l; delay_nus(1700);Pl_0=0; delay_nms(20);void Backward(v
6、oid)int i;fbr(i=l ;iv=65;i+)Pl_l = l; delay_nus(1300);Pl_l=0;Pl_0=l; delay_nus(1700);Pl_0=0; delay_nms(20);int main(void) uart_Init();printfi(nProgram Running!nn);while (1)向后 向左 向左if(P l_4sta te ()=0)&(P 2_3sta te ()=0)Backward(); /Left_Turn();/Left_Turn();/else if(P 1_4state()=0)Backward();/ 向后 Lef
7、t_Turn();/ 向左 else if(P2_3state()=0)Backward();/ 向后Right_Turn();/ 向右elseForward();/ 向前任務(wù)三:機(jī)器人紅外線導(dǎo)航任務(wù)二觸須接觸導(dǎo)航是依靠接觸變形來(lái)探測(cè)物體,而本任務(wù)是依靠紅外線探測(cè)機(jī)器人前進(jìn)路線,然后確定何時(shí)有光線從被探測(cè)物體反射回來(lái),通過(guò)檢測(cè)反射回來(lái)的紅外光就可 以確定前方是否有物體。在本次任務(wù)中,我們需要使用三極管9013 ,這是因?yàn)镃51的IO驅(qū)動(dòng)能力較弱,這里我們加入三極管使其工作在開(kāi)關(guān)狀態(tài)。三極管是一種控制元件,主要用來(lái)控制電流大小,簡(jiǎn)單地說(shuō),是用小電流去控制大電流。紅外導(dǎo)航避障程序如下:#inclu
8、de#include#includeP3_5 /Pl 3#define LeftIR Pl_2 / #define RightIR#define LeftLaunch 左邊紅外接收連接到Pl_2 右邊紅外接收連接到P3_5/左邊紅外發(fā)射連接到Pl_3#define RightLaunchP3_6 /右邊紅外發(fā)射連接到P3_6void IRLaunch(unsigned char IR)int counter;if(IR二二L)fbr(counter=0;counte r38;counter4-+)LeftLaunch=l;_nop_(); _nop_(); _nop_(); _nop_();
9、_nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); LeftLaunch=O;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();if(IR二二R)fbr(counte r=0;counter38;counte r+4-)/右邊發(fā)身寸RightLaunch=l;_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
10、 _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RightLaunch=O;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();void Forward (void)/向前行走子程序Pl_l = l;delay_nus(1700);Pl_l=0;Pl_0=l;delay_nus(1300);Pl_0=0;delay_nms(20);void Left_Turn
11、(void)/左轉(zhuǎn)子程序int i;for( i=l ;iv二26;i+)Pl_l = l;delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus(1300);P1_O=O; deIay_nms(20);void Right_Turn(void)/右轉(zhuǎn)子程序int i;fbr( i=l ;iv二26;i+)Pl_l = l;delay_nus(1700);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0; delay_nms(20);void Backward(void)/向后行走子程序int i;for( i=l ;iv二65;i+)Pl_l
12、= l;delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0; delay_nms(20);int main(void)int irDetectLeft,iiDetectRight;uart_Init();printfCProgram Running !nn);while (1)IRLaunch(R);/右邊發(fā)射irDe tectRight = RightIR;/右邊接收IRLaunchCL1);/左邊發(fā)射irDe tec tLe ft = LeftIR;/左邊接收兩邊同時(shí)接收到紅外線if(irDe tec tLe ft=0)&(irDe t
13、ectRight=O)/Backward();Left_Turn();Left_Turn();只有左邊接收到紅外線只有右邊接收到紅外線else if(irDetectLeft=O)/Backward(); Right_Turn();else if(irDetectRight=O)/Backward();Left_Turn();elseForward();任務(wù)四:尾隨小車(chē)該任務(wù)的設(shè)計(jì)線路與任務(wù)三相同,故完成較為簡(jiǎn)單,試驗(yàn)程序如下:# include #include左邊紅外接收連接到Pl_2 右邊紅外接收連接到P3_5 左邊紅外發(fā)射連接到Pl_3 右邊紅外發(fā)射連接到P3_6#include#de
14、fine LeftIR Pl_2 /#define RightIR P3_5/#define LeftLaunch P 1_3/#define RightLaunch P3_6/ void IRLaunch(unsigned char IR)int counter;if(IR二二L)左邊發(fā)射for(counter=0;counte r38;counter+)LeftLaunch=l;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
15、 LeftLaunch=O;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();if(IR二二RJ右邊發(fā)射fdr(counte r=0;counter38;counte r+)RightLaunch=l;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RightLaun
16、ch=O;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();int main(void)int puIseLeft,pulseRight;int irDetectLeft,iiDetectRight;uart_Init();printfCProgram Running !nn);doIRLaunchfR1);/右邊發(fā)射iiDe tectRight = RightIR;/右邊接收IRLaunchCL);/左邊發(fā)射iiDetectLef
17、t = Le ftIR;/左邊接收if(irDe tec tLe ft=O)&(irDe tectRight=O)/ pulseLeft=1300; pulseRight=1700;else if(iiDetectLeft=0)&(ii-DetectRight= 1)/ pulseLeft=1700; pulseRight=1700;else if(irDetectLeft= 1 )&(irDetectRight=0)/ pulseLeft=1300;向后退右轉(zhuǎn)左轉(zhuǎn)pulseRight=1300;else / 前進(jìn)pulseLeft=1700; pulseRight=1300;Pl_l = l
18、;de la y_nus (pulse Left);Pl_l=0;P1_O=1;de la y_nus (pulse Right);P1_O=O;delay_nms(20);while (1);任務(wù)五:機(jī)器人的距離檢測(cè)用同樣的IRLED/探測(cè)電路檢測(cè)距離,高靈敏度的頻率可以探測(cè)遠(yuǎn)距離的物體,低靈敏度的頻率可以探測(cè)距離較近的物體。這使得距離探測(cè)就簡(jiǎn)單了。選擇5個(gè)不同頻率,從最低靈敏度到最高靈敏度進(jìn)行測(cè)試,依賴(lài)于探測(cè)器不能再檢測(cè)到物體的紅外線頻率,就可以推斷物體的大概位置。測(cè)試掃描頻率程序如下:#include #include #define LeftIR/#define RightIR#def
19、ine LeftLaunchPl_2P3_5Pl 3/#define RightLaunch P3_6左邊紅外接受連接到Pl_2右邊紅外接收連接到P3_5左邊紅外發(fā)射連接到Pl_3右邊紅外發(fā)射連接到P3_6左邊的距離右邊的距離unsigned int time;int leftdistance;/int rightdistance;/ int distanceLeft, kDetectLeft;/int distanceRight,irDetectRight;unsigned int frequency5= 29370,31230,33050,35700,38460;void timer_in
20、it(void)E=0x82;開(kāi)總中斷EA,允許定時(shí)器0中斷ETOTMOD 1=0X01;定時(shí)器0工作在模式1: 16位定時(shí)器模式void FreqOut(unsigned int Freq)time = 256 (500000/Freq); /THO = OXFF;TLO = time;TRO = 1;delay_nus(8OO);TRO = 0;根據(jù)頻率計(jì)算初值/高八位設(shè)FF低八位根據(jù)公式計(jì)算啟動(dòng)定時(shí)器/延時(shí)停止定時(shí)器void TimerO_Interrupt(void) interrupt 1LeftLaunch = -LeftLaunch;/RightLaunch= RightLaun
21、ch;THO = OXFF;TLO = time;void Get_lr_Distances()unsigned int count;leftdis tance = 0;/rightdis tance = 0;for(count = 0;countv5;count+)取反/重新設(shè)值初始化左邊的距離初始化右邊的距離Fre qOut(frequency count);iiDetectLeft = LeftIR; /左邊接收/irDetectRight = RightIR;/ 右邊接收/printf(nf=%dnn,time);p rin tf( irDe te c tLe ft = % dnu,
22、irDe te c tLe ft);/printf(M irDetectRight = %dn H,irDetectRight);if(irDetectLeft = 1)leftdis tance+4-;/if (irDe tectRight = 1)/rightdis tance+;int main(void)uart_Init();timer_init();printf(Progam Running!n);printfCFREQENCY ETECTEDnn);while (1)Get_lr_Distances();printfCdistanee Left = %dnn,leftdis ta
23、nce);/printf(n distanceRight=%dnn,rightdistance);printfC*nn);delay_nms(1000);在進(jìn)行串口調(diào)試時(shí),應(yīng)注意串口的接線位置,安裝符合自己電腦的串口調(diào)試助手。任務(wù)六:尋線搬運(yùn)機(jī)器人可能是前幾個(gè)任務(wù)完成太輕松的原因,是我們對(duì)實(shí)訓(xùn)產(chǎn)生了懈怠的想法,但最后的任 務(wù)再一次提醒了我需要學(xué)習(xí)的東西還有很多,永遠(yuǎn)都不能驕傲自滿。經(jīng)過(guò)一天多的調(diào)試,在機(jī)器人的運(yùn)行和編程中,出現(xiàn)了以下幾方面的問(wèn)題:一、轉(zhuǎn)彎出現(xiàn)問(wèn)題。在一些路口中轉(zhuǎn)彎出現(xiàn)了問(wèn)題。所以提倡用自定義轉(zhuǎn)彎,提高成 功率。二、在運(yùn)行機(jī)器人前要檢查螺絲,檢查機(jī)器人的性能是否良好,以免在運(yùn)行過(guò)
24、程中發(fā) 生意夕卜。三、遇到錯(cuò)誤時(shí),要耐心,細(xì)心檢查問(wèn)題,分析問(wèn)題,要互相討論出解決方案。四、電池的電量對(duì)小車(chē)運(yùn)行影響極大最好選用質(zhì)量較好的電池。五、伺服電機(jī)的角度沒(méi)有調(diào)好,導(dǎo)致機(jī)器人在運(yùn)行過(guò)程中影響程序的運(yùn)行。六、熟悉自己的機(jī)器人,了解一些運(yùn)行、編程的小技巧。 尋線搬運(yùn)機(jī)器人編程如下:#include #include # include #define uint unsigned int #define uchar unsigned char uchar QTIState ;void Time l_init(void)EA = 1;/硬件串口使用定時(shí)器1,供AT89S52與PC機(jī)通信使用定時(shí)
25、器1方式2.8位自動(dòng)重裝模TMOD 1= 0x20;/式SCON = 0x50;/模式1, 8位數(shù)據(jù)TH1 = OxFD;/波特率為9600TL1 = OxFD;TRI = 1;/起動(dòng)定時(shí)器TI=1;void Forward (void)/ 向前行走子程序 Pl_l = l;delay_nus(1700);Pl_l=0;Pl_0=l; delay_nus(1300);Pl_0=0;delay_nms(20);void Pivot_Left(void)/左轉(zhuǎn)子程序Pl_l = l;delay_nus(1500);Pl_l=0;Pl_0=l;delay_nus(1350);Pl_0=0;delay
26、_nms(20);void Pivot_Right(void)/右轉(zhuǎn)子程序Pl_l = l;delay_nus(1650);P1_1=O;P1_O=1;delay_nus(1500);P1_O=O;delay_nms(20);void Rotate_right(void)Pl_l = l;delay_nus(1650);Pl_l=0;Pl_0=l;delay_nus(1650);Pl_0=0;delay_nms(20);void Rotate_Left(void)Pl_l = l;delay_nus(1350);Pl_l=0;Pl_0=l;delay_nus(1350);Pl_0=0;dela
27、y_nms(20);void Backward(void) / 向后行走子程序Pl_l = l;delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0;delay_nms(20);void Get_QTI_S tate (void)QTIState = P2&0x0e ;void Follow_Line (void)Ge t_QTI_S ta te (); switch (QTIS tate)case 0x04 : Forward();break;case 0x06 : Pivot_Right();break;case 0x02 : Rotat
28、e_right();break;case 0x0c : Pivot_Left();break; case 0x08 : Rotate_Left();break;/*case OxOe : Forward();break;*/default : break;void main(void)int counter;Time l_init();printfCrogram run ok!);for(counter=0;counte r350;counter+4-)/ Follow_Line(); /*for(counter=0;counte r20 ;c ou nte r+)/Forward();*/fdr(counter=0;counte r3 3 ;c ou n te r+4-)/ Pivot_Left();
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 潤(rùn)發(fā)油相關(guān)項(xiàng)目建議書(shū)
- 電動(dòng)螺旋切菜機(jī)市場(chǎng)環(huán)境與對(duì)策分析
- 牙粉項(xiàng)目評(píng)價(jià)分析報(bào)告
- 皮制下頦帶項(xiàng)目評(píng)價(jià)分析報(bào)告
- 滑板槳項(xiàng)目評(píng)價(jià)分析報(bào)告
- 百葉窗用非電動(dòng)除塵刷項(xiàng)目可行性實(shí)施報(bào)告
- 成都師范學(xué)院《中國(guó)歷史要籍介紹及選讀》2021-2022學(xué)年第一學(xué)期期末試卷
- 成都師范學(xué)院《學(xué)前教育組織與管理》2022-2023學(xué)年第一學(xué)期期末試卷
- 烹飪漏斗相關(guān)項(xiàng)目建議書(shū)
- 電焊工業(yè)機(jī)器人市場(chǎng)環(huán)境與對(duì)策分析
- 一例登革熱合并凝血功能障礙患者的個(gè)案護(hù)理20190-7
- 小兒重癥肺炎課件
- 社會(huì)調(diào)查研究與方法自測(cè)題
- 劍橋國(guó)際少兒英語(yǔ)4文本(Word)
- 平面構(gòu)成與式設(shè)計(jì)PPT課件
- 《自律主題班會(huì)》
- 中央廣播電視大學(xué) 北京工業(yè)大學(xué)
- 常用肝功能指標(biāo)解讀
- 汽車(chē)維修公司章程模板
- 環(huán)保、安全、消防、職業(yè)衛(wèi)生專(zhuān)項(xiàng)驗(yàn)收的內(nèi)容
- 起重吊裝作業(yè)PPT課件
評(píng)論
0/150
提交評(píng)論