版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第4章能力風(fēng)暴編程14.1第一個VJC程序,Hellorobot!雙擊桌面上的VJC1.5開發(fā)幅員標(biāo),進入了機器人編程界面。VJC1.5開發(fā)版支持流程圖程序和交互式C語言〔JC〕程序。下面我們就用VJC1.5開發(fā)版的流程圖為機器人編寫第一個程序“Hello,robot!〞。這個程序要求在能力風(fēng)暴的液晶顯示屏LCD上顯示“Hello,robot!〞我們要編寫的程序如圖4-1左圖所示:圖4-1Hello,robot!點擊工具欄中的“新建〞按鈕,新建一個程序;用鼠標(biāo)將“執(zhí)行器模塊庫〞中的“顯示〞模塊拖入到流程圖生成區(qū),放在主程序模塊正中的下邊沿的位置,看看“主程序〞模塊與“顯示〞模塊之間是不是有箭頭連接,有那么說明連接上了,否那么再調(diào)整一下“顯示〞模塊的位置。右鍵點擊“顯示〞模塊,就會出現(xiàn)如圖4-1右圖〔局部〕所示的對話框,請將顯示信息由HI改寫為Hello,robot!設(shè)定完畢,按確定就可以了!在“程序模塊庫〞中選擇結(jié)束模塊,將它連在“顯示〞模塊之后,這樣整個程序就編寫完成了,按工具欄中的“保存〞按鈕,將程序保存在VJC目錄下!將機器人與計算機連接起來〔用串口連接線,一端接計算機的九針串口,一端接機器人后面控制面板上的下載口〕。將機器人的“開關(guān)〞按鈕翻開,使機器人處于開機的狀態(tài)。按VJC界面中的“下載〞按鈕,待看到“下載成功!〞字樣時,取下串口連接線,將機器人放在平穩(wěn)的地方,按機器人頭頂上的“RUN〞按鈕,機器人的液晶顯示屏上就會顯示出Hello,robot!voidmain(){printf("Hellorobot!\n");}24.2讓機器人動起來下面我們就嘗試著讓機器人動起來。〔相關(guān)的知識介紹請參看VJC1.5開發(fā)版使用手冊》〕在VJC1.5開發(fā)版執(zhí)行器模塊庫中有一專門控制機器人“移動〞的模塊,這里我們就用它來編寫一個機器人直線行走的程序。要求:先讓機器人以速度100前進3秒,再讓機器人以速度-60后退5秒,再在原地以功率80旋轉(zhuǎn)1秒?!踩鐖D4-2所示〕圖4-2機器人移動4.2.1在VJC1.5開發(fā)版窗口中編寫流程圖(示范操作步驟)a)編寫流程圖:用鼠標(biāo)將“執(zhí)行器模塊庫〞中的“移動〞模塊移到流程圖生成區(qū)并與主程序模塊連接上;設(shè)置時,右擊“移動〞流程圖模塊,在彈出框中輸入移動速度為100、時間為3;b)再用鼠標(biāo)將“執(zhí)行器模塊庫〞中的“移動〞模塊移到流程圖生成區(qū)并連接在流程圖的末端位置;設(shè)置第二個“移動〞流程圖模塊,點擊右鍵在彈出框中輸入移動速度為-60、時間為5;c)再將“執(zhí)行器模塊庫〞中的“轉(zhuǎn)向〞模塊連接到程序中,點擊右鍵進入設(shè)置對話框,分別設(shè)置速率和時間為:80和1d)再將“程序模塊庫〞中的“任務(wù)結(jié)束〞移入到流程圖生成區(qū)并連接在程序的末尾。3voidmain(){drive(100,0);wait(3.000000);stop();drive(-60,0);wait(5.000000);stop();drive(0,80);wait(1.000000);stop();}Voiddrive(intmove,intturn)點擊“工具欄〞中的“編輯JC程序代碼〞按鈕,切換到JC代碼界面,可以對此界面中顯示的JC代碼進行修改,比方我們可以讓機器人后退7秒,那么我們就可以把程序中與“移動〞模塊相對應(yīng)的參數(shù)5.000000修改為7.000000。44.2.2保存源代碼程序點擊工具欄中的“保存〞按鈕,輸入文件名,按“確定〞。4.2.3程序下載此時,能力風(fēng)暴要處于開機狀態(tài),并且串口連接線已與計算機連接。點擊“工具〞中的“下載當(dāng)前程序〞按鈕,就會出現(xiàn)下載對話框,等待出現(xiàn)“下載成功!〞字樣,說明程序已經(jīng)下載到能力風(fēng)暴里了。4.2.4運行程序?qū)⒋谶B接線取下,將機器人帶到平安的地方,按機器人身上的“運行〞鍵,能力風(fēng)暴智能機器人就按程序要求快速前進3秒,再后退7秒,然后再旋轉(zhuǎn)1秒。54.2.5走出規(guī)那么軌跡下面我們讓能力風(fēng)暴在地上走出一個規(guī)那么的軌跡。voidround(){drive(60,30);//順時針轉(zhuǎn)彎wait(10.0);stop();}能力風(fēng)暴順時針走約一米見方的正方形路。voidrectangle(){inti;for(i=0;i<4;i++){drive(100,0);wait(1.0);drive(0,60);wait(0.2);}stop();}能力風(fēng)暴逆時針走約一米見方的正方形路徑。其中wait(0.2)是能力風(fēng)暴轉(zhuǎn)90彎所需要的時間。該值和轉(zhuǎn)彎速度以及能力風(fēng)暴的電機有關(guān),需要實際調(diào)整,此外地面的摩擦力也有影響。利用wait()函數(shù)是控制電機工作的常用方法。64.3讓機器人感知環(huán)境信息
在VJC1.5開發(fā)版的“傳感器模塊庫〞中,有讓機器人能夠感知環(huán)境信息的模塊,這些功能模塊的調(diào)用能夠帶給機器人感覺。比方說“光敏檢測〞能夠讓機器人感覺到外界光線的強弱;“紅外測障〞能夠讓機器人檢測前/左/右方的障礙等等。下面我們就試著讓機器人感知外界環(huán)境。讓機器人對外界的光線進行檢測,并在LCD上顯示左右光敏所檢測到外界光線的平均值。示范操作步驟如下:4.3.1編寫流程圖a)用鼠標(biāo)將“控制模塊庫〞中的“永遠(yuǎn)循環(huán)〞模塊移到流程圖生成區(qū)并與主程序模塊連接上。b)用鼠標(biāo)將“傳感器模塊庫〞中的“光敏檢測〞模塊移到“永遠(yuǎn)循環(huán)〞模塊內(nèi)部并連接上;右擊“光敏檢測〞流程圖模塊,在彈出框中方向一欄選擇“平均〞,按確定。c)再用鼠標(biāo)將“執(zhí)行器模塊庫〞中的“顯示〞模塊移到流程圖生成區(qū)并連接在“光敏檢測〞的后面;d)設(shè)置“顯示〞模塊,點擊右鍵在彈出框中選擇“應(yīng)用變量〞,就會出現(xiàn)一個“變量百寶箱〞的界面,在此界面中點擊“光敏〞圖標(biāo),在“光敏變量引用〞中選擇“光敏變量一〞,按確定即可,這樣“顯示〞模塊中的“顯示信息〞就為“光敏變量一〞;f)再將“程序模塊庫〞中的“任務(wù)結(jié)束〞移入到流程圖生成區(qū)并連接在程序的末尾。圖4-4機器人感光VJC程序也可以點擊“工具欄〞中的“編輯JC程序代碼〞按鈕,切換到JC代碼界面,對JC代碼進行修改。74.3.2保存程序點擊工具欄中的“保存〞按鈕,文件名輸入:感光,按“確定〞。此時,“感光.flw〞流程圖程序文件已被保存。4.3.3程序下載此時,能力風(fēng)暴要處于開機狀態(tài),并串口連接線已與計算機連接。點擊“工具〞中的“下載當(dāng)前程序〞按鈕,就會出現(xiàn)下載對話框,等待出現(xiàn)“下載成功!〞字樣,說明程序已經(jīng)下載到能力風(fēng)暴里了。4.3.4運行程序?qū)⒋谶B接線取下,將機器人帶到平安的地方,按機器人身上的“運行〞鍵,在機器人的LCD上就會顯示出外界光線的平均值。84.3JC程序的根本程序結(jié)構(gòu)下面是JC程序中最常見的一種程序模式。while(1) /*循環(huán)檢測*/{ir=ir_detector(); /*對環(huán)境采樣*/if(ir>0) /*條件判斷*/{語句1; /*做相應(yīng)的處理(模塊A)*/語句2;}else{語句3;/*做相應(yīng)的處理(模塊B)*/語句4;}wait(0.1); /*采樣周期*/}94.3.1一個機器人“臺球〞程序下面結(jié)合“臺球〞程序來學(xué)習(xí)碰撞傳感器的使用。voidmain(){intbill_trans=0;/*定義直行變量*/intbill_rot=0;/*定義轉(zhuǎn)彎變量*/intbmpr=0;/*定義碰撞變量*/while(1)/*無限循環(huán)檢測*/{bmpr=bumper();/*檢測碰撞*/if(bmpr!=0){stop();wait(0.1);/*碰后停0.2秒確定兩個開關(guān)均觸發(fā)*/if(bmpr==0b0011)/*正前碰撞*/{bill_trans=-40;/*后退*/bill_rot=0;}elseif(bmpr==0b1100)/*正后碰撞*/{bill_trans=40;/*前進*/bill_rot=0;}elseif(bmpr&0b1010)/*右側(cè)碰撞*/
{bill_trans=0;bill_rot=-40;/*左轉(zhuǎn)*/drive(bill_trans,bill_rot);wait(0.25); /*左轉(zhuǎn)0.25秒*/bill_trans=40;bill_rot=0;/*前進*/}elseif(bmpr&0b0101)/*左側(cè)碰*/{bill_trans=0;bill_rot=40;/*右轉(zhuǎn)*/drive(bill_trans,bill_rot);wait(0.25);/*右轉(zhuǎn)0.25秒*/bill_trans=40;bill_rot=0;/*前進*/}drive(bill_trans,bill_rot);/*驅(qū)動*/}}}在該函數(shù)中有一個檢測傳感器的常用結(jié)構(gòu)“while(1){檢測傳感器;作出響應(yīng);}〞。在這個例子里,能力風(fēng)暴響應(yīng)來自外部四個方向上的碰撞,并相應(yīng)地改變運動方向??雌饋硐蟠蚺_球。104.4.2紅外和光敏的使用能力風(fēng)暴的紅外傳感器可以說是它最有用的武器。通過紅外傳感器,能力風(fēng)暴可以探測到前方和左右兩側(cè)10~80厘米以內(nèi)的障礙,就象它的一對“眼睛〞。下面我們看一個有趣的程序,看看如何使用能力風(fēng)暴的“眼睛〞。11voidmain(){intir=0;/*紅外檢測變量*/intbmp=0;/*碰撞檢測變量*/intold_bmp=0;/*前一次的碰撞檢測結(jié)果*/intfol_trans_def=80;/*預(yù)設(shè)的前進速度*/intfol_rot_def=40;/*預(yù)設(shè)的轉(zhuǎn)彎速度*/printf("Follow\n");/*顯示在LCD屏幕上*/while(1){ir=ir_detector();/*取紅外系統(tǒng)檢測結(jié)果*/bmp=bumper()&0b0011;/*檢測前、左、右方向碰撞*/
if(old_bmp&&(!bmp))/*連續(xù)兩次碰撞測試*/wait(0.5);/*等一會*/
elseif(bmp)/*如果前方有碰撞*/stop();/*停止運動*/
elseif(ir==0)/*前方?jīng)]有物體*/stop();/*停止運動*/
elseif(ir==4)/*前方有物體*/drive(fol_trans_def,0);/*往前追*/
elseif(ir==1)/*物體在左側(cè)*/drive(fol_trans_def,fol_rot_def);/*轉(zhuǎn)向左*/
elseif(ir==2)/*物體在右側(cè)*/drive(fol_trans_def,-fol_rot_def);/*轉(zhuǎn)向右*/
wait(0.1);/*讓運動持續(xù)一會*/ol
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國家出臺合同范例
- 承包林地出租合同范例
- 會計簽采購合同范例
- 朋友購車合同范例
- 供餐合同范例寫
- 代理服務(wù)雇傭合同范例
- 招標(biāo)采購煙草合同范例
- 體育服裝贊助合同范例
- 彩鋼瓦出售合同范例
- 會議協(xié)議價合同范例
- PS平面設(shè)計練習(xí)題庫(附參考答案)
- 混合云架構(gòu)整體設(shè)計及應(yīng)用場景介紹
- 《盤點程序說明會》課件
- 期末素養(yǎng)綜合測評卷(二)2024-2025學(xué)年魯教版(五四制)六年級數(shù)學(xué)上冊(解析版)
- 小王子-英文原版
- 考核19(西餐)試題
- 2024安全生產(chǎn)法解讀
- 吉林省長春市(2024年-2025年小學(xué)五年級語文)人教版期末考試(上學(xué)期)試卷及答案
- 環(huán)保創(chuàng)業(yè)孵化器服務(wù)行業(yè)營銷策略方案
- 研究生年終總結(jié)和展望
- 浙江省杭州市2023-2024學(xué)年高二上學(xué)期1月期末地理試題 含解析
評論
0/150
提交評論