機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書(新版)9112_第1頁
機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書(新版)9112_第2頁
機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書(新版)9112_第3頁
機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書(新版)9112_第4頁
機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書(新版)9112_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書鄭嫦娥編寫北京林業(yè)大學(xué)工學(xué)院機(jī)械工程系

機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書目錄實(shí)驗(yàn)一搭建機(jī)器蠕蟲.............................................................................................................2實(shí)驗(yàn)二機(jī)器人.................................................................................7傳感-控制-決策實(shí)驗(yàn)1機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)一搭建機(jī)器蠕蟲【實(shí)驗(yàn)?zāi)康摹浚?)了解機(jī)器人的組成,(2)通過搭建機(jī)器蠕蟲,熟悉機(jī)器人機(jī)械、控制、驅(qū)動(dòng)、傳感等各模塊基本構(gòu)成。(3)通過控制機(jī)器蠕蟲運(yùn)動(dòng),熟悉MRcommander的使用?!緦?shí)驗(yàn)設(shè)備】博創(chuàng)機(jī)器人套件:A、B箱【實(shí)驗(yàn)內(nèi)容】搭建機(jī)器蠕蟲,并控制其運(yùn)動(dòng)?!緦?shí)驗(yàn)步驟】(1)首先利用博創(chuàng)套件,搭建由4個(gè)完全相同的關(guān)節(jié)串聯(lián)的機(jī)器蠕蟲。圖1機(jī)器蠕蟲的一個(gè)關(guān)節(jié)圖24個(gè)關(guān)節(jié)串聯(lián)的機(jī)器蠕蟲(2)熟悉MultiFLEX控制卡的各種接口,以舊卡(體積小)為例:A:電源接口:+5~6VB:控制板總線2機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書C:4路電機(jī)接口,最大允許電流2A,電機(jī)紅線+,白線-。連接時(shí),白線朝電路板外側(cè)。D:RS-232串口,5口串口線。插頭上▲與電路板上NC對(duì)齊。E:7路模擬量輸入AD0~AD6,允許輸入0~5V模擬量,主要用于傳感器信號(hào)采集。電路板外側(cè)是地(對(duì)應(yīng)“-”號(hào)),中間是電源(對(duì)應(yīng)“+”號(hào)),內(nèi)側(cè)是信號(hào)輸入線。F:12路PWM舵機(jī)控制PW0~PW11,分成了4組。舵機(jī)引線是三芯杜邦頭,棕色線是地,橙色線是電源,黃色線是信號(hào)線。棕色線在電路板外側(cè)。G:16路I/O口,在MRcommander中可以被配置為輸入或者輸出。如果被配置為輸入,主要用于采集開關(guān)、數(shù)字式傳感器的狀態(tài)。如果被配置為輸出,高電平為控制低電平為0,可以用于驅(qū)動(dòng)LED、微型電機(jī)等。其中靠近電路板外側(cè)器電源電壓,是地,中間是電源,內(nèi)側(cè)是信號(hào)線。H:AVR單片機(jī)在線編程接口??刂破魃鲜褂肁VRATMega128微處理器,具備在線編程功能。交編叉譯好的二進(jìn)制文件可以通過該接口下載到處理器內(nèi)置的FLASH中運(yùn)行。I:控制卡功能選擇撥碼開關(guān),1)第1、2路ON,第3、4路OFF:通過RS232與上第1、2路OFF,第3、4路ON:通過標(biāo)準(zhǔn)總線與上位機(jī)通訊。2)第5、6路用來選擇波特率。第6位第5位波特率共8路。第一路撥到ON為接通。位機(jī)通訊;00110101115200384001920096003)第7路用于選擇開機(jī)狀態(tài)。4)第8路保留。本卡使用:87654321保留OFFOFFONOFFOFFONON(3)連接線1)連接舵機(jī)線:棕色地線在電路板外側(cè)。舵機(jī)次從1到4號(hào),或者從4號(hào)從1號(hào)。2)連接下載線:并口下載線與電路板的H區(qū)的5針插頭連接。注意方向。3)連接電源線:上電后,控制卡上若正常,紅黃兩色指示燈會(huì)亮。纜:順序必須按機(jī)體的頭尾順序依圖3機(jī)器蠕蟲的初始狀態(tài)(4)為機(jī)器人編寫程序和我們自己編寫的C語言程序有關(guān)的只有Public.h,Usertask.h,USERTASK.C,其他都是系統(tǒng)文件。Public.h文件作用:為方便編程進(jìn)行的預(yù)定義,以及將實(shí)際電路與程序聯(lián)系進(jìn)行的一些3機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書預(yù)操作。Usertask.h文件作現(xiàn)對(duì)機(jī)器人的控制:12路舵機(jī)IO口的設(shè)置函數(shù),AD口的讀取函數(shù)燈。這些函數(shù)的定義以及代碼在其他幾個(gè)系統(tǒng)文件里。USERTASK.C文件作rc_moto_control(array_rc):12路舵機(jī)控制函數(shù)array_rc舵機(jī)控制數(shù)組,數(shù)組長度24,可控制12路舵機(jī)標(biāo)角度值,array_rc[奇數(shù)]舵機(jī)運(yùn)動(dòng)速度值。array_rc[0]=90+20,目標(biāo)角度為正20度,中位為0度(對(duì)應(yīng)數(shù)值90)。取值范圍為0~180度。舵機(jī)運(yùn)動(dòng)速度取值范圍0~255。dc_moto-control(array_dc):4路電機(jī)用:控制卡功能函數(shù)的外部聲明,通過這些聲明可以在USERTASK.C中調(diào)用這些外部函數(shù),實(shí)的控制函數(shù),4路電機(jī)的控制函數(shù),用:自己編寫程序?qū)崿F(xiàn)各種動(dòng)作。i.。array_rc[偶數(shù)]為舵機(jī)目ii.控制函數(shù),可控制4路電機(jī)array_dc電機(jī)控制數(shù)組,數(shù)組長度8。能控制4路電機(jī)。array_dc[偶數(shù)]為電機(jī)轉(zhuǎn)速,array_dc[奇數(shù)]為電機(jī)轉(zhuǎn)動(dòng)時(shí)間。如:array_dc=0,0為正轉(zhuǎn)最大轉(zhuǎn)速,128代表電機(jī)停轉(zhuǎn),254為反轉(zhuǎn)最大轉(zhuǎn)速,范圍不能超過0~254。轉(zhuǎn)動(dòng)時(shí)間的單位0.1s。以舵機(jī)控制例程:#include"Public.h"#include"Usertask.h"voiduser_task(void){uint8array_rc[23]={0};//舵機(jī)控制數(shù)組長度為24,可控制12路舵機(jī),舵機(jī)運(yùn)動(dòng)函數(shù)要求array_rc[偶數(shù)]為舵機(jī)目標(biāo)角度值,array_rc[奇數(shù)]為舵機(jī)運(yùn)動(dòng)速度值array_rc[0]=90+20;//舵機(jī)1,中位為0度(對(duì)應(yīng)數(shù)值90),目標(biāo)角度+20度。取值范圍0-180,超過此范圍程序會(huì)丟棄此數(shù)據(jù)array_rc[1]=170;//舵機(jī)1,速度為170。取值范圍0-255,超過范圍程序會(huì)丟棄此數(shù)據(jù)array_rc[2]=90-20;//舵機(jī)2目標(biāo)角度設(shè)置array_rc[3]=170;//舵機(jī)2轉(zhuǎn)動(dòng)速度設(shè)置array_rc[4]=90-20;//舵機(jī)3array_rc[5]=170;array_rc[6]=90+20;//舵機(jī)4array_rc[7]=170;rc_moto_control(array_rc);//將舵機(jī)運(yùn)動(dòng)信息交給舵機(jī)運(yùn)動(dòng)函數(shù),實(shí)現(xiàn)舵機(jī)運(yùn)動(dòng)delay(50);//延時(shí)50*20MS=1S,給舵機(jī)提供反應(yīng)時(shí)間,此反應(yīng)時(shí)間應(yīng)大于舵機(jī)實(shí)際運(yùn)動(dòng)所需時(shí)間array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90;array_rc[7]=170;4機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書rc_moto_control(array_rc);delay(50);}要控制舵機(jī)1(即連接到pw0的舵機(jī)),那么只需給數(shù)組元素array_rc[0]和array_rc[1]賦予相應(yīng)的數(shù)值90+20、170即可,170代表著舵機(jī)的速度,90是舵機(jī)的中位角度數(shù),那么90+20意味著舵機(jī)將向正方向以170的速度轉(zhuǎn)過20度。最后將數(shù)組返回給舵機(jī)控制函數(shù),即rc_moto_control(array_rc)。這樣控制卡,就知道我們想要實(shí)現(xiàn)的對(duì)于舵機(jī)的如何控制了。(5)編譯程序在完成上面對(duì)Usertask.c的修改編輯后,保存文件,按F7對(duì)整個(gè)工程進(jìn)行編譯(快捷按鍵,如上圖右側(cè)紅筆圈出所示),生成*.hex文件(8.4.1編寫C程序?qū)崿F(xiàn)對(duì)12路舵機(jī)的控制的default文件夾內(nèi))。然后用并口下載線將電腦的并口與MultiFLEX控制卡的程序下載口連接(注意GND與控制卡I的區(qū)GND相配),然后給控制卡通電、,并且將前面生成的MultiFLEX.hex文件燒寫至MultiFLEX控制卡中。匹(6)下載程序打開PonyProg2000軟件,其界面如下所示:5機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書連接完成后給控制卡通上電源(程序燒寫過程中不允許斷電,請(qǐng)確保電源的可靠性)。然后在剛才打開的PonyProg2000中點(diǎn)擊“File——》OpenDeviceFile”或者點(diǎn)擊圖標(biāo)打開我們前面生成的*.hex文件(編寫C程序?qū)崿F(xiàn)對(duì)12路舵機(jī)的控制的應(yīng)該在“8.4.1default”文件夾中),然后點(diǎn)擊“Command——》WriteAll”或者點(diǎn)擊圖標(biāo),然后程序就會(huì)開始燒寫至控制卡里面??吹匠霈F(xiàn)“Writesuccessful”時(shí),便說明我們的程序已經(jīng)下載成功,這是4路舵機(jī)開6機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書始呈周期性運(yùn)動(dòng),其形狀宛如一條游動(dòng)的小蛇。實(shí)驗(yàn)二機(jī)器人傳感-控制-決策實(shí)驗(yàn)【實(shí)驗(yàn)?zāi)康摹浚?)了解典型機(jī)器人的組成,(2)通過搭建機(jī)器人,熟悉機(jī)器人構(gòu)型設(shè)計(jì)。(3)通過使用傳感器,熟悉機(jī)器人常用傳感器。(4)通過控制機(jī)器人完成特定任務(wù),掌握利用傳感器感知環(huán)境信息,并控制機(jī)器人。【實(shí)驗(yàn)設(shè)備】博創(chuàng)機(jī)器人套件:A、B箱【實(shí)驗(yàn)內(nèi)容】搭建典型機(jī)器人(機(jī)器人構(gòu)型,從以下選一:四自由度機(jī)械臂、簡易四足機(jī)器人、挖掘作業(yè)機(jī)器人、仿生蛇形機(jī)器人、全向運(yùn)動(dòng)作業(yè)機(jī)器人、仿生機(jī)器狗或者設(shè)計(jì)自己的機(jī)器人構(gòu)型),并控制機(jī)器人根據(jù)傳感器反饋信息完成一定任務(wù)?!緦?shí)驗(yàn)步驟】(1)首先利用博創(chuàng)套件,搭建機(jī)器人構(gòu)型,如四自由度機(jī)械臂。圖1(2)安裝傳感器。(3)編寫、調(diào)試、下載。8.5.1自主避障機(jī)器人實(shí)驗(yàn)環(huán)境:7機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書已嵌入WinAVR的AVRStudio4.12實(shí)驗(yàn)結(jié)果:開機(jī)后機(jī)器人會(huì)向前運(yùn)動(dòng),當(dāng)檢測(cè)到障礙物之后機(jī)器人會(huì)先后退一定距離,然后根據(jù)接收障礙物的傳感器不同采取不同的轉(zhuǎn)向,然后機(jī)器人繼續(xù)向前運(yùn)動(dòng),當(dāng)遇到障礙物之后再進(jìn)行判斷,如此循環(huán)。**************************************************************/#include"public.h"包含的頭文件,前面已經(jīng)提到#include"Usertask.h"voiduser_task(void){uint8array_dc[7]={0};//電機(jī)控制數(shù)組uint8array_rc[23]={0};//舵機(jī)控制數(shù)組uint16temp16;定義16位變量,用來保存?zhèn)鞲衅鞣祷氐臄?shù)值gpio_mode_set(0);//設(shè)置16位IO模式全為輸入,使用傳感器時(shí),必須將IO口設(shè)置為輸入,這樣單片機(jī)才能得到返回?cái)?shù)值temp16=read_gpio();//讀取16位IO信息至temp16if((temp16&0x0003)==3)//紅外傳感器均為高電平時(shí)(紅外傳感器檢測(cè)到?jīng)]有障礙時(shí)為輸出高電平即為1)此時(shí)電機(jī)轉(zhuǎn)動(dòng)5秒,(相當(dāng)于機(jī)器人直行){array_dc[0]=0;//電機(jī)1,正轉(zhuǎn)最大速度(0為正轉(zhuǎn)最大轉(zhuǎn)速,0xFE=254為轉(zhuǎn)反最大轉(zhuǎn)速,0x80=128代表電機(jī)停止)。范圍為0-254,超過此范圍程序會(huì)丟棄此數(shù)據(jù),電機(jī)控制數(shù)組,與舵機(jī)控制類似,偶數(shù)元素控制速度(包括正反方向)array_dc[1]=50;//電機(jī)1,50×0.1秒轉(zhuǎn)動(dòng)時(shí)間。范圍為0-255,超過此范圍程序會(huì)丟棄此數(shù)據(jù)奇數(shù)元素控制轉(zhuǎn)動(dòng)時(shí)間。array_dc[2]=0xFE;//電機(jī)2array_dc[3]=50;array_dc[4]=0;//電機(jī)3array_dc[5]=50;array_dc[6]=0xFE;//電機(jī)4array_dc[7]=50;dc_moto_control(array_dc);將數(shù)組命令返回給函數(shù),程序執(zhí)行到此時(shí),電機(jī)便開始執(zhí)行剛剛賦值的命令。}elseif(((temp16&0x0003)==2)||((temp16&0x0003)==0))//數(shù)字IO區(qū)(G區(qū))IO0口所接紅外傳感器為低電平(右紅外傳感器檢測(cè)到障礙)或者兩個(gè)傳感器均為低電平時(shí)(兩個(gè)傳感器都檢測(cè)到障礙)電機(jī)左,轉(zhuǎn)蜂鳴器發(fā)聲{beep_set(5);//蜂鳴器發(fā)聲0.5秒蜂鳴器控制函數(shù),直接調(diào)用,賦值即可//以最高速度后退array_dc[0]=0xFE;array_dc[1]=5;//0.5秒8機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書array_dc[2]=0;array_dc[3]=5;array_dc[4]=0xFE;array_dc[5]=5;array_dc[6]=0;array_dc[7]=5;dc_moto_control(array_dc);delay(30);//給電機(jī)反應(yīng)時(shí)間30×20MS=0.6s,此反應(yīng)時(shí)間應(yīng)大于電機(jī)實(shí)際運(yùn)動(dòng)時(shí)間//機(jī)器人轉(zhuǎn)向array_rc[0]=90+20;//舵機(jī)1,中位為0度(對(duì)應(yīng)數(shù)值90),目標(biāo)角度+20度。取值范圍0-180,超過此范圍程序會(huì)丟棄此數(shù)據(jù)array_rc[1]=170;//舵機(jī)1,速度為170。取值范圍0-255,超過此范圍程序會(huì)丟棄此數(shù)據(jù)array_rc[2]=90-20;//舵機(jī)2目標(biāo)角度設(shè)置array_rc[3]=170;//舵機(jī)2轉(zhuǎn)動(dòng)速度設(shè)置array_rc[4]=90-20;//舵機(jī)3array_rc[5]=170;array_rc[6]=90+20;//舵機(jī)4array_rc[7]=170;rc_moto_control(array_rc);delay(50);//延時(shí)50*20MS=1S,給舵機(jī)提供反應(yīng)時(shí)間,此反應(yīng)時(shí)間應(yīng)大于舵機(jī)實(shí)際運(yùn)動(dòng)所需時(shí)間array_dc[0]=0x80+55;//電機(jī)速度為+55array_dc[1]=10;array_dc[2]=0x80+55;array_dc[3]=10;array_dc[4]=0x80+55;array_dc[5]=10;array_dc[6]=0x80+55;array_dc[7]=10;dc_moto_control(array_dc);delay(50);//延時(shí)50*20MS=1S//機(jī)器人恢復(fù)直線運(yùn)動(dòng)array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90;array_rc[7]=170;9機(jī)器人技術(shù)實(shí)驗(yàn)指導(dǎo)書rc_moto_control(array_rc);delay(50);//延時(shí)50*20MS=1S,給舵機(jī)提供反應(yīng)時(shí)間,此反應(yīng)時(shí)間應(yīng)大于舵機(jī)實(shí)際運(yùn)動(dòng)所需時(shí)間}else//(右側(cè)紅外傳感器檢測(cè)到障礙)電機(jī)左轉(zhuǎn),蜂鳴器發(fā)聲{beep_set(5);//蜂鳴器發(fā)聲0.5秒array_dc[0]=0xFE;//后退0.5秒array_dc[1]=5;array_dc[2]=0;array_dc[3]=5;array_dc[4]=0xFE;array_dc[5]=5;array_dc[6]=0;array_dc[7]=5;dc_moto_control(array_dc);delay(30);//給電機(jī)反應(yīng)時(shí)間30×20MS=0.6sarray_rc[0]=90+20;//舵機(jī)1,中位為0度(對(duì)應(yīng)數(shù)值90),目標(biāo)角度+20度。取值范圍0-180,超過此范圍程序會(huì)丟棄此數(shù)據(jù)array_rc[1]=170;//舵機(jī)1,速度為170。取值范圍0-255,超過此范圍程序會(huì)丟棄此數(shù)據(jù)array_rc[2]=90-20;array_rc[3]=170;array_rc[4]=90-20;array_rc[5]=170;array_rc[6]=90+20;array_rc[7]=170;rc_moto_control(array_rc);//機(jī)器人轉(zhuǎn)向delay(50);//延時(shí)50*20MS=1S,給舵機(jī)提供反應(yīng)時(shí)間,此反應(yīng)時(shí)間應(yīng)大于舵機(jī)實(shí)際運(yùn)動(dòng)所需時(shí)間array_dc[0]=0x80-55;//電機(jī)速度-5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論