




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、機(jī)器人實(shí)訓(xùn)總結(jié)文件編碼(GHTUUITIDGGBKTPOIUWUUI8968)機(jī)器人實(shí)訓(xùn)總結(jié)學(xué) 院:專業(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ī)器人小車并通過(guò) 修改調(diào)試程序使自己的小車完成要求的任務(wù),將平時(shí)學(xué)習(xí)的C語(yǔ)言和單片機(jī)知識(shí) 運(yùn)用到了實(shí)際操作中,極大地調(diào)動(dòng)了我們學(xué)習(xí)的積極性并提高了動(dòng)手能力,是我 們受益匪淺!任務(wù)一:組裝小車并完成基本調(diào)試實(shí)訓(xùn)第一天我們的主要任務(wù)便是將實(shí)訓(xùn)機(jī)器人小車按要求組裝好,這看似簡(jiǎn) 單的任務(wù)是極其需要耐心與細(xì)致的,每一個(gè)螺絲都要擰緊,每一個(gè)電子
2、元件都要 安裝于指定位置,特別要注意左右輪的接線,如果反接將會(huì)使小年反向運(yùn)行。經(jīng) 過(guò)半小時(shí)的摸索,我們的小車終于成形,但當(dāng)給它錄入一個(gè)前行程序時(shí),小車竟 然莫名其妙的在原地打轉(zhuǎn),我們仔細(xì)查閱了實(shí)訓(xùn)指導(dǎo)書,才發(fā)現(xiàn)問題所在,原 來(lái),每一個(gè)新組裝的機(jī)器人都需要進(jìn)行調(diào)零檢測(cè)才能保證其運(yùn)行的準(zhǔn)確,調(diào)零程 序如下:#in cludeOttincludeO int main(void)uart_Init ();printf("The LED connected to Pl_0 is blinking!n"); while(1);Pl_0=l;delay_nus(1500);Pl_0=0;
3、delay_nus(20000);將程斥錄入小車并運(yùn)行,旋轉(zhuǎn)車輪旁的旋鈕直至車輪停轉(zhuǎn)便達(dá)到了調(diào)零的目 的。接下來(lái),我們便要完成實(shí)訓(xùn)要求的第一個(gè)程字:控制小車LED燈的亮滅。通 過(guò)參考指導(dǎo)書的已有程斥,我們比較順利的完成了該任務(wù),任務(wù)程序如下:(在 試驗(yàn)中需要注意LED燈的正負(fù)極)ttincludeO ftincludeO int main(void)uart_Init ();printf("The LED connected to Pl_0 is blinking!n"); while(l)Pl_0=0;delay_nras (500);Pl_0=l;Pl_l=0;dela
4、y_nras (500);任務(wù)二:機(jī)器人觸覺導(dǎo)航該任務(wù)要求機(jī)器人碰到障礙物時(shí),接觸開關(guān)會(huì)有所察覺,通過(guò)編程讓機(jī)器人 避開障礙物。在安裝胡須時(shí),需要注意胡須距傳感立柱既不能太遠(yuǎn)也不能太近, 太遠(yuǎn)會(huì)導(dǎo)致機(jī)器人碰到障礙物后反應(yīng)過(guò)慢,太近則會(huì)使機(jī)器人在前方?jīng)]有障礙物 的情況下進(jìn)行避障操作,影響小車正常行進(jìn)。胡須機(jī)器人避障程丿宇如下:#i ncludeOttincludeOint Pl_4state (void) /獲取 Pl_4 的狀態(tài),右胡須return (Pl&OxlO)1:0;int P2_3state(void)/獲取 P2_3 的狀態(tài),左胡須return (P2&0x0S)1
5、:0;void Forward(void)Pl_l=l:delay_nus(1700);Pl_l=0:Pl_0=l;delay_nus (1300);Pl_0=0;delay_nras (20);void Left Turn (void)int i;for (i=l; i<=26; i+)delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus (1300);Pl_0=0; delay_nras (20);void Right_Turn(void)int i;for(i=l;i<=26;i+)Pl_l=l;delay_nus(1700);Pl_l=0:Pl_0
6、=l;delay_nus(1700);Pl_0=0; delay_nras (20);void Backward(void)int i;for(i=l;i<=65:i+) delay_nus(1300);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0; delay_nras (20);int main(void)uart_Init ();printf ("Program Running! n");whiled)辻(Pl_4state()=0)&&(P2_3state()=0)Backward () ; /向后 Left_Tur
7、n();/ 向左 Left_Turn() ;/向左else if(Pl_4state()=0)Backward () ;/向后Left_Turn() ;/向左else 辻(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的10驅(qū)動(dòng)能力較弱,這里我們加入三極管使
8、其工作在開關(guān)狀態(tài)。三極管是一種控制元件,主要用來(lái)控制電流大小,簡(jiǎn)單地說(shuō),是用小電流去控制大電流。紅外導(dǎo)航避障程序如下:ttincludeO ttincludeO ftincludeOdefine LeftIRPl_2/左邊紅外接收連接到Pl_2define RightIRP3_5/右邊紅外接收連接到P3 5#define LeftLaunchPl_3/左邊紅外發(fā)射連接到Pl_3ftdefine RightLaunchP3_6/右邊紅外發(fā)射連接到P3 6void IRLaunch(unsignedchar IR)int counter;if(IR= L')for (counter=0;c
9、ounter<38;counter+)LeftLaunch=l;_nop_() ; _nop_(); _nop_() ; _nop_(); LeftLaunch=0; _nop_() ; _nop_(); _nop_() ; _nop_();_nop_ 0 : _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_0;_nop_ 0;_nop_();_nop_():_nop_ 0;_nop_0;_nop_();_nop_():辻(IR= R')for (counter=0; counter<38; c
10、ounter+) /右邊發(fā)射RightLaunch=l; _nop_() ; _nop_(); _nop_() ; _nop_();RightLaunch=0: _nop_() ; _nop_(); _nop_() ; _nop_ 0 :_nop_(); _nop_();_nop_ 0 : _nop_():_nop_(); _nop_(): _nop_ 0 : _nop_();_nop_0;_nop_();_nop_ 0;_nop_0;_nop_():_nop_ 0;_nop_():_nop_();void Forward (void) /向前彳丁走子程序delay_nus(1700);Pl_
11、l=0;Pl_0=l; delay_nus (1300);Pl_0=0;delay_nnis (20):void Left_Turn (void) /左轉(zhuǎn)子程序int i;for( i=l;i=26;i+)delay_nus(1300);Pl_l=0;Pl_0=l; delay_nus (1300);Pl_0=0;delay_nras (20);void Right_Turn(void) /右轉(zhuǎn)子程序int i;for( i=l;i=26;i+)delay_nus(1700);Pl_l=0;Pl_0=l;delay_nus(1700);Pl_0=0; delay_nnis (20);void
12、Backward (void) /向后行走子程丿字int 1;for ( 1=1;i=65;i+)delay_nus(1300);Pl_l=0;Pl_0=l; delay_nus(1700);Pl_0=0; delay_nras (20);int main(void)int irDetectLeft, irDetectRight; uart_Init ();printf ("Program Running! n"); while(l)IRLaunch (' R') ; /右邊發(fā)射 irDetectRight = RightIR;/ 右邊接收IRLaunch
13、(' L) ; /左邊發(fā)射irDetectLeft = LeftIR:/左邊接收辻(irDetectLef t=0) && (irDetectRight=O) /兩邊同時(shí)接收到紅外線Backward ():Left_Turn();Left_Turn();else辻(irDetectLeft=O)/只有左邊接收到紅外線Backward ();Right_Turn ();else辻(irDetectRight=O) /只有右邊接收到紅外線Backward (): Left_Turn();elseForward 0;任務(wù)四:尾隨小車 該任務(wù)的設(shè)計(jì)線路與任務(wù)三相同,故完成較為簡(jiǎn)
14、單,試驗(yàn)程序如下:ttincludeO ftincludeO #1 ncludeO int main(void)LeftIRPl_2RightIRP3_5LeftLaunchPl_3RightLaunchP3_6#define #define #define ftdefine/左邊紅外接收連接到Pl_2/右邊紅外接收連接到P3_5/左邊紅外發(fā)射連接到Pl_3 /右邊紅外發(fā)射連接到P3_6void IRLaunch(unsigned charIR)int counter; if(IR= L')/左邊發(fā)射for (counter=0; counterOS; counter+)LeftLau
15、nch=l;_nop_(); _nop_() : _nop_(); _nop_(); _nop_() : _nop_ (); LeftLaunch=O;_nop_ 0 ; _nop_() : _nop_(); _nop_ 0 ; _nop_() : _nop_();_nop_(); _iiop_();_nop_(); _iiop_();_nop_():_nop_();_nop_();_nop_();_nop_ 0_nop_ 0_nop_ 0; _nop_();辻(IR= R')/右邊發(fā)射for (counter=0;counter<38;counter+)RightLaunch=
16、l;_nop_() : _nop_ 0 : _nop_(); _nop_(); _nop_(); _nop_(); RightLaunch=O;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_ 0;_nop_ 0;_nop_0;_nop_ 0;_nop_(); _nop_();_nop_(); _nop_():_nop_() : _nop_(); _nop_(); _nop_();int pulseLeft,pulseRight;int irDetectLeft, irDetectRight; uart_Init ();pri
17、ntf("Program Running!n");doIRLaunchR') ; /右邊發(fā)射irDetectRight = RightIR:/右邊接收IRLaunchC L') ; /左邊發(fā)射 irDetectLeft = LeftIR;/左邊接收 if (irDetectLef t=0) && (irDetectRight=O) / 向后退pulseLeft=1300; pulseRight=1700;else 辻(irDetectLeft=O)&& (irDetectRight=l) /右轉(zhuǎn)pulseLeft=1700:
18、pulseRight=1700;else 辻(irDetectLeft=l)&& (irDetectRight=O) /左轉(zhuǎn)pulseLeft=1300; pulseRight=1300;else /前進(jìn)pulseLeft=1700; pulseRight=1300;delay_nus(pulseLeft);P1_1=O;P1_O=1;delay_nus(pulseRight);P1_O=O;delay_nms (20);while 仃);任務(wù)五:機(jī)器人的距離檢測(cè)用同樣的IR LED/探測(cè)電路檢測(cè)距離,高靈敏度的頻率可以探測(cè)遠(yuǎn)距離的物 體,低靈敏度的頻率可以探測(cè)距離較近的物體。
19、這使得距離探測(cè)就簡(jiǎn)單了。選擇5 個(gè)不同頻率,從最低靈敏度到最高靈敏度進(jìn)行測(cè)試,依賴于探測(cè)器不能再檢測(cè)到 物體的紅外線頻率,就可以推斷物體的大概位置。測(cè)試掃描頻率程序如下:include <>include <>define LeftIRPl_2/左邊紅外接受連接到Pl_2/ttdefine RightIR P3_5/右邊紅外接收連接到P3_5#define LeftLaunchPl_3/左邊紅外發(fā)射連接到Pl_3int main (void)/ttdefine RightLaunch P3_6/右邊紅外發(fā)射連接到P3_6unsigned int time;int lef
20、tdistance;/左邊的距離/int rightdistance; /右邊的距離int distanceLeft, irDetectLeft;/int distanceRight, irDetectRight;unsigned int frequency5 = 29370,31230, 33050, 35700, 38460:void timer_init(void)IE=0x82;/開總中斷EA,允許定時(shí)器0中斷ETOTMOD 1= 0X01;/定時(shí)器0 L?作在模式1: 16位定時(shí)器模式void FreqOut(unsigned int Freq)time = 256 - (50000
21、0/Freq) ; /根據(jù)頻率計(jì)算初值THO = OXFF:高八位設(shè)FFTLO = time:/低八位根據(jù)公式計(jì)算TRO = 1/啟動(dòng)定時(shí)器delay_nus(SOO);/延時(shí)TRO = 0;/停止定時(shí)器void Timer0_Interrupt(void) interrupt 1Left Launch = LeftLaunch;/取反 /RightLaunch= " RightLaunch;重新設(shè)值THO = OXFF:TLO = time:void Get_lr_Distances()unsigned int count:leftdistance = 0;/初始化左邊的距離/ri
22、ghtdistance = 0:/初始化右邊的距離for (count = 0:count<5:count+)FreqOut (frequency count)irDetectLeft = LeftIR:/左邊接收/irDetectRight = RightIR: /右邊接收 /printf C"f=%dn" time);printf (irDetectLeft = %dn", irDetectLeft);/printfirDetectRight = %dn ",irDetectRight);if (irDetectLeft = 1)leftdis
23、tance+;/if (irDetectRight = 1)/rightdistance+;uart_Init ();printf ("Progam Running! n);printfCFREQENCY ETECTED'n");while(l)Get_lr_Distances (): printf("distanceLeft = %dn", leftdistance);/printf distanceRight=%dn, rightdistance);n"):printfC delay_nras (1000);在進(jìn)行串口調(diào)試時(shí),應(yīng)注意
24、串口的接線位置,安裝符合白己電腦的串口調(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)了以下兒方面的問題:一、轉(zhuǎn)彎出現(xiàn)問題。在一些路口中轉(zhuǎn)彎出現(xiàn)了問題。所以提倡用自定義轉(zhuǎn) 彎,提高成功率。二. 在運(yùn)行機(jī)器人前要檢查螺絲,檢查機(jī)器人的性能是否良好,以免在運(yùn)行 過(guò)程中發(fā)生意外。三、遇到錯(cuò)誤時(shí),要耐心,細(xì)心檢查問題,分析問題,要互相討論出解決方 案。四. 電池的電量對(duì)小車運(yùn)行影響極大最好選用質(zhì)量較好的電池。五. 伺服電機(jī)的角度沒有調(diào)好
25、,導(dǎo)致機(jī)器人在運(yùn)行過(guò)程中影響程序的運(yùn)行。人熟悉自己的機(jī)器人,了解一些運(yùn)行、編程的小技巧。尋線搬運(yùn)機(jī)器人編程如下:include <>include <>#1 ncludeO#define uint unsigned int #define uchar unsigned char uchar QTIState ;void Timel_init(void)void Pivot_Right (void) /右轉(zhuǎn)子程斥EA =TM0DSCON1;/硬件串口使用定時(shí)器1,供AT89S52與PC機(jī)通信使用 1= 0x20;=0x50;TH1 = OxFD:TLl = OxFD:TR
26、I = 1;TI = 1;/定時(shí)器1方式位自動(dòng)重裝模式/模式1, 8位數(shù)據(jù)/波特率為9600/起動(dòng)定時(shí)器void Forward (void) /向前彳丁走子程序delay_nus(1700);Pl_l=0;Pl_0=l;delay_nus (1300);Pl_0=0; delay_nras (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_nras (20);delay_nus(1650);Pl_l=0;Pl_0=l; delay_nus
27、(1500);Pl_0=0; delay_nras (20);void Rotate_right(void)delay_nus(1650);Pl_l=0;Pl_0=l;delay_nus (1650);Pl_0=0;delay_nras (20);void Rotate_Left(void)delay_nus(1350);Pl_l=0;Pl_0=l; delay_nus(1350);Pl_0=0;delay_nras (20);void Backward (void) /向后行走子程序Pl_l=l: delay_nus(1300);Pl_l=0:Pl_0=l:delay_nus(1700);P
28、l_0=0: delay_nms (20);QTIState = P2&0x0e ;void Follow_Line(void)void Get_QTI_State(void)Get_QTI_State(); switch(QTIState)case 0x04 : Forward(): break;case 0x06 : Pivot_Right(): break;case 0x02 : Rotate_right(); break;Pivot_Left 0: break;Rotate_Left (); break;:Forward 0; break;*/ break:case 0x0c
29、:case 0x08 :/*case OxOedefault :void main(void)int counter;Timel_init ():run ok!");printf("programfor (counter=0; counter<350; count er+) / / 尋線Follow_Line ();/ *for (counter=0; counter<20; counter+) /直走Forward 0;*/for (counter=0; counter<33; counter+) / / 左轉(zhuǎn) 90Pivot_Left 0;for (counter=0; counter<65; counter+) / / 直走Forward 0:for (counter=0;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度預(yù)制構(gòu)件鋼筋加工與安裝合同
- 二零二五年度養(yǎng)老機(jī)構(gòu)租賃服務(wù)合同
- 2025年度餐飲管理合伙企業(yè)合作協(xié)議書
- 二零二五年度兒童娛樂中心店面租賃協(xié)議模板
- 二零二五年度酒店客房設(shè)施設(shè)備保養(yǎng)與維修合同
- 2025年度網(wǎng)絡(luò)安全技術(shù)顧問聘請(qǐng)合同范本
- 二零二五年度牧草種植基地牧草購(gòu)買與種植保險(xiǎn)協(xié)議
- 2025年度汽修廠汽車維修行業(yè)技術(shù)標(biāo)準(zhǔn)制定與實(shí)施勞務(wù)合同
- 2025年貨車掛靠業(yè)務(wù)委托管理合同
- 二零二五年度酒店客房承包經(jīng)營(yíng)及收益分成協(xié)議
- 2023北京高三一模語(yǔ)文匯編:非連續(xù)性文本閱讀
- 初中物理核心素養(yǎng)培養(yǎng)
- 保安公司招聘筆試題及答案
- 介紹錢三強(qiáng)的
- 農(nóng)業(yè)資源與環(huán)境經(jīng)濟(jì)學(xué)
- JCT2110-2012 室內(nèi)空氣離子濃度測(cè)試方法
- 文印服務(wù)投標(biāo)方案(技術(shù)方案)
- 經(jīng)濟(jì)地理學(xué)智慧樹知到課后章節(jié)答案2023年下江西師范大學(xué)
- 小學(xué)主題班會(huì)【安全使用和維護(hù)家用電器】
- (完整版)收據(jù)電子版
- 學(xué)術(shù)英語(yǔ)智慧樹知到課后章節(jié)答案2023年下南開大學(xué)
評(píng)論
0/150
提交評(píng)論