第一篇:“創(chuàng)意之星”模塊化機(jī)器人實(shí)驗(yàn)指導(dǎo)書(實(shí)驗(yàn)版)
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)指導(dǎo)書
電子科技大學(xué)機(jī)械電子工程學(xué)院工程訓(xùn)練中心
目 錄
實(shí)驗(yàn)一 MULTIFLEX控制卡編程實(shí)驗(yàn)..............................................1 實(shí)驗(yàn)二 多自由度串聯(lián)式機(jī)械手..................................................9 實(shí)驗(yàn)三 簡(jiǎn)易四足機(jī)器人.......................................................15 實(shí)驗(yàn)四 輪式機(jī)器人運(yùn)動(dòng)控制實(shí)驗(yàn)...............................................20 實(shí)驗(yàn)五 機(jī)器人傳感系統(tǒng)實(shí)驗(yàn)...................................................25 實(shí)驗(yàn)六 自主避障機(jī)器人實(shí)驗(yàn)...................................................28 實(shí)驗(yàn)七 追光的機(jī)器爬蟲.......................................................37 實(shí)驗(yàn)八 開放性實(shí)驗(yàn):設(shè)計(jì)自己的機(jī)器人.........................................46
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)一 MultiFLEX控制卡編程實(shí)驗(yàn)
一 實(shí)驗(yàn)?zāi)康?/p>
1.了解MultiFLEX控制卡的基本結(jié)構(gòu); 2.了解WinAVR+AVRStudio編譯環(huán)境的使用;
3.了解C 語(yǔ)言環(huán)境下編寫控制程序,并編譯、下載到MultiFLEX 控制器中執(zhí)行的流程 4.熟悉關(guān)于AVR 單片機(jī)的I/O口有關(guān)的寄存器的概念、作用
5.理解函數(shù)gpio_mode_set(),write_gpio(),read_gpio()的定義,掌握其用法 6.熟悉并掌握利用5中的3 個(gè)函數(shù)控制MultiFLEX 控制卡的16 路IO 口
二 實(shí)驗(yàn)原理
AVR 單片機(jī)與I/O 口有關(guān)的寄存器有3 個(gè):PORTX,DDRX,PINX(X 為端口編號(hào))。DDRX 說(shuō)明X 端口的輸入輸出狀態(tài),例如:如PORTA=0x0F=0000 1111,則引腳PA0-PA3均為輸出(1 為輸出),引腳PA4-PA7 均為輸入(0 為輸入)。
PORTX 說(shuō)明X 端口的輸入輸出的具體信息,例如:當(dāng)PORTA=0x0F 時(shí),若PORTA=0X33=00110011,則引腳PA0、PA1 為輸出,且輸出信號(hào)為高(1);引腳PA2、Pa3 為輸出,但輸出信號(hào)為低(0);PA4、PA5 為輸入且輸入有效;至于PA6、PA7 雖然DDRA 已經(jīng)將其設(shè)置為輸入,但是PORTA 使其輸入無(wú)效,所以PA6、PA7 的輸入信號(hào)讀不出來(lái)。
PINX 為輸入端口的具體信息(PINX 只能讀取不能寫入),例如:當(dāng)DDRA=0x0F,PORTA=0x33時(shí),如果讀取PINA 即char temp=PINA,則temp=--XX0011,其中為輸入的引腳只有PA4-PA7,PA4 與PA5 狀態(tài)為XX,X 為輸入信號(hào),而PA6、PA7 的輸入為--,-為一個(gè)不確定的數(shù)。
1.gpio_mode_set()在SYSTEM.C 中的定義如下:
void gpio_mode_set(uint16 temp16)//設(shè)置16 位GPIO 模式,IO0-IO7 全為輸出,IO8-IO15 { DDRE =(uint8)(temp16>>8);//IO8~IO15 路TTL I/O 模式設(shè)置 DDRC =(uint8)temp16;//IO0~IO7 路TTL I/O 模式設(shè)置 } 2.write_gpio()在SYSTEM.C 中的定義如下:
void gpio_mode_set(uint16 temp16)//設(shè)置16 位GPIO 模式 { DDRE =(uint8)(temp16>>8);//IO8~IO15 路TTL I/O 模式設(shè)置 DDRC =(uint8)temp16;//IO0~IO7 路TTL I/O 模式設(shè)置 }
3.read_gpio()在SYSTEM.C 中的定義如下: uint16 read_gpio(void){ uint16 temp16;temp16 =(uint16)EXT_IO2_IN;temp16 =(temp16<<8)| EXT_IO_IN;return temp16;} 而EXT_IO_IN 等在public.h 中的宏定義如下 #define EXT_IO_IN PINC //8 路數(shù)字輸入口
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟
1.WinAVR 以及AVRStudio 軟件的安裝
在“MultiFLEX 控制卡AVR MCU 開發(fā)資料”目錄下,打開“WinAVR”文件夾,雙擊“WinAVR-20060421-install.exe”完成WinAVR 的安裝;然后打開“AVR Studio”文件夾,根據(jù)文件夾里面的安裝說(shuō)明進(jìn)行AVRstudio 的安裝,并將其升級(jí)到最新版本。
注意:請(qǐng)先安裝WinAVR 再安裝AVRStudio,這樣WinAVR 才能自動(dòng)嵌入到AVRStudio。2.用AVRStudio 建立一個(gè)工程
首先打開我們剛剛安裝好的AVRStudio,會(huì)出現(xiàn)如下窗口:
圖1-1 AVRStudio新建項(xiàng)目
點(diǎn)擊圖1-1中的選框1 中的按鈕可以新建一個(gè)工程,點(diǎn)擊選框2 中的按鈕可以打開一個(gè)工程,選框3 是最近你所打開的文件,你可以選中快速將其打開。在這里,我們點(diǎn)擊1(NewProject),會(huì)出現(xiàn)如下窗口:
圖1-2 AVRStudio工程文件選項(xiàng)
在圖1-2窗口中我們可以設(shè)置關(guān)于新工程的一些基本信息。在選框1(Projec tType)中,第一項(xiàng)AtmelAVRAssembler 指匯編工程文件,第二項(xiàng)AVRGCC 指建立后的文件為C 語(yǔ)言
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
工程文件,在此我們選擇AVRGCC(如果沒有安裝WinAVR 則此處不會(huì)出現(xiàn)AVRGCC 選項(xiàng))。在選框2 中,我們可以確定工程名(Project name)以及初始文件名(Initial file),在此我們不妨均取名為test。在選項(xiàng)框3 中,我們可以確定工程所在的文件夾位置,在此我們不妨將路徑設(shè)為D:test。在選項(xiàng)卡2 中如果選中Create folder,則會(huì)在3 中確定的文件夾中新建一個(gè)以工程名為文件夾名的文件夾,所有與該工程有關(guān)的文件會(huì)放在此文件夾內(nèi);在選項(xiàng)卡2 中選中Create initial file 會(huì)生成一個(gè)初始.c 文件,方便我們編寫程序。以上設(shè)定完成后我們點(diǎn)擊Next 進(jìn)行下一步設(shè)置,會(huì)彈出如下窗口:
圖1-3 AVRStudio單片機(jī)型號(hào)選項(xiàng)
在圖1-3窗口中我們可以設(shè)置一些關(guān)于計(jì)算機(jī)調(diào)試的一些信息。在選項(xiàng)框1 之中我們?cè)O(shè)置程序調(diào)試平臺(tái),在此我們選擇AVRSimulator。在選項(xiàng)框2 中我們可以選擇單片機(jī)類型,你可以根據(jù)實(shí)際需要選擇,在此我們選擇ATmega128(本實(shí)驗(yàn)以創(chuàng)意之星控制板為平臺(tái),所以選擇創(chuàng)意之星的控制核心ATmega128,AVRStudio 可以進(jìn)行軟件模擬單片機(jī)的運(yùn)行過(guò)程,但本書中不作介紹)。選擇完成后我們點(diǎn)擊Finish,這樣一個(gè)新工程就初步建立了。然后會(huì)出現(xiàn)如下窗口。
圖1-4 AVRStudio程序編輯窗口
圖1-4中選框1 為菜單欄,選框2 為工具欄,選框3 為工程管理樹,選框4 為程序編輯欄,選框5 為編譯信息欄。作為我們的第一個(gè)代碼實(shí)驗(yàn),我們可在選框4 中輸入程序:
#include
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
#define BEEP_OFF PORTG &= ~_BV(PG3)int main(void){ int i,j;PORTG = 0;DDRG = 0xff;while(1){ for(i=0;i<0xFF;i++){for(j=0;j<0xFF;j++);} BEEP_ON;for(i=0;i<0xFF;i++){for(j=0;j<0xFF;j++);} BEEP_OFF;} } 然后在菜單欄選擇“Project——》Configuration Options”
圖1-5 AVRStudio選項(xiàng)菜單
會(huì)彈出如下窗口:
圖1-6 AVRStudio選項(xiàng)設(shè)置
在控制核心工作頻率(Frequency)一欄輸入14745600,由于創(chuàng)意之星采用的晶振是此頻率,故如此設(shè)置。其他選項(xiàng)均采用默認(rèn)設(shè)置即可,然后點(diǎn)擊確定。保存文件,然后在菜單
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
欄選擇“Build——》Build”(或者按F7),如下圖所示:
圖1-7 AVRStudio編譯下拉菜單
在編譯信息欄會(huì)出現(xiàn)相應(yīng)的編譯信息,顯示是否有錯(cuò)誤,其中顯示“Build succeeded with 0 Warnings?”說(shuō)明我們編譯正常通過(guò),這時(shí),在我們當(dāng)初設(shè)置的工程所在的文件夾的default 文件夾“D:testtestdefault”里會(huì)出現(xiàn)很多新文件,這些都是程序編譯的結(jié)果,其中有個(gè)test.hex 文件是程序燒寫文件,將這個(gè)文件經(jīng)過(guò)燒錄軟件下載至MultiFLEX 控制板后程序就能運(yùn)行,至于如何燒寫我們將在后面進(jìn)行介紹。
3.將*.hex 文件燒錄至MultiFLEX 控制卡中
首先我們要安裝燒寫軟件PonyProg2000,打開實(shí)驗(yàn)指導(dǎo)書配套光盤,在“MultiFLEX控制卡AVR MCU 開發(fā)資料ponypro”目錄下,運(yùn)行ponyprogV206f.exe,安裝完畢后運(yùn)行,有兩個(gè)提示會(huì)出現(xiàn),都選擇確認(rèn),最終正確運(yùn)行的PonyProg2000 如下圖所示:
圖1-8 PonyProg2000界面
首先我們應(yīng)該對(duì)軟件進(jìn)行總線時(shí)序校準(zhǔn),在Setup 中選擇Calibration 即可。然后進(jìn)行下載方式設(shè)置,點(diǎn)擊“Setup——》InterfaceSetup”
圖1-9 PonyProg2000下載方式設(shè)置
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
會(huì)出現(xiàn)如下窗口:
圖1-10 PonyProg2000I/O設(shè)置
由于“創(chuàng)意之星”配置的是并行下載線,所以我們應(yīng)該選擇Parallel,在下拉選項(xiàng)中選擇AvrISPI/O,如上圖所示,其他選項(xiàng)按其默認(rèn)設(shè)置,不予更改,然后點(diǎn)擊“OK”完成設(shè)置。
然后我們進(jìn)行目標(biāo)芯片的選擇:點(diǎn)擊“Device——》AVR micro”,在彈出的選項(xiàng)框中選擇ATmega128,如下圖所示,這樣我們就完成了目標(biāo)芯片的選擇。
圖1-11 PonyProg2000芯片設(shè)置
現(xiàn)在我們用并口下載線將電腦和MultiFLEX 控制卡進(jìn)行連接。下圖是“創(chuàng)意之星”提供的并口下載線以及其線序:
圖1-11 創(chuàng)意之星”提供的并口下載線
下圖是MultiFLEX 控制卡的功能區(qū)域圖,將下載線的5 針插頭與其中的H 區(qū)的5 針插頭相連接,注意線序
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖1-12 MultiFLEX 控制卡的功能區(qū)域圖
連接完成后給控制卡通上電源(程序燒寫過(guò)程中不允許斷電,請(qǐng)確保電源的可靠性)。然后在剛才打開的PonyProg2000 中點(diǎn)擊“File——》Open Device File”或者點(diǎn)擊圖標(biāo)打開我們前面生成的test.hex 文件(應(yīng)該在“X:testtestdefault”文件夾中),然后點(diǎn)擊“Command——》Write All”或者點(diǎn)擊圖標(biāo),然后程序就會(huì)開始燒寫至控制卡里面。
當(dāng)PonyProg2000 顯示燒寫成功時(shí)我們的第一個(gè)實(shí)驗(yàn)程序就順利的燒寫進(jìn)MultiFLEX 控制卡中了,正常情況下我們會(huì)聽到控制卡蜂鳴器發(fā)出急促的“嘟嘟嘟”的聲音,如果沒有任何現(xiàn)象請(qǐng)你檢查以上步驟是否按要求完成或者檢查下載線有沒有插反、控制卡是否正常供電,修改有問題的地方后再生成hex 文件進(jìn)行燒錄,直至蜂鳴器出現(xiàn)規(guī)則的嘟嘟聲為止。
4.編寫C 程序?qū)崿F(xiàn)對(duì)16 路I/O 口的控制
方便大家看懂源程序,對(duì)于MultiFLEX 控制卡,已經(jīng)在系統(tǒng)程序里面進(jìn)行了處理,同學(xué)們只需要調(diào)用相關(guān)的函數(shù)即可對(duì)控制卡的IO0-IO15 這16 個(gè)引腳進(jìn)行控制。
(1)控制卡的IO0-I03 分別與4 個(gè)LED 燈連接
(2)控制卡的I015 與1 個(gè)碰撞傳感器(實(shí)質(zhì)上是一個(gè)開關(guān))連接(3)控制卡與電腦之間用并口下載線正確連接(4)控制卡電源線正確連接 輸入實(shí)驗(yàn)程序: #include “Public.h” #include “Usertask.h” void user_task(void){ uint8 io_in;uint8 io_out;uint8 temp8;uint16 temp16;gpio_mode_set(0x00FF);write_gpio(0xFF00);while(1){ temp16 = read_gpio();io_in =(uint8)(temp16>>8);
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
temp8=(io_in&0x80);if(temp8==0){ io_out=0x01;while(io_out){ write_gpio(~((uint16)io_out));delay(5);//延時(shí)5×20MS=0.1s io_out<<=1;write_gpio(~((uint16)io_out));delay(5);} } else write_gpio(0xFF00);} } 五 實(shí)驗(yàn)要求
記錄實(shí)驗(yàn)程序及實(shí)驗(yàn)現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)二 多自由度串聯(lián)式機(jī)械手
一 實(shí)驗(yàn)?zāi)康?/p>
1.了解串聯(lián)式機(jī)器人、自由度和空間機(jī)構(gòu)學(xué)、機(jī)器人運(yùn)動(dòng)學(xué)的基本概念; 2.熟悉四自由度串聯(lián)式機(jī)械手;使用配套動(dòng)作程序,然后自己給機(jī)器人編寫動(dòng)作; 3.掌握創(chuàng)意之星機(jī)器人套件的搭建和裝配技巧
4.熟悉并掌握舵機(jī)控制函數(shù)rc_moto_control()以及延時(shí)函數(shù)delay()的使用方法,理解其函數(shù)定義
5.熟悉并掌握利用函數(shù)控制舵機(jī)運(yùn)動(dòng)
二 實(shí)驗(yàn)原理
舵機(jī)控制數(shù)據(jù)命令包括兩個(gè)值一個(gè)是最終到達(dá)的旋轉(zhuǎn)終止角度,另外一個(gè)是速度范圍0-255,255代表最大速度。
舵機(jī)控制函數(shù)rc_moto_control()的定義如下: 函數(shù)原型:
void rc_moto_control(uint8 *point)
參數(shù)說(shuō)明:
*point 指向24字節(jié)舵機(jī)控制數(shù)據(jù),控制數(shù)據(jù)定義見控制板舵機(jī)控制命令 返回值:
無(wú)
說(shuō)明:
設(shè)定12路舵機(jī)角度控制 void rc_moto_control(uint8 *point){
} uint8 {
} Sys_PWMDataAccount();//根據(jù)舵機(jī)旋轉(zhuǎn)角度PWMangle和舵機(jī)速度PWMspeed這if(*(point+(i*2))<= 180)
PWMangle[i] = *(point+(i*2));//控制字必須小于i;for(i=0;i<12;i++)
180度,大于180度控制字丟棄
PWMspeed[i] = *(point+(i*2+1));//舵機(jī)速度控制字
兩個(gè)量計(jì)算舵機(jī)控制量
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 舵機(jī)
5個(gè) 舵機(jī)延長(zhǎng)線
5根 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟
1.結(jié)構(gòu)組裝
其結(jié)構(gòu)(3D模型圖,線纜和其他細(xì)節(jié)沒有在圖上表示出來(lái))示意圖如下:
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖2-1 腰部旋轉(zhuǎn)關(guān)節(jié)3D模型圖
圖2-2 機(jī)械手3D模型圖
此部分組裝完成后,用手旋轉(zhuǎn)橙紅色U-3-3-3 構(gòu)件,應(yīng)該和腰關(guān)節(jié)舵機(jī)的輸出軸牢固地連接在一起,不能有松動(dòng)、晃動(dòng)或者卡住的現(xiàn)象。
組裝其他部分。需要2 個(gè)基本構(gòu)形A,1 個(gè)基本構(gòu)形B,以及一個(gè)基本構(gòu)形E。各個(gè)基本構(gòu)形之間可以用通用連接件(D8x4、D8x6 塞子)連接,也可以用螺栓和螺母連接。需要注意的是,如果用通用連接件連接,最終完成的機(jī)械手的剛度會(huì)差一些;如果用螺栓/螺母連接,則需要仔細(xì)思考連接的先后順序,不能先把各個(gè)基本構(gòu)形組裝出來(lái)之后再拼裝,否則可能由于空間限制而無(wú)法進(jìn)行擰螺絲等操作。
例如,連接DOF2 和DOF3 的兩個(gè)基本構(gòu)形的時(shí)候,就需要預(yù)先把DOF3 上的U3-3-3 紅色U 型構(gòu)件連接到DOF2 的舵機(jī)架上。
2.連接電纜
按下表所示順序連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上:
圖2-3 指定關(guān)節(jié)的舵機(jī)連線圖
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
3.調(diào)整初始姿態(tài)
打開控制卡的電源,我們會(huì)發(fā)現(xiàn)機(jī)器手開始運(yùn)動(dòng)到初始姿勢(shì)之后會(huì)鎖定該姿勢(shì)。為了使用附帶的動(dòng)作程序,我們需要手動(dòng)調(diào)整每個(gè)關(guān)節(jié)的姿勢(shì),調(diào)整完畢后應(yīng)該如下圖所示:
圖2-4 舵機(jī)初始位置圖
4.寫入動(dòng)作程序
調(diào)整之后,再次打開電源。我們應(yīng)該看到組裝完成的機(jī)械手保持如上圖所示的狀態(tài)。此時(shí)在UP-MRcommander 軟件中調(diào)入“UP-MRcommander機(jī)械臂機(jī)械臂.mra”這個(gè)動(dòng)作文件,并下載執(zhí)行。機(jī)械臂就可以運(yùn)動(dòng)起來(lái)了。
5.建立自己的動(dòng)作程序
現(xiàn)在我們來(lái)編寫自己的動(dòng)作程序。動(dòng)作程序的編寫過(guò)程就是建立一個(gè)個(gè)的動(dòng)作,并設(shè)計(jì)每個(gè)動(dòng)作的姿態(tài),以及持續(xù)時(shí)間。這一步中我們的目標(biāo)是編寫一個(gè)機(jī)械手的程序,它可以讓機(jī)械手把一個(gè)紙團(tuán)從他的左側(cè)夾起,放到右側(cè),并如此重復(fù)。
編寫動(dòng)作的幾個(gè)要點(diǎn)是:
要在“在線調(diào)試”的狀態(tài)下對(duì)每個(gè)動(dòng)作進(jìn)行調(diào)試;如下圖所示,選中“在線調(diào)試”復(fù)選框,即進(jìn)入了在線調(diào)試狀態(tài)。這種狀態(tài)下,在UP-MRcommander 界面上的任何改動(dòng)動(dòng)作的操作都回立刻被機(jī)器人執(zhí)行。利用在線調(diào)試功能可以很方便地為機(jī)器人編寫每一個(gè)動(dòng)作。
圖2-5 在線調(diào)試
舵機(jī)的運(yùn)動(dòng)速度可以在0~255 之間調(diào)節(jié)。但是對(duì)于機(jī)械手來(lái)說(shuō),舵機(jī)的運(yùn)動(dòng)速度在50~150 比較合適。由于機(jī)械手的每個(gè)關(guān)節(jié)舵機(jī)(尤其是底座部位的舵機(jī))的負(fù)載很大,如果速度太快的話,舵機(jī)會(huì)很快速地啟動(dòng)和停止,有可能損傷舵機(jī)本身,甚至有可能誤傷操作者。
如果設(shè)定舵機(jī)的速度較慢,并且動(dòng)作的執(zhí)行時(shí)間太短的話,相應(yīng)的動(dòng)作可能還沒有執(zhí)行完畢就已經(jīng)進(jìn)入了下一個(gè)動(dòng)作。沒有執(zhí)行完的動(dòng)作將被忽略。
如下圖2-6所示,你很難搞明白左圖的動(dòng)作程序是什么。相對(duì)的,右圖的動(dòng)作程序每一步都進(jìn)行了命名,如果我們要修改動(dòng)作程序,很容易找出需要修改的地方來(lái)調(diào)試。
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖2-6 舵機(jī)動(dòng)作命名
6.編寫C 程序?qū)崿F(xiàn)對(duì)舵機(jī)的控制
用“創(chuàng)意之星”機(jī)器人套件搭建的機(jī)器人的主要關(guān)節(jié)都是由舵機(jī)驅(qū)動(dòng)的,在打開電腦上的工程文件(“D:創(chuàng)意之星8.3.1 控制卡原始程序MultiFLEX.aps”),我們選擇USERTASK.C 對(duì)其進(jìn)行編輯。輸入如下程序:
#include “Public.h” #include “Usertask.h” void user_task(void){ uint8 array_rc[23]={0};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;array_rc[8]=90;array_rc[9]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90-16;array_rc[1]=50;array_rc[2]=90+40;array_rc[3]=60;array_rc[4]=90-60;array_rc[5]=60;array_rc[6]=90+55;array_rc[7]=85;array_rc[8]=90+40;
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
array_rc[9]=128;rc_moto_control(array_rc);delay(50);array_rc[0]=90-22;array_rc[1]=128;array_rc[2]=90+8;array_rc[3]=70;array_rc[4]=90-29;array_rc[5]=60;array_rc[6]=90-65;array_rc[7]=60;array_rc[8]=90+70;array_rc[9]=128;rc_moto_control(array_rc);delay(50);array_rc[0]=90+10;array_rc[1]=128;array_rc[2]=90-33;array_rc[3]=70;array_rc[4]=90+45;array_rc[5]=60;array_rc[6]=90-38;array_rc[7]=60;array_rc[8]=90-63;array_rc[9]=128;rc_moto_control(array_rc);delay(50);array_rc[0]=90+10;array_rc[1]=128;array_rc[2]=90-11;array_rc[3]=70;array_rc[4]=90-54;array_rc[5]=60;array_rc[6]=90+79;array_rc[7]=60;array_rc[8]=90-47 array_rc[9]=128;rc_moto_control(array_rc);delay(50);} 然后打開SYSTASK.C 文件,將處于最后的main()函數(shù)進(jìn)行細(xì)微改動(dòng)。int main(void){
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
Sys_Init();WORK_LED_ON;while(1){ //system_task();user_task();} } 至此我們就順利完成了用c 語(yǔ)言實(shí)現(xiàn)機(jī)器人關(guān)節(jié)運(yùn)動(dòng)控制。根據(jù)以上程序 可增加舵機(jī)的控制動(dòng)作,并記錄修改的程序。
五 實(shí)驗(yàn)要求
記錄實(shí)驗(yàn)程序及實(shí)驗(yàn)現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)三 簡(jiǎn)易四足機(jī)器人
一 實(shí)驗(yàn)?zāi)康?/p>
1.熟悉四足機(jī)器人,使用配套光盤中提供的動(dòng)作程序機(jī)器人; 2.熟悉UP-MRcommander 軟件調(diào)試機(jī)器人運(yùn)動(dòng)步態(tài)的技巧。3.掌握“創(chuàng)意之星”機(jī)器人套件的搭建技巧。
4.熟悉并掌握舵機(jī)控制函數(shù)rc_moto_control()以及延時(shí)函數(shù)delay()的使用方法,理解其函數(shù)定義
5.熟悉并掌握利用函數(shù)調(diào)試機(jī)器人的步態(tài)
二 實(shí)驗(yàn)原理
1.舵機(jī)控制方法
舵機(jī)控制數(shù)據(jù)命令包括兩個(gè)值一個(gè)是最終到達(dá)的旋轉(zhuǎn)終止角度,另外一個(gè)是速度范圍0-255,255代表最大速度。
舵機(jī)控制函數(shù)rc_moto_control()的定義如下: 函數(shù)原型:
void rc_moto_control(uint8 *point)
參數(shù)說(shuō)明:
*point 指向24字節(jié)舵機(jī)控制數(shù)據(jù),控制數(shù)據(jù)定義見控制板舵機(jī)控制命令 返回值:
無(wú)
說(shuō)明:
設(shè)定12路舵機(jī)角度控制 void rc_moto_control(uint8 *point){
} 2.多足機(jī)器人的步態(tài)
步態(tài)規(guī)劃是多足機(jī)器人運(yùn)動(dòng)的重要研究步驟。其研究的內(nèi)容是如何讓機(jī)器人的各條腿協(xié)調(diào)、連續(xù)地運(yùn)動(dòng),產(chǎn)生整體的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等運(yùn)動(dòng)。一種最簡(jiǎn)單的步態(tài)規(guī)劃方法是,觀察真實(shí)的四足動(dòng)物的運(yùn)動(dòng),并提取每個(gè)動(dòng)作的關(guān)鍵幀,得到步行過(guò)程中各關(guān)節(jié)的姿態(tài)、速度數(shù)據(jù),再使用這些數(shù)據(jù)來(lái)控制機(jī)器人。uint8 {
} Sys_PWMDataAccount();//根據(jù)舵機(jī)旋轉(zhuǎn)角度PWMangle和舵機(jī)速度PWMspeed這if(*(point+(i*2))<= 180)
PWMangle[i] = *(point+(i*2));//控制字必須小于i;for(i=0;i<12;i++)
180度,大于180度控制字丟棄
PWMspeed[i] = *(point+(i*2+1));//舵機(jī)速度控制字
兩個(gè)量計(jì)算舵機(jī)控制量
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 舵機(jī)
4個(gè)
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
舵機(jī)延長(zhǎng)線
4根 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟
1.結(jié)構(gòu)組裝
本實(shí)驗(yàn)中需要組裝的簡(jiǎn)易四足機(jī)器人三視圖及軸測(cè)視圖如下:
圖3-1 簡(jiǎn)易四足機(jī)器人三視圖
從圖3-1中可以看到,機(jī)器人具有4 個(gè)自由度(DOF1~DOF4),使用4 個(gè)基本構(gòu)形A 構(gòu)成了機(jī)器人的身體,它們之間使用I 形連接件連接。每個(gè)舵機(jī)的輸出軸上連接了一個(gè)I 形連接件,作為機(jī)器人的腿。如果大家對(duì)機(jī)器人剛度有較高要求的各部件連接件最好用螺紋副固定。在腿的末端使用了橡膠防滑墊,以增大腿部與地面的摩擦力。機(jī)器人的裝配爆炸圖如下圖所示:
圖3-2 裝配爆炸圖
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
2.連接電纜
按下表所示順序連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上:
圖3-3 指定關(guān)節(jié)的舵機(jī)連線圖
3.調(diào)整初始姿態(tài)
與前面的實(shí)驗(yàn)相同,在完成機(jī)器人的組裝后,為了使用配套光盤中附帶的動(dòng)作程序,我們需要手動(dòng)調(diào)整每個(gè)關(guān)節(jié)的初始姿態(tài)。調(diào)整方法如前面實(shí)驗(yàn)所述。調(diào)整完畢后各關(guān)節(jié)的初始姿態(tài)應(yīng)該如下圖所示:
圖3-4 舵機(jī)初始狀態(tài)圖
4.寫入動(dòng)作程序
調(diào)整之后,再次打開電源。我們應(yīng)該看到組裝完成的機(jī)械手保持如圖3-4所示的狀態(tài)。此時(shí)在UP-MRcommander 軟件中調(diào)入“UP-MRcommander蛇形機(jī)器人10 關(guān)節(jié)蠕動(dòng)-步距0.125波長(zhǎng)-正弦波.mra”這個(gè)動(dòng)作文件,并下載執(zhí)行。此時(shí)把機(jī)器人放到地上,注意觀察它的運(yùn)動(dòng)方式。
通常情況下,使只有4 個(gè)自由度的四足機(jī)器人運(yùn)動(dòng)起來(lái)并且能夠前進(jìn)、后退,是一個(gè)很困難的事情。普通的四足機(jī)器人至少有8 個(gè)自由度,有些甚至有12 個(gè)自由度。這個(gè)4 自由度的簡(jiǎn)易四足機(jī)器人能夠前進(jìn)、后退,甚至能夠笨拙地轉(zhuǎn)彎。
5.編寫C 程序?qū)崿F(xiàn)對(duì)舵機(jī)的控制
用“創(chuàng)意之星”機(jī)器人套件搭建的機(jī)器人的主要關(guān)節(jié)都是由舵機(jī)驅(qū)動(dòng)的,在打開電腦上的工程文件(“D:創(chuàng)意之星8.3.1 控制卡原始程序MultiFLEX.aps”),我們選擇USERTASK.C 對(duì)其進(jìn)行編輯。輸入如下程序:
#include “Public.h” #include “Usertask.h” void user_task(void){ uint8 array_rc[23]={0};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;
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+70;array_rc[1]=170;array_rc[2]=90-6;array_rc[3]=170;array_rc[4]=90-66;array_rc[5]=170;array_rc[6]=90-8;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+62;array_rc[1]=170;array_rc[2]=90-60;array_rc[3]=170;array_rc[4]=90-64;array_rc[5]=170;array_rc[6]=90+49;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+34;array_rc[1]=170;array_rc[2]=90-58;array_rc[3]=170;array_rc[4]=90-18;array_rc[5]=170;array_rc[6]=90+40;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+12;array_rc[1]=170;array_rc[2]=90-51;array_rc[3]=170;array_rc[4]=90-18;array_rc[5]=170;array_rc[6]=90+38;array_rc[7]=170;rc_moto_control(array_rc);delay(50);
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
array_rc[0]=90+12;array_rc[1]=170;array_rc[2]=90-58;array_rc[3]=170;array_rc[4]=90-18;array_rc[5]=170;array_rc[6]=90+36;array_rc[7]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+60;array_rc[1]=170;array_rc[2]=90-60;array_rc[3]=170;array_rc[4]=90-64;array_rc[5]=170;array_rc[6]=90+44;array_rc[7]=170;rc_moto_control(array_rc);delay(50);} 然后打開SYSTASK.C 文件,將處于最后的main()函數(shù)進(jìn)行細(xì)微改動(dòng)。int main(void){ Sys_Init();WORK_LED_ON;while(1){ //system_task();user_task();} } 至此我們就順利完成了用c 語(yǔ)言實(shí)現(xiàn)四足機(jī)器人關(guān)節(jié)運(yùn)動(dòng)控制。
五 實(shí)驗(yàn)要求
記錄實(shí)驗(yàn)程序及實(shí)驗(yàn)現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)四 輪式機(jī)器人運(yùn)動(dòng)控制實(shí)驗(yàn)
一 實(shí)驗(yàn)?zāi)康?/p>
1.了解輪式機(jī)器人的概念和了解采用全向驅(qū)動(dòng)方式在生活、科研、工作中的應(yīng)用; 2.熟悉輪式機(jī)器人;使用配套光盤中提供的動(dòng)作程序,然后自己為機(jī)器人編寫動(dòng)作;在UP-MRcommander 軟件中,熟悉直流電機(jī)的控制;
3.掌握對(duì)于具有多種執(zhí)行器(舵機(jī)、電機(jī)或者其他)的機(jī)器人,掌握搭建和調(diào)試要領(lǐng)。4.掌握“創(chuàng)意之星”機(jī)器人套件的搭建和調(diào)試要領(lǐng)。5.熟悉并掌握電機(jī)控制函數(shù)dc_moto_control()的使用方法 6.熟悉并掌握利用函數(shù)dc_moto_control()控制4 路直流伺服電機(jī)
二 實(shí)驗(yàn)原理
電機(jī)控制數(shù)組長(zhǎng)度為8,可控制4路舵機(jī),電機(jī)運(yùn)動(dòng)函數(shù)要求array_dc[偶數(shù)]為電機(jī)轉(zhuǎn)動(dòng)速度,array_rc[奇數(shù)]為電機(jī)轉(zhuǎn)動(dòng)時(shí)間。電機(jī)控制函數(shù)dc_moto_control()的定義如下:
函數(shù)原型: void dc_moto_control(uint8 *point)
參數(shù)說(shuō)明:*point 指向8字節(jié)直流電機(jī)控制數(shù)據(jù),控制數(shù)據(jù)定義見控制板電機(jī)控制命令 返回值:
無(wú)
說(shuō)明:
設(shè)定4路直流電機(jī)控制
void dc_moto_control(uint8 *point){
cli();
Timer1_100ms_M1 = 0;Timer1_100ms_M2 = 0;Timer1_100ms_M3 = 0;Timer1_100ms_M4 = 0;MotoTime[0] = *(point+1);MotoTime[1] = *(point+3);MotoTime[2] = *(point+5);MotoTime[3] = *(point+7);sei();if(0x80 == *point)M1_T;else if(*point < 0x80){
} else {
}
//設(shè)定各個(gè)電機(jī)的運(yùn)行時(shí)間0.1MS-25.5S
//MOTO1停止
OCR0 = 70 +(uint8)(((uint16)(0x7f0x80)* 145)/100);M1_R;
//MOTO2停止 if(0x80 == *(point+2))M2_T;else if(*(point+2)< 0x80){
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
}
} else {
} OCR2 = 70 +(uint8)(((uint16)(0x7f0x80)* 145)/100);M2_R;
//MOTO3停止 if(0x80 == *(point+4))M3_T;else if(*(point+4)< 0x80){ } else { } if(0x80 == *(point+6))M4_T;else if(*(point+6)< 0x80){ } else { } M4_R;
M4_L;M3_R;M3_L;
//MOTO4停止
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 舵機(jī)
4個(gè) 舵機(jī)延長(zhǎng)線
4根 電機(jī)
4個(gè) 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
四 實(shí)驗(yàn)步驟
1.結(jié)構(gòu)組裝
圖4-1 輪式機(jī)器人結(jié)構(gòu)圖
組裝完成的輪式機(jī)器人應(yīng)該如下圖所示:
圖4-2 輪式機(jī)器人三視圖
2.連接電纜
按下表所示順序連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上:
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖4-3 輪式機(jī)器人連線圖
3.調(diào)整初始姿態(tài)
打開控制卡的電源,機(jī)器人會(huì)鎖定初始姿勢(shì)。為了使用配套光盤中附帶的動(dòng)作程序,我們需要手動(dòng)調(diào)整每個(gè)關(guān)節(jié)的姿勢(shì),調(diào)整方法如前面實(shí)驗(yàn)所述。調(diào)整完畢后應(yīng)該如下圖所示:
圖4-4 輪式機(jī)器人初始狀態(tài)
4.寫入動(dòng)作程序
調(diào)整之后,再次打開電源。我們應(yīng)該看到組裝完成的輪式機(jī)器人保持如圖4-4所示的狀態(tài)。此時(shí)在UP-MRcommander 軟件中調(diào)入“UP-MRcommander全向四驅(qū)小車+機(jī)械臂機(jī)械臂+四驅(qū)車.mra”這個(gè)動(dòng)作文件,并下載執(zhí)行。輪式機(jī)器人就可以運(yùn)動(dòng)起來(lái)了。
5.建立自己的動(dòng)作程序
觀察機(jī)器人的運(yùn)動(dòng),并且通過(guò)UP-MRcommander 軟件的在線調(diào)試功能,弄清楚每個(gè)舵機(jī)、直流電機(jī)與軟件界面中相應(yīng)滑塊的對(duì)應(yīng)關(guān)系。
把機(jī)器人的輪子架空,拖動(dòng)軟件界面上的電機(jī)調(diào)速滑塊和電機(jī)運(yùn)行時(shí)間滑塊,觀察電機(jī)在不同速度運(yùn)行的情況,以及不同的運(yùn)行時(shí)間??梢杂檬治兆≥喿?,體會(huì)一下不同速度時(shí)電機(jī)的力量大小。
熟悉了電機(jī)的控制操作之后,我們可以編寫自己的運(yùn)動(dòng)程序,控制機(jī)器人按照一定的順序運(yùn)動(dòng)。
6.編寫C 程序?qū)崿F(xiàn)對(duì)4 路電機(jī)的控制
電機(jī)是機(jī)器人非常重要的組成部件之一,我們已經(jīng)知道了怎樣用“創(chuàng)意之星”機(jī)器人套件提供的上位機(jī)程序通過(guò)控制卡對(duì)電機(jī)進(jìn)行控制。在本實(shí)驗(yàn)中,我們都只討論怎么對(duì)USERTASK.C 進(jìn)行編輯,其余步驟跟前面相同,不再贅述。對(duì)四路電機(jī)進(jìn)行控制的USERTASK.C程序如下所示:
#include “Public.h” #include “Usertask.h” void user_task(void)
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
{ uint8 array_dc[7]={0};uint8 i;array_dc[0] = 0;array_dc[1] = 30;array_dc[2] = 0xFE;array_dc[3] = 30;array_dc[4] = 0;array_dc[5] = 30;array_dc[6] = 0xFE;array_dc[7] = 30;dc_moto_control(array_dc);delay(150);
for(i=0;i<(128/10+1);i++){ array_dc[0] = 0+i*10;array_dc[1] = 2;array_dc[2] = 255-i*10;array_dc[3] = 2;array_dc[4] = 0;array_dc[5] = 2;array_dc[6] = 0;array_dc[7] = 2;dc_moto_control(array_dc);delay(10);}
array_dc[0] = 0x80;array_dc[1] = 2;array_dc[2] = 0x80;array_dc[3] = 2;array_dc[4] = 0x80;array_dc[5] = 2;array_dc[6] = 0x80;array_dc[7] = 2;dc_moto_control(array_dc);delay(10);delay(50);} 整個(gè)工程編譯后電機(jī)將以上循環(huán)規(guī)律轉(zhuǎn)動(dòng)。但機(jī)器人是無(wú)法規(guī)律運(yùn)動(dòng)的,要求同學(xué)根據(jù)UP-MRcommander 軟件中調(diào)入“UP-MRcommander全向四驅(qū)小車+機(jī)械臂機(jī)械臂+四驅(qū)車.mra”這個(gè)動(dòng)作文件中的參數(shù)設(shè)置,修改對(duì)4 路電機(jī)的控制程序,實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)。
五 實(shí)驗(yàn)要求
記錄實(shí)驗(yàn)程序及實(shí)驗(yàn)現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)五 機(jī)器人傳感系統(tǒng)實(shí)驗(yàn)
一 實(shí)驗(yàn)?zāi)康?/p>
1.熟悉關(guān)于AVR 單片機(jī)的A/D 口的概念、作用
2.熟悉并掌握函數(shù)ADC_Read(uint8 Channel,uint8 *data)的使用方法,理解其函數(shù) 定義
3.熟悉并掌握利用函數(shù)ADC_Read()讀取來(lái)自MultiFLEX 控制卡A/D 口的模擬信號(hào)
二 實(shí)驗(yàn)原理
A/D 口(ADC 模擬/數(shù)字信號(hào)轉(zhuǎn)換器)是MultiFLEX 控制卡的又一重要組成部分之一。A/D 口可以進(jìn)行數(shù)字信號(hào)與模擬信號(hào)的轉(zhuǎn)化,在這里僅簡(jiǎn)單介紹A/D 口的模擬信息采集過(guò)程:傳感器輸出的模擬信號(hào)到達(dá)A/D 口后,單片機(jī)會(huì)對(duì)輸入的連續(xù)模擬信號(hào)進(jìn)行定時(shí)采集,進(jìn)而得到一系列時(shí)間間隔一定的離散信號(hào),用這些離散的點(diǎn)信號(hào)來(lái)代替以前連續(xù)的曲線信號(hào),由于兩次采集之間的時(shí)間間隔極短,所以由連續(xù)信號(hào)轉(zhuǎn)化為離散信號(hào)的誤差極小,在普通工程應(yīng)用領(lǐng)域我們可以忽略兩者之間的誤差。
A/D口函數(shù)ADC_Read()的定義如下: 參數(shù)說(shuō)明:
Channel : ADC通道選擇 0-7 *
函數(shù)原型:
void ADC_Read(uint8 Channel,uint8 *data)//讀取8路模擬量
*data : 返回8位ADC數(shù)據(jù)
返回值: 無(wú)
說(shuō)明: 讀取8路模擬量 {
} uint8 i;
//每次讀取兩次拋棄前一次的數(shù)據(jù),防止轉(zhuǎn)換通道的時(shí)候讀ADMUX =((ADMUX & 0xf8)|(Channel & 0x07));for(i=0;i<2;i++){
} ADCSRA |= _BV(ADSC);_delay_loop_1(60);while(ADCSRA & _BV(ADSC))_delay_loop_1(60);*data = ADCH;
//讀取AD數(shù)據(jù)
//讀取8路模擬量 void ADC_Read(uint8 Channel,uint8 *data)取到上一個(gè)通道的輸入
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 傳感器
若干 舵機(jī)
4個(gè)
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
舵機(jī)延長(zhǎng)線
4根 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟
1.控制卡的AD0 與光強(qiáng)傳感器連接 2.控制卡PWM0 與舵機(jī)連接
3.控制卡與電腦之間用并口下載線正確連接 4.控制卡電源線正確連接 5.建立自己的程序 實(shí)驗(yàn)程序1: #include “Public.h” #include
“Usertask.h” void user_task(void){
} 整個(gè)實(shí)驗(yàn)的運(yùn)行結(jié)果應(yīng)為:開機(jī)后,PWM0口的舵機(jī)在0-180度之間運(yùn)動(dòng),其位置與外部光照強(qiáng)度成正比(外部光照強(qiáng)度通過(guò)光強(qiáng)傳感器采集,采集頻率2Hz)。
實(shí)驗(yàn)程序2: #include “Public.h” #include
“Usertask.h” void user_task(void){
uint8 uint8 AD0_in;rc_array[23]={0};uint16 temp;uint8
i;for(i=0;i<24;i=i+2){
} while(1){
} ADC_Read(0,&AD0_in);temp=((uint16)AD0_in*180)/255;rc_array[0]=(uint8)temp;rc_array[1]=80;rc_moto_control(rc_array);delay(25);rc_array[i]=90;rc_array[i+1]=128;uint8 uint8 AD0_in;rc_array[23]={0};
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
} uint8 while(1){
} i=0;ADC_Read(0,&AD0_in);rc_array[0]=i*180;rc_array[1]=AD0_in;delay(25);i++;if(i>1)i=0;
rc_moto_control(rc_array);實(shí)驗(yàn)結(jié)果:開機(jī)后,舵機(jī)在0-180度之間往復(fù)運(yùn)動(dòng),其轉(zhuǎn)動(dòng)速度與外部光照強(qiáng)度成正比(外部光照強(qiáng)度通過(guò)光強(qiáng)傳感器采集,采集頻率2Hz)。
6.同時(shí)控制多個(gè)舵機(jī)的程序編寫
參考上述程序,編寫程序同時(shí)使用4個(gè)光強(qiáng)(或溫度)傳感器分別控制4個(gè)舵機(jī)的轉(zhuǎn)角位置的程序。
五 實(shí)驗(yàn)要求
記錄程序及實(shí)驗(yàn)現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)六 自主避障機(jī)器人實(shí)驗(yàn)
一 實(shí)驗(yàn)?zāi)康?/p>
1.回顧控制卡的各種控制函數(shù)
2.提高靈活應(yīng)用各種控制函數(shù)控制機(jī)器人各種執(zhí)行器的能力 3.提高搭建只能程序,使機(jī)器人擁有一定人工智能的能力
二 實(shí)驗(yàn)原理
機(jī)器人在沒有遇到障礙物的時(shí)候會(huì)一直向前運(yùn)動(dòng)。當(dāng)傳感器遇到障礙物之后,由于傳感器自生延時(shí)以及處理器的需要處理時(shí)間,所以機(jī)器人會(huì)由于慣性繼續(xù)向前運(yùn)動(dòng)一段距離,我們就需要機(jī)器人推后一定的補(bǔ)償距離,以保證和障礙物之間的距離為一個(gè)確定的范圍。其次機(jī)器人會(huì)根據(jù)檢測(cè)到障礙物的傳感器不同而采取不同的策略:如果是左邊傳感器檢測(cè)到障礙物之后,機(jī)器人應(yīng)該向右轉(zhuǎn)避開障礙物;如果是右邊的傳感器檢測(cè)到障礙物的話機(jī)器人應(yīng)該向左轉(zhuǎn);如果兩個(gè)傳感器都有障礙物的話機(jī)器人應(yīng)該隨機(jī)采取一個(gè)旋轉(zhuǎn)方向(為簡(jiǎn)化程序,我們假設(shè)此時(shí)機(jī)器人仍向右轉(zhuǎn))。并且機(jī)器人左轉(zhuǎn)與右轉(zhuǎn)的角度不應(yīng)該相同,否則在特殊情況下機(jī)器人會(huì)陷入死循環(huán),在一個(gè)地方不停的循環(huán)的左轉(zhuǎn)右轉(zhuǎn)。當(dāng)機(jī)器人轉(zhuǎn)向后,如果機(jī)器人前方仍然有障礙物的話機(jī)器人應(yīng)該重復(fù)后退專項(xiàng)操作,如果前方已經(jīng)沒有障礙物的話機(jī)器人應(yīng)該繼續(xù)向前引動(dòng)。以下是程序框圖:
圖6-1 自主避障機(jī)器人的程序框架
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
232電纜
1根 USB轉(zhuǎn)232電纜
1根 電機(jī)
4個(gè) 舵機(jī)
4個(gè) 舵機(jī)延長(zhǎng)線
4根 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟
1.結(jié)構(gòu)組裝
圖6-2 結(jié)構(gòu)組裝圖
由圖6-2可知,整個(gè)全向運(yùn)動(dòng)作業(yè)機(jī)器人由1 個(gè)機(jī)器手構(gòu)型,1 個(gè)控制盒,4 個(gè)基本構(gòu)型D,4 個(gè)零件I9 以及相應(yīng)的連接件構(gòu)成。為簡(jiǎn)化起見,上圖中并沒有顯示出具體的連接件,大家可以在考慮機(jī)器人系統(tǒng)剛性的情況下采用自己喜歡的連接方式。本實(shí)驗(yàn)的全向運(yùn)動(dòng)作業(yè)機(jī)器人結(jié)構(gòu)主體和前面里面的四輪小車基本相似,下部的驅(qū)動(dòng)部分大不相同,采用的是前面介紹的基本構(gòu)型D。請(qǐng)同學(xué)們組裝的時(shí)候認(rèn)真體會(huì)這種驅(qū)動(dòng)結(jié)構(gòu)的優(yōu)缺點(diǎn)。
組裝好后的全向作業(yè)機(jī)器人如下圖所示:
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖6-3 全向作業(yè)機(jī)器人
在此我們將其機(jī)器手部分去掉,為其加上兩個(gè)檢測(cè)障礙物用的紅外傳感器。加上的紅外傳感器裝配圖如下圖所示:
圖6-4 紅外傳感器示意圖
加上的紅外傳感器裝配體由1 個(gè)L5-3,2 個(gè)V2-2 以及兩個(gè)紅外傳感器構(gòu)成,各零件之間用螺紋副連接(紅外傳感器與V2-2 之間靠過(guò)盈配合)。為了增加系統(tǒng)剛性,紅外傳感器裝配體與全向運(yùn)動(dòng)機(jī)器人之間也用螺紋副連接。改裝好的機(jī)器人如下圖所示:
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖6-5 改裝后的全向運(yùn)動(dòng)機(jī)器人
改裝后的全向運(yùn)動(dòng)機(jī)器人的各個(gè)舵機(jī)以及電機(jī)與控制卡的連接順序以及開機(jī)后各舵機(jī)的初始位置依然同全向運(yùn)動(dòng)機(jī)器人一樣,不做改動(dòng)(機(jī)器手部分忽略),而加上的兩個(gè)紅外傳感器則分別插在控制卡的IO0 以及IO1 上。至此我們的機(jī)器人就改裝完畢了。
2.連接電纜
按下表所示順序連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上:
圖6-6 電纜連接圖
3.C 語(yǔ)言程序編寫
打開我們的上位機(jī)程序UPMRobot.exe,用串口線將控制卡與電腦連接好,給機(jī)器人通上電,在上位機(jī)程序里打開設(shè)置相應(yīng)串口并且打開在線調(diào)試功能。
通過(guò)在線調(diào)試,可以把機(jī)器人調(diào)整到假設(shè)機(jī)器人遇到某種情況時(shí)所需要執(zhí)行的運(yùn)動(dòng)狀態(tài),然后點(diǎn)擊如下圖所示的紅框框住的指令欄,分別點(diǎn)擊舵機(jī)、電機(jī)、I/O 輸出、蜂鳴器會(huì)彈出不同的窗口,這個(gè)窗口就是上位機(jī)給控制卡發(fā)出的使機(jī)器人執(zhí)行當(dāng)前運(yùn)動(dòng)設(shè)置的指令,這個(gè)指令遵守模塊化機(jī)器人電腦與控制卡之間的通訊協(xié)議,通過(guò)查閱“創(chuàng)意之星”實(shí)驗(yàn)里的模塊化機(jī)器人通訊協(xié)議,經(jīng)過(guò)簡(jiǎn)單分析,就可以提取出在Usertask.C 中調(diào)用的控制函數(shù)的參數(shù),將這些控制參數(shù)提交給控制函數(shù)并執(zhí)行,機(jī)器人就會(huì)如現(xiàn)在在線調(diào)試般運(yùn)動(dòng)。通過(guò)在31
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
線調(diào)試提取機(jī)器人運(yùn)動(dòng)信息,可以使我們的程序編寫過(guò)程大大簡(jiǎn)化。
圖6-7 UPMRobot界面
先在在線調(diào)試模式下設(shè)定一個(gè)機(jī)器人的運(yùn)動(dòng)狀態(tài),然后電機(jī)指令欄里的舵機(jī)按鈕,會(huì)彈出如下信息:
圖6-8 舵機(jī)數(shù)據(jù)
而在模塊化機(jī)器人通訊中關(guān)于舵機(jī)指令的規(guī)定如下:
圖6-9 舵機(jī)控制指令
通過(guò)分析,可以看到在彈出窗口里舵00——舵11 之間的24 個(gè)數(shù)據(jù),實(shí)際上就是讓機(jī)器人運(yùn)動(dòng)到此狀態(tài)下的舵機(jī)控制函數(shù)rc_moto_control()的運(yùn)動(dòng)參數(shù)。將此24 個(gè)數(shù)依次賦予一個(gè)擁有24 項(xiàng)的數(shù)組(例如unsigned char rc_array[23];),然后將此數(shù)組數(shù)組名(數(shù)組地址)傳遞給舵機(jī)函數(shù),在Usertask.C 中調(diào)用命令“rc_moto_control(array);”即可使機(jī)器人按照當(dāng)前在線調(diào)試狀態(tài)所設(shè)置的運(yùn)動(dòng)狀態(tài)運(yùn)動(dòng)。
類似的,在在線調(diào)試模式下設(shè)定一個(gè)機(jī)器人的運(yùn)動(dòng)狀態(tài),然后電機(jī)指令欄里的舵機(jī)按鈕,32
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
會(huì)彈出如下信息:
圖6-10 電機(jī)數(shù)據(jù)
在的模塊化機(jī)器人通訊中關(guān)于電機(jī)指令的規(guī)定如下:
圖6-11 電機(jī)控制指令
經(jīng)過(guò)分析,M00-M03 之間的8 個(gè)數(shù)就是在Usertask.C 中調(diào)用dc_moto_control()函數(shù)實(shí)現(xiàn)當(dāng)前運(yùn)動(dòng)狀態(tài)的參數(shù)。我們不妨建立一個(gè)數(shù)組“unsigned chardc_array[7];” 然后將上述數(shù)據(jù)依次賦予此數(shù)組,然后再Usertask.C 調(diào)用語(yǔ)句“dc_moto_control(dc_array);”機(jī)器人機(jī)會(huì)按照當(dāng)前在線調(diào)試所確定的狀態(tài)運(yùn)動(dòng)。通過(guò)反復(fù)嘗試,最終我們建立的使全向運(yùn)動(dòng)機(jī)器人實(shí)現(xiàn)自動(dòng)避障的USERTASK.C程序如下所示:
#include “public.h” #include “Usertask.h” void user_task(void){ uint8 array_dc[7]={0};uint8 array_rc[23]={0};uint16 temp16;gpio_mode_set(0);temp16 = read_gpio();if((temp16 & 0x0003)==3){ array_dc[0] = 0;array_dc[1] = 50;array_dc[2] = 0xFE;array_dc[3] = 50;array_dc[4] = 0;array_dc[5] = 50;array_dc[6] = 0xFE;array_dc[7] = 50;
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
dc_moto_control(array_dc);} else if(((temp16&0x0003)==2)||((temp16&0x0003)==0)){ beep_set(5);
array_dc[0] = 0xFE;array_dc[1] = 5;//0.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);array_rc[0]=90+20;array_rc[1]=170;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);delay(50);
array_dc[0] = 0x80+55;array_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);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;
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
array_rc[7]=170;rc_moto_control(array_rc);delay(50);} else { beep_set(5);array_dc[0] = 0xFE;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);array_rc[0]=90+20;array_rc[1]=170;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);delay(50);
array_dc[0] = 0x80-55;array_dc[1] = 15;array_dc[2] = 0x80-55;array_dc[3] = 15;array_dc[4] = 0x80-55;array_dc[5] = 15;array_dc[6] = 0x80-55;array_dc[7] = 15;dc_moto_control(array_dc);delay(50);array_rc[0]=90;array_rc[1]=170;array_rc[2]=90;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
array_rc[6]=90;array_rc[7]=170;rc_moto_control(array_rc);delay(50);} } 下載完成后,如果操作正確,我們會(huì)看見擁有自主避障功能的全向運(yùn)動(dòng)小車在地面運(yùn)動(dòng)。
五 實(shí)驗(yàn)要求
記錄程序及實(shí)驗(yàn)現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)七 追光的機(jī)器爬蟲
一 實(shí)驗(yàn)?zāi)康?/p>
1.回顧控制卡的各種控制函數(shù)
2.提高靈活應(yīng)用各種控制卡函數(shù)控制機(jī)器的能力 3.提高搭建c 程序,使機(jī)器人擁有一定人工智能的能力
二 實(shí)驗(yàn)原理
機(jī)器人的追光行為應(yīng)該細(xì)分為尋找光源、追逐光源等基本行為,在兩個(gè)基本行為之中又夾雜著若干的邏輯判斷,例如周圍光源是否達(dá)到人造光源光強(qiáng)標(biāo)準(zhǔn),是否追蹤到光源,光源是否丟失等等。其具體分析如下所述:
機(jī)器爬蟲開機(jī)復(fù)位后,首先應(yīng)該開始尋找光源:機(jī)器人開始采集傳感器數(shù)據(jù),并沿某方向(例如向左)原地打轉(zhuǎn)直至傳感器采集的數(shù)據(jù)大于某一閾值δ(在自然條件下環(huán)境光比較溫和,傳感器采集數(shù)據(jù)處于一個(gè)比較低的范圍,若傳感器采集值忽然增大,說(shuō)明機(jī)器人逐漸朝向光源方向),然后機(jī)器人繼續(xù)轉(zhuǎn)相,直至兩傳感器采集數(shù)據(jù)之差小于或等于另一閾值Δ 時(shí)說(shuō)明機(jī)器人現(xiàn)在已經(jīng)朝向光源方向。
當(dāng)機(jī)器爬蟲鎖定光源大概方向后即開始追光:爬蟲朝光源方向運(yùn)動(dòng),運(yùn)動(dòng)過(guò)程中不斷根據(jù)傳感器采集的數(shù)據(jù)修正自己的方向:如果兩傳感器采集數(shù)據(jù)之差仍不大于Δ 時(shí)說(shuō)明光源未丟失;如果光源之差大于Δ(光源移動(dòng)等原因?qū)е拢┱f(shuō)明機(jī)器人已經(jīng)丟失光源,如果此時(shí)單個(gè)傳感器值仍大于δ 則機(jī)器人朝次方向轉(zhuǎn)向,如果兩個(gè)傳感器的數(shù)據(jù)均小于δ 則說(shuō)明光源已經(jīng)徹底丟失,機(jī)器人應(yīng)該重復(fù)追光行為。初步的框架圖如下所示:
圖7-1 機(jī)器人追光框架圖
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 傳感器
2個(gè) 舵機(jī)
8個(gè) 舵機(jī)延長(zhǎng)線
8根 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟 結(jié)構(gòu)組裝
機(jī)器爬蟲的結(jié)構(gòu)組裝如下圖所示:
圖7-2 機(jī)器爬蟲的結(jié)構(gòu)組裝圖
機(jī)器爬蟲每個(gè)腿部構(gòu)型由2 個(gè)基本構(gòu)型B,1 個(gè)L1-1,一個(gè)L3-1 以及相應(yīng)的連接件構(gòu)成。四只腿兩兩對(duì)稱,組裝的時(shí)候需注意。機(jī)器爬蟲的頭部構(gòu)型由1 個(gè)基本構(gòu)型B,2 個(gè)光強(qiáng)傳感器,1 個(gè)L3-3,2 個(gè)V2-2 以及相應(yīng)的連接件構(gòu)成。機(jī)器爬蟲控制盒由2 個(gè)電路板底座,6 個(gè)U1-2-1,1 塊電路板以及相應(yīng)的連接件構(gòu)成。整個(gè)機(jī)器爬蟲由1 個(gè)頭部構(gòu)型,4 個(gè)腿部構(gòu)型,1 個(gè)控制盒,1 個(gè)支撐架,1 個(gè)L5-1,1 個(gè)電池組以及相應(yīng)的連接件構(gòu)成。建議腿部與軀干用螺釘連接以保證機(jī)體的穩(wěn)定性。
組裝好后的機(jī)器爬蟲如下圖所示
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖7-3 機(jī)器爬蟲全圖
由于兩個(gè)光強(qiáng)傳感器平行不利于分辨光源方向,所以我們要對(duì)機(jī)器爬蟲的頭部進(jìn)行改裝。改裝的機(jī)器人頭部如下所示:
圖7-4 光強(qiáng)傳感器安裝圖
機(jī)器人頭部由1 個(gè)U1-2-1,一個(gè)V2-2,兩個(gè)D8x6 輪軸,兩個(gè)紅外傳感器以及一些連接螺釘裝配而成,兩傳感器之間呈大概30 度夾角。改裝后的機(jī)器爬蟲如下所示:
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
圖7-5 機(jī)器爬蟲初始狀態(tài)
四只腿中八個(gè)舵機(jī)與控制卡的連接順序還是和前面的四足爬蟲一樣。頭部的左、右(以爬蟲為基準(zhǔn)的左右)光強(qiáng)傳感器分別連接至控制卡的AD0 和AD1 接口上。
2.連接電纜
按下表所示順序連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上:
圖7-6 機(jī)器爬蟲電纜連接圖
3.C 語(yǔ)言程序編寫
借助上位機(jī)軟件在線調(diào)試步通過(guò)反復(fù)嘗試,最終建立的使四足機(jī)器爬蟲實(shí)現(xiàn)追光行為的USERTASK.C程序如下所示:
#include “public.h” #include
“Usertask.h” uint8 { uint8
rc_array[10][24]={{0xAD,0x67,0x5A,0x67,0x11,0xDC,0x5C,0xD9,0xAD,0x67,0x67,0x67,0x0A,0x67,0x60,0x67},move_on_flag=0;
void move_on1(void)
{0xAD,0x67,0x50,0x67,0x11,0x67,0x66,0x67,0xAD,0x67,0x5D,0x67,0x0A,0x67,0x6A,0x6
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
7,0x5A ,0x80}, {0xAD ,0x67 ,0x4B ,0x67 ,0x11 ,0x67 ,0x6B ,0x67 ,0x8F ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 , {0xAD ,0x67 ,0x46 ,0x67 ,0x11 ,0x67 ,0x70 ,0x67 ,0xAD ,0xDC ,0x85 ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x75 ,0x67 ,0xAD ,0x67 ,0x80 ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x6E ,0xD9 ,0x11 ,0x67 ,0x7A ,0x67 ,0xAD ,0x67 ,0x7B ,0x67 ,0x0A ,0x67 {0xAD ,0x67 ,0x69 ,0x67 ,0x11 ,0x67 ,0x7F ,0x67 ,0xAD ,0x67 ,0x76 ,0x67 ,0x28 ,0xDC ,0 {0xAD ,0x67 ,0x64 ,0x67 ,0x11 ,0x67 ,0x84 ,0x67 ,0xAD ,0x67 ,0x71 ,0x67 ,0x0A ,0xDC ,0 {0xAD ,0x67 ,0x5F ,0x67 ,0x2F ,0xDC ,0x70 ,0xD9 ,0xAD ,0x67 ,0x6C ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,}
void move_on2(void){ uint8 rc_array[10][24]={{0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,0x60 ,0x67}, {0xAD ,0x67 ,0x50 ,0x67 ,0x11 ,0x67 ,0x66 ,0x67 ,0xAD ,0x67 ,0x5D ,0x67 ,0x0A ,0x67 ,0
0x6F ,0x67 }, 0x74 ,0x67 }, x79 ,0x67}, ,0x7E ,0x67}, x6A ,0xD9}, x56 ,0xD9}, 0x5B ,0x67}, 0x60 ,0x67}};uint8 {
} rc_moto_control(rc_array[i]);delay(6);i;for(i=0;i<10;i++)x6A ,0x67}, {0xAD ,0x67 ,0x4B ,0x67 ,0x11 ,0x67 ,0x6B ,0x67 ,0xAD ,0x67 ,0x58 ,0x67 ,0x28 ,0xDC ,41
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
0x56 ,0xD9}, {0xAD ,0x67 ,0x46 ,0x67 ,0x11 ,0x67 ,0x70 ,0x67 ,0xAD ,0x67 ,0x53 ,0x67 ,0x0A ,0xDC ,0 {0xAD ,0x67 ,0x41 ,0x67 ,0x2F ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x4E ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x3C ,0x67 ,0x11 ,0xDC ,0x48 ,0xD9 ,0xAD ,0x67 ,0x49 ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x37 ,0x67 ,0x11 ,0x67 ,0x4D ,0x67 ,0x8F ,0xDC ,0x5D ,0xD9 ,0x0A ,0x67 , {0xAD ,0x67 ,0x32 ,0x67 ,0x11 ,0x67 ,0x52 ,0x67 ,0xAD ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x46 ,0xD9 ,0x11 ,0x67 ,0x57 ,0x67 ,0xAD ,0x67 ,0x6C ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x5C ,0x67 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,} void move_on(void){
}
void turn_left(void){ uint8 rc_array[10][24]={{0xAD ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x5C ,0x67 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,0x60 ,0x67},x42 ,0xD9}, 0x47 ,0x67}, 0x4C ,0x67}, 0x51 ,0x67}, 0x56 ,0x67}, x5B ,0x67}, 0x60 ,0x67}};{
} rc_moto_control(rc_array[i]);delay(6);uint8 i;for(i=0;i<10;i++)if(move_on_flag==0)move_on1();else move_on2();move_on_flag++;if(move_on_flag>1)move_on_flag=0;{0xAD ,0x67 ,0x64 ,0x67 ,0x11 ,0x67 ,0x66 ,0x67 ,0xAD ,0x67 ,0x71 ,0x67 ,0x0A ,0x67 ,0x
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
6A ,0x67}, {0xAD ,0x67 ,0x69 ,0x67 ,0x11 ,0x67 ,0x6B ,0x67 ,0xAD ,0x67 ,0x76 ,0x67 ,0x28 ,0xDC ,0 {0xAD ,0x67 ,0x6E ,0x67 ,0x11 ,0x67 ,0x70 ,0x67 ,0xAD ,0x67 ,0x7B ,0x67 ,0x0A ,0xDC , {0xAD ,0x67 ,0x73 ,0x67 ,0x2F ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x80 ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x78 ,0x67 ,0x11 ,0xDC ,0x48 ,0xD9 ,0xAD ,0x67 ,0x85 ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x7D ,0x67 ,0x11 ,0x67 ,0x4D ,0x67 ,0x8F ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 , {0xAD ,0x67 ,0x82 ,0x67 ,0x11 ,0x67 ,0x52 ,0x67 ,0xAD ,0xDC ,0x5D ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x6E ,0xD9 ,0x11 ,0x67 ,0x57 ,0x67 ,0xAD ,0x67 ,0x62 ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x5C ,0x67 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 , } void turn_right(void){ uint8 rc_array[10][24]={{0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 ,0x60 ,0x67}, {0xAD ,0x67 ,0x50 ,0x67 ,0x11 ,0x67 ,0x52 ,0x67 ,0xAD ,0x67 ,0x5D ,0x67 ,0x0A ,0x67 ,0
x56 ,0xD9}, 0x42 ,0xD9}, 0x47 ,0x67}, 0x4C ,0x67}, 0x51 ,0x67}, 0x56 ,0x67}, x5B ,0x67}, 0x60 ,0x67}};delay(10);uint8 {
} rc_moto_control(rc_array[i]);delay(6);i;for(i=0;i<10;i++)x56 ,0x67}, {0xAD ,0x67 ,0x4B ,0x67 ,0x11 ,0x67 ,0x4D ,0x67 ,0x8F ,0xDC ,0x71 ,0xD9 ,0x0A ,0x67 ,43
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
0x51 ,0x67}, {0xAD ,0x67 ,0x46 ,0x67 ,0x11 ,0x67 ,0x48 ,0x67 ,0xAD ,0xDC ,0x85 ,0xD9 ,0x0A ,0x67 , {0x8F ,0xDC ,0x5A ,0xD9 ,0x11 ,0x67 ,0x43 ,0x67 ,0xAD ,0x67 ,0x80 ,0x67 ,0x0A ,0x67 ,0 {0xAD ,0xDC ,0x6E ,0xD9 ,0x11 ,0x67 ,0x3E ,0x67 ,0xAD ,0x67 ,0x7B ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x69 ,0x67 ,0x11 ,0x67 ,0x39 ,0x67 ,0xAD ,0x67 ,0x76 ,0x67 ,0x28 ,0xDC ,0 {0xAD ,0x67 ,0x64 ,0x67 ,0x11 ,0x67 ,0x34 ,0x67 ,0xAD ,0x67 ,0x71 ,0x67 ,0x0A ,0xDC ,0 {0xAD ,0x67 ,0x5F ,0x67 ,0x2F ,0xDC ,0x48 ,0xD9 ,0xAD ,0x67 ,0x6C ,0x67 ,0x0A ,0x67 , {0xAD ,0x67 ,0x5A ,0x67 ,0x11 ,0xDC ,0x5C ,0xD9 ,0xAD ,0x67 ,0x67 ,0x67 ,0x0A ,0x67 , }
void user_task(void){
0x4C ,0x67}, x47 ,0x67}, 0x42 ,0x67}, x56 ,0xD9}, x6A ,0xD9}, 0x65 ,0x67}, 0x60 ,0x67}};delay(10);uint8 {
} rc_moto_control(rc_array[i]);delay(6);i;for(i=0;i<10;i++)uint8 uint8 uint8 light_sensor_left;light_sensor_right;light_gate=130;
int8 sub_gate=30;int8 int8_temp;while(1){
ADC_Read(0,&light_sensor_left);ADC_Read(1,&light_sensor_right);if(light_sensor_left>light_gate)
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
}
} {
} else turn_right();if(light_sensor_right>light_gate){
} else turn_left();int8_temp=(int8)(light_sensor_left-light_sensor_right);if(int8_temp){
} else {
}
int8_temp=0-int8_temp;
if(int8_temp>sub_gate)turn_right();else move_on();
if(int8_temp>sub_gate)turn_left();else move_on();下載完成后,如果操作正確,我們會(huì)看見擁有追光行為的四組機(jī)器爬蟲在地面運(yùn)動(dòng),我們可以不斷的變換手電筒的位置,檢驗(yàn)編程效果。
五 實(shí)驗(yàn)要求
記錄動(dòng)作程序及現(xiàn)象
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
實(shí)驗(yàn)八 開放性實(shí)驗(yàn):設(shè)計(jì)自己的機(jī)器人
一 實(shí)驗(yàn)?zāi)康?/p>
1.回顧控制卡的各種控制函數(shù)
2.提高靈活應(yīng)用各種控制卡函數(shù)控制機(jī)器的能力 3.提高搭建c 程序,使機(jī)器人擁有一定人工智能的能力 4.回顧“創(chuàng)意之星”機(jī)器人套件的搭建和調(diào)試要領(lǐng)。
二 實(shí)驗(yàn)原理
根據(jù)自己的愛好搭建出自己喜歡的機(jī)器人。但是僅僅搭建出一個(gè)機(jī)器人構(gòu)型只能體現(xiàn)出我們的動(dòng)手能力,如何把這個(gè)機(jī)器人搭好、搭妙則需要我們有較強(qiáng)的創(chuàng)新能力。搭建的過(guò)程中注意個(gè)部分結(jié)構(gòu)的強(qiáng)度、剛度、穩(wěn)定性。注意給機(jī)器人的各運(yùn)動(dòng)部分留下充足的空間,避免機(jī)器人運(yùn)動(dòng)時(shí)產(chǎn)生干涉。自己定義一定的順序,連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上。
三 實(shí)驗(yàn)器材
計(jì)算機(jī)
1臺(tái) MultiFLEX 控制卡
1塊 控制卡電源線
1根 串口下載線
1根 232電纜
1根 USB轉(zhuǎn)232電纜
1根 傳感器
2個(gè) 舵機(jī)
若干 舵機(jī)延長(zhǎng)線
若干 創(chuàng)意之星機(jī)器人構(gòu)件
1套 UP-MRcommander 控制軟件
1套
四 實(shí)驗(yàn)步驟
1.根據(jù)自己的愛好搭建出自己喜歡的機(jī)器人
2.將自己設(shè)計(jì)的機(jī)器人的各個(gè)舵機(jī)、電機(jī)與控制卡相連 3.將自己設(shè)計(jì)的機(jī)器人的傳感器分別插在控制卡上 4.控制卡與電腦之間用并口下載線正確連接 5.編程、下載、運(yùn)行。觀察結(jié)果。實(shí)驗(yàn)范例:
仿生蛇形機(jī)器人的制作 1 結(jié)構(gòu)組裝
機(jī)器蛇的蛇身由10個(gè)基本構(gòu)型B 串聯(lián)構(gòu)成,蛇頭由一個(gè)V2-
2、兩個(gè)基本構(gòu)型H以及相應(yīng)的連接件構(gòu)成。推薦機(jī)器蛇各基本構(gòu)型之間用螺紋副連接方式以增強(qiáng)機(jī)器蛇結(jié)構(gòu)的穩(wěn)定性及可靠性。
圖8-1 仿生蛇形機(jī)器人結(jié)構(gòu)
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
2.連接電纜
按下表所示順序連接指定關(guān)節(jié)的舵機(jī)的電纜到MultiFLEX 控制卡上:
圖8-2 仿生蛇形機(jī)器人連線圖
3.調(diào)整初始姿態(tài)
打開控制卡的電源,我們會(huì)發(fā)現(xiàn)機(jī)器蛇開始運(yùn)動(dòng)到初始姿勢(shì)之后會(huì)鎖定該姿勢(shì)。為了使用附帶的動(dòng)作程序,我們需要手動(dòng)調(diào)整每個(gè)關(guān)節(jié)的姿勢(shì),調(diào)整完畢后應(yīng)該如下圖所示:
圖8-3 仿生蛇形機(jī)器人初始狀態(tài)
4.C 語(yǔ)言程序編寫
借助上位機(jī)軟件在線調(diào)試步通過(guò)反復(fù)嘗試,最終建立的仿生蛇形機(jī)器人的USERTASK.C程序:
#include “Public.h” #include “Usertask.h” void user_task(void){ uint8 array_rc[23]={0};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;array_rc[8]=90;array_rc[9]=170;array_rc[10]=90;array_rc[11]=170;array_rc[12]=90;array_rc[13]=170;
創(chuàng)意之星模塊化機(jī)器人實(shí)驗(yàn)
array_rc[14]=90;array_rc[15]=170;array_rc[16]=90;array_rc[17]=170;array_rc[18]=90;array_rc[19]=170;array_rc[20]=90;array_rc[21]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90;array_rc[1]=170;array_rc[2]=90-30;array_rc[3]=170;array_rc[4]=90-40;array_rc[5]=170;array_rc[6]=90-30;array_rc[7]=170;array_rc[8]=90;array_rc[9]=170;array_rc[10]=90+30;array_rc[11]=170;array_rc[12]=90+40;array_rc[13]=170;array_rc[14]=90+30;array_rc[15]=170;array_rc[16]=90;array_rc[17]=170;array_rc[18]=90-30;array_rc[19]=170;array_rc[20]=90-40;array_rc[21]=170;rc_moto_control(array_rc);delay(50);array_rc[0]=90+40;array_rc[1]=170;array_rc[2]=90+30;array_rc[3]=170;array_rc[4]=90;array_rc[5]=170;array_rc[6]=90-30;array_rc[7]=170;array_rc[8]=90-40;
第二篇:Photoshop實(shí)驗(yàn)指導(dǎo)書
Photoshop實(shí)驗(yàn)指導(dǎo)書
目 錄
實(shí)驗(yàn)一 圖層的使用練習(xí)……………………………………………1 實(shí)驗(yàn)二 選區(qū)的創(chuàng)建和編輯練習(xí)……………………………………8 實(shí)驗(yàn)三 實(shí)驗(yàn)四 實(shí)驗(yàn)五 實(shí)驗(yàn)六 實(shí)驗(yàn)七 實(shí)驗(yàn)八 實(shí)驗(yàn)九 實(shí)驗(yàn)十
圖像的繪制練習(xí)……………………………………………13 圖像的編輯練習(xí)……………………………………………18 圖像色彩的調(diào)整練習(xí)………………………………………21 路徑的使用練習(xí)……………………………………………24 文本的應(yīng)用綜合練習(xí)………………………………………28 圖層的高級(jí)使用練習(xí)………………………………………32 通道和蒙板的使用練習(xí)……………………………………36 濾鏡的使用練習(xí)……………………………………………40
實(shí)驗(yàn)一 圖層的使用練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤寣W(xué)生了解并掌握?qǐng)D層的基本使用方法
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、收集所需素材圖片
2、打開Photoshop軟件并先做好必要的設(shè)置
3、按照要求完成圖片的處理
4、在實(shí)例操作中更好的去理解圖層的概念
5、保存好修改后圖片,并完成實(shí)驗(yàn)報(bào)告
五、實(shí)驗(yàn)內(nèi)容:
1、第一步,選擇你的目標(biāo)圖片。圖片的顏色最好不要太過(guò)繁雜,而且,周圍和中心顏色反差較大的圖片效果會(huì)比較好。大家可以根據(jù)自己的喜好選擇不同的圖片,自己的相片也可以拿來(lái)使用。
2、復(fù)制背景層,將背景層 副本重命名為“1”;再次復(fù)制,將副本層重命名為2;照這樣,將背景層復(fù)制4次,四個(gè)副本層分別命名為1、2、3、4。我們?cè)谶@四個(gè)副本層中,分別制作構(gòu)成圖像的拼板。在這里我們只做了四個(gè)圖層,大家也可以復(fù)制多個(gè)圖層,依據(jù)自己的需要而定。
3、我們從位于圖層面板的最頂端圖層“1”開始,隱藏除圖層“1”之外的所有層。用矩形選框工具選擇一個(gè)矩形,這個(gè)矩形就是拼板的基礎(chǔ)形狀。用選擇>變化選區(qū)命令(注意:這里選擇變化選區(qū)命令,如果直接用Ctrl+T,變換的則為選區(qū)內(nèi)的圖像),將選區(qū)扭轉(zhuǎn)、做自由變換,然后反選,刪除選區(qū)圖像,取消選擇。
4、按照剛才的方法,依次顯示每個(gè)圖層,用選框工具選擇不同大小的矩形選框,自由變換,反選后刪除。適當(dāng)注意選區(qū)大小以及變換的位置,盡量在作圖的時(shí)候考慮到美觀的效果。
5、下面我們要為拼板添加立體效果。打開背景層,這樣你會(huì)較容易看清圖像的變化。選擇圖層“1”,雙擊圖層,進(jìn)入圖層樣式面板,先選擇斜面和浮雕,你可以按照默認(rèn)樣式(大多數(shù)時(shí)侯,默認(rèn)樣式也能夠看得出效果)選擇確定,如果對(duì)拼板有特殊要求,可以更改數(shù)值。當(dāng)然也可以嘗試投影等其他效果。直到 調(diào)整到自己滿意的效果,這里僅使用了浮雕效果的默認(rèn)值。
6、設(shè)置好一個(gè)圖層樣式,其他的圖層如果需要相同效果,重復(fù)設(shè)置就較為麻煩,多層應(yīng)用同一種樣式的情況下,我們可以復(fù)制圖層樣式。有兩種方式可以 5
實(shí)現(xiàn)圖層樣式的復(fù)制:一種是點(diǎn)擊右鍵,選擇復(fù)制圖層樣式菜單,然后在需要的圖層中點(diǎn)擊右鍵粘貼即可。另一種是用鼠標(biāo)點(diǎn)擊你希望復(fù)制的樣式,不要放松鼠標(biāo),把它拖動(dòng)到需要復(fù)制的圖層中,放松鼠標(biāo),新圖層就應(yīng)用了你所拖動(dòng)的樣式。拖動(dòng)的過(guò)程中,鼠標(biāo)一直顯示為抓手工具的形狀。如果你希望只應(yīng)用某一種圖層樣式,那么拖動(dòng)的方法更為快捷,可選擇所有的樣式(拖動(dòng)效果的選項(xiàng)),也可選擇其中某種效果。依次對(duì)其他圖層進(jìn)行設(shè)置。
7、最后,根據(jù)自己需要可調(diào)整圖層位置。(圖07)
掌握了這個(gè)方法后,可以選擇不同的圖片制作不同數(shù)量拼板圖像,不過(guò)要注意圖層順序,達(dá)到合理的疊放順序。還可以稍微改變陰影不透明度等細(xì)節(jié)。
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠更好的理解有關(guān)圖層的概
念。
2、較好地完成此試驗(yàn),可自行完成書上或其他關(guān)于圖層的簡(jiǎn)單操作的一些練習(xí)和實(shí)例。
3、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整。
實(shí)驗(yàn)二 選區(qū)的創(chuàng)建和編輯練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤寣W(xué)生了解并掌握選區(qū)工具、描邊、填充、漸變等工具的使用方法
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、收集所需素材圖片
2、打開Photoshop軟件并先做好必要的設(shè)置
3、按照要求完成圖片的處理
4、在實(shí)例操作中更好的去熟練工具的使用方法
5、保存好修改后圖片,并完成實(shí)驗(yàn)報(bào)告
6、參照此試驗(yàn)步驟可完成課后的習(xí)題練習(xí)以及相關(guān)的一些練習(xí)
五、實(shí)驗(yàn)內(nèi)容:
1、新建一個(gè)空白文檔,具體參數(shù)設(shè)置可自己定義。
2、把前景色設(shè)置為R:113,G:165,B:248,背景色設(shè)置為白色。
3、選擇漸變工具,在“漸變編輯器”對(duì)話框中進(jìn)行設(shè)置。設(shè)置好后,選擇線性漸變方式填充背景色。(效果如圖)
4、選擇橢圓選框工具然后對(duì)其進(jìn)行羽化。
在漸變的背景上,拖動(dòng)鼠標(biāo)繪制一個(gè)圓形選區(qū),5、以背景色(白色)填充選區(qū),創(chuàng)建出雪花的效果,快捷鍵為Ctrl+Delect,再多次重復(fù)這兩步操作(創(chuàng)建選區(qū)、羽化及填充白色),以得到多個(gè)雪花,注意每次創(chuàng)建的選區(qū)的大小和羽化的強(qiáng)度是不同的。得到如圖的效果。
6、打開配套光盤中“卡通.gif”圖片,以此圖片的外型作為我們雪人的外型。(為了選取的方便,我們使用魔棒工具到我們所需要的選區(qū),這樣選擇較為方便)。
選取空白的區(qū)域,然后反選得
7、將選擇好的選區(qū),拖動(dòng)到我們的窗口中去,并選擇“選擇/變換選區(qū)”命令,把拖進(jìn)來(lái)的選區(qū)大小進(jìn)行調(diào)整,并放置到合適的位置。
8、同樣選擇漸變工具,選擇較淺的藍(lán)色,為我們剛才調(diào)整好的雪人的選區(qū)填充漸變效果。并選擇“編輯/描邊”命令為我們的選區(qū)進(jìn)行描邊,得到我們的小雪人大體形態(tài)。(如圖所示)
9、選擇工具箱中的橢圓選框工具,配合我們鍵盤的Shift鍵,繪制一個(gè)正圓的選區(qū),用黑色填充選區(qū),得到雪人的黑眼睛的效果。
10、用同樣的辦法創(chuàng)建比剛才較小些的正圓選區(qū),用白色為其填充,得到眼睛的白色部分。(注意:如果在創(chuàng)建之后,需要對(duì)眼睛進(jìn)行調(diào)整的話,就在不同的圖層上創(chuàng)建,調(diào)整好之后,若是覺得圖層過(guò)多,可再進(jìn)行合并)
11、運(yùn)用類似的方法,創(chuàng)建三角形選區(qū)(可使用多邊形套索工具得到三角形的選區(qū))或是圓形選區(qū),填充不同的色彩,并進(jìn)行描邊,得到鼻子和鈕扣等形態(tài)。效果如圖所示
12、下面我們?yōu)樾⊙┤俗鰝€(gè)小帽子,我們選擇配套光盤中的樹葉的文件,使用樹葉的外型作為帽子的選區(qū),方法和我們獲得雪人的方法相同,這里不再重復(fù)。同樣為選區(qū)填充漸變效果。完成我們小雪人的繪制。
13、我們也可以為圖像再增加些裝飾,同學(xué)們?cè)谥谱鞯臅r(shí)候,顏色的選取可以有所改變,但是要注意色彩的搭配和整體的協(xié)調(diào)性。
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整??梢罁?jù)學(xué)生掌握的情況和課時(shí)的具體情況,選擇相同類型的試驗(yàn)。
實(shí)驗(yàn)三 圖像的繪制練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤寣W(xué)生了解并掌握?qǐng)D像繪制工具的使用方法和綜合應(yīng)用的能力
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、打開Photoshop軟件并先做好必要的設(shè)置
2、按照要求完成圖形的繪制
3、在實(shí)例操作中更好的去熟練工具的使用方法
4、保存圖片,并完成實(shí)驗(yàn)報(bào)告
5、顏色的選擇、文件大小等可依據(jù)自己的需要、喜好進(jìn)行修改
6、可嘗試不同的方法創(chuàng)建,如月亮的創(chuàng)建方法,把所學(xué)知識(shí)綜合運(yùn)用
7、參照此試驗(yàn)步驟可完成課后的習(xí)題練習(xí)以及相關(guān)的一些練習(xí)
五、實(shí)驗(yàn)內(nèi)容:
1、新建一個(gè)空白文檔,具體參數(shù)設(shè)置可自己定義。
2、為背景填充顏色。
3、新建圖層,選擇橢圓工具,注意創(chuàng)建方式的選擇,將前景色設(shè)置為白色,在圖像窗口的左下方按住Shift鍵繪制白色圓形。
4、分別將前景色設(shè)置為玫紅色、淺玫紅色、粉紅色和淺粉色,再繪制4個(gè)圓形,如下排列。
(提示:若對(duì)于圓形的位置需要調(diào)整,可把圓形分別建在不同的圖層中,方便進(jìn)行調(diào)整)
5、新建圖層,將前景色分別設(shè)置為淺黃色和白色,在圖像窗口右下方繪制兩個(gè)圓形。
6、選擇工具箱中的魔棒工具,選取白色圓形,按Delete鍵將其刪除,然后選取圖像窗口中的黃色圖形,將選區(qū)變換并填充為黃色與淺黃色。
7、自由變換,逆時(shí)針旋轉(zhuǎn),完成變換并取消選區(qū),得到月亮的形態(tài)。
(提示:也可用其他方法完成月亮的繪制,如選區(qū)的使用,用選區(qū)的加減來(lái)完成,也是可以的,而且能夠拓展思維并對(duì)以前所學(xué)的知識(shí)進(jìn)行復(fù)習(xí)。)
8、新建圖層,是用工具箱中的多邊形工具,將工具屬性欄設(shè)置為如圖所示,將前景色設(shè)置為白色,在圖像窗口中下方創(chuàng)建五角星形。
9、選擇工具箱中的線條工具繪制白色線條。
10、選擇雪花圖形,繪制雪花的形態(tài)。
11、使用畫筆工具寫出文字,完成最后效果。
(注意:圖層的使用,需要修改的,就放在不同的圖層中,方便修改)16
13、我們也可以為圖像再增加些裝飾,同學(xué)們?cè)谥谱鞯臅r(shí)候,顏色的選取可以有所改變,但是要注意色彩的搭配和整體的協(xié)調(diào)性。
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整。可依據(jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)四 圖像的編輯練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤寣W(xué)生了解并掌握?qǐng)D像編輯工具的使用方法
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、打開Photoshop軟件并先做好必要的設(shè)置
2、按照要求完成圖形的繪制
3、在實(shí)例操作中更好的去熟練工具的使用方法
4、保存圖片,并完成實(shí)驗(yàn)報(bào)告
5、顏色的選擇、文件大小等可依據(jù)自己的需要、喜好進(jìn)行修改
6、參照此試驗(yàn)步驟可完成課后的習(xí)題練習(xí)以及相關(guān)的一些練習(xí)
五、實(shí)驗(yàn)內(nèi)容:
1、打開配套光盤的實(shí)例素材名為果樹的圖片,使用圖案生成器命令,打開圖案生成器對(duì)話框。
2、使用舉行工具在圖像中繪制一格區(qū)域作為樣本,并在位移下拉列表中選擇垂直選項(xiàng)。
3、單擊生成按鈕產(chǎn)生圖案,如不滿意可單擊再次生成。
4、單擊好,應(yīng)用生成的圖案,然后選擇圖像菜單的圖像大小命令打開對(duì)話框,取消其中的約束比例復(fù)選框,在寬度文本框中輸入文件大小。
(可依據(jù)自己的喜好,更換作為背景的圖片,但是要注意整體色彩的協(xié)調(diào)性)
5、打開“香蕉”文件使用抽出工具抽出圖像。
(注意抽出時(shí)邊緣的處理要仔
細(xì))
6、按照此方法,依次完成其他水果圖片的抽出工作,一定要注意抽出邊緣的細(xì)節(jié)部分,注重細(xì)節(jié)的處理,在后面對(duì)圖片合成時(shí)才會(huì)有好的效果,希望同學(xué)們無(wú)論處理什么樣的圖片都要注意細(xì)節(jié)處理,以達(dá)到更好的視覺效果。
7、使用移動(dòng)工具把需要合成的各水果圖片移到圖片中去。
8、依據(jù)圖片大小進(jìn)行調(diào)整,使用變換工具進(jìn)行大小的調(diào)整。(注意等比例的放縮)
9、注意圖層順序的調(diào)整。
10、載入文字選區(qū),進(jìn)行描邊,也可自己進(jìn)行文字輸入。
11、進(jìn)行適當(dāng)調(diào)整,完成最后效果。
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整??梢罁?jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)五 圖像色彩調(diào)整練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤屚瑢W(xué)們了解并掌握色彩調(diào)整工具的使用及綜合應(yīng)用,熟悉各個(gè)色彩命令的相互配合
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
四、實(shí)驗(yàn)步驟:
1、打開Photoshop軟件并先做好必要的設(shè)置
2、按照要求完成圖形的繪制
3、在實(shí)例操作中更好的去熟練工具的使用方法
4、保存圖片,并完成實(shí)驗(yàn)報(bào)告
5、顏色的選擇、文件大小等可依據(jù)自己的需要、喜好進(jìn)行修改
6、參照此試驗(yàn)步驟可完成課后的習(xí)題練習(xí)以及相關(guān)的一些練習(xí)
五、實(shí)驗(yàn)內(nèi)容:
1、打開文件,文件整體較暗,可以先調(diào)整其亮度。
2、使用亮度/對(duì)比度的命令對(duì)整個(gè)畫面進(jìn)行調(diào)整。
3、使用磁性套索工具選取人物圖像。
(提示:為了選取的比較細(xì)致,我們常會(huì)把畫面放大,放大后觀察較仔細(xì),但不能顯示全部,在使用磁性套索工具的同時(shí),如果需要使用抓手工具觀察其他地方,就按住空格鍵,就會(huì)出現(xiàn)小手的圖標(biāo),可以移動(dòng)觀察地方,在使用套索工具時(shí)不能在工具欄中切換到抓手工具,否則沒選完的選區(qū)就會(huì)應(yīng)用。)
4、反選人物外的景物圖像,懸著色相/飽和度的命令,在打開的對(duì)話框中選中“著色”復(fù)選框,并進(jìn)行設(shè)置。
(提示:色彩可按書上進(jìn)行設(shè)置,也可選擇自己所喜歡的色彩進(jìn)行更該,選區(qū)若是有些細(xì)節(jié)部分需要修改,可使用增減選區(qū)的方法進(jìn)行細(xì)節(jié)上的修改,不需要全部重新選擇,浪費(fèi)時(shí)間。
5、再次反選,使用選區(qū)減的方式把人物的上半部分選區(qū)減去,剩下的就是裙子的部分。
(提示:需要的選區(qū)可使用存儲(chǔ)的方式存儲(chǔ)起來(lái),需要的時(shí)候可直接載入,另要善用載入選區(qū),參考我們前面課堂上講解選取玫瑰花的花和葉子部分的方式。先把整個(gè)人物的選區(qū)存儲(chǔ)下,然后把裙子的選區(qū)也存儲(chǔ)下,留在后面?zhèn)溆谩#?/p>
6、用同樣的方法把裸露的右腳部分去除。
7、使用色彩平衡命令,在彈出的對(duì)話框中選中中間調(diào)單選按鈕,并進(jìn)行設(shè)置,為裙子上色,色彩可自定。
8、選擇上半身的選區(qū)。
(提示:在上面我們已經(jīng)存儲(chǔ)了兩個(gè)選區(qū),現(xiàn)在我們可以更為方便的選區(qū)上半身的選區(qū),首先載入整個(gè)人物的選區(qū),然后再載入裙子的選區(qū),選擇從選區(qū)中減去,這樣我們就可以很方便的選擇上半身的選區(qū)了。)
9、用同樣的方法選取不同的部分,進(jìn)行上色,注意選區(qū)要選取的較仔細(xì),進(jìn)行細(xì)節(jié)上的調(diào)整,完成實(shí)驗(yàn)。
10、可使用同樣的方法完成課后的練習(xí)或是相同的效果,也可為自己的照片做上色的處理。
最后完成效果圖
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整??梢罁?jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)六 路徑的使用練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤屚瑢W(xué)們了解并掌握路徑的使用方法
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、打開Photoshop軟件并先做好必要的設(shè)置
2、按照要求完成圖形的繪制
3、在實(shí)例操作中更好的去熟練工具的使用方法
4、保存圖片,并完成實(shí)驗(yàn)報(bào)告
5、顏色的選擇、文件大小等可依據(jù)自己的需要、喜好進(jìn)行修改
6、參照此試驗(yàn)步驟可完成課后的習(xí)題練習(xí)以及相關(guān)的一些練習(xí)
五、實(shí)驗(yàn)內(nèi)容:
1、首先新建文檔,大小自定。
2、輸入文字,選擇文字圖層,然后選擇菜單欄中圖層選項(xiàng)中文字/創(chuàng)建工作路徑選項(xiàng)。
3、轉(zhuǎn)換到鋼筆工具,把錨點(diǎn)進(jìn)行調(diào)整,如圖。
(提示:可刪除多余的節(jié)點(diǎn),把兩個(gè)字的路徑組合在一起)
4、用同樣的方法可編輯其他字的路徑。
5、按照自己的想法對(duì)字體路徑進(jìn)行修改,可更換不同的文字,如自己的名等,注意路徑修改后曲線的平滑,學(xué)會(huì)控制錨點(diǎn),創(chuàng)建出自己想要的路徑。
6、路徑創(chuàng)建好之后就可以根據(jù)自己的喜好為文字填色、描邊等處理,可隨意更改背景顏色,注意圖層的選擇,在使用描邊、填充顏色命令時(shí)注意圖層的選擇。(最好是先新建圖層,再填充或是描邊,這樣背景可隨時(shí)方便更換修改)
7、根據(jù)自己需要對(duì)路徑進(jìn)行填色等處理。(注意選好圖層)
8、可使用圖層屬性等再做些效果,也可自由變換,復(fù)制圖層,進(jìn)行透明度的調(diào)整等,各人可依據(jù)自己進(jìn)行調(diào)整。(如圖)
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、實(shí)例中的具體的文件大小、具體文字、修改方式、色彩方面不做具體規(guī)定,可自行進(jìn)行調(diào)整。
4、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整??梢罁?jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)七 文本應(yīng)用綜合練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤寣W(xué)生了解并掌握文本工具的使用方法和一些參數(shù)的設(shè)置并對(duì)以前所學(xué)的知識(shí)進(jìn)行綜合應(yīng)用。
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
(一)、首先我們制作扇子的骨架部分:
1、在Photoshop中新建一個(gè)700×700像素,背景色為白色的文件,將其命名為“扇子”。
2、新建圖層1,在圖層1上拖拽一個(gè)長(zhǎng)條選區(qū)。按G鍵選擇工具箱中的油漆桶,并在選擇欄中點(diǎn)選圖案,用木質(zhì)圖案填充。(注意一定要新建圖層)
3、扇子骨架除了有木質(zhì)表面外,還應(yīng)是略有厚度的的薄片,因此,我們要
為其制作立體的感覺。保持選區(qū),單擊圖層面板下的添加圖層樣式的按鈕,對(duì)選區(qū)進(jìn)行浮雕和倒角設(shè)計(jì),并調(diào)整各項(xiàng)參數(shù),同時(shí)因?yàn)橹谱魍晟茸雍筮€要對(duì)其投影效果做整體設(shè)置,所以此處先暫時(shí)不設(shè)投影效果。
4、一個(gè)扇子有十多個(gè)扇片,一一制作會(huì)很麻煩,而且還要進(jìn)行圍繞中心的排列,那將十分煩瑣。這里我們使用快捷鍵來(lái)完成重復(fù)變換的操作:首先,我們?nèi)∠x區(qū),調(diào)整扇片尺寸至適中,復(fù)制剛才制作好的一個(gè)扇片的圖層,在新的復(fù)制圖層上使用快捷鍵Ctrl+T對(duì)圖像進(jìn)行變換操作。(注意:這步的操作直接影響到我們后面的再次變換的操作,所以要細(xì)心調(diào)整好位置,我們下步的操作將會(huì)以此次的變換的位置、角度,進(jìn)行多次變換)。
5、多次配合Ctrl+Shift+Alt+T鍵可快捷的完成扇子骨架的多個(gè)扇片。完成之后會(huì)出現(xiàn)多個(gè)圖層,若較為滿意,可以把多個(gè)圖層合并成一個(gè)圖層,完成扇子骨架的制作。
(二)、扇面的制作(扇面的制作可參造書上制作扇面的方法進(jìn)行制作,把文字和圖片結(jié)合起來(lái))
1、利用橢圓和套素工具建立扇面選區(qū),新建圖層,用白色填充選區(qū),并將透明度設(shè)置為85%。這樣我們?cè)谛聢D層上操作時(shí)能方便的利用下面的扇骨做參考。(注意:這里同學(xué)們可以把建立的扇面選區(qū)進(jìn)行存儲(chǔ)選區(qū)的操作,以方便我們之后對(duì)扇面添加圖片時(shí)圖片的裁剪)
2、面不是一個(gè)簡(jiǎn)單的平面,而是有諸多的邏輯折痕的,也就是說(shuō),它要有立體感覺。Photoshop制作立體圖形往往借助于圖層樣式、光照效果和顏色漸變。此處我們用漸變工具來(lái)刻畫扇子的折痕。用多邊形套索框選出一個(gè)長(zhǎng)條選區(qū),點(diǎn)選黑白漸變,漸變模式為線性漸變,填充選區(qū)。依次作好整個(gè)扇面。
3、僅有黑白色兩種顏色的扇子太單調(diào)了,下面將它美化一下。找一張自己喜歡的山水花鳥畫(或者別的,只要你看好就行)。載入當(dāng)前文件,裁切至適當(dāng)大小。(在裁剪時(shí)就可以載入我們前面存儲(chǔ)的選區(qū)了,這樣就不要再重新選擇選 30
區(qū)了)。將該圖層置于骨架之上,模式設(shè)置為正片疊底,透明度為85%。然后添加一個(gè)淡淡的投影。(可以再進(jìn)行些修飾),完成。
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、實(shí)例中的具體的文件大小、具體文字、修改方式、色彩方面不做具體規(guī)定,可自行進(jìn)行調(diào)整。
4、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整。可依據(jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)八 圖層的高級(jí)應(yīng)用練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤屚瑢W(xué)們掌握?qǐng)D層的高級(jí)應(yīng)用,并能夠熟練的進(jìn)行應(yīng)用
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、打開相關(guān)的文件素材,對(duì)圖象進(jìn)行合成,如圖。
2、新建圖層,并使用矩形工具繪制選區(qū),并填充顏色,填充顏色后調(diào)整圖層的透明度,使其具有玻璃的半透明效果。(提示:這里創(chuàng)建玻璃和后面創(chuàng)建門的選區(qū)的部分,我們都可以只做一半,這樣可以為我們節(jié)省時(shí)間,另一半相同的部分,我們直接使用圖層復(fù)制就可以完成,而且還可以保持一致性。)
3、創(chuàng)建門的選區(qū)。(提示:書上給我們提供了選區(qū)加減的方式來(lái)完成門的選區(qū)的創(chuàng)建,而且是兩邊相同的選區(qū)一起做的,在這里我們可以在新的圖層當(dāng)中去完成一扇門的制作,另一邊復(fù)制就可以了。創(chuàng)建選區(qū)的方法也可選用其他的方法,如路徑復(fù)制,使用路徑創(chuàng)建等)
(使用選區(qū)加減的方法,注意要選取減的方式)
(也可使用減的方式,把中間小的矩形路徑進(jìn)行復(fù)制)
4、對(duì)選區(qū)填充顏色,做圖層效果的處理,使其更具有立體感。(注意要新建圖層,只有在單獨(dú)的圖層上填充,我們后面才方便對(duì)圖層進(jìn)行復(fù)制,完成另一扇門的制作。
5、復(fù)制門的圖層,為使兩扇門的對(duì)稱,可使用自由變換中的水平翻轉(zhuǎn)的選項(xiàng)。
6、添加相應(yīng)的圖片和文字等,對(duì)畫面進(jìn)行細(xì)節(jié)上的調(diào)整,可完成最后的效果。(可自行設(shè)計(jì)文字等效果,可參考我們路徑中制作文字效果的事例,創(chuàng)建個(gè)性化的字體,注意整體美觀)
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、實(shí)例中的具體的文件大小、具體文字、修改方式、色彩方面不做具體規(guī)定,可自行進(jìn)行調(diào)整。
4、引導(dǎo)學(xué)生使用不同的工具,使同學(xué)們可以自己開動(dòng)腦筋,也有利于所學(xué)工具的掌握和綜合應(yīng)用的能力。
5、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整。可依據(jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)九 通道與蒙版練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤寣W(xué)生掌握通道與蒙板工具的使用方法,并能夠熟練的進(jìn)行應(yīng)用
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
(一)制作背景
1、新建圖像文件,設(shè)置好參數(shù),注意顏色模式一般情況下我們都是選擇RGB的色彩模式。
2、使用漸變工具為背景填充顏色。
3、打開“紋理”圖片,把文件大小更改為我們新圖像文件的大小,復(fù)制粘貼到我們新文件中。
4、把紋理圖層通過(guò)通道載入紋理的選區(qū),在復(fù)制的圖層上填充白色,并調(diào)整不透明度。
5、完成后取消選區(qū)。
(二)制作顯示器中的海豚
1、沿顯示器邊緣勾畫路徑,注意路徑的細(xì)節(jié),然后配合Ctrl鍵為圖片創(chuàng)建矢量蒙板。(注意添加矢量蒙板在背景圖層上不能夠使用,要把背景圖層轉(zhuǎn)化為普通圖層,或是把背景圖層復(fù)制一份,為復(fù)制的圖層添加矢量蒙板,添加圖層蒙板也是一樣)
2、把海豚的圖像復(fù)制到文件中,并調(diào)整透明度。調(diào)整透明度是為了能夠看的清楚下面顯示器圖層,方便選取。把圖片放置到合適的位置,為了突出顯示器畫面的逼真效果,所以我們要使海豚感覺像從顯示器中躍出。
3、把圖像中多余的部分使用圖層蒙板或矢量蒙板遮擋。再把透明度調(diào)整回來(lái)。
(三)制作文字效果
可參考路徑的練習(xí)自己創(chuàng)建文字效果。完成最后效果
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、實(shí)例中的具體的文件大小、具體文字、修改方式、色彩方面不做具體規(guī)定,可自行進(jìn)行調(diào)整。
4、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整??梢罁?jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
實(shí)驗(yàn)十 濾鏡的應(yīng)用練習(xí)
一、實(shí)驗(yàn)?zāi)康模鹤屚瑢W(xué)們掌握濾鏡的使用方法,并能夠熟練的進(jìn)行應(yīng)用
二、實(shí)驗(yàn)要求:要求能夠按照試驗(yàn)指導(dǎo)書的步驟完成給定的練習(xí)
三、實(shí)驗(yàn)器材:裝有Photoshop的計(jì)算機(jī)
四、實(shí)驗(yàn)步驟:
1、新建一個(gè)文件,將前景色設(shè)置為灰色填充背景。
2、選擇工具箱中的“橢圓選框工具”,按住Shift鍵在文件中繪制一個(gè)正圓選區(qū),并填充白色(注意新建圖層)切換至“路徑”面板,將選區(qū)轉(zhuǎn)化為路徑。
3、選擇路徑,按Ctrl+T鍵調(diào)出自由變換控制框,注意快捷鍵的使用。(shift+alt)鍵為以變換中心點(diǎn)為中心的變換方式。
4、設(shè)置前景色為黑色,使用工具箱中的“橫排文字工具”,在屬性欄中設(shè)置適當(dāng)?shù)淖煮w和字號(hào),在路徑上輸入文字,并適當(dāng)調(diào)整文字的間距和位置,5、可使用同樣方法或使用字體變換完成如圖的文字。
6、保持前景色為黑色,分別輸入其他的文字。
7、按住Ctrl+Shift鍵連續(xù)單擊“圖層”面板中所有文字圖層的縮覽圖,得到它們相加后的選區(qū),切換至通道面板,單擊“將選區(qū)存儲(chǔ)為路徑”按鈕,得到Alpha 1,取消選區(qū)。
8、選擇Alpha 1,執(zhí)行菜單欄中的“濾鏡”“模糊”“高斯模糊”命令,參考設(shè)置半徑為0.5,執(zhí)行菜單欄中的“濾鏡”“雜色”“添加雜色”命令,參考設(shè)置數(shù)值為2,勾選單色選項(xiàng)。(所有的具體數(shù)值可依據(jù)各自的圖象大小等不同的情況,依據(jù)畫面的變化自行調(diào)整。)
9、選擇菜單欄中的“濾鏡”“渲染”“光照效果”命令,設(shè)置彈出的對(duì)話框(圖為參考參數(shù)。)
10、如果畫面效果不是很滿意,可依據(jù)不同的情況對(duì)畫面進(jìn)行亮度等調(diào)整。(提示:可使用色階或曲線等工具)
11、新建一個(gè)文件,設(shè)置寬度為1像素,高度為3像素,分辨率為72,背景為透明的文件,選擇工具箱中的“鉛筆工具”,設(shè)置大小為1像素,繪制如圖所示。
12、選擇“編輯”“定義圖案”命令,將圖像定義為圖案。
13、按Ctrl鍵單擊文字“5”的圖層縮覽圖,調(diào)出選區(qū),執(zhí)行菜單欄中的“選擇”“修改”“收縮”命令,把選區(qū)縮小些。參考數(shù)值可為2-5之間,圖象較大的也可設(shè)置的大些。
14、在所有圖層上方新建一個(gè)圖層“圖層2”,并填充選區(qū),取消選區(qū),設(shè)置圖層的填充為0%。
15、單擊“添加圖層樣式”按鈕,在彈出的下拉列表中選擇“斜面和浮雕”和“圖案疊加”選項(xiàng)。
16、按住Ctrl鍵單擊圖層1調(diào)出選區(qū),執(zhí)行菜單欄中的“選擇”“修改”“收縮”命令,設(shè)置收縮量為10。
17、在所有圖層上方新建一個(gè)圖層“圖層3”,填充選區(qū),取消選區(qū),設(shè)置圖層3的填充為0%。并為其添加圖層樣式,效果如下。
18、我們的硬幣為金色,所以要對(duì)顏色進(jìn)行處理。(參考第六章的練習(xí)完成最后效果。)
依據(jù)此實(shí)例可以完成一些類似的錢幣或紀(jì)念幣的制作。
六、實(shí)驗(yàn)報(bào)告:
1、結(jié)合實(shí)例能夠更好的提高學(xué)生的興趣,也能夠在學(xué)生制作的過(guò)程中發(fā)現(xiàn)問題。
2、較好地完成此試驗(yàn),可自行完成書上或其他有關(guān)的一些練習(xí)和實(shí)例。
3、實(shí)例中的具體的文件大小、具體文字、修改方式、色彩方面不做具體規(guī)定,可自行進(jìn)行調(diào)整。
4、教師可依據(jù)內(nèi)容做實(shí)例的調(diào)整??梢罁?jù)學(xué)生掌握的情況更換其他實(shí)例,實(shí)例可以不同,能夠達(dá)到相同的實(shí)驗(yàn)?zāi)康木涂梢粤恕?/p>
第三篇:電子商務(wù)實(shí)驗(yàn)指導(dǎo)書2010
電子商務(wù)實(shí)驗(yàn)指導(dǎo)書
適用課程:電子商務(wù) 制 定 人:向兵
教 研 室:電子商務(wù)教研室
桂林電子科技大學(xué)商學(xué)院
2010 年 9 月
實(shí)驗(yàn)一 B2C電子商務(wù)
一、實(shí)驗(yàn)?zāi)康?/p>
通過(guò)本實(shí)驗(yàn),使學(xué)生
(1)熟悉B2C電子商務(wù)網(wǎng)站的頁(yè)面布局、排版風(fēng)格和功能、特色等;(2)了解典型B2C電子商務(wù)網(wǎng)站的購(gòu)物流程;(3)掌握B2C電子商務(wù)網(wǎng)站的特點(diǎn)。
二、實(shí)驗(yàn)要求
(1)全面瀏覽指定B2C電子商務(wù)網(wǎng)站;
(2)獨(dú)立完成在指定B2C電子商務(wù)網(wǎng)站購(gòu)物流程;
(3)能通過(guò)對(duì)典型B2C電子商務(wù)網(wǎng)站觀察研究和實(shí)際操作,掌握B2C電子商務(wù)的特點(diǎn)。
三、實(shí)驗(yàn)內(nèi)容
(1)登陸當(dāng)當(dāng)網(wǎng)004km.cn,查看當(dāng)當(dāng)網(wǎng)的頁(yè)面布局和板塊劃分,了解當(dāng)當(dāng)網(wǎng)的功能和特點(diǎn);點(diǎn)擊進(jìn)入幫助板塊并詳細(xì)閱讀,掌握在當(dāng)當(dāng)網(wǎng)購(gòu)物所需的各類知識(shí)。
(2)在當(dāng)當(dāng)網(wǎng)注冊(cè)一個(gè)新賬號(hào),把“恭喜您注冊(cè)成功!”頁(yè)面截圖并保存下來(lái)。(3)在當(dāng)當(dāng)網(wǎng)上搜索并選擇至少兩本書(一本計(jì)算機(jī)類,一本經(jīng)濟(jì)類)和一件其它商品放入購(gòu)物車。將以上商品都放入購(gòu)物車后,把購(gòu)物車頁(yè)面截圖并保存下來(lái)。
(4)對(duì)購(gòu)物車中的訂單進(jìn)行確認(rèn)(如非實(shí)際愿意購(gòu)買,不必提交訂單),把“2.確認(rèn)訂單信息”頁(yè)面截圖并保存下來(lái)。
四、實(shí)驗(yàn)思考題
(1)當(dāng)當(dāng)網(wǎng)提供了哪些功能?有什么特色?
(2)當(dāng)當(dāng)網(wǎng)的購(gòu)物流程是怎樣實(shí)現(xiàn)的?
(3)當(dāng)當(dāng)網(wǎng)還有哪些不足或者不完善的地方?試著提出自己的改進(jìn)或完善的建議。(4)以當(dāng)當(dāng)網(wǎng)為例,說(shuō)明B2C電子商務(wù)的特點(diǎn)。
五、實(shí)驗(yàn)結(jié)果
新建一個(gè)的WORD文檔并以“學(xué)號(hào)+姓名”命名,將以上實(shí)驗(yàn)結(jié)果(包括實(shí)驗(yàn)內(nèi)容中要求截圖的和實(shí)驗(yàn)思考題答案)保存在新建的WORD文檔中,然后將該文檔上傳到ftp服務(wù)器上的指定位置。
實(shí)驗(yàn)二 C2C電子商務(wù)
一、實(shí)驗(yàn)?zāi)康?/p>
通過(guò)本實(shí)驗(yàn),使學(xué)生
(1)熟悉C2C電子商務(wù)網(wǎng)站的頁(yè)面布局、排版風(fēng)格和功能、特色等;(2)了解典型C2C電子商務(wù)網(wǎng)站的購(gòu)物流程;(3)掌握C2C電子商務(wù)網(wǎng)站的特點(diǎn);
(4)分析C2C電子商務(wù)網(wǎng)站和B2C電子商務(wù)網(wǎng)站的異同。
二、實(shí)驗(yàn)要求
(1)全面瀏覽指定C2C電子商務(wù)網(wǎng)站;
(2)獨(dú)立完成在指定C2C電子商務(wù)網(wǎng)站購(gòu)物流程;
(3)能通過(guò)對(duì)典型C2C電子商務(wù)網(wǎng)站觀察研究和實(shí)際操作,掌握C2C電子商務(wù)的特點(diǎn);(4)分析C2C網(wǎng)站在保護(hù)買家權(quán)益上采取的特別措施及其原因。
三、實(shí)驗(yàn)內(nèi)容
(1)登陸淘寶網(wǎng)004km.cn,查看淘寶網(wǎng)的頁(yè)面布局和板塊劃分,了解淘寶網(wǎng)的功能和特點(diǎn);點(diǎn)擊進(jìn)入幫助中心并詳細(xì)閱讀,掌握在淘寶網(wǎng)購(gòu)物所需的各類知識(shí)。
(2)在淘寶網(wǎng)注冊(cè)一個(gè)新賬號(hào),把注冊(cè)成功頁(yè)面截圖并保存下來(lái)。(3)進(jìn)行支付寶賬戶激活,并把激活成功的頁(yè)面截圖并保存下來(lái)。
(4)在淘寶網(wǎng)上搜索一些感興趣的商品放入購(gòu)物車。將以上商品都放入購(gòu)物車后,把購(gòu)物車頁(yè)面截圖并保存下來(lái)。
(5)通過(guò)阿里旺旺或QQ與購(gòu)物車中某件商品的賣家進(jìn)行購(gòu)物相關(guān)的洽談,把洽談?dòng)涗洷4嫦聛?lái)。
(6)對(duì)購(gòu)物車中的訂單進(jìn)行確認(rèn)(如非實(shí)際愿意購(gòu)買,不必完成支付),把正式提交前的頁(yè)面截圖并保存下來(lái)。
四、實(shí)驗(yàn)思考題
(1)淘寶網(wǎng)提供了哪些功能?有什么特色?(2)淘寶網(wǎng)的購(gòu)物流程是怎樣實(shí)現(xiàn)的?
(3)淘寶網(wǎng)為了保障買家權(quán)益提供了哪些措施?
(4)淘寶網(wǎng)還有哪些不足或者不完善的地方?試著提出自己的改進(jìn)或完善的建議。(5)以淘寶網(wǎng)為例,說(shuō)明C2C電子商務(wù)的特點(diǎn)。
五、實(shí)驗(yàn)結(jié)果
新建一個(gè)的WORD文檔并以“學(xué)號(hào)+姓名”命名,將以上實(shí)驗(yàn)結(jié)果(包括實(shí)驗(yàn)內(nèi)容中要求截圖的和實(shí)驗(yàn)思考題答案)保存在新建的WORD文檔中,然后將該文檔上傳到ftp服務(wù)器上的指定位置。實(shí)驗(yàn)三 網(wǎng)上商店的規(guī)劃、設(shè)計(jì)與實(shí)現(xiàn)
一、實(shí)驗(yàn)?zāi)康?/p>
通過(guò)本實(shí)驗(yàn),使學(xué)生
(1)熟悉開設(shè)C2C網(wǎng)店的要求和步驟;(2)掌握個(gè)人網(wǎng)店開設(shè)的基本分析思路;
(3)熟悉典型C2C網(wǎng)站為賣家提供的各種服務(wù);(4)掌握個(gè)人網(wǎng)店裝飾和布局的各種技巧和經(jīng)驗(yàn)。
二、實(shí)驗(yàn)要求
(1)全面瀏覽指定C2C電子商務(wù)網(wǎng)站;
(2)獨(dú)立完成在指定C2C電子商務(wù)網(wǎng)站上開設(shè)個(gè)人網(wǎng)店;(3)完成對(duì)個(gè)人網(wǎng)店的裝飾,并反復(fù)修改直到滿意;
(4)分析C2C網(wǎng)站在保護(hù)買家權(quán)益上采取的特別措施及其原因。
三、實(shí)驗(yàn)內(nèi)容
(1)登陸淘寶網(wǎng)004km.cn,熟悉在淘寶網(wǎng)上開設(shè)個(gè)人網(wǎng)店所需要的條件和步驟,并做好相關(guān)準(zhǔn)備。
(2)選擇自己淘寶網(wǎng)店的經(jīng)營(yíng)范圍(即出售何種商品或服務(wù)),并說(shuō)明理由。(3)分析自己淘寶網(wǎng)店的目標(biāo)客戶范圍。
(4)分析自己淘寶網(wǎng)店如何實(shí)現(xiàn)盈利,并預(yù)測(cè)盈利前景。
(5)確定自己淘寶網(wǎng)店如何“裝修”:采用何種風(fēng)格裝飾,如何進(jìn)行頁(yè)面和板塊布局,色調(diào)和搭配等。
(6)根據(jù)以上的準(zhǔn)備和分析、計(jì)劃,在淘寶網(wǎng)上注冊(cè)商家,并初步搭建好自己的淘寶網(wǎng)店(提供個(gè)人網(wǎng)店網(wǎng)址)。
四、實(shí)驗(yàn)思考題
(1)淘寶網(wǎng)為商家提供了哪些服務(wù)?有什么特色?
(2)在淘寶網(wǎng)上開個(gè)人網(wǎng)店有什么感想?
(3)討論:大學(xué)生開設(shè)淘寶網(wǎng)店有實(shí)際意義么?可以作為未來(lái)個(gè)人創(chuàng)業(yè)的路徑么?
五、實(shí)驗(yàn)結(jié)果
新建一個(gè)的WORD文檔并以“學(xué)號(hào)+姓名”命名,將以上實(shí)驗(yàn)結(jié)果(包括實(shí)驗(yàn)內(nèi)容中要求分析、實(shí)現(xiàn)的和實(shí)驗(yàn)思考題答案)保存在新建的WORD文檔中,然后將該文檔上傳到ftp服務(wù)器上的指定位置。實(shí)驗(yàn)四 網(wǎng)上商店經(jīng)營(yíng)與管理
一、實(shí)驗(yàn)?zāi)康?/p>
通過(guò)本實(shí)驗(yàn),使學(xué)生
(1)熟悉網(wǎng)上商店的管理;
(2)掌握網(wǎng)上商店的經(jīng)營(yíng)方法;
(3)掌握網(wǎng)上商店的推廣策略和方法。
二、實(shí)驗(yàn)要求
(1)進(jìn)一步完善對(duì)個(gè)人網(wǎng)店的裝飾;
(2)豐富個(gè)人網(wǎng)上商店的商品種類和數(shù)量,讓商品信息更翔實(shí)、圖文并茂;
(3)獨(dú)立完成對(duì)網(wǎng)店的經(jīng)營(yíng)和管理;
(4)運(yùn)用各種策略和方法推廣自己的網(wǎng)店,促進(jìn)銷售。
三、實(shí)驗(yàn)內(nèi)容
(1)提出對(duì)個(gè)人網(wǎng)店經(jīng)營(yíng)和管理的計(jì)劃,并實(shí)施之。(2)記錄一些商品交易的過(guò)程,并保存洽談?dòng)涗?。?)統(tǒng)計(jì)商品交易數(shù)量,分析變化情況,并分析。
(4)運(yùn)用各種方法推廣自己的網(wǎng)店,記錄過(guò)程并分析對(duì)銷售的影響。
四、實(shí)驗(yàn)思考題
(1)個(gè)人網(wǎng)店經(jīng)營(yíng)和管理過(guò)程中有哪些經(jīng)驗(yàn)和體會(huì)?(2)自己的個(gè)人網(wǎng)店有哪些不足的地方?如何改進(jìn)?(3)如果你畢業(yè)后再一次重開網(wǎng)店,你會(huì)如何做?
五、實(shí)驗(yàn)結(jié)果
新建一個(gè)的WORD文檔并以“學(xué)號(hào)+姓名”命名,將以上實(shí)驗(yàn)結(jié)果(包括實(shí)驗(yàn)內(nèi)容中要求分析、實(shí)現(xiàn)的和實(shí)驗(yàn)思考題答案)保存在新建的WORD文檔中,然后將該文檔上傳到ftp服務(wù)器上的指定位置。
第四篇:《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)指導(dǎo)書
《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)(訓(xùn))指導(dǎo)書
電氣與信息工程學(xué)院實(shí)驗(yàn)中心
前 言
《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)相關(guān)專業(yè)的一門核心基礎(chǔ)課程,也是很多高校研究生入學(xué)考試專業(yè)課必考課程之一。它主要介紹線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖形結(jié)構(gòu)三種邏輯結(jié)構(gòu)元素的存儲(chǔ)實(shí)現(xiàn),在此基礎(chǔ)上介紹一些典型算法及時(shí)、空效率分析。這門課程的主要任務(wù)是培養(yǎng)學(xué)生的算法分析、設(shè)計(jì)能力及良好的程序設(shè)計(jì)習(xí)慣。通過(guò)學(xué)習(xí),要求學(xué)生能夠掌握典型算法的設(shè)計(jì)思想及程序?qū)崿F(xiàn),能夠根據(jù)實(shí)際問題選取合適的存儲(chǔ)方案,設(shè)計(jì)出簡(jiǎn)潔、高效、實(shí)用的算法,為后續(xù)課程的學(xué)習(xí)及軟件開發(fā)打下良好的基礎(chǔ)。學(xué)習(xí)這門課程,習(xí)題和實(shí)驗(yàn)是兩個(gè)關(guān)鍵環(huán)節(jié)。學(xué)生理解算法的最佳途徑是上機(jī)實(shí)驗(yàn)。因此,實(shí)驗(yàn)環(huán)節(jié)的好壞是學(xué)生能否學(xué)好《數(shù)據(jù)結(jié)構(gòu)》的關(guān)鍵。為了更好地配合學(xué)生實(shí)驗(yàn),特編寫該實(shí)驗(yàn)指導(dǎo)書。
一、實(shí)驗(yàn)?zāi)康?、要求和任?wù)
計(jì)算機(jī)編程中加工處理的對(duì)象是數(shù)據(jù),而數(shù)據(jù)具有一定的組織結(jié)構(gòu),所以學(xué)習(xí)編寫計(jì)算機(jī)程序僅僅了解計(jì)算機(jī)語(yǔ)言是不夠的,還必須掌握數(shù)據(jù)組織、存儲(chǔ)和運(yùn)算的一般方法,這是數(shù)據(jù)結(jié)構(gòu)課程中學(xué)習(xí)和研究的內(nèi)容。由于數(shù)據(jù)結(jié)構(gòu)的原理和算法較抽象,而該課程一般在本科低年級(jí)開設(shè),對(duì)于計(jì)算機(jī)程序設(shè)計(jì)知識(shí)的初學(xué)者,理解和掌握其中的原理就顯得較為困難。
1.熟練掌握C語(yǔ)言的編輯、編譯、調(diào)試程序。2.會(huì)書寫類C語(yǔ)言的算法,并將算法轉(zhuǎn)變?yōu)槌绦驅(qū)崿F(xiàn)。
3.正確理解各種數(shù)據(jù)結(jié)構(gòu)的邏輯特性和存儲(chǔ)表示和基本操作的算法實(shí)現(xiàn)。4.有較強(qiáng)的邏輯分析能力。
5.針對(duì)問題的不同選擇合適的數(shù)據(jù)結(jié)構(gòu),提高算法設(shè)計(jì)的能力和動(dòng)手實(shí)驗(yàn)的技能。
6.學(xué)會(huì)分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用設(shè)計(jì)的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其相應(yīng)的算法,并初步掌握算法的時(shí)間分析和空間分析的技術(shù)。
7.本課程的學(xué)習(xí)過(guò)程也是復(fù)雜程序設(shè)計(jì)的訓(xùn)練過(guò)程,要求學(xué)生編寫的程序結(jié)構(gòu)清楚、正確易讀,符合軟件過(guò)程的規(guī)范,從而培養(yǎng)學(xué)生的數(shù)據(jù)抽象能力。
8.通過(guò)若干數(shù)據(jù)結(jié)構(gòu)應(yīng)用實(shí)例,引導(dǎo)學(xué)生學(xué)習(xí)數(shù)據(jù)類型的使用,為今后學(xué)習(xí)面向?qū)ο蟮某绦蜃鲆恍╀亯|。
二、實(shí)驗(yàn)基本內(nèi)容及學(xué)時(shí)分配
為了達(dá)到實(shí)驗(yàn)?zāi)康?,本課程安排了4個(gè)實(shí)驗(yàn)單元,訓(xùn)練的重點(diǎn)在于基本的數(shù)據(jù)結(jié)構(gòu),而不是強(qiáng)調(diào)面面俱到。各實(shí)驗(yàn)單元與教科書的各章只具有粗略的對(duì)應(yīng)關(guān)系,一個(gè)實(shí)驗(yàn)題常常涉及到幾部分教學(xué)內(nèi)容??倢W(xué)時(shí):8學(xué)時(shí)。
1、線性表(2學(xué)時(shí))
(1)熟悉線性表的基本運(yùn)算在兩種存儲(chǔ)結(jié)構(gòu)(順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu))上的實(shí)現(xiàn);(2)以線性表的各種操作(建立、插入、刪除等)的實(shí)現(xiàn)為重點(diǎn);
(3)通過(guò)本次實(shí)驗(yàn)幫助學(xué)生提高C語(yǔ)言的編程能力(特別是函數(shù)參數(shù)、指針類型、鏈表的使用)。
2、數(shù)組和廣義表(2學(xué)時(shí))(1)掌握稀疏矩陣的壓縮存儲(chǔ)
(2)掌握稀疏矩陣的轉(zhuǎn)置算法
3、樹與二叉樹(2學(xué)時(shí))
常見的二叉樹遍歷算法有先序遍歷,中序遍歷和后序遍歷算法。實(shí)現(xiàn)簡(jiǎn)單的先序遍歷,中序遍歷和后序遍歷算法。
4、排序(2學(xué)時(shí))
常見的內(nèi)部排序算法,插入類排序算法,如直接插入排序和希爾排序;交換類排序算法,如冒泡排序和快速排序;選擇類排序算法,如簡(jiǎn)單選擇排序、樹形選擇類排序和堆排序。實(shí)冒泡排序或者直接插入排序算法。
三、說(shuō)明
該課程采用理論與實(shí)踐相結(jié)合的教學(xué)方法,集知識(shí)性與趣味性于一體,達(dá)到良好的教學(xué)效果。硬件要求:在多媒體教室講解及演示。為保證教學(xué)順利進(jìn)行,要求實(shí)驗(yàn)室提供電腦等設(shè)備。學(xué)生每次上機(jī)實(shí)驗(yàn)都必須遵守實(shí)驗(yàn)室的有關(guān)規(guī)定。
四、實(shí)驗(yàn)報(bào)告規(guī)范 實(shí)驗(yàn)報(bào)告的內(nèi)容包括:
1、實(shí)驗(yàn)?zāi)康模赫f(shuō)明實(shí)驗(yàn)所驗(yàn)證的知識(shí)點(diǎn)。
2、需求分析:以無(wú)歧義的陳述說(shuō)明程序設(shè)計(jì)的任務(wù)、約束條件、輸入輸出要求、對(duì)功能的規(guī)定及模型。
3、邏輯設(shè)計(jì):說(shuō)明本程序中用到的所有抽象的數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次調(diào)用關(guān)系。
4、詳細(xì)設(shè)計(jì):邏輯設(shè)計(jì)中定義的所有數(shù)據(jù)類型的實(shí)現(xiàn),核心算法的設(shè)計(jì)描述、人機(jī)界面設(shè)計(jì)、函數(shù)之間調(diào)用關(guān)系的描述,主要功能的算法框架,測(cè)試數(shù)據(jù)設(shè)計(jì)。
5、測(cè)試分析:測(cè)試結(jié)果的分析與討論,測(cè)試過(guò)程中遇到的主要問題及采取的解決措施。
6、心得:軟件設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中的經(jīng)驗(yàn)與體會(huì),進(jìn)一步改進(jìn)的設(shè)想。
7、程序清單:源程序中應(yīng)有足夠的注釋。如果提交源程序軟盤,列出程序文件名。
五、如何提高上機(jī)效率
為了提高上機(jī)的效率,真正達(dá)到實(shí)驗(yàn)?zāi)康模笸瑢W(xué)做好實(shí)驗(yàn)前的準(zhǔn)備工作,寫好實(shí)驗(yàn)預(yù)習(xí)報(bào)告,即實(shí)驗(yàn)報(bào)告規(guī)范中的1)、2)、3)、4)部分,編寫好程序,并用一組測(cè)試數(shù)據(jù)手工執(zhí)行程序靜態(tài)檢查程序是否有錯(cuò),通過(guò)閱讀、執(zhí)行程序或給別人講解自己的程序而深入全面地理解程序邏輯,提高程序的正確性。對(duì)C語(yǔ)言程序不熟悉的同學(xué),上機(jī)時(shí)最好帶上C語(yǔ)言程序設(shè)計(jì)的教材,以備查閱。調(diào)試中遇到問題,應(yīng)認(rèn)真分析,確定可疑點(diǎn),設(shè)置調(diào)試斷點(diǎn)或輸出斷點(diǎn)處變量的值,以便發(fā)現(xiàn)問題,迅速排除問題,加快調(diào)試速度。
實(shí)驗(yàn)室要求:
不能曠課,不遲到,不穿拖鞋進(jìn)實(shí)驗(yàn)室
實(shí)驗(yàn)需預(yù)習(xí)報(bào)告(不能單純抄寫,預(yù)習(xí)程序代碼)實(shí)驗(yàn)報(bào)告(總結(jié),注釋,實(shí)驗(yàn)結(jié)果)
目 錄
實(shí)驗(yàn)一 線性表實(shí)驗(yàn)(設(shè)計(jì)性實(shí)驗(yàn))..........................................4 實(shí)驗(yàn)二 數(shù)組和廣義表實(shí)驗(yàn)(設(shè)計(jì)性實(shí)驗(yàn))....................................6 實(shí)驗(yàn)三 樹與二叉樹(設(shè)計(jì)性實(shí)驗(yàn))..........................................8 實(shí)驗(yàn)四 排序(設(shè)計(jì)性實(shí)驗(yàn))................................................9
實(shí)驗(yàn)一
線性表實(shí)驗(yàn)(設(shè)計(jì)性實(shí)驗(yàn))
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉C語(yǔ)言的上機(jī)環(huán)境,進(jìn)一步掌握C語(yǔ)言的結(jié)構(gòu)特點(diǎn)。2.掌握線性表的順序存儲(chǔ)結(jié)構(gòu)的定義及C語(yǔ)言實(shí)現(xiàn)。
3.掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——單鏈表的定義及C語(yǔ)言實(shí)現(xiàn)。4.掌握線性表在順序存儲(chǔ)結(jié)構(gòu)即順序表中的各種基本操作。5.掌握線性表在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——單鏈表中的各種基本操作。
二、實(shí)驗(yàn)內(nèi)容
1.順序線性表的建立、插入及刪除。2.鏈?zhǔn)骄€性表的建立、插入及刪除。
三、實(shí)驗(yàn)儀器設(shè)備與器材 上機(jī)電腦
四、實(shí)驗(yàn)步驟
1.建立含n個(gè)數(shù)據(jù)元素的順序表并輸出該表中各元素的值及順序表的長(zhǎng)度。
2.利用前面的實(shí)驗(yàn)先建立一個(gè)順序表L={21,23,14,5,56,17,31},然后在第i個(gè)位置插入元素68。
3.建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表,結(jié)點(diǎn)的值域?yàn)檎蛿?shù)據(jù)。要求將用戶輸入的數(shù)據(jù)按尾插入法來(lái)建立相應(yīng)單鏈表。
五、實(shí)驗(yàn)提示
1.由于C語(yǔ)言的數(shù)組類型也有隨機(jī)存取的特點(diǎn),一維數(shù)組的機(jī)內(nèi)表示就是順序結(jié)構(gòu)。因此,可用C語(yǔ)言的一維數(shù)組實(shí)現(xiàn)線性表的順序存儲(chǔ)。
在此,我們利用C語(yǔ)言的結(jié)構(gòu)體類型定義順序表: #define MAXSIZE 1024 typedef int elemtype;/*
線性表中存放整型元素 */ typedef struct { elemtype vec[MAXSIZE];int len;/*
順序表的長(zhǎng)度 */ }sequenlist;將此結(jié)構(gòu)定義放在一個(gè)頭文件sqlist.h里,可避免在后面的參考程序中代碼重復(fù)書寫,另外在該頭文件里給出順序表的建立及常量的定義。
2.注意如何取到第i個(gè)元素,在插入過(guò)程中注意溢出情況以及數(shù)組的下標(biāo)與位序(順序表中元素的次序)的區(qū)別。
3.單鏈表的結(jié)點(diǎn)結(jié)構(gòu)除數(shù)據(jù)域外,還含有一個(gè)指針域。用C語(yǔ)言描述結(jié)點(diǎn)結(jié)構(gòu)如下:
typedef int elemtype;typedef struct node { elemtype data;//數(shù)據(jù)域
struct node *next;//指針域
}linklist;
注意結(jié)點(diǎn)的建立方法及構(gòu)造新結(jié)點(diǎn)時(shí)指針的變化。構(gòu)造一個(gè)結(jié)點(diǎn)需用到C語(yǔ)言的標(biāo)準(zhǔn)函數(shù)malloc(),如給指針變量p分配一個(gè)結(jié)點(diǎn)的地址:
p=(linklist *)malloc(sizeof(linklist));該語(yǔ)句的功能是申請(qǐng)分配一個(gè)類型為linklist的結(jié)點(diǎn)的地址空間,并將首地址存入指針變量p 中。當(dāng)結(jié)點(diǎn)不需要時(shí)可以用標(biāo)準(zhǔn)函數(shù)free(p)釋放結(jié)點(diǎn)存儲(chǔ)空間,這時(shí)p為空值(NULL)。
六、實(shí)驗(yàn)總結(jié)與思考
1.如果按由表尾至表頭的次序輸入數(shù)據(jù)元素,應(yīng)如何建立順序表。2.在main函數(shù)里如果去掉L=&a語(yǔ)句,會(huì)出現(xiàn)什么結(jié)果?
實(shí)驗(yàn)二
數(shù)組和廣義表實(shí)驗(yàn)(設(shè)計(jì)性實(shí)驗(yàn))
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握稀疏矩陣的壓縮存儲(chǔ) 2.掌握稀疏矩陣的轉(zhuǎn)置算法
二、實(shí)驗(yàn)內(nèi)容
1.實(shí)現(xiàn)上三角陣的壓縮存儲(chǔ)。
2.用三元組順序表存儲(chǔ)稀疏矩陣,并實(shí)現(xiàn)矩陣的轉(zhuǎn)置。
三、實(shí)驗(yàn)儀器設(shè)備與器材 上機(jī)電腦
四、實(shí)驗(yàn)步驟
1.創(chuàng)建一個(gè)數(shù)組。2.輸入數(shù)據(jù)
3.給定矩陣任一元素的下標(biāo),4.打印給定下標(biāo)所對(duì)應(yīng)的數(shù)據(jù)。5.創(chuàng)建三元組順序表。?a22 7.A輸出對(duì)應(yīng)的矩陣。??
21五、實(shí)驗(yàn)提示 ?aaa6.輸入矩陣中的數(shù)據(jù)。?11?a11??a?313233a2122?1.對(duì)于如下對(duì)稱矩陣: ??A?aaa?4243?41?a31a32a33??1個(gè)位置,a21存入到第二個(gè)位置,?將它們存入到一個(gè)線性數(shù)組中B,不存非零元素,a11存入到第a41a42aija44????aij的位則aij能存到第幾個(gè)位置,我們要以用梯形公式算面積。置是它上面的元素之和再加上左邊的元素之和。
它上面的元素之和為((1+(i-1))×(i-1)/2,左邊的元素為(j-1)所以這個(gè)元素存儲(chǔ)的位置為k=i(i-1)/2+j-1。
因?yàn)榫仃嘇為對(duì)稱矩陣,(另一部分沒有寫出),所以另一部分的元素為 k=j(j-1)/2+i-1.所以存在關(guān)系k=i(i-1)/2+j-1(i>j)和k=j(j-1)/2+i-1(i 2.結(jié)點(diǎn)結(jié)構(gòu) struct triple{ int i,j;//非零元的行下標(biāo)和列下標(biāo) elemtype e;//非零元數(shù)據(jù)} 三元組順序表存儲(chǔ)類型 struct tsmatrix{ triple data[12500];aa?????a44?? int mu,nu,tu;} 三元順序表的轉(zhuǎn)置 方法:(1)將矩陣行列互換,(2)重排矩陣 六、實(shí)驗(yàn)總結(jié)與思考 1.如何存儲(chǔ)三對(duì)角陣? 2.如何用行邏輯鏈接順序表及十字鏈表存儲(chǔ)稀疏矩陣? 實(shí)驗(yàn)三 樹與二叉樹(設(shè)計(jì)性實(shí)驗(yàn)) 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握稀疏矩陣的壓縮存儲(chǔ) 2.掌握稀疏矩陣的轉(zhuǎn)置算法 二、實(shí)驗(yàn)內(nèi)容 1.練習(xí)二叉樹的建立與存儲(chǔ) 2.練習(xí)二叉樹的遍歷 三、實(shí)驗(yàn)儀器設(shè)備與器材 上機(jī)電腦 四、實(shí)驗(yàn)步驟 1.建立自己的頭文件BT.H,內(nèi)容包括二叉鏈表的結(jié)構(gòu)描述、二叉樹的建立、二叉樹的先序、中序與后序遍歷算法。 2.建立二叉樹,并通過(guò)調(diào)用函數(shù),,輸出先序遍歷、中序遍歷與后序遍歷的結(jié)果。 五、實(shí)驗(yàn)提示 建立二叉樹的代碼如下: BTCHINALR * createbt(){ BTCHINALR *q;struct node1 *s[30];int j,i,x;printf(“建立二叉樹,輸入結(jié)點(diǎn)對(duì)應(yīng)的編號(hào)和值,編號(hào)和值之間用逗號(hào)隔開nn”);printf(“i,x = ”);scanf(“%d,%c”,&i,&x);while(i!= 0 && x!= '$') {q =(BTCHINALR*)malloc(sizeof(BTCHINALR));/*建立一個(gè)新結(jié)點(diǎn)q*/ q->data = x;q->lchild = NULL;q->rchild = NULL; s[i] = q;/*q新結(jié)點(diǎn)地址存入s指針數(shù)組中*/ if(i!= 1)/*i = 1,對(duì)應(yīng)的結(jié)點(diǎn)是根結(jié)點(diǎn)*/ {j = i / 2;/*求雙親結(jié)點(diǎn)的編號(hào)j*/ if(i % 2 == 0)s[j]->lchild = q;/*q結(jié)點(diǎn)編號(hào)為偶數(shù)則掛在雙親結(jié)點(diǎn)j的左邊*/ else s[j]->rchild = q;} /*q結(jié)點(diǎn)編號(hào)為奇數(shù)則掛在雙親結(jié)點(diǎn)j的右邊*/ printf(“i,x = ”); scanf(“%d,%c”,&i,&x);} return s[1];/*返回根結(jié)點(diǎn)地址*/ } 六、實(shí)驗(yàn)總結(jié)與思考 1.如何用孩子兄弟表示法存儲(chǔ)樹? 2.熟悉及難赫夫曼樹。 實(shí)驗(yàn)四 排序(設(shè)計(jì)性實(shí)驗(yàn)) 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握常用的排序方法,并掌握用高級(jí)語(yǔ)言實(shí)現(xiàn)排序算法的方法; 2.深刻理解排序的定義和各種排序方法的特點(diǎn),并能加以靈活應(yīng)用; 3.了解各種方法的排序過(guò)程及其時(shí)間復(fù)雜度的分析方法。 二、實(shí)驗(yàn)內(nèi)容 統(tǒng)計(jì)成績(jī) 給出n個(gè)學(xué)生的考試成績(jī)表,每條信息由姓名和分?jǐn)?shù)組成,試設(shè)計(jì)一個(gè)算法: (1)按分?jǐn)?shù)高低次序,打印出每個(gè)學(xué)生在考試中獲得的名次,分?jǐn)?shù)相同的為同一名次;(2)按名次列出每個(gè)學(xué)生的姓名與分?jǐn)?shù)。 三、實(shí)驗(yàn)儀器設(shè)備與器材 上機(jī)電腦 四、實(shí)驗(yàn)步驟 1.定義結(jié)構(gòu)體。2.定義結(jié)構(gòu)體數(shù)組。 3.定出主程序,對(duì)數(shù)據(jù)進(jìn)行排序。 五、實(shí)驗(yàn)提示 #define n 30 typedef struct student { char name[8];int score;} student R[n];main(){ int num, i, j, max, temp;printf(“n請(qǐng)輸入學(xué)生成績(jī): n”);for(i=0;i if(max!=i){ temp = R[max];R[max]=R[i];R[i]= temp;} if((i>0)&&(R[i].score 六、實(shí)驗(yàn)總結(jié)與思考 1.快速排序算法解決本問題。2.較各種排序算法的優(yōu)缺點(diǎn)及。 3.使用其它排序算法實(shí)現(xiàn)該問題(直接插入排序、希爾排序、簡(jiǎn)單選擇排序、堆排序等)。 數(shù) 據(jù) 結(jié) 構(gòu) 實(shí) 驗(yàn) 指 導(dǎo) 書 南京工程學(xué)院 信息管理與信息系統(tǒng)教研室 2014年3月 實(shí)驗(yàn)一 線性表操作 一、實(shí)驗(yàn)?zāi)康?/p> 1.熟悉C語(yǔ)言的上機(jī)環(huán)境,進(jìn)一步掌握C語(yǔ)言的結(jié)構(gòu)特點(diǎn)。2.掌握線性表的順序存儲(chǔ)結(jié)構(gòu)的定義及C語(yǔ)言實(shí)現(xiàn)。 3.掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——單鏈表的定義及C語(yǔ)言實(shí)現(xiàn)。4.掌握線性表在順序存儲(chǔ)結(jié)構(gòu)即順序表中的各種基本操作。5.掌握線性表在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——單鏈表中的各種基本操作。 二、實(shí)驗(yàn)內(nèi)容 1.順序線性表的建立、插入及刪除。 2.鏈?zhǔn)骄€性表的建立、插入及刪除。 三、實(shí)驗(yàn)步驟 1.建立含n個(gè)數(shù)據(jù)元素的順序表并輸出該表中各元素的值及順序表的長(zhǎng)度。2.利用前面的實(shí)驗(yàn)先建立一個(gè)順序表L={21,23,14,5,56,17,31},然后在第i個(gè)位置插入元素68。 3.建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表,結(jié)點(diǎn)的值域?yàn)檎蛿?shù)據(jù)。要求將用戶輸入的數(shù)據(jù)按尾插入法來(lái)建立相應(yīng)單鏈表。 四、實(shí)現(xiàn)提示 1.由于C語(yǔ)言的數(shù)組類型也有隨機(jī)存取的特點(diǎn),一維數(shù)組的機(jī)內(nèi)表示就是順序結(jié)構(gòu)。因此,可用C語(yǔ)言的一維數(shù)組實(shí)現(xiàn)線性表的順序存儲(chǔ)。 在此,我們利用C語(yǔ)言的結(jié)構(gòu)體類型定義順序表: #define MAXSIZE 1024 typedef int elemtype;/* 線性表中存放整型元素 */ typedef struct { elemtype vec[MAXSIZE];int len;/* 順序表的長(zhǎng)度 */ }sequenlist;將此結(jié)構(gòu)定義放在一個(gè)頭文件sqlist.h里,可避免在后面的參考程序中代碼重復(fù)書寫,另外在該頭文件里給出順序表的建立及常量的定義。 2.注意如何取到第i個(gè)元素,在插入過(guò)程中注意溢出情況以及數(shù)組的下標(biāo)與位序(順序表中元素的次序)的區(qū)別。 3.單鏈表的結(jié)點(diǎn)結(jié)構(gòu)除數(shù)據(jù)域外,還含有一個(gè)指針域。用C語(yǔ)言描述結(jié)點(diǎn)結(jié)構(gòu)如下: typedef int elemtype;typedef struct node { elemtype data;//數(shù)據(jù)域 struct node *next;//指針域 }linklist;注意結(jié)點(diǎn)的建立方法及構(gòu)造新結(jié)點(diǎn)時(shí)指針的變化。構(gòu)造一個(gè)結(jié)點(diǎn)需用到C語(yǔ)言的標(biāo)準(zhǔn)函數(shù)malloc(),如給指針變量p分配一個(gè)結(jié)點(diǎn)的地址: p=(linklist *)malloc(sizeof(linklist));該語(yǔ)句的功能是申請(qǐng)分配一個(gè)類型為linklist的結(jié)點(diǎn)的地址空間,并將首地址存入指針變量p 中。當(dāng)結(jié)點(diǎn)不需要時(shí)可以用標(biāo)準(zhǔn)函數(shù)free(p)釋放結(jié)點(diǎn)存儲(chǔ)空間,這時(shí)p為空值(NULL)。 五、思考與提高 1.如果按由表尾至表頭的次序輸入數(shù)據(jù)元素,應(yīng)如何建立順序表。2.在main函數(shù)里如果去掉L=&a語(yǔ)句,會(huì)出現(xiàn)什么結(jié)果? 實(shí)驗(yàn)二 棧和隊(duì)列的應(yīng)用 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握棧的順序表示和實(shí)現(xiàn) 2.掌握隊(duì)列的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn) 二、實(shí)驗(yàn)內(nèi)容 1.編寫一個(gè)程序?qū)崿F(xiàn)順序棧的各種基本運(yùn)算。2.實(shí)現(xiàn)隊(duì)列的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)。 三、實(shí)驗(yàn)步驟 1.順序棧(1)初始化順序棧;(2)插入元素(3)刪除棧頂元素(4)取棧頂元素(5)遍歷順序棧(6)置空順序棧 2.鏈隊(duì)列 (1)初始化并建立鏈隊(duì)列(2.)入鏈隊(duì)列(3)出鏈隊(duì)列(4)遍歷鏈隊(duì)列 四、實(shí)現(xiàn)提示 1./*定義順序棧的存儲(chǔ)結(jié)構(gòu)*/ typedef struct { ElemType stack[MAXNUM];int top;}SqStack; /*初始化順序棧函數(shù)*/ void InitStack(SqStack *p) {q=(SqStack*)malloc(sizeof(SqStack));/*申請(qǐng)空間*/} /*入棧函數(shù)*/ void Push(SqStack *p,ElemType x){if(p->top SqStack S; ElemType e; int N; /*初始化順序棧*/ /*入棧*/ /*出棧*/ /*遍歷順序棧*/ getch();} 2./*定義鏈隊(duì)列*/ typedef struct Qnode { ElemType data;struct Qnode *next;}Qnodetype;typedef struct { Qnodetype *front;Qnodetype *rear;}Lqueue; /*初始化并建立鏈隊(duì)列函數(shù)*/ void creat(Lqueue *q) { h=(Qnodetype*)malloc(sizeof(Qnodetype));/*初始化申請(qǐng)空間*/ h->next=NULL;q->front=h;q->rear=h;for(i=1;i<=n;i++)*利用循環(huán)快速輸入數(shù)據(jù)*/ { scanf(“%d”,&x);Lappend(q,x);} /*利用入鏈隊(duì)列函數(shù)快速輸入數(shù)據(jù)*/ } /*入鏈隊(duì)列函數(shù)*/ void Lappend(Lqueue *q,int x){ s->data=x;s->next=NULL;q->rear->next=s;q->rear=s;} /*出鏈隊(duì)列函數(shù)*/ ElemType Ldelete(Lqueue *q){ p=q->front->next;q->front->next=p->next;if(p->next==NULL)q->rear=q->front;x=p->data;free(p);} /*釋放空間*/ /*遍歷鏈隊(duì)列函數(shù)*/ void display(Lqueue *q){ while(p!=NULL)/*利用條件判斷是否到隊(duì)尾*/ { printf(“%d-->”,p->data);p=p->next;} } 可參考如下代碼: #include “stdio.h” #define MaxSize 100 typedef int ElemType;main(){ LinkQueue Q; ElemType e; /*初始化并建立鏈隊(duì)列*/ /*入鏈隊(duì)列*/ /*出鏈隊(duì)列*/ *遍歷鏈隊(duì)列*/ } DestoryQueue(&Q); getch();} 五、思考與提高 1.讀棧頂元素的算法與退棧頂元素的算法有何區(qū)別? 試寫一個(gè)算法,判別讀入的一個(gè)以‘@’為結(jié)束符的字符序列是否是?回文?。實(shí)驗(yàn)三 樹操作 一、實(shí)驗(yàn)?zāi)康?/p> 1.通過(guò)實(shí)驗(yàn),掌握二叉樹的建立與存儲(chǔ) 2.通過(guò)實(shí)驗(yàn),掌握二叉樹的遍歷方法 二、實(shí)驗(yàn)內(nèi)容 1.練習(xí)二叉樹的建立與存儲(chǔ) 2.練習(xí)二叉樹的遍歷 三、實(shí)驗(yàn)步驟 1.建立二叉鏈表的結(jié)構(gòu)描述、二叉樹的建立、二叉樹的先序、中序與后序遍歷算法。 2.建立二叉樹,并通過(guò)調(diào)用函數(shù), 輸出先序遍歷、中序遍歷與后序遍歷的結(jié)果。 四、實(shí)現(xiàn)提示 1.采用遞歸方法建立二叉樹: 首先建立二叉樹的根 結(jié)點(diǎn),然后建立其左右子樹,直到空子樹為止。 2.先序遍歷、中序遍歷與后序遍歷二叉樹。#include BiTree CreateBiTree(BiTree &T){ } /*先序遍歷*/ Status PreOrderTraverse(BiTree T){ } /*中序遍歷*/ Status InOrderTraverse(BiTree T){ } /*后序遍歷*/ Status PostOrderTraverse(BiTree T){ } int main(){ BiTree T;CreateBiTree(T);PreOrderTraverse(T);printf(“n”);/*先序遍歷*/ InOrderTraverse(T);printf(“n”);/*中序遍歷*/ PostOrderTraverse(T);printf(“n”);/*后序遍歷*/ return 0;} 五、思考與提高 編寫遞歸算法,計(jì)算二叉樹中葉子結(jié)點(diǎn)的數(shù)目。第五篇:《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)指導(dǎo)書