VEX機(jī)器人軟件編程教程_第1頁(yè)
VEX機(jī)器人軟件編程教程_第2頁(yè)
VEX機(jī)器人軟件編程教程_第3頁(yè)
VEX機(jī)器人軟件編程教程_第4頁(yè)
VEX機(jī)器人軟件編程教程_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、VEX 機(jī)器人軟件編程教程一、使用注意事項(xiàng)v 如果是沒有購(gòu)買序列號(hào)的用戶,安裝了軟件,打開軟件時(shí)會(huì)彈出一個(gè)注冊(cè)的窗口,中文版點(diǎn)暫不注冊(cè)按鈕便可以試用。英文版點(diǎn)Run in Evaluation Mode按鈕便可試用; 英文1.0版試用30天,英文2.0版只能試用7天;中文2.0版15天;v 如果是購(gòu)買了序列號(hào)的用戶,在注冊(cè)的時(shí)候需要聯(lián)網(wǎng)注冊(cè), 每個(gè)序列號(hào)也只能在一臺(tái)電腦上使用,英文版如果換了電腦再使用該序列號(hào)注冊(cè),那么該系列號(hào)就不可用了,2.0中文版一個(gè)序列號(hào)也只能一臺(tái)電腦注冊(cè),如要換電腦注冊(cè)可以點(diǎn)菜單欄 幫助 注銷,然后在另一臺(tái)電腦上就可以再次使用該序列號(hào)了;v 如果是沒有購(gòu)買序列號(hào)的用戶,

2、只要一裝上軟件,便自動(dòng)與系統(tǒng)硬件綁定,試用期到了以后即使把軟件卸載了在重裝也不能繼續(xù)試用,建議先用備份工具備份系統(tǒng),然后才安裝中英文版軟件,這樣軟件過(guò)期了以后,只需要把系統(tǒng)還原,在重裝VEX軟件即可繼續(xù)試用;v 英文版軟件比中文1.0版軟件穩(wěn)定,中文1.0版軟件存在一些錯(cuò)誤,不建議使用中文1.0版;v VEX編程軟件有中文版和英文版兩個(gè)版本(中文和英文分別都有1.0版本和2.0版本),兩個(gè)版本不能混用,不要既下載中文版編的程序到主控器,又下載英文版編的程序到主控器,這樣會(huì)損壞主控器的底層程序,嚴(yán)重時(shí)會(huì)導(dǎo)致主控器的某些芯片不可用,從而導(dǎo)致主控器不能使用;v 中文版和英文版的程序和代碼都不能用對(duì)方

3、的的軟件相互打開編輯v 中文1.0版軟件編好的程序不能保存到C盤(包括桌面),否則會(huì)導(dǎo)致程序不能打開或者出現(xiàn)錯(cuò)誤;中文2.0版電腦的任何地方都可以保存,以文件夾的形式保存,注意在同一個(gè)程序文件夾下不能在保存別的程序,否則在打開程序時(shí)會(huì)出錯(cuò)并關(guān)閉自動(dòng)關(guān)閉;v 中文1.0版軟件在每次下載程序之前都要先保存編譯鏈接然后再下載,然后選擇端口;v 查看下載線使用的COM口的方法是:我的電腦右鍵屬性硬件設(shè)備管理器端口(COM和LPT) Prolific USB-to-Serial Comm Port (com3)最后這一項(xiàng)的com3就是當(dāng)前VEX下載線使用的端口;然后在軟件里面選擇你查看到的端口即可下載程

4、序到主控器,具體方法后面有詳細(xì)介紹;v 2.0中英版軟件可以定義子程序,1.0中英版軟件不能定義子程序;v 2.0中英版軟件中可以定義全局變量和局部變量,1.0中英版的軟件所有變量都是全局變量;v 1.0中英版軟件沒有中斷、繼續(xù)、返回模塊,2.0中英版軟件中有。v 當(dāng)主控器出現(xiàn)執(zhí)行程序混亂的情況時(shí),說(shuō)明有可能是主控器的底層程序不正常,那么只需要從新下載一次底層程序即可,中文版2.0為:菜單欄:生成下栽初始化程序。二、主界面三、工具欄模塊(英文版)四、編程區(qū)v 對(duì)于1.0版每一個(gè)新的程序都會(huì)有一個(gè)I/O定義模塊,變量定義模塊(Variables),開始模塊(BEGNI)和結(jié)束模塊(END)。 2

5、.0版則增加了局部變量定義模塊。v I/O模塊、全局變量定義模塊、局部變量定義模塊應(yīng)當(dāng)在開始編程之前定義。v 在每一個(gè)程序里,開始模塊表示程序的第一個(gè)模塊;結(jié)束模塊表示程序的最后一個(gè)模塊。 你必須放置所有的模塊在這兩個(gè)模塊之間。 v 插入模塊:在模塊區(qū)用鼠標(biāo)左鍵點(diǎn)住相應(yīng)模塊,拖動(dòng)到編程區(qū)的開始和結(jié)束模塊之間,放開鼠標(biāo),然后只要設(shè)置好模塊的屬性就行了。需要說(shuō)明的是傳感器模塊必須先定義其變量才能插入到編程區(qū)內(nèi)。v 編輯模塊(Edit):左鍵雙擊修改,也可單擊右鍵。英文版是點(diǎn)右鍵,選擇編輯。v 復(fù)制模塊(Copy):中文版2.0是ctrl+c復(fù)制模塊,也可單擊右鍵;英文版是按住ctrl鍵,拖拽模塊,

6、然后將復(fù)制的模塊放到你需要放置的位置。也可單擊右鍵。v 剪切模塊(Cut):中文版2.0是ctrl+x剪切模塊,也可單擊右鍵;英文版是先選中模塊,再點(diǎn)右鍵選擇剪切。v 粘貼(Paste) :中文版2.0是ctrl+v粘貼模塊,也可單擊右鍵;英文版是點(diǎn)右鍵,選擇粘貼。v 刪除模塊(Delete):中文版2.0是Delete鍵刪除模塊,也可單擊右鍵;英文版是點(diǎn)右鍵,然后選擇刪除。v 右鍵單擊任何一個(gè)模塊,可以對(duì)該模塊進(jìn)行編輯、復(fù)制、剪切、刪除、粘貼等操作 。v 編譯下載:F5為編譯程序,F(xiàn)6為編譯并下載程序五、I/O定義模塊v 雙擊I/O圖標(biāo)或點(diǎn)鼠標(biāo)右鍵(I/O定義模塊),你能夠配置控制器的I/O

7、端口。v 模擬/數(shù)字端口(共16個(gè)口)(ANALOG/DIGITAL):波浪線表示模擬端口(默認(rèn)為14),箭頭表示數(shù)字端口;箭頭向左的表示信號(hào)是由外部輸入到主控器(默認(rèn)為510) ,箭頭向右的表示信號(hào)是由主控器內(nèi)部輸出(默認(rèn)為1116),模擬和數(shù)字端口可以互換,數(shù)字端口的輸入輸出也可以更改;v 中斷端口(INTERRUPTS) (共6個(gè)口):不能更改;v 馬達(dá)端口(MOTORS) (共8個(gè)口):不能更改;六、變量設(shè)置模塊(1.0版)v 雙擊變量設(shè)置圖標(biāo),打開程序變量定義對(duì)話框。你能設(shè)置程序需要使用到的變量;v 這里數(shù)據(jù)類型一般都選擇int,v 變量名稱需要是英文字母,其它的可以不填也可以在變量

8、取值處設(shè)置變量的值全局變量設(shè)置模塊(2.0版)v 雙擊全局變量設(shè)置圖標(biāo),打開程序變量定義對(duì)話框。你能設(shè)置程序需要使用到的全局變量;v 這里數(shù)據(jù)類型一般都選擇int,v 變量名稱需要是英文字母,其它的可以不填v 也可以在變量取值處設(shè)置變量的值,也可以不設(shè)置。局部變量設(shè)置模塊(2.0版)v 雙擊局部變量設(shè)置圖標(biāo),打開程序變量定義對(duì)話框。你能設(shè)置程序需要使用到的局部變量;v 這里數(shù)據(jù)類型一般都選擇int;v 變量名稱需要是英文字母,其它的可以不填v 也可以在變量取值處設(shè)置變量的值變量定義表七、接口說(shuō)明接口功能馬達(dá)端口MOTORS共有8個(gè)口主控器上標(biāo)有MOTORS字樣的端口,用來(lái)接馬達(dá)和伺服器中斷端口

9、INTERRUPTS共有6個(gè)口主控器上標(biāo)有INTERRUPTS字樣的端口,用來(lái)接超聲波傳感器的OUTPUT端和編碼器模擬/數(shù)字端口ANALOG/DIGITAL共有16個(gè)口主控器上標(biāo)有ANALOG/DIGITAL字樣的端口,默認(rèn)14為模擬/數(shù)字通用端口,可接巡線、光敏、碰撞、行程,默認(rèn)510為數(shù)字輸出端口,可接碰撞、行程,默認(rèn)1116為數(shù)字輸入端口,接超聲波的Input端,都可以自行更改指示燈說(shuō)明八、Inputs主控輸入1、碰撞開關(guān)傳感器 bumper switchv 碰撞開關(guān)是數(shù)字式的傳感器。v 它有兩種狀態(tài):即開和關(guān)。v 當(dāng)碰撞開關(guān)斷開的時(shí)候,定義為1。v 當(dāng)碰撞開關(guān)閉合的時(shí)候,定義為0。v

10、 打開英文版位于Test Code的文件夾中的BUMPERTEST.ECP工程,看其示范怎樣編寫碰撞開關(guān)程序。 碰撞開關(guān)程序范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)碰撞檢測(cè)模塊,接著拖入一個(gè)當(dāng)循環(huán)模塊對(duì)當(dāng)前碰撞變量進(jìn)行判斷,然后在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)控制模塊,再拖入一個(gè)碰撞檢測(cè)模塊,屬性和當(dāng)循環(huán)外面的碰撞檢測(cè)模塊的屬性一樣,這樣就構(gòu)成了一個(gè)條件循環(huán),最后在當(dāng)循環(huán)外面在拖入一個(gè)馬達(dá)控制模塊;v 那么這個(gè)程序的功能就是:當(dāng) a=1即是碰撞開關(guān)沒碰到時(shí),就不停的啟動(dòng)馬達(dá)1正轉(zhuǎn),反之a(chǎn)=0則是當(dāng)碰撞開關(guān)碰到時(shí),就跳出當(dāng)循環(huán),停止馬達(dá)1。2、光敏傳感器 li

11、ght sensor v 光敏傳感器是模擬式的傳感器,它是用來(lái)檢測(cè)周圍環(huán)境光線的亮暗的傳感器;v 把光線由亮到暗的范圍定義在0到1024。值越小表示光線越亮,值越大表示光線越暗; v 打開英文版位于Test Code文件夾中的LIGHTTEST.ECP工程,看其示范怎樣編寫光敏傳感器程序。 光敏傳感器程序范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)光敏檢測(cè)模塊,選擇變量a,接著拖入一個(gè)當(dāng)循環(huán)模塊對(duì)當(dāng)前亮度變量(即變量a)進(jìn)行判斷,然后在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)控制模塊,再拖入一個(gè)光敏檢測(cè)模塊,屬性和當(dāng)循環(huán)外面的光敏檢測(cè)模塊的屬性一樣,這樣就構(gòu)成了一個(gè)條件循

12、環(huán),最后在當(dāng)循環(huán)外面在拖入一個(gè)馬達(dá)控制模塊;v 那么這個(gè)程序的功能就是:當(dāng) a<800即是光線比較亮?xí)r,就不停的啟動(dòng)馬達(dá)1正轉(zhuǎn),反之a(chǎn)>=800則是光線比較暗時(shí),就跳出當(dāng)循環(huán),停止馬達(dá)1。3、限位開關(guān)limit switch v 限位開關(guān)是數(shù)字式的傳感器。和碰撞開關(guān)類似;v 它有兩種狀態(tài):即開和關(guān);v 當(dāng)限位開關(guān)斷開的時(shí)候,定義為1v 當(dāng)限位開關(guān)閉合的時(shí)候,定義為0v 打開英文版位于Test Code的文件夾中的LIMITTEST.ECP工程,看其示范怎樣編寫行程開關(guān)程序。 限位開關(guān)程序范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)限位檢測(cè)模塊

13、,接著拖入一個(gè)當(dāng)循環(huán)模塊對(duì)當(dāng)前限位變量進(jìn)行判斷,然后在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)控制模塊,再拖入一個(gè)限位檢測(cè)模塊,屬性和當(dāng)循環(huán)外面的限位檢測(cè)模塊的屬性一樣,這樣就構(gòu)成了一個(gè)條件循環(huán),最后在當(dāng)循環(huán)外面在拖入一個(gè)馬達(dá)控制模塊;v 那么這個(gè)程序的功能就是:當(dāng) a=1即是限位開關(guān)沒閉合時(shí),就不停的啟動(dòng)馬達(dá)1正轉(zhuǎn),反之a(chǎn)=0則是當(dāng)限位開關(guān)碰到時(shí),就跳出當(dāng)循環(huán),停止馬達(dá)1。4、巡線傳感器 Line Followerv 巡線傳感器是模擬式的傳感器,它是用來(lái)檢測(cè)顏色的傳感器;v 把顏色的深淺由白到黑的范圍定義在0到1024。值越小表示顏色越白,值越大表示顏色越黑; v 打開英文版位于Test Code的文件夾中的

14、LINEFOLLOWER. ECP工程,看其示范怎樣編寫巡線傳感器程序。 巡線傳感器程序范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)巡線檢測(cè)模塊,接著拖入一個(gè)當(dāng)循環(huán)模塊對(duì)當(dāng)前灰度變量(即變量a)進(jìn)行判斷,然后在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)控制模塊,再拖入一個(gè)巡線檢測(cè)模塊,屬性和當(dāng)循環(huán)外面的巡線檢測(cè)模塊的屬性一樣,這樣就構(gòu)成了一個(gè)條件循環(huán),最后在當(dāng)循環(huán)外面在拖入一個(gè)馬達(dá)控制模塊;v 那么這個(gè)程序的功能就是:當(dāng) a<800即是顏色比較白時(shí),就不停的啟動(dòng)馬達(dá)1正轉(zhuǎn),反之a(chǎn)>=800則是顏色比較黑時(shí),就跳出當(dāng)循環(huán),停止馬達(dá)1。5、編碼器 Optical S

15、haft Encoderv 編碼器是一個(gè)數(shù)字式的傳感器。它能夠用來(lái)測(cè)量和定義馬達(dá)轉(zhuǎn)動(dòng)的圈數(shù)或者路程。v 編碼器一般插在中斷端口(INTERRUPTS)v 編碼器旋轉(zhuǎn)(360 度)等于90個(gè)編碼脈沖。 v 打開英文版位于Test Code的文件夾中的ENCODERTEST.ECP工程,看其示范怎樣編寫編碼器程序。 編碼器程序范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入三個(gè)編碼器檢測(cè)模塊,第一個(gè)選擇開始,第二個(gè)選擇預(yù)設(shè),第三個(gè)選擇取值;接著拖入一個(gè)當(dāng)循環(huán)模塊對(duì)當(dāng)前路程變量(即變量a)進(jìn)行判斷,然后在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)控制模塊,再拖入一個(gè)編碼器檢測(cè)模塊,屬性和

16、當(dāng)循環(huán)外面設(shè)置取值的那個(gè)編碼器檢測(cè)模塊的屬性一樣,這樣就構(gòu)成了一個(gè)條件循環(huán),最后在當(dāng)循環(huán)外面在拖入一個(gè)馬達(dá)控制模塊;v 那么這個(gè)程序的功能就是:當(dāng) a<=30即是當(dāng)前馬達(dá)轉(zhuǎn)動(dòng)的路程沒由達(dá)到30時(shí),就不停的啟動(dòng)馬達(dá)1正轉(zhuǎn),反之a(chǎn)>30則是馬達(dá)轉(zhuǎn)動(dòng)的路程達(dá)到30時(shí),就跳出當(dāng)循環(huán),停止馬達(dá)1。6、超聲波傳感器Ultrasonic Sensor v 超聲波傳感器利用高頻率的聲波來(lái)探測(cè)障礙物。它發(fā)射一個(gè)超聲波信號(hào),聲波被外界物體反射回來(lái)。然后超聲波傳感器就可以根據(jù)接收到的信號(hào)的時(shí)間和強(qiáng)弱計(jì)算出離障礙物的距離v 超聲波傳感器有兩根連接線v 確保標(biāo)有Output標(biāo)簽的線連接到主控器的中斷端口。v

17、 確保標(biāo)有Input標(biāo)簽的線連接到主控器的數(shù)字輸出端口(默認(rèn)的為1116)。v 超聲波的取值范圍是:2100v 小于2cm是超聲波的盲區(qū),在2cm以內(nèi)就檢測(cè)不到任何物體。v 打開英文版位于Test Code的文件夾中的ULTRASONICTEST.ECP工程,看其示范怎樣編寫超聲波傳感器程序。 超聲波傳感器程序范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入兩個(gè)超聲波檢測(cè)模塊,第一個(gè)選擇開始,第二個(gè)選擇取值;接著拖入一個(gè)當(dāng)循環(huán)模塊對(duì)當(dāng)前超聲波變量(即變量a)進(jìn)行判斷,然后在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)控制模塊,再拖入一個(gè)超聲波檢測(cè)模塊,屬性和當(dāng)循環(huán)外面設(shè)置取值的那個(gè)超

18、聲波取值模塊的屬性一樣,這樣就構(gòu)成了一個(gè)條件循環(huán),最后在當(dāng)循環(huán)外面在拖入一個(gè)馬達(dá)控制模塊;v 那么這個(gè)程序的功能就是:當(dāng) a>20即是當(dāng)前超聲波和障礙物的距離沒有達(dá)到20時(shí),就不停的啟動(dòng)馬達(dá)1正轉(zhuǎn),反之a(chǎn)<=20則是超聲波與障礙物之間的距離達(dá)到20和20以內(nèi)時(shí),就跳出當(dāng)循環(huán),停止馬達(dá)1。7、數(shù)字輸入 Digital Inputv 模塊可以代替所有數(shù)字式的傳感器模塊8、模擬輸入 Analog Inputv 模塊可以代替所有模擬式的傳感器模塊九、Outputs主控輸出1、馬達(dá)控制 Motor Modulev 馬達(dá)的輸出軸正對(duì)自己,順時(shí)針表示正轉(zhuǎn),逆時(shí)針表示反轉(zhuǎn);v 箭頭圖標(biāo)向上暗示馬達(dá)

19、正轉(zhuǎn)。v 箭頭圖標(biāo)變成一個(gè)黃色的點(diǎn)暗示馬達(dá)停止。 v 箭頭圖標(biāo)向下暗示馬達(dá)反轉(zhuǎn)。馬達(dá)控制編程范例1:v 首先拖入一個(gè)馬達(dá)模塊,選擇正轉(zhuǎn),再拖入一個(gè)懸空等待模塊,設(shè)置為1000,表示一秒,然后再拖入一個(gè)馬達(dá)模塊,選擇停止;v 那么這個(gè)程序的功能為:馬達(dá)1正轉(zhuǎn)一秒后停止。需要注意的是你啟動(dòng)了幾個(gè)馬達(dá)那么在停止的時(shí)候就要加多少個(gè)停止馬達(dá)。馬達(dá)控制編程范例2:v 首先拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為1,表示永遠(yuǎn)循環(huán);然后再當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)模塊,選擇正轉(zhuǎn);v 那么這個(gè)程序的功能為:馬達(dá)1永遠(yuǎn)正轉(zhuǎn)。馬達(dá)方向輔助圖表2、伺服控制 Servo Modulev 伺服器和馬達(dá)有區(qū)別,馬達(dá)能轉(zhuǎn)動(dòng)360度,而伺服

20、器只能轉(zhuǎn)動(dòng)一定的角度,大約120度v 伺服器的輸出軸正對(duì)自己,順時(shí)針表示正轉(zhuǎn),逆時(shí)針表示反轉(zhuǎn);v 箭頭圖標(biāo)向下暗示伺服器正轉(zhuǎn)。v 箭頭圖標(biāo)變成一個(gè)黃色的點(diǎn)暗示伺服器停止。 v 箭頭圖標(biāo)向上暗示伺服器反轉(zhuǎn)。伺服器控制編程范例:v 首先拖入一個(gè)伺服器模塊,選擇正轉(zhuǎn),再拖入一個(gè)懸空等待模塊,設(shè)置為1000,表示一秒;然后再拖入一個(gè)伺服器模塊,選擇停止;v 那么這個(gè)程序的功能為:伺服器1正轉(zhuǎn)一秒后停止。v 需要注意的是你啟動(dòng)了幾個(gè)伺服器那么在停止的時(shí)候就要加多少個(gè)停止伺服器。3、數(shù)字輸出 Digital Outputv 使用數(shù)字輸出功能模塊用來(lái)控制數(shù)字輸出的狀態(tài)。 v 你能夠利用數(shù)字輸出端口打開或者關(guān)

21、閉像一個(gè)發(fā)光二極管或一個(gè)螺線管這樣的設(shè)備。 v 數(shù)字輸出能夠設(shè)置1或0固定的值,它同樣能夠設(shè)置成一個(gè)預(yù)先定義的變量。 v 缺省情況下所有的數(shù)字輸出值設(shè)置為1(或者0)十、Program Flow程序流程控制1、單向選擇結(jié)構(gòu)IfIf-條件,只要符合設(shè)定的條件,將運(yùn)行if語(yǔ)句內(nèi)部的程序。如果不符合設(shè)定的條件,它將跳過(guò)表達(dá)式if條件語(yǔ)句的部分,運(yùn)行下一個(gè)程序模塊。 If模塊編程范例:以編碰撞開關(guān)程序?yàn)槔籿 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,接著拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為數(shù)字1,構(gòu)成永遠(yuǎn)循環(huán),然后拖入一個(gè)碰撞檢測(cè)模塊,再拖入If 模塊,在if條件里面設(shè)置a=0,在if

22、 語(yǔ)句里面拖入一個(gè)馬達(dá)模塊設(shè)置為正轉(zhuǎn)和一個(gè)懸空等待模塊設(shè)置為2秒;然后停止馬達(dá);v 那么這個(gè)程序的功能為:當(dāng)碰撞開關(guān)碰到時(shí)馬達(dá)一正轉(zhuǎn)兩秒,然后停止;當(dāng)沒碰到時(shí)則不運(yùn)行任何程序。2、 Else-If嵌套選擇結(jié)構(gòu)模塊v Else-If條件,必須與IF模塊結(jié)合才能使用,表示和IF模塊的條件相反,也可自定義條件 Else模塊v Else條件,必須與IF模塊結(jié)合才能使用,默認(rèn)表示和IF模塊的條件相反,不能自定義條件雙向選擇結(jié)構(gòu) If-Elsev IF-Else既IF模塊和Else模塊的結(jié)合體,只要符合設(shè)定的條件,將運(yùn)行if里面的程序。如果不符合設(shè)定的條件, 它將跳過(guò)表達(dá)式IF條件部分,執(zhí)行Else里面的

23、程序v 它只執(zhí)行一次程序,沒有循環(huán)功能 If-Else條件編程范例:以編碰撞開關(guān)程序?yàn)槔簐 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,接著拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為數(shù)字1,構(gòu)成永遠(yuǎn)循環(huán),然后拖入一個(gè)碰撞檢測(cè)模塊,再拖入If-Else模塊,再if條件里面設(shè)置a=1,在if語(yǔ)句里面拖入一個(gè)馬達(dá)模塊設(shè)置為正轉(zhuǎn);v 在else語(yǔ)句里面拖入一個(gè)馬達(dá)模塊設(shè)置為停止;v 那么這個(gè)程序的功能為:當(dāng)碰撞開關(guān)沒碰到時(shí)馬達(dá)一正轉(zhuǎn),當(dāng)碰撞開關(guān)碰到時(shí)就執(zhí)行Else里面的停止馬達(dá)3、當(dāng)循環(huán)While Loopv 只要符合設(shè)定的條件,當(dāng)循環(huán)將不停的重復(fù)執(zhí)行其語(yǔ)句內(nèi)部的程序。如果不符合設(shè)定的條件,它

24、將跳出循環(huán),執(zhí)行循環(huán)外部的模塊。v 給它設(shè)置條件時(shí),它構(gòu)成的時(shí)條件循環(huán),即不滿足條件的時(shí)候,它還能跳出該循環(huán);v 當(dāng)把條件設(shè)置成數(shù)字1的時(shí)候,它則構(gòu)成了一個(gè)永遠(yuǎn)循環(huán),即永遠(yuǎn)都運(yùn)行其內(nèi)部的程序。 在遙控編程的時(shí)候需要用到永遠(yuǎn)循環(huán)。當(dāng)循環(huán)模塊編程范例1:以編碰撞開關(guān)程序?yàn)槔簐 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)碰撞檢測(cè)模塊,再拖入當(dāng)循環(huán)模塊,條件里面設(shè)置a=1,表示碰撞開關(guān)處在斷開的狀態(tài),在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)模塊設(shè)置為正轉(zhuǎn),再拖入一個(gè)碰撞檢測(cè)模塊,屬性和當(dāng)循環(huán)外面的碰撞檢測(cè)模塊的屬性一樣,;v 在當(dāng)循環(huán)外面拖入一個(gè)馬達(dá)模塊設(shè)置為停止;v 那么這個(gè)程序的

25、功能為:當(dāng)碰撞開關(guān)沒碰到時(shí)馬達(dá)一正轉(zhuǎn),直到碰撞開關(guān)碰到時(shí),馬達(dá)1才停止當(dāng)循環(huán)模塊編程范例2:v 首先拖入當(dāng)循環(huán)模塊,在當(dāng)循環(huán)條件里面輸入數(shù)字1,表示永遠(yuǎn)循環(huán)運(yùn)行當(dāng)循環(huán)內(nèi)部?jī)?cè)程序;在當(dāng)循環(huán)里面拖入一個(gè)馬達(dá)模塊設(shè)置為正轉(zhuǎn);v 那么這個(gè)程序的功能為:馬達(dá)1永遠(yuǎn)正轉(zhuǎn)4、多次循環(huán)For Loop多次循環(huán)For Loop模塊編程范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)FOR模塊,條件設(shè)置為for條件設(shè)置為 a = 0; a <= 3; a + ,表示變量a初始值為0,做自加運(yùn)算,直到a的值等于3才跳出for條件;接著拖入一個(gè)懸空等待模塊,設(shè)置為2秒,最后拖

26、入一個(gè)馬達(dá)模塊,停止馬達(dá)1;v 那么該程序的功能為:馬達(dá)1正轉(zhuǎn)6秒后停止5、定時(shí)器Timer定時(shí)器Timerv 相當(dāng)于一個(gè)預(yù)先放置在主控器內(nèi)部的時(shí)間傳感器,它需要預(yù)先定義變量才能使用,可以控制程序的執(zhí)行時(shí)間,懸空等待只能延續(xù)馬達(dá)的啟動(dòng)時(shí)間v 定時(shí)器的單位為毫秒100表示0.1秒1000表示1秒10000表示10秒以此類推定時(shí)器Timer編程范例:v 首先在變量定義模塊(Variables)里面定義變量a和變量b,然后拖入一個(gè)定時(shí)器模塊選擇開始,賦值給變量a;接著拖入一個(gè)定時(shí)器模塊,選擇預(yù)設(shè),賦值給變量a;在拖入一個(gè)定時(shí)器模塊,選擇取值,賦值給變量a;然后拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為a<

27、=5000表示定時(shí)器變量小于等于5秒,當(dāng)循環(huán)里面拖如一個(gè)馬達(dá)模塊,正轉(zhuǎn)1秒,然后停止1秒,最后在次賦值;v 這個(gè)程序的功能為:定時(shí)器時(shí)間小于等于5秒就執(zhí)行其內(nèi)部的馬達(dá)正轉(zhuǎn)1秒然后停止1秒,當(dāng)定時(shí)器的時(shí)間大于5秒時(shí)就跳出當(dāng)循環(huán)6、懸空等待Waitv 懸空等待模塊,在指定的時(shí)間段里,延長(zhǎng)上一個(gè)模塊的執(zhí)行時(shí)間。這段時(shí)間以微秒計(jì)時(shí)。即:100表示0.1秒、1000表示1秒、10000表示10秒,以此類推懸空等待Wait模塊編程范例:v 以編馬達(dá)為例,v 首先拖入一個(gè)馬達(dá)模塊,設(shè)置為正轉(zhuǎn);然后拖入以個(gè)懸空等待模塊,設(shè)置為3秒,最后拖入一個(gè)馬達(dá)模塊設(shè)置為停止;v 該程序的功能為:馬達(dá)1正轉(zhuǎn)3秒停止。7、表

28、達(dá)式賦值A(chǔ)ssignmentv 表達(dá)式賦值A(chǔ)ssignment模塊相當(dāng)于一個(gè)通用模塊,你可以在里面輸入任何條件對(duì)變量進(jìn)行運(yùn)算或者輸入任何代碼來(lái)代替任何模塊的功能;v 你能夠?yàn)橐粋€(gè)變量設(shè)置一個(gè)明確的值,例如: bumper=0 v 你能夠定義一個(gè)數(shù)學(xué)表達(dá)式,例如: x + y=z 8、中斷Breakv 中斷模塊功能常用在當(dāng)循環(huán)或者IF條件中,表示當(dāng)程序運(yùn)行到中斷模塊處,不管它后面還有沒有模塊,或者不管滿不滿足條件,它都會(huì)跳到當(dāng)循環(huán)或IF條件的后面,執(zhí)行它們后面的程序中斷Break編程范例1:v 雖然程序一開始設(shè)置的是一個(gè)永遠(yuǎn)循環(huán),理論上是永遠(yuǎn)都運(yùn)行當(dāng)循環(huán)里面的程序,永遠(yuǎn)都跳不出來(lái),但是加了中斷模

29、塊以后,程序的功能就變化了;v 該程序功能為:程序進(jìn)入當(dāng)循環(huán),啟動(dòng)馬達(dá)1正轉(zhuǎn)2秒,然后停止2秒,接著就馬上中斷當(dāng)循環(huán)條件,跳到當(dāng)循環(huán)的下面,執(zhí)行下面的馬達(dá)1反轉(zhuǎn)1秒,然后停止。中斷Break編程范例2:v 雖然程序一開始設(shè)置的是一個(gè)永遠(yuǎn)循環(huán),理論上是永遠(yuǎn)都運(yùn)行當(dāng)循環(huán)里面的程序,永遠(yuǎn)都跳不出來(lái),但是加了中斷模塊以后,程序的功能就變化了;v 該程序功能為:程序進(jìn)入當(dāng)循環(huán),檢測(cè)碰撞,如果碰撞沒碰到,就啟動(dòng)馬達(dá)1正轉(zhuǎn),如果碰撞開關(guān)閉合,程序就馬上中斷當(dāng)循環(huán)條件,跳到當(dāng)循環(huán)的下面,執(zhí)行下面的馬達(dá)1反轉(zhuǎn)1秒,然后停止。9、繼續(xù)Continuev 繼續(xù)Continue:跳到循環(huán)的條件判斷處,從新判斷繼續(xù)Co

30、ntinue模塊編程范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,首先拖入一個(gè)碰撞檢測(cè)模塊,然后拖入一個(gè)當(dāng)循環(huán)模塊,設(shè)置為a=1,表示碰撞開關(guān)斷開,然后拖入一個(gè)馬達(dá)模塊,設(shè)置為正轉(zhuǎn),在拖入一個(gè)懸空等待模塊,設(shè)置為3秒,在停止馬達(dá),在拖入一個(gè)繼續(xù)模塊,然后拖入馬達(dá),設(shè)置為反轉(zhuǎn),延時(shí)3秒,然后停止;v 該程序的功能為:當(dāng)碰撞開關(guān)沒碰到的時(shí)候就進(jìn)入循環(huán),然后馬達(dá)1正轉(zhuǎn)3秒停止,接著就跳到當(dāng)循環(huán)的條件判斷處,從新判斷,而不執(zhí)行繼續(xù)模塊后面的馬達(dá)1反轉(zhuǎn)3秒這段程序。10、返回Returnv 返回模塊的功能是跳到程序的結(jié)尾處,不管它后面有沒有程序,它都不執(zhí)行,直接跳到程序的結(jié)束位

31、置返回Return編程范例:v 雖然程序一開始設(shè)置的是一個(gè)永遠(yuǎn)循環(huán),理論上是永遠(yuǎn)都運(yùn)行當(dāng)循環(huán)里面的程序,永遠(yuǎn)都跳不出來(lái),但是加了返回模塊以后,程序的功能就變化了;v 該程序功能為:程序進(jìn)入當(dāng)循環(huán),啟動(dòng)馬達(dá)1正轉(zhuǎn)3秒,接著就馬上執(zhí)行返回模塊,跳到程序的結(jié)束位置。當(dāng)循環(huán)外面的程序也不會(huì)執(zhí)行了。但由于在返回前面沒有停止馬達(dá)1,所以返回執(zhí)行以后,馬達(dá)1仍然會(huì)繼續(xù)轉(zhuǎn)動(dòng)。11、屏幕輸出Print To Screenv 屏幕輸出模塊(Print To Screen)主要是用來(lái)顯示用戶需要檢測(cè)的和主控器連接在一起的電子元件的當(dāng)前參數(shù);v 打開VEX編程軟件英文版的安裝目錄:一般默認(rèn)的路徑是C:Program

32、FilesIntelitek;快速找到它的安裝位置的方法是在桌面右鍵點(diǎn)擊VEX編程軟件的圖標(biāo)屬性快捷方式查找目標(biāo);v 接著打開ProjectsProjectsTest Code這個(gè)文件夾就可以查看如何使用屏幕輸出模塊(Print To Screen)進(jìn)行編程;接著把要檢測(cè)的傳感器的程序下載到主控器,在不關(guān)閉主控器電源并且下載線也和主控器相連接的情況下,點(diǎn)擊 圖標(biāo)v 然后該窗口里面就可以顯示出主控器的端口從當(dāng)前電子元件獲得的參數(shù)值。屏幕輸出Print To Screen模塊編程范例:v 首先在變量定義模塊(Variables)里面定義了一個(gè)變量a,然后拖入一個(gè)當(dāng)循環(huán)模塊,條件為數(shù)字1,然后在當(dāng)循

33、環(huán)里面拖入一個(gè)碰撞檢測(cè)模塊,選擇變量a,然后拖入一個(gè)屏幕輸出模塊,屏幕輸出模塊的變量為預(yù)先定義的變量a,格式一般為%d,類型為int,輸出內(nèi)容為a=v 把該程序下載到主控器后,保持主控器電源為打開,并且下載線和主控器連接正常,然后點(diǎn)終端,就可以顯示當(dāng)前碰撞檢測(cè)到的數(shù)據(jù)12、程序注釋Commentv 對(duì)程序做對(duì)你修改和查閱有幫助的說(shuō)明或注釋,中文版1.0不能中文注釋,英文版1.0和2.0可以中文注釋,中文2.0可以中文注釋;v 源碼注釋被編譯器忽略。 13、自定義代碼User Code自定義代碼User Code:v 可以替代任何模塊,比如馬達(dá)模塊的代碼是SetMotor ( 1 , 255 )

34、 ;那么只要在自定義代碼User Code模塊里面鍵入馬達(dá)的代碼,那么它就表示一個(gè)馬達(dá)模塊;v 這個(gè)模塊為熟悉C語(yǔ)言的用戶設(shè)計(jì)。為了編譯器能夠正確編譯代碼,你必須正確使用語(yǔ)法。對(duì)于C 語(yǔ)言的信息請(qǐng)自行參閱C 語(yǔ)言的相關(guān)指導(dǎo)書。 十一、RC Control遙控通道控制1、遙控器按鍵說(shuō)明2、遙控器的基本操作遙控器的操控桿是有兩種模式配置的. 請(qǐng)看以下指示來(lái)查看或轉(zhuǎn)換:(1) 把遙控器的開關(guān)推到ON的位置來(lái)啟動(dòng)遙控器(2) 同時(shí)按下Mode 及 Select 鈕直至液晶屏顯示出菜單畫面為止.(3) 按Mode鈕直到有”Drive”字出現(xiàn)在液晶屏的左方(是最后的菜單)來(lái)進(jìn)入驅(qū)動(dòng)模式調(diào)節(jié)菜單.(4) 目

35、前的設(shè)定會(huì)顯示在液晶屏里, 顯示內(nèi)容是”23”或”12”. 你利用LCD右邊的數(shù)據(jù)輸入按鈕“+ ”或“ ”推上或推下來(lái)轉(zhuǎn)換模式.。3、遙控接收器接法示意圖4、遙控最優(yōu)系統(tǒng)搭配使用兩個(gè)遙控器同時(shí)控制不同的機(jī)器人時(shí),你必須使用兩種不同的晶體RF頻率。在基本套裝里只有一種頻率的晶體;在晶體升級(jí)套裝里可以獲得更多的不同頻率的晶體。 最優(yōu)系統(tǒng)搭配:遙控、程控、線控多種控制方式。5、單桿控制雙馬達(dá)Arcade-2 motorv 指的是遙控器的一個(gè)操縱桿控制兩個(gè)馬達(dá)同時(shí)轉(zhuǎn)或同時(shí)停,這樣兩個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不論快慢,都是一致的,就不會(huì)因?yàn)槭值牧α繂栴}而使兩個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不一樣單桿控制雙馬達(dá)編程范例:v 首先拖

36、入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為1,構(gòu)成一個(gè)永遠(yuǎn)循環(huán),這樣使它永遠(yuǎn)都檢測(cè)遙控器發(fā)射出來(lái)的信號(hào);v 然后在當(dāng)循環(huán)里面拖入一個(gè)單桿控制雙馬達(dá)模塊,前進(jìn)后退選擇1,旋轉(zhuǎn)選擇3,馬達(dá)通道則選擇1和2;v 該程序的功能就是:遙控器控制馬達(dá)1和2同時(shí)轉(zhuǎn)動(dòng);遙控器的1通道控制前進(jìn)后退;遙控器的3通道控制旋轉(zhuǎn)6、單桿控制四馬達(dá)Arcade-4 motorv 指的是遙控器的一個(gè)操縱桿控制四個(gè)馬達(dá)同時(shí)轉(zhuǎn)或同時(shí)停,這樣四個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不論快慢,都是一致的,就不會(huì)因?yàn)槭值牧α繂栴}而使四個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不一樣單桿控制四馬達(dá)編程范例:v 首先拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為1,構(gòu)成一個(gè)永遠(yuǎn)循環(huán),這樣使它永遠(yuǎn)都檢測(cè)遙控器發(fā)射出

37、來(lái)的信號(hào);v 然后在當(dāng)循環(huán)里面拖入一個(gè)單桿控制四馬達(dá)模塊,前進(jìn)后退選擇1,旋轉(zhuǎn)選擇3,馬達(dá)通道則選擇1、2、3、4;v 該程序的功能就是:遙控器控制馬達(dá)1、2、3、4同時(shí)轉(zhuǎn)動(dòng),遙控器的1通道控制前進(jìn)后退,遙控器的3通道控制旋轉(zhuǎn)7、雙桿控制雙馬達(dá)Arcade-2 motorv 指的是遙控器的兩個(gè)操縱桿控制兩個(gè)馬達(dá)轉(zhuǎn)或停,這樣兩個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不論快慢,都有可能不一致,就會(huì)因?yàn)槭值牧α繂栴}而使兩個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不一樣雙桿控制雙馬達(dá)編程范例:v 首先拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為1,構(gòu)成一個(gè)永遠(yuǎn)循環(huán),這樣使它永遠(yuǎn)都檢測(cè)遙控器發(fā)射出來(lái)的信號(hào);v 然后在當(dāng)循環(huán)里面拖入一個(gè)雙桿控制雙馬達(dá)模塊,左馬達(dá)選擇1

38、,右馬達(dá)選擇3,馬達(dá)通道則選擇1和2;v 該程序的功能就是:遙控器控制馬達(dá)1和2轉(zhuǎn)動(dòng),遙控器的1通道控制馬達(dá)1,遙控器的3通道控制馬達(dá)28、雙桿控制四馬達(dá)Arcade-4 motor雙桿控制四馬達(dá)v 指的是遙控器的兩個(gè)操縱桿控制四個(gè)馬達(dá)轉(zhuǎn)或停,即一個(gè)操縱桿控制兩個(gè)馬達(dá);v 這樣四個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不論快慢,都有可能不一致,就會(huì)因?yàn)槭值牧α繂栴}而使四個(gè)馬達(dá)轉(zhuǎn)動(dòng)的速度不一樣雙桿控制四馬達(dá)編程范例:v 首先拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為1,構(gòu)成一個(gè)永遠(yuǎn)循環(huán),這樣使它永遠(yuǎn)都檢測(cè)遙控器發(fā)射出來(lái)的信號(hào);v 然后在當(dāng)循環(huán)里面拖入一個(gè)雙桿控制四馬達(dá)模塊,左馬達(dá)選擇1,右馬達(dá)選擇3,馬達(dá)通道則選擇1、2、3、4 ;v 該程序的功能就是:遙控器控制馬達(dá)1、2、3、4轉(zhuǎn)動(dòng);遙控器的1通道控制馬達(dá)1、2,遙控器的3通道控制馬達(dá)3、49、單桿控制單馬達(dá)Motor Module Rxv 指的是遙控器的一個(gè)操縱桿控制一個(gè)馬達(dá)轉(zhuǎn)或停單桿控制單馬達(dá)編程范例:v 首先拖入一個(gè)當(dāng)循環(huán)模塊,條件設(shè)置為1,構(gòu)成一個(gè)永遠(yuǎn)循環(huán),這樣使它永遠(yuǎn)都檢測(cè)遙控器發(fā)射出來(lái)的信號(hào);v 然后在當(dāng)循環(huán)里面拖入一個(gè)單桿控制單馬

溫馨提示

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

評(píng)論

0/150

提交評(píng)論