創意之星模塊化機器人試驗指導書試驗版_第1頁
創意之星模塊化機器人試驗指導書試驗版_第2頁
創意之星模塊化機器人試驗指導書試驗版_第3頁
創意之星模塊化機器人試驗指導書試驗版_第4頁
創意之星模塊化機器人試驗指導書試驗版_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、電子科技大學“創意之星”模塊化機器人實驗機械電子工程學院2010年3月實驗一MULTIFLEX控制卡編程實驗1實驗二多自由度串聯式機械手10實驗三簡易四足機器人15實驗四輪式機器人運動控制實驗19實驗五機器人傳感系統實驗24實驗六自主避障機器人實驗27實驗七追光的機器爬蟲37實驗八開放性實驗:設計自己的機器人48創意之星”模塊化機器人實驗實驗一MultiFLEX控制卡編程實驗實驗目的(1) 了解MultiFLEX控制卡的基本結構;(2) 了解WinAVR+AVRStudi編譯環境的使用;(3) 了解C語言環境下編寫控制程序,并編譯、下載到MultiFLEX控制器中執行的流程(4)熟悉關于AVR

2、單片機的io口有關的寄存器的概念、作用(5)理解函數gpio_mode_set(),write_gpio(),read_gpio()的定義,掌握其用法一一一一(6)熟悉并掌握利用2中的3個函數控制MultiFLEX控制卡的16路IO口實驗環境:UP-MRcommande6制軟件實驗器材:計算機1臺MultiFLEX控制卡1塊控制卡電源線1根用口下載線1根232電纜1根USB?專232電纜1根舵機4個舵機延長線4根實驗步驟1WinAVR以及AVRStudio軟件的安裝首先大家打開實驗指導書配套光盤,在“MultiFLEX控制卡AVRMCU開發資料”目錄下,打開“WinAVR文件夾,雙擊“WinA

3、VR20060421-install.exe”完成WinAVR的安裝;然后打開“AVRStudio”文件夾,根據文件夾里面的安裝說明進行AVRstudio的安裝,并將其升級到最新版本。注意:請先安裝WinAVR再安裝AVRStudio,這樣WinAVR才能自動嵌入到AVRStudio中。2用3AVRStudio建立一個工程首先打開我們剛剛安裝好的AVRStudio,會出現如下窗口:創意之星”模塊化機器人實驗點擊選框1中的按鈕可以新建一個工程,點擊選框2中的按鈕可以打開一個工程,選框3是最近你所打開的文件,你可以選中快速將其打開。在這里,我們點擊1(NewProject),會出現如下窗口:在此窗

4、口中我們可以設置關于新工程的一些基本信息。在選框1(ProjectType)中,第一項AtmelAVRAssembler指匯編工程文件,第二項AVRGC的建立后的文件為C語言工程文件,在此我們選擇AVRGCC如果沒有安裝WinAVR則此處不會出現AVRGC跳項)。在選框2中,我們可以確定工程名(Projectname以及初始文件名(Initialfile),在此我們不妨均取名為test。在選項框3中,我們可以確定工程所在的文件夾位置,在此我們不妨將路徑設為D:test。在選項卡2中如果選中Createfolder,則會在3中確定的文件夾中新建一個以工程名為文件夾名的文件夾,所有與該工程有關的文

5、件會放在此文件夾內;在選項卡2中選中Createinitialfile會生成一個初始.c文件,方便我們編寫程序。以上設定完成后我們點擊Next進行下一步設置,會彈出如下窗口:創意之星”模塊化機器人實驗在此窗口中我們可以設置一些關于計算機調試的一些信息。在選項框1之中我們設置程序調試平臺,在此我們選擇AVRSimulator。在選項框2中我們可以選擇單片機類型,你可以根據實際需要選擇,在此我們選擇ATmega128本實驗以創意之星控制板為平臺,所以選擇創意之星的控制核心以進行軟件模擬單片機的運行過程,但本書中不作介紹Finish,這樣一個新工程就初步建立了。然后會出現ATmega128AVRSt

6、udio可)。選擇完成后我們點擊如下窗口。其中選框1為菜單欄,選框2為工具欄,選框3為工程管理樹,選框4為程序編輯欄,選框5為編譯信息欄。作為我們的第一個代碼實驗,我們可在選框4中輸入如下程序:#include<avr/io.h>#defineBEEP_ONPORTG|=_BV(PG3)#defineBEEP_OFFPORTG&=_BV(PG3)intmain(void)創意之星”模塊化機器人實驗(inti,j;PORTG=0;DDRG=0xff;while(1)(for(i=0;i<0xFF;i+)for(j=0;j<0xFF;j+);BEEP_ON;for(

7、i=0;i<0xFF;i+)for(j=0;j<0xFF;j+);BEEP_OFF;會彈出如下窗口:“Project»ConfigurationOptions創意之星”模塊化機器人實驗在控制核心工作頻率(Frequency)一欄輸入14745600,由于創意之星采用的晶振是此頻率,故如此設置。其他選項均采用默認設置即可,然后點擊確定。保存文件,然后在菜單欄選擇“Build»Build"(或者按F7),如下圖所示:在編譯信息欄會出現相應的編譯信息,顯示是否有錯誤,其中顯示“Buildsucceededwith0Warnings”說明我們編譯正常通過,這時

8、,在我們當初設置的工程所在的文件夾的default文件夾"D:testtestdefault”里會出現很多新文件,這些都是程序編譯的結果,其中有個test.hex文件是程序燒寫文件,將這個文件經過燒錄軟件下載至MultiFLEX控制板后程序就能運行,至于如何燒寫我們將在后面進行介紹。3將*hex文件燒錄至MultiFLEX控制卡中首先我們要安裝燒寫軟件PonyProg2000,打開實驗指導書配套光盤,在MultiFLEX控制卡AVRMCU開發資料ponypro”目錄下,運行ponyprogV206f.exe,安裝完畢后運行,有兩個提示會出現,都選擇確認,最終正確運行的PonyProg

9、2000如下圖所示:首先我們應該對軟件進行總線時序校準,在Setup中選擇Calibration即可。然后進行下載方式設置,點擊“Setup»InterfaceSetup”創意之星”模塊化機器人實驗會出現如下窗口:由于“創意之星”配置的是并行下載線,所以我們應該選擇Parallel,在下12CBus&ite«fxoin女Btn16btMfiromI2CButSATI?xprORMier3Vm6wprofnMtcroWreOoepromSPIeeprofnAVRnrwroAT895mkroPICUtncroPICiSfmcroTrnScrtMptomAVRAutoAT

10、9051200AT9052313AT9QS?323AT90S2333AT90SZM3AT90544H鳥忖(總例AT9O54434AT9OS6S15拉選項中選擇AvrISPIZ0,如上留所丞"淇他選項按惘瞅設置,AT905e535不予更改,然后點擊“OK'完成設置然后我們進行目標芯片的選擇:點擊“Device»AVRmicrd',在彈出的選項框中選擇ATmega128,如下圖所示,這樣我們就完成了目標芯片的選擇。現在我們用并口下載線將電腦和MultiFLEX控制卡進行連接。下圖是“創意之星”提供的并口下載線以及其線序:創意之星”模塊化機器人實驗下圖是Multi

11、FLEX控制卡的功能區域圖,將下載線的5針插頭與其中的H區的5針插頭相連接,注意線序連接完成后給控制卡通上電源(程序燒寫過程中不允許斷電,請確保電源的可靠性)。然后在剛才打開的PonyProg2000中點擊“File»OpenDeviceFile'或者點擊圖標打開我們前面生成的test.hex文件(應該在“D:default”文件夾中),然后點擊“CommanWriteAll”或者點擊圖標,然后程序就會開始燒寫至控制卡里面。當PonyProg2000顯示燒寫成功時我們的第一個實驗程序就順利的燒寫進MultiFLEX控制卡中了,正常情況下我們會聽到控制卡蜂鳴器發出急促的“嘟嘟嘟

12、”的聲音,如果沒有任何現象請你檢查以上步驟是否按要求完成或者檢查下載線有沒有插反、控制卡是否正常供電,修改有問題的地方后再生成hex文件進行燒錄,直至蜂鳴器出現規則的嘟嘟聲為止。4編寫C程序實現對16路I/O口的控制I/O口(In/Out口)是數字電路的重要組成部分之一,通過I/O口,我們可以控制端口的電平變化,也可以對端口的電平信息進行讀取。在機器人人領域對I/O口的操作更是無處不在,那么針對創意之星的MultiFLEX控制卡我們怎么通過編寫c與程序對其I/O口進行操作呢,我們將在本小節對其進行介紹。創意之星”模塊化機器人實驗首先我們來簡單了解一下AVR單片機與I/O口有關的寄存器。AVR單

13、片機與I/O口有關的寄存器有3個:PORTXDDRXPINX(X為端口編號)。DDR雙明X端口的輸入輸出狀態,例如:如PORTA=0x0F=0000111,1WJ弓I腳PA0-PA3均為輸出(1為輸出),引腳PA4-PA7均為輸入(0為輸入)。PORTX說明X端口的輸入輸出的具體信息,例如:當PORTA=0x0時,若PORTA=0X33=00110011則弓I腳PA。PA1為輸出,且輸出信號為高(1);引腳PA2Pa3為輸出,但輸出信號為低(0);PA4PA5為輸入且輸入有效;至于PA6PA7雖然DDRA已經將其設置為輸入,但是PORTA®其輸入無效,所以PA6PA7的輸入信號讀不出

14、來。PINX為輸入端口的具體信息(PINX只能讀取不能寫入),例如:當DDRA=0x0FPORTA=0x3酎,如果讀取PINA即chartemp=PINA貝Utemp=-XX0011,其中為輸入的引腳只有PA4-PA7PA4與PA5狀態為XX,X為輸入信號,而PA6PA7的輸入為-,-為一個不確定的數。方便大家看懂源程序,對于MultiFLEX控制卡,我們已經在系統程序里面進行了處理,同學們只需要調用相關的函數即可對控制卡的IO0-IO15這16個引腳進行控制。實驗準備:1 .控制卡的IO0-I03分別與4個LED燈連接2 .控制卡的I015與1個碰撞傳感器(實質上是一個開關)連接3 .控制卡

15、與電腦之間用并口下載線正確連接4 .控制卡電源線正確連接實驗程序:#include"Public.h"#include"Usertask.h"voiduser_task(void)(uint8io_in;uint8io_out;uint8temp8;uint16temp16;gpio_mode_set(0x00FF);write_gpio(0xFF00);while(1)(temp16=read_gpio();io_in=(uint8)(temp16>>8);temp8=(io_in&0x80);if(temp8=0)io_out=0

16、x01;while(io_out)創意之星”模塊化機器人實驗write_gpio(uint16)io_out);delay(5);/延時5X20MS=0.1sio_out<<=1;write_gpio(uint16)io_out);delay(5);elsewrite_gpio(0xFF00);實驗總結LED燈點整個實驗的運行結果應為:當開關(碰撞傳感器)未按下時,所有亮,當開關持續按下時,led燈循環點亮。實驗報告內容記錄自己的程序創意之星”模塊化機器人實驗實驗二多自由度串聯式機械手實驗目的(1)了解串聯式機器人、自由度和空間機構學、機器人運動學的基本概念;(2)熟悉四自由度串聯

17、式機械手;使用配套動作程序,然后自己給機器人編寫動作;(3)掌握“創意之星”機器人套件的搭建和裝配技巧(4)熟悉并掌握舵機控制函數rc_moto_control()以及延時函數delay()的使用方法,理解其函數定義(5)熟悉并掌握利用函數控制舵機運動實驗環境:UP-MRcommande6制軟件實驗器材:計算機1臺MultiFLEX控制卡1塊控制卡電源線1根用口下載線1根232電纜1根USB專232電纜1根舵機5個舵機延長線5根“創意之星”機器人構件1套實驗步驟1結構組裝其結構(3D模型圖,線纜和其他細節沒有在圖上表示出來)示意圖如下:10創意之星”模塊化機器人實驗腰部旋轉關節剖面圖此部分組裝

18、完成后,用手旋轉橙紅色U-3-3-3構件,應該和腰關節舵機的輸出軸牢固地連接在一起,不能有松動、晃動或者卡住的現象。組裝其他部分。需要2個基本構形A,1個基本構形B,以及一個基本構形E。各個基本構形之間可以用通用連接件(D8x4D8x6塞子)連接,也可以用螺栓和螺母連接。需要注意的是,如果用通用連接件連接,最終完成的機械手的剛度會差一些;如果用螺栓/螺母連接,則需要仔細思考連接的先后順序,不能先把各個基本構形組裝出來之后再拼裝,否則可能由于空間限制而無法進行擰螺絲等操作。例如,連接DOF2和DOF3的兩個基本構形的時候,就需要預先把DOF3上的U3-3-3紅色U型構件連接到DOF2的舵機架上。

19、2連接電纜11創意之星”模塊化機器人實驗按下表所示順序連接指定關節的舵機的電纜到MultiFLEX控制卡上:關節控制白舵機通道控制長電機通道說明D0F1CHODOF?一D0F3CK2DOFiCH3手爪CH43調整初始姿態打開控制卡的電源,我們會發現機器手開始運動到初始姿勢之后會鎖定該姿勢。為了使用配套光盤中附帶的動作程序,我們需要手動調整每個關節的姿勢,調整完畢后應該如下圖所示:4寫入動作程序調整之后,再次打開電源。我們應該看到組裝完成的機械手保持如上圖所示的狀態。此時在UP-MRcommandeTfc件中調入“機械臂機械臂.mra”這個動作文件,并下載執行。機械臂就可以運動起來了。5建立自己

20、的動作程序現在我們來編寫自己的動作程序。動作程序的編寫過程就是建立一個個的動作,并設計每個動作的姿態,以及持續時間。這一步中我們的目標是編寫一個機械手的程序,它可以讓機械手把一個紙團從他的左側夾起,放到右側,并如此重復。編寫動作的幾個要點是:要在“在線調試”的狀態下對每個動作進行調試;如下圖所示,選中“在線調試”復選框,即進入了在線調試狀態。這種狀態下,在UP-MRcommande#面上的任何改動動作的操作都回立刻被機器人執行。利用在線調試功能可以很方便地為機器人編寫每一個動作。12創意之星”模塊化機器人實驗V在線師it更改舵機的運動速度可以在0255之間調節。但是對于機械手來說,舵機的運動速

21、度在50150比較合適。由于機械手的每個關節舵機(尤其是底座部位的舵機)的負載很大,如果速度太快的話,舵機會很快速地啟動和停止,有可能損傷舵機本身,甚至有可能誤傷操作者。如果設定舵機的速度較慢,并且動作的執行時間太短的話,相應的動作可能還沒有執行完畢就已經進入了下一個動作。沒有執行完的動作將被忽略。為剛剛編寫好的動作命名。如下圖所示。命名的好處是,我們可以很清楚地知道這個動作的目的是什么。E-:Ca-MRSuiZ-f分步動作14(15)V機始枇態口手爪前神,流春V抓住前方物體U前逆,手臂向上。后退V車輪變形V原地屣喊V斜向行走。區斜向行走V車£魂攏口前造,手背敵下手臂動作2V手爪棺升

22、U料腹位1如下圖所示,你很難搞明白左圖的動作程序是什么。相對的,右圖的動作程序每一步都進行了命名,如果我們要修改動作程序,很容易找出需要修改的地方來調試。7動作序列U3)V桃I臺狀態'V分步動2分步動假V分步動作3V分步動作4'V分步功價V分步動修V分步動付V8步動作與V分步動作qV分步動作1。V分步動作1】U會木乍12編寫C程序實現對舵機的控制用“創意之星”機器人套件搭建的機器人的主要關節都是由舵機驅動的,我們選擇USERTASK.C寸其進行編輯。輸入如下程序:#include"Public.h"#include"Usertask.h"

23、voiduser_task(void)uint8array_rc23=0;array_rc0=90+20;13創意之星”模塊化機器人實驗array_rc1=170;array_rc2=90-20;array_rc3=170;array_rc4=90-20;array_rc5=170;array_rc6=90+20;array_rc7=170;rc_moto_control(array_rc);delay(50);array_rc0=90;array_rc1=170;array_rc2=90;array_rc3=170;array_rc4=90;array_rc5=170;array_rc6=9

24、0;array_rc7=170;rc_moto_control(array_rc);delay(50);然后才T開SYSTASK.C文件,將處于最后的main()函數進行細微改動。intmain(void)(Sys_Init();WORK_LED_ON;while(1)(/system_task();user_task();至此我們就順利完成了用c語言實現機器人關節運動控制。但是機械手舵機不止4個,因此要求同學根據以上程序增加舵機的控制,并記錄修改的程序。實驗總結現在我們的機械手可以完成一定的工作了。這只是一個最原始的機器人,只有5個自由度(包括末端手爪),并且不具備傳感器,無法根據工作情況來

25、調整自己的反應。從這個意義上來說,它甚至不應該被稱為“機器人”。但是我們還要繼續組裝這樣的各種構型的機器人。我們目的是通過這些組裝和學習,掌握“創意之星”套件的使用,最終用這個套件設計和組裝出自己的機器人。實驗報告內容記錄自己的動作程序14創意之星”模塊化機器人實驗實驗三簡易四足機器人實驗目的(1)熟悉四足機器人,使用配套光盤中提供的動作程序機器人;(2)熟悉UP-MRcommandeK件調試機器人運動步態的技巧。(3)掌握“創意之星”機器人套件的搭建技巧。(4)熟悉并掌握舵機控制函數rc_moto_control()以及延時函數delay()的使用方法,理解其函數定義(5)熟悉并掌握利用函數

26、調試機器人的步態實驗環境:UP-MRcommandejr!制軟件實驗器材:計算機1臺MultiFLEX控制卡1塊控制卡電源線1根用口下載線1根232電纜1根USB?專232電纜1根舵機4個舵機延長線4根“創意之星”機器人構件1套實驗步驟1結構組裝本實驗中需要組裝的簡易四足機器人三視圖及軸測視圖如下15創意之星”模塊化機器人實驗從圖中可以看到,機器人具有4個自由度(DOF1DOF4,使用4個基本構形A構成了機器人的身體,它們之間使用I形連接件連接。每個舵機的輸出軸上連接了一個I形連接件,作為機器人的腿。如果大家對機器人剛度有較高要求的各部件連接件最好用螺紋副固定。在腿的末端使用了橡膠防滑墊,以增

27、大腿部與地面的摩擦力。機器人的裝配爆炸圖如下圖所示:2連接電纜按下表所示順序連接指定關節的舵機的電纜到MultiFLEX控制卡上:關節控制K舵機通道控制電機通道說明D0F1CH0DOFN的一D0F3儂D0F4CH33調整初始姿態與前面的實驗相同,在完成機器人的組裝后,為了使用配套光盤中附帶的動作程序,我們需要手動調整每個關節的初始姿態。調整方法如前面實驗所述。調整完畢后各關節的初始姿態應該如下圖所示:4寫入動作程序16創意之星”模塊化機器人實驗調整之后,再次打開電源。我們應該看到組裝完成的機械手保持如上圖所示的狀態。此時在UP-MRcommandeTc件中調入“蛇形機器人10關節蠕動-步距0.

28、125波長-正弦波.mra”這個動作文件,并下載執行。此時把機器人放到地上,注意觀察它的運動方式。通常情況下,使只有4個自由度的四足機器人運動起來并且能夠前進、后退,是一個很困難的事情。普通的四足機器人至少有8個自由度,有些甚至有12個自由度。這個4自由度的簡易四足機器人能夠前進、后退,甚至能夠笨拙地轉彎。本實驗中我們只提供了前進的程序,后退、轉彎的程序請讀者自己編寫。編寫C程序實現對舵機的控制用“創意之星”機器人套件搭建的機器人的主要關節都是由舵機驅動的,我們選擇USERTASK.C寸其進行編輯。輸入如下程序:#include"Public.h"#include"

29、;Usertask.h"voiduser_task(void).uint8array_rc23=0;array_rc0=90+20;array_rc1=170;array_rc2=90-20;array_rc3=170;array_rc4=90-20;array_rc5=170;array_rc6=90+20;array_rc7=170;rc_moto_control(array_rc);delay(50);array_rc0=90;array_rc1=170;array_rc2=90;array_rc3=170;array_rc4=90;array_rc5=170;array_rc

30、6=90;array_rc7=170;rc_moto_control(array_rc);delay(50);然后才T開SYSTASK.C文件,將處于最后的main()函數進行細微改動。intmain(void)Sys_Init();WORK_LED_ON;17創意之星”模塊化機器人實驗while(1)(/system_task();user_task();)至此我們就順利完成了用c語言實現機器人關節運動控制。但是以上程序只能實現4個舵機會在兩種狀態中往復切換,且運動狀態兩兩相反,不能使四足機器人行走,因此需要同學增加及修改動作以實現行走。5實驗總結本實驗中我們搭建了一個簡易的四足機器人,并且

31、使用運動程序讓他能夠往前爬動了。這并不是一個典型的四足機器人,但是他卻很簡單,也能夠完成運動的功能。請讀者思考一下,如何讓他后退,向左及向右轉彎?實驗報告內容記錄自己的動作程序18創意之星”模塊化機器人實驗實驗四輪式機器人運動控制實驗實驗目的(1)了解輪式機器人的概念和了解采用全向驅動方式在生活、科研、工作中的應用;(2)熟悉輪式機器人;使用配套光盤中提供的動作程序,然后自己為機器人編寫動作;在UP-MRcommand啾件中,熟悉直流電機的控制;(3)掌握對于具有多種執行器(舵機、電機或者其他)的機器人,掌握搭建和調試要領。(4)掌握“創意之星”機器人套件的搭建和調試要領。(5)熟悉并掌握電機

32、控制函數dc_moto_control()的使用方法(6)熟悉并掌握利用函數dc_moto_control()控制4路直流伺服電機實驗環境:UP-MRcommandeE制軟件實驗器材:計算機1臺MultiFLEX控制卡1塊控制卡電源線1根用口下載線1根232電纜1根USB?專232電纜1根舵機4個舵機延長線4根“創意之星”機器人構件1套實驗步驟1結構組裝19創意之星”模塊化機器人實驗組裝完成的挖掘機器人應該如下圖所示:2連接電纜按下表所示順序連接指定關節的舵機的電纜到MultiFLEX控制卡上:八8撲制A配機通道公制/電機通應說明電機,電機5ME電機CM3電機R算/D0F1CH1FII-

33、9;D0F2CH2D0F3CH3DOF$CH33調整初始姿態打開控制卡的電源,機器人會鎖定初始姿勢。為了使用配套光盤中附帶的動作程序,我們需要手動調整每個關節的姿勢,調整方法如前面實驗所述。調整完畢后應該如下圖所示:20創意之星”模塊化機器人實驗4寫入動作程序調整之后,再次打開電源。我們應該看到組裝完成的挖掘機器人保持如上圖所示的狀態。此時在UP-MRcommandeTfc件中調入“全向四驅小車+機械臂機械臂十四驅車.mra”這個動作文件,并下載執行。挖掘機器人就可以運動起來了。5建立自己的動作程序觀察機器人的運動,并且通過UP-MRcommandeT:件的在線調試功能,弄清楚每個舵機、直流電

34、機與軟件界面中相應滑塊的對應關系。把機器人的輪子架空,拖動軟件界面上的電機調速滑塊和電機運行時間滑塊,觀察電機在不同速度運行的情況,以及不同的運行時間。可以用手握住輪子,體會一下不同速度時電機的力量大小。熟悉了電機的控制操作之后,我們可以編寫自己的運動程序,控制機器人按照一定的順序運動。完成一個運動程序的演示。該程序的運行效果是:機器人可以從固定位置把一個煙盒大小的物體抓起,然后前進,轉彎,前進。最后在指定的半徑60cm的圓圈中把物體放下。自行設計一個只有兩個主動輪(即只用兩個直流電機,左右差動式)的輪式機器人,并讓他運動起來。觀察并思考兩輪機器人的運動與四輪有什么優缺點。編寫C程序實現對4路

35、電機的控制電機是機器人非常重要的組成部件之一,我們已經知道了怎樣用“創意之星”機器人套件提供的上位機程序通過控制卡對電機進行控制。在本實驗中,我們都只討論怎么對USERTASK.GS行編輯,其余步驟跟前面相同,不再贅述。對四路電機進行控制的USERTASK.C口下所示:#include"Public.h"#include"Usertask.h21創意之星”模塊化機器人實驗voiduser_task(void)(uint8array_dc7=0;uint8i;array_dc0=0;array_dc1=30;array_dc2=0xFE;array_dc3=30;a

36、rray_dc4=0;array_dc5=30;array_dc6=0xFE;array_dc7=30;dc_moto_control(array_dc);delay(150);for(i=0;i<(128/10+1);i+)array_dc0=0+i*10;array_dc1=2;array_dc2=255-i*10;array_dc3=2;array_dc4=0;array_dc5=2;array_dc6=0;array_dc7=2;dc_moto_control(array_dc);delay(10);array_dc0=0x80;array_dc1=2;array_dc2=0x8

37、0;array_dc3=2;array_dc4=0x80;array_dc5=2;array_dc6=0x80;array_dc7=2;dc_moto_control(array_dc);delay(10);delay(50);整個程序運行的結果為電機1、3以最大速度正轉3s,同時電機2、4以最大速度反轉3s;然后電機1、2、3、4在2.6s內均勻減速至0,然后定頓1s。整個工程編譯后電機將按以上規律循環運動。因此機器人是無法運動的,要求同學根22創意之星”模塊化機器人實驗據UP-MRcommandeTfc件中調入“全向四驅小車+機械臂機械臂十四驅車.mra”這個動作文件中的參數設置,修改并增

38、加C程序對4路電機的控制程序。實驗報告內容記錄自己的動作程序23創意之星”模塊化機器人實驗實驗五機器人傳感系統實驗實驗目的(1)熟悉關于AVR單片機的A/D的概念、作用(2)熟悉并掌握函數ADC_Read(uint8Channel,uint8*data)的使用方法,理解其函數定義(3)熟悉并掌握利用函數ADC_Read(讀取來自MultiFLEX控制卡A/D口的模擬信號實驗環境:UP-MRcommande6制軟件實驗器材:計算機1臺MultiFLEX控制卡1塊控制卡電源線1根用口下載線1根232電纜1根USB?專232電纜1根舵機4個舵機延長線4根“創意之星”機器人構件1套實驗步驟1 .控制卡

39、的AD0與光強傳感器連接(連接方式參見實驗指導書)2 .控制卡PWM0W舵機連接3 .控制卡與電腦之間用并口下載線正確連接4 .控制卡電源線正確連接5 .建立自己的程序1#include"Public.h"#include"Usertask.h"voiduser_task(void)(uint8AD0_in;uint8rc_array23=0;24創意之星”模塊化機器人實驗uint16temp;uint8i;for(i=0;i<24;i=i+2)(rc_arrayi=90;rc_arrayi+1=128;while(1)(ADC_Read(0,&a

40、mp;AD0_in);temp=(uint16)AD0_in*180)/255;rc_array0=(uint8)temp;rc_array1=80;rc_moto_control(rc_array);delay(25);整個實驗的運行結果應為:開機后,PWM0的舵機在0-180度之間運動,其位置與外部光照強度成正比(外部光照強度通過光強傳感器采集,采集頻率2Hz)。建立自己的程序2#include"Public.h"#include"Usertask.h"voiduser_task(void)(uint8AD0_in;uint8rc_array23=0

41、;uint8i=0;while(1)ADC_Read(0,&AD0_in);rc_array0=i*180;rc_array1=AD0_in;rc_moto_control(rc_array);delay(25);i+;if(i>1)i=0;實驗結果:開機后,舵機在0-180度之間往復運動,具運動速度與外部光照強度成正比(外部光照強度通過光強傳感器采集,采集頻率2Hz)。25創意之星”模塊化機器人實驗6 .同時控制多個舵機參考上述程序,編寫程序同時使用4個光強(或溫度)傳感器分別控制4個舵機的轉角位置。實驗報告內容記錄自己的動作程序的分步動作參數26創意之星”模塊化機器人實驗實驗

42、六自主避障機器人實驗實驗目的(1)回顧控制卡的各種控制函數(2)提高靈活應用各種控制函數控制機器人各種執行器的能力(3)提高搭建只能程序,使機器人擁有一定人工智能的能力實驗環境:UP-MRcommandeE制軟件實驗器材:計算機1臺MultiFLEX控制卡1塊控制卡電源線1根用口下載線1根232電纜1根USB專232電纜1根舵機10個舵機延長線10根“創意之星”機器人構件1套實驗步驟1結構組裝堂適動看itnflAHE»*R由上圖可知,整個全向運動作業機器人由1個機器手構型,1個控制盒,4個基本構型D,4個零件I9以及相應的連接件構成。為簡化起見,上圖中并沒有顯示出具體的連接件,大家可

43、以在考慮機器人系統剛性的情況下采用自己喜歡的連27創意之星”模塊化機器人實驗接方式。本實驗的全向運動作業機器人結構主體和前面實驗7.3里面的四輪小車基本相似,下部的驅動部分大不相同,采用的是前面介紹的基本構型Do請同學們組裝的時候認真體會這種驅動結構的優缺點。組裝好后的全向作業機器人如下圖所示:在此我們將其機器手部分去掉,為其加上兩個檢測障礙物用的紅外傳感器。加上的紅外傳感器裝配圖如下圖所示:加上的紅外傳感器裝配體由1個L5-3,2個V2-2以及兩個紅外傳感器構成,各零件之間用螺紋副連接(紅外傳感器與V2-2之間靠過盈配合)。為了增加系統剛性,紅外傳感器裝配體與全向運動機器人之間也用螺紋副連接

44、。改裝好的機器人如下圖所示:28創意之星”模塊化機器人實驗改裝后的全向運動機器人的各個舵機以及電機與控制卡的連接順序以及開機后各舵機的初始位置依然同7.7的全向運動機器人一樣,不做改動(機器手部分忽略),而加上的兩個紅外傳感器則分別插在控制卡的IO0以及IO1上。至此我們的機器人就改裝完畢了。2.邏輯分析(程序框架搭建)“創意之星”的紅外傳感器在出廠之前初始化了探測距離(大概20cm,當此距離之內有障礙物的話傳感器輸出電平會發生變化。在安裝紅外傳感器之后我們的全向運動機器人已經有擁有了探測障礙物的能力,那么當機器人探測到障礙物怎樣執行器怎樣反應才能實現自主避障呢,這就需要我們進行邏輯分析。當傳

45、感器遇到障礙物之后,由于傳感器自生延時以及處理器的需要處理時問,所以機器人會由于慣性繼續向前運動一段距離,我們就需要機器人推后一定的補償距離,以保證和障礙物之間的距離為一個確定的范圍。其次機器人會根據檢測到障礙物的傳感器不同而采取不同的策略:如果是左邊傳感器檢測到障礙物之后,機器人應該向右轉避開障礙物;如果是右邊的傳感器檢測到障礙物的話機器人應該向左轉;如果兩個傳感器都有障礙物的話機器人應該隨機采取一個旋轉方向(為簡化程序,我們假設此時機器人仍向右轉)。并且機器人左轉與右轉的角度不應該相同,否則在特殊情況下機器人會陷入死循環,在一個地方不停的循環的左轉右轉。請大家思考一下什么情況下機器人會陷入

46、死循環。當機器人轉向后,如果機器人前方仍然有障礙物的話機器人應該重復后退專項操作,如果前方已經沒有障礙物的話機器人應該繼續向前引動。經過分析后,我們得到了如下邏輯:29創意之星”模塊化機器人實驗機器人后退一段距離這就是我們的自主避障機器人的程序框架。我們可以用c語言編寫Usertask.c文件來實現以上邏輯。實際上,用c語言實現以上邏輯是一件不太麻煩的事情,無非是些if、else的組合,最困擾我們的是在經過某種判斷之后如何讓機器人執行特定動作,我們無法簡單的確定各種控制卡函數的參數(例如舵機控制函數中舵機的運動角度,舵機運動速度)。只要這個問題解決了,我們編寫自主避障小車程序也就容易多了。其實

47、通過我們創意之星的新版上位機程序UPMRobot.exe的在線調試功能就能很容易的解決以上問題。2連接電纜按下表所示順序連接指定關節的舵機的電纜到MultiFLEX控制卡上:30創意之星”模塊化機器人實驗大方控制卜舵機通道控制L電機通道說明DOflCHOD0F2CH1D0F3CH2D0F1CH3D0F3CHJD0F6麗DOF?CH6DOFSCH7電機1VI電機2心電機3N3電機4M43C語言程序編寫打開我們的上位機程序UPMRobot.exe用用口線將控制卡與電腦連接好,給機器人通上電,在上位機程序里打開設置相應串口并且打開在線調試功能。通過在線調試,我們可以把機器人調整到假設機器人遇到某種情

48、況時所需要執行的運動狀態,然后我們點擊如下圖所示的紅框框住的指令欄,分別點擊舵機、電機、I/O輸出、蜂鳴器會彈出不同的窗口,這個窗口就是上位機給控制卡發出的使機器人執行當前運動設置的指令,這個指令遵守模塊化機器人電腦與控制卡之間的通訊協議(這個協議是博創公司自行定制的協議),大家通過查閱“創意之星”實驗指導書配套光盤里的模塊化機器人通訊協議,經過簡單分析,就可以提取出在Usertask.C中調用的控制函數的參數,將這些控制參數提交給控制函數并執行,機器人就會如現在在線調試般運動。通過在線調試提取機器人運動信息,可以使我們的程序編寫過程大大簡化。31創意之星”模塊化機器人實驗在這里,我們只簡單介

49、紹一下怎么提取舵機運動信息以及電機運動信息。我們先在在線調試模式下設定一個機器人的運動狀態,然后電機指令欄里的舵機按鈕,會彈出如下信息:而在博創公司的模塊化機器人通訊中關于舵機指令的規定如下:模塊化機器人舵機控制指令:本指令可同時控制MultiFLEX卡上插的12路舵機,每路可單獨控制位置和速度.字頭地址楨長接命令字51位置51速度512位置512速度校驗和位置”二已12拉置”為12個舵機的附度山二弟因為k1勖:00為中(二”1速匹Fit速唾”為運動的速度值.mpd越荷.運動速廢越快.范用為O'Oxff.通過分析,我們可以看到在彈出窗口里舵00舵11之間的24個數據,實際上就是讓機器人

50、運動到此狀態下的舵機控制函數rc_moto_control()的運動參數。將此24個數依次賦予一個擁有24項的數組(例如unsignedcharrc_array23;),然后將此數組數組名(數組地址)傳遞給舵機函數,在Usertask.C中調用命令"rc_moto_control(array);”即可使機器人按照當前在線調試狀態所設置的運動狀態運動。類似的,我們在在線調試模式下設定一個機器人的運動狀態,然后電機指令欄里的舵機按鈕,會彈出如下信息:32創意之星”模塊化機器人實驗在博創公司的模塊化機器人通訊中關于電機指令的規定如下:4路電機控制指令;本指令可同時控制MultiFLEX卡上

51、插的4路直流電機,每路可單獨控制速度.字頭地址楨長度命令字MlM2M3H4校驗和55aa/£02SI口S2T2S3T354T45】飛4分別代表1個電機的PWM輸出占空比0工80代表電機停止.0工00代表正轉鼠火速度(Itm占空比),OxFE代表反轉最大速度(1CX均占富比,門-T4代表轉動時間,單位為Q.K經過簡單分析,我們很容易的知道M00-M03之間的8個數就是在Usertask.C中調用dc_moto_control()函數實現當前運動狀態的參數。我們不妨建立一個數組“unsignedchardc_array7;”然后將上述數據依次賦予此數組,然后再Usertask.C調用語句

52、“dc_moto_control(dc_array);”機器人機會按照當前在線調試所確定的狀態運動。通過反復嘗試,最終我們建立的使全向運動機器人實現自動避障的USERTASK©口下所示:#include"public.h"#include"Usertask.hvoiduser_task(void)(uint8array_dc7=0;uint8array_rc23=0;uint16temp16;gpio_mode_set(0);temp16=read_gpio();if(temp16&0x0003)=3)array_dc0=0;array_dc1=

53、50;array_dc2=0xFE;array_dc3=50;array_dc4=0;array_dc5=50;array_dc6=0xFE;array_dc7=50;dc_moto_control(array_dc);33創意之星”模塊化機器人實驗)elseif(temp16&0x0003)=2)|(temp16&0x0003)=0)(beep_set(5);array_dc0=0xFE;array_dc1=5;/0.5秒array_dc2=0;array_dc3=5;array_dc4=0xFE;array_dc5=5;array_dc6=0;array_dc7=5;dc_

54、moto_control(array_dc);delay(30);array_rc0=90+20;array_rc1=170;array_rc2=90-20;array_rc3=170;array_rc4=90-20;array_rc5=170;array_rc6=90+20;array_rc7=170;rc_moto_control(array_rc);delay(50);array_dc0=0x80+55;array_dc1=10;array_dc2=0x80+55;array_dc3=10;array_dc4=0x80+55;array_dc5=10;array_dc6=0x80+55;array_dc7=10;dc_moto_control(array_dc);delay(50);array_rc0=90;array_rc1=170;array_rc2=90;array_rc3=170;array_rc4=90;array_rc5=170;array_rc6=90;34創意之星”模塊化機器人實驗array

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論