版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、智 能 小 車 設(shè) 計實(shí) 驗 指 導(dǎo) 書王 恒 編 2011年4月目 錄目 錄I實(shí)驗階段一 智能小車路徑規(guī)劃1實(shí)驗階段二 智能小車環(huán)境感知與控制6實(shí)驗階段三 智能小車行為控制12附錄: 庫函數(shù)17實(shí)驗階段一 智能小車路徑規(guī)劃一實(shí)驗?zāi)康?熟悉智能小車的硬件開發(fā)平臺與軟件開發(fā)環(huán)境。2掌握智能小車路徑規(guī)劃程序設(shè)計。二實(shí)驗內(nèi)容1熟悉智能小車硬件設(shè)計。2. 學(xué)習(xí)智能小車的軟件使用方法,學(xué)會軟件的編寫、調(diào)試與下載。3. 編寫第一個智能小車程序。4. 編寫智能小車移動程序。5. 編寫復(fù)雜的智能小車路徑規(guī)劃程序。三、實(shí)驗設(shè)備及工具硬件:能力風(fēng)暴AS-UII開發(fā)平臺,程序下載線。軟件:PC 機(jī)操作系統(tǒng)Win20
2、00 或WinXP、VJC開發(fā)平臺。四、實(shí)驗原理與步驟智能小車實(shí)驗平臺配備有5種傳感器,對環(huán)境的感知能力很強(qiáng)。執(zhí)行器配備有二只高性能直流電機(jī)、一只喇叭和一只2*16 字符的液晶顯示器。整個小車通過Motorola 公司8位單片機(jī)來進(jìn)行控制。智能小車的硬件結(jié)構(gòu)如下圖所示:1、第一個 VJC 程序,Hello robot!雙擊桌面上的VJC1.5 開發(fā)版圖標(biāo),進(jìn)入了智能小車編程界面。VJC1.5 開發(fā)版支持流程圖程序和交互式C 語言(JC)程序。下面我們就用VJC1.5 開發(fā)版的流程圖為智能小車編寫第一個程序“Hello,robot!”。這個程序要求在能力風(fēng)暴的液晶顯示屏LCD 上顯示“Hello
3、,robot!”我們要編寫的程序如圖4-1 左圖所示:a) 點(diǎn)擊工具欄中的 按鈕,新建一個程序;b) 用鼠標(biāo)將“執(zhí)行器模塊庫”中的模塊拖入到流程圖生成區(qū),放在主程序模塊正中的下邊沿的位置,看看“主程序”模塊與“顯示”模塊之間是不是有箭頭連接,有則說明連接上了,否則再調(diào)整一下“顯示”模塊的位置。c) 右鍵點(diǎn)擊“顯示”模塊,就會出現(xiàn)如圖 4-1 右圖(部分)所示的對話框,請將顯示信息由HI 改寫為Hello,robot!設(shè)定完畢,按確定就可以了!d) 在“程序模塊庫”中選擇結(jié)束模塊,將它連在“顯示”模塊之后,這樣整個程序就編寫完成了,按工具欄中的“保存”,將程序保存在VJC 目錄下!e) 將智能小
4、車與計算機(jī)連接起來(用串口連接線,一端接計算機(jī)的九針串口,一端接智能小車后面控制面板上的下載口)。f) 將智能小車的“開關(guān)”按鈕打開,使智能小車處于開機(jī)的狀態(tài)。g) 按 VJC 界面中的按鈕,待看到“下載成功!”字樣時,取下串口連接線,將機(jī)器人放在平穩(wěn)的地方,按智能小車頭頂上的“RUN”按鈕,智能小車的液晶顯示屏上就會顯示出Hello,robot!下面我們用JC 語言編同樣的程序,并對JC 編程的相關(guān)知識作個簡單介紹:void main( )printf(Hello robot!n); main 是主函數(shù),每一個JC 程序總是從main 函數(shù)開始執(zhí)行的;main 函數(shù)的開始和結(jié)尾分別有個“”和
5、“” viod 可以理解為“不帶返回值”;所以第一句就可以理解為一個程序的“開頭”。 printf 函數(shù)的作用是:向輸出設(shè)備(這里是指LCD 顯示器)輸出若干個任意類型的數(shù)據(jù)。那么printf 一句的含義就是把Hello,robot!輸出到智能小車的液晶顯示屏上。 程序中每一句結(jié)尾都要加“;”這是C 語句結(jié)束的標(biāo)志。如果你把上面這段程序下載到智能小車中去,智能小車就會顯示Hello,robot!每個VJC 的圖形模塊都代表一組JC 代碼。2、讓智能小車動起來下面我們就嘗試著讓智能小車動起來。在VJC1.5 開發(fā)版執(zhí)行器模塊庫中有一專門控制智能小車“移動”的模塊,這里我們就用它來編寫一個智能小車
6、直線行走的程序。要求:先讓智能小車以速度100 前進(jìn)3 秒,再讓智能小車以速度-60 后退5 秒,再在原地以功率80 旋轉(zhuǎn)1 秒。(如圖4-2 所示)示范操作步驟如下:2.1 在 VJC1.5 開發(fā)版窗口中編寫流程圖a) 編寫流程圖:用鼠標(biāo)將“執(zhí)行器模塊庫”中的“移動”模塊移到流程圖生成區(qū)并與主程序模塊連接上;b) 設(shè)置時,右擊“移動”流程圖模塊,在彈出框中輸入移動速度為 100、時間為3;c) 再用鼠標(biāo)將“執(zhí)行器模塊庫”中的“移動”模塊移到流程圖生成區(qū)并連接;d) 在流程圖的末端位置;e) 設(shè)置第二個“移動”流程圖模塊,點(diǎn)擊右鍵在彈出框中輸入移動速度為-60、時間為5;f) 再將“執(zhí)行器模塊
7、庫”中的“轉(zhuǎn)向”模塊連接到程序中,點(diǎn)擊右鍵進(jìn)入設(shè)置對話框,分別設(shè)置速率和時間為:80 和1g) 再將“程序模塊庫”中的“任務(wù)結(jié)束”移入到流程圖生成區(qū)并連接在程序的末尾。點(diǎn)擊“工具欄”中的“編輯JC 程序代碼”按鈕,切換到JC 代碼界面,可以對此界面中顯示的JC 代碼進(jìn)行修改,比如我們可以讓智能小車后退7 秒,那么我們就可以把程序中與“移動”模塊相對應(yīng)的參數(shù)5. 修改為7.。2.2 保存源代碼程序點(diǎn)擊工具欄中的“保存”按鈕,輸入文件名,按“確定”。2.3 程序下載此時,能力風(fēng)暴要處于開機(jī)狀態(tài),并且串口連接線已與計算機(jī)連接。點(diǎn)擊“工具”中的“下載當(dāng)前程序”按鈕,就會出現(xiàn)下載對話框,等待出現(xiàn)“下載成
8、功!”字樣,說明程序已經(jīng)下載到能力風(fēng)暴里了。2.4 運(yùn)行程序?qū)⒋谶B接線取下,將智能小車帶到安全的地方,按智能小車身上的“運(yùn)行”鍵,能力風(fēng)暴智能智能小車就按程序要求快速前進(jìn)3 秒,再后退7 秒,然后再旋轉(zhuǎn)1 秒。2.5 走出規(guī)則軌跡下面我們讓能力風(fēng)暴在地上走出一個規(guī)則的軌跡。void round()drive(60,30);wait(10.0);stop();能力風(fēng)暴逆時針走直徑約一米的圓形路徑。void rectangle()int i;for(i = 0; i 0) /*條件判斷*/語句1; /*做相應(yīng)的處理*/語句2;else語句3;語句4;wait(0.1); /*采樣周期*/3、碰撞
9、檢測傳感器的使用方法碰撞傳感器是使能力風(fēng)暴智能智能小車有感知碰撞環(huán)上的碰撞信息能力的傳感器。在能力風(fēng)暴智能智能小車的左前、右前、左后、右后設(shè)置有四個碰撞開關(guān)(常開),它們與碰撞環(huán)共同構(gòu)成了碰撞傳感器。碰撞環(huán)與底盤柔性連接,在受力后與底盤產(chǎn)生相對位移,觸發(fā)固連在底盤上相應(yīng)的碰撞開關(guān),使之閉合。我們把來自四周的碰撞分為八個方向在JC 語言中,碰撞傳感器的庫函數(shù)是bumper(),在程序運(yùn)行過程中此庫函數(shù)僅在被調(diào)用到時執(zhí)行一次,即采集數(shù)據(jù)一次。因此要連續(xù)查詢碰撞傳感器的狀態(tài)就要在VJC 交互式調(diào)試窗口一行編輯框中輸入如下程序塊:while(1) printf(bump=%dn,bumper();wa
10、it(0.1);按回車,JC 能立即編譯這一段程序并下載運(yùn)行,LCD 上顯示:bump=0 (表示此時沒有碰撞)按左前碰撞環(huán),LCD 上顯示:bump=5。在其他方向施加碰撞,顯示的值將不同。各個方向發(fā)生碰撞時返回值對應(yīng)關(guān)系如下:無0,左前1,右前2,左后4,右后8下面結(jié)合智能小車“臺球”程序來學(xué)習(xí)碰撞傳感器的使用。void main ()int bill_trans=0;int bill_rot=0;int bmpr=0;while(1) /*無限循環(huán)檢測*/bmpr=bumper(); /*檢測碰撞傳感器*/if(bmpr!=0)if(bmpr=0b0011) /*正前方發(fā)生碰撞*/bil
11、l_trans=-80; /*后退*/bill_rot=0;else if(bmpr=0b1100) /*正后方發(fā)生碰撞*/bill_trans=80; /*前進(jìn)*/bill_rot=0;else if(bmpr & 0b0101) /*左側(cè)發(fā)生碰撞*/51bill_trans=0;bill_rot=-80;drive(bill_trans,bill_rot);wait(0.5); /*順時針轉(zhuǎn)一個角度*/bill_trans=80; /*前進(jìn)*/bill_rot=0;else if(bmpr & 0b1010) /*右側(cè)發(fā)生碰撞*/bill_trans=0;bill_rot=80;drive
12、(bill_trans,bill_rot);wait(0.5); /*逆時針轉(zhuǎn)一個角度*/bill_trans=80; /*前進(jìn)*/bill_rot=0;drive(bill_trans,bill_rot); /*驅(qū)動電機(jī)*/在該函數(shù)中有一個檢測傳感器的常用結(jié)構(gòu) “while(1) 檢測傳感器;作出響應(yīng);”。該結(jié)構(gòu)實(shí)現(xiàn)了對傳感器的循環(huán)檢測,使能力風(fēng)暴能夠?qū)χ車h(huán)境的變化及時作出響應(yīng)。能力風(fēng)暴作出的響應(yīng)可以是改變運(yùn)動方式,也可以是改變一個內(nèi)部變量。在這個例子里,能力風(fēng)暴響應(yīng)來自外部四個方向上的碰撞,并相應(yīng)地改變運(yùn)動方向。程序剛開始運(yùn)行時,能力風(fēng)暴靜止。這時你只要給它一個初始碰撞,它就開始不停運(yùn)動
13、起來,在障礙物之間撞來撞去。你可以試著用腳去碰它,看一看它是不是象一個“足球”。4、紅外傳感器的使用方法能力風(fēng)暴運(yùn)用了2 只紅外發(fā)射管(970nm)和一只紅外接收模塊構(gòu)成紅外傳感系統(tǒng),主要用來檢測前方、左前方和右前方的障礙,檢測距離范圍為1080cm。在JC 語言中,紅外傳感器的庫函數(shù)是ir_detector(),在程序運(yùn)行過程中此庫函數(shù)僅在被調(diào)用到時執(zhí)行一次,即采集數(shù)據(jù)一次。在JC 對話窗口中輸入如下程序塊:while(1) printf(ir=%bn, ir_detector();wait(0.5);按回車,JC 能立即編譯這一段程序并下載運(yùn)行,LCD 上顯示:ir=0 (表示此時沒有障礙
14、)用一張白紙分別擋在能力風(fēng)暴智能智能小車的前方、左方和右方,液晶顯示器上顯示的ir 的值都不一樣,可總結(jié)如下:無障礙 左方 右方 前方十進(jìn)制表示: 0 1 2 4應(yīng)特別注意紅外接收模塊只是在接收到了一定強(qiáng)度的紅外光時才起到質(zhì)的變化,認(rèn)為有障礙。所以,當(dāng)障礙物太細(xì)時,能力風(fēng)暴智能智能小車會檢測不到;當(dāng)障礙物是黑色或深色時,會吸收大部分的紅外光,而只反射回一小部分,有時會使接收模塊接收到的紅外光強(qiáng)度不夠,不足以產(chǎn)生有障礙的信號。紅外傳感器檢測障礙的過程如下:1 左右發(fā)射管均關(guān)閉,紅外探測器探測一次當(dāng)前信號,并保存下來以跟后面采集到的數(shù)據(jù)比較。2 當(dāng)程序中調(diào)用 ir_detector()時,啟動紅外
15、發(fā)射探測系統(tǒng)。首先,左紅外發(fā)射管發(fā)射一次,延時1ms 后紅外探測器探測一次信號;然后,右紅外發(fā)射管發(fā)射一次,延時1ms 后紅外探測器探測一次信號,紅外探測器采樣一次信號的時間為0.064ms。紅外探測器通過PE4 口采樣當(dāng)前值,并保存下來。由于先后時間的不同,就可以分別探測左右兩邊的紅外信號。3 調(diào)用一次 ir_detector()函數(shù),紅外探測系統(tǒng)開啟一次。完成后,左右發(fā)射管關(guān)閉。根據(jù)采集的數(shù)據(jù)可以判別是否有反射,只有在初始探測無反射而第二次探測有反射時,左反射管才是有反射的,這樣系統(tǒng)才認(rèn)為左方有障礙。同理,初始探測無反射而第三次探測有反射時,右反射管才是有反射的,右方被認(rèn)為有障礙。采用這種
16、方法可以抑制許多環(huán)境紅外噪音。范例void main()int ir;while(1)ir=ir_detector();if(ir!=0) /*判斷有否障礙*/motor(-80,-40); /*執(zhí)行語句,即倒退0.5秒*/wait(0.5);26motor(100,0); /*前進(jìn)*/運(yùn)行此程序可知當(dāng)前方有障礙時,能力風(fēng)暴智能智能小車有反應(yīng)。五、實(shí)驗考核編寫智能小車跟隨前方物體的程序,實(shí)現(xiàn)下列要求:智能小車可以跟隨前方移動的人或物;如果撞上前方的物體,就停一停;如果前方紅外系統(tǒng)探測范圍內(nèi)沒有物體,它就停下來。六、思考題1、實(shí)驗中碰到哪些故障或問題?解決方法是怎樣的?將實(shí)驗中碰到的問題及解決方
17、法寫入實(shí)驗報告中。2、如果要對智能小車雙輪的轉(zhuǎn)速實(shí)現(xiàn)帶反饋的控制,需要在硬件上添加什么部件?為什么?實(shí)驗階段三 智能小車行為控制一實(shí)驗?zāi)康?掌握智能小車中的多進(jìn)程編程方法;2掌握進(jìn)程間通信的基本方法;3. 掌握對智能小車進(jìn)行行為控制的方法。二實(shí)驗內(nèi)容1學(xué)習(xí)智能小車多進(jìn)程編程的基本方法;2. 學(xué)習(xí)多進(jìn)程之間通信的方式與程序設(shè)計;3、探索多個進(jìn)程間優(yōu)先級與仲裁的程序設(shè)計方法;3. 編寫對智能小車多種行為進(jìn)行聯(lián)合控制的程序。三、實(shí)驗設(shè)備及工具硬件:能力風(fēng)暴AS-UII開發(fā)平臺,程序下載線。軟件:PC 機(jī)操作系統(tǒng)Win2000 或WinXP、VJC開發(fā)平臺。四、實(shí)驗原理與步驟1、多進(jìn)程編程JC 支持多
18、任務(wù)。多任務(wù)允許能力風(fēng)暴同時做多件事情,如檢測光源的同時避開障礙。在JC 中實(shí)現(xiàn)多任務(wù)是很簡單的,只要調(diào)用start_process(),任何一個函數(shù)都能作為一個進(jìn)程來運(yùn)行。在JC 中進(jìn)程的內(nèi)存空間不是獨(dú)立的,所有的進(jìn)程共用一個內(nèi)存空間,因此全局變量在任何進(jìn)程里都可以訪問。下面我們把第四節(jié)“臺球”程序改成多進(jìn)程的程序。int bill_trans=0;int bill_rot=0;void billiards ()int bmpr=0;while(1) /*無限循環(huán)檢測*/bmpr=bumper(); /*檢測碰撞傳感器*/if(bmpr!=0)if(bmpr=0b0011) /*正前方發(fā)生碰
19、撞*/bill_trans=-80; /*后退*/bill_rot=0;else if(bmpr=0b1100) /*正后方發(fā)生碰撞*/bill_trans=80; /*前進(jìn)*/bill_rot=0;else if(bmpr & 0b0101) /*左側(cè)發(fā)生碰撞*/bill_trans=0;bill_rot=-80;wait(0.5); /*順時針轉(zhuǎn)一個角度*/bill_trans=80; /*前進(jìn)*/bill_rot=0;else if(bmpr & 0b1010) /*右側(cè)發(fā)生碰撞*/bill_trans=0;bill_rot=80;wait(0.5); /*逆時針轉(zhuǎn)一個角度*/bill_
20、trans=80; /*前進(jìn)*/bill_rot=0;54void billiards_drive()while(1)drive(bill_trans,bill_rot); /*驅(qū)動電機(jī)*/void main()start_process(billiards_drive(); /*創(chuàng)建電機(jī)驅(qū)動進(jìn)程*/start_process(billiards(); /*創(chuàng)建碰撞處理進(jìn)程*/“臺球”改成多進(jìn)程后,運(yùn)行的效果沒變,但結(jié)構(gòu)已經(jīng)完全不一樣了。電機(jī)驅(qū)動進(jìn)程billiards_drive()專門設(shè)置電機(jī)速度,碰撞處理進(jìn)程billiards()判斷碰撞并改變電機(jī)速度。兩個進(jìn)程之間通過全局變量bill_t
21、rans 和bill_rot 進(jìn)行通訊。能力風(fēng)暴的操作系統(tǒng)自動調(diào)度兩個進(jìn)程,給它們分配時間片。從執(zhí)行效果來講,就相當(dāng)于這兩個進(jìn)程并列運(yùn)行。這樣的結(jié)構(gòu)非常方便增加新的進(jìn)程,同時處理更多的外部信息。2、進(jìn)程間通信我們給前面的程序增加一個紅外避障進(jìn)程,改變它的行為,而其它部分不需要做大的變動。改動后的程序如下。int bill_trans=0;int bill_rot=0;int bmpr=0;int forward=0;int running=0; /*能力風(fēng)暴初始值處于靜止?fàn)顟B(tài)*/void billiards ()while(1) /*無限循環(huán)檢測*/bmpr=bumper(); /*檢測碰撞傳
22、感器*/if(bmpr!=0)if(bmpr=0b0011) /*正前方發(fā)生碰撞*/forward=0;bill_trans=-80; /*后退*/bill_rot=0;else if(bmpr=0b1100) /*正后方發(fā)生碰撞*/forward=1;bill_trans=80; /*前進(jìn)*/bill_rot=0;55else if(bmpr & 0b0101) /*左側(cè)發(fā)生碰撞*/bill_trans=0;bill_rot=-80;wait(0.5); /*順時針轉(zhuǎn)一個角度*/forward=1;bill_trans=80; /*前進(jìn)*/bill_rot=0;else if(bmpr &
23、0b1010) /*右側(cè)發(fā)生碰撞*/bill_trans=0;bill_rot=80;wait(0.5); /*逆時針轉(zhuǎn)一個角度*/forward=1;bill_trans=80; /*前進(jìn)*/bill_rot=0;void billiards_ir()int ir;while(1)if(running) /*能力風(fēng)暴沒有開始運(yùn)動,不檢測障礙*/ ir=ir_detector(); /*檢測紅外傳感器*/if(bmpr=0 & forward) /*后退或發(fā)生碰撞時,不避障*/if(ir=2) /*右側(cè)有障礙,向左繞*/ bill_trans=20;bill_rot=80; /*逆時針轉(zhuǎn)*/e
24、lse if(ir=1) /*左側(cè)有障礙,向右繞*/ bill_trans=20;bill_rot=-80; /*順時針轉(zhuǎn)*/else if(ir=0) /*前方?jīng)]有障礙,恢復(fù)直行*/ bill_trans=80;bill_rot=0;wait(0.1);56void billiards_drive()while(1) running = bill_trans; /*能力風(fēng)暴正在運(yùn)動*/drive(bill_trans,bill_rot); /*驅(qū)動電機(jī)*/void main()start_process(billiards_drive(); /*創(chuàng)建電機(jī)驅(qū)動進(jìn)程*/start_process
25、(billiards_ir(); /*創(chuàng)建避障進(jìn)程*/start_process(billiards(); /*創(chuàng)建碰撞處理進(jìn)程*/改動以后的程序增加了避開側(cè)面障礙物的行為。比較一下,增加的代碼除了紅外避障進(jìn)程外,就是用于進(jìn)程之間的通訊。進(jìn)程間的通訊和同步是多進(jìn)程編程的難點(diǎn),不解決好這個問題,多進(jìn)程程序可能會產(chǎn)生一些奇怪的行為。在這個程序里,由于碰撞處理進(jìn)程和紅外避障進(jìn)程都要修改設(shè)置電機(jī)速度的兩個全局變量(bill_trans,bill_rot),這是進(jìn)程間發(fā)生沖突的根源。如果不加以限制,兩個進(jìn)程同時修改電機(jī)速度,必然會出現(xiàn)一片混亂,能力風(fēng)暴下一步的運(yùn)動方向?qū)o法預(yù)知。本程序中把bmpr 改為
26、全局變量,通過bmpr 來劃分兩個進(jìn)程生效的時間。即發(fā)生碰撞時,只有碰撞處理進(jìn)程可以修改電機(jī)速度;在其他時間里碰撞處理進(jìn)程只是在不斷檢測碰撞傳感器,只有紅外避障進(jìn)程才有可能修改電機(jī)速度。我們可以看到,在本程序里碰撞處理進(jìn)程的優(yōu)先級高于紅外避障進(jìn)程。增加的另兩個全局變量是出于紅外避障行為邏輯的需要。全局變量running 是能力風(fēng)暴開始運(yùn)動的標(biāo)志,紅外避障進(jìn)程要等待這一事件發(fā)生后才能起作用。forward 反映能力風(fēng)暴當(dāng)前運(yùn)動方向,用于避免紅外避障進(jìn)程在后退時候處理前方障礙。3、智能小車的行為控制借助于多進(jìn)程功能,可以方便實(shí)施目前處于研究前沿的行為控制方法。行為控制的基本思想是建構(gòu)行為能力,而非
27、功能模塊。首先把要設(shè)計機(jī)器人的行為特點(diǎn)描述下來,表達(dá)成基本的行為構(gòu)成,如要做一只模擬機(jī)器飛蛾的智能小車,一邊到處找食物,一邊向較強(qiáng)光飛去,同時撞上碰撞開關(guān)則向相反方向逃離,紅外傳感器發(fā)現(xiàn)障礙后避障。用行為控制來實(shí)現(xiàn)如下圖所示。四個基本行為結(jié)構(gòu)很清晰,都是信號刺激行為計算執(zhí)行。由于執(zhí)行機(jī)構(gòu)(行走機(jī)能)只有一個,因此只有一個基本行為的輸出能執(zhí)行,這就需要優(yōu)先仲裁機(jī)理。I1-I4 是優(yōu)先極,I1 最高,誰的優(yōu)先級高,運(yùn)行誰的執(zhí)行信號。利用多進(jìn)程程序設(shè)計方法,可以編寫6個同時運(yùn)行的進(jìn)程,并通過全局變量實(shí)現(xiàn)進(jìn)程之間的優(yōu)先級與仲裁機(jī)制。五、實(shí)驗考核編寫一個智能小車漫步的行為控制程序,實(shí)現(xiàn)下列要求:智能小車
28、在默認(rèn)狀態(tài)下隨機(jī)游走;當(dāng)遇到強(qiáng)光時,便去追尋強(qiáng)光;當(dāng)發(fā)現(xiàn)障礙物時,能夠避開障礙物;如果碰到某個物體,則能夠迅速向相反方向逃離該物體。六、思考題1、多進(jìn)程編程比起單進(jìn)程程序設(shè)計,有哪些優(yōu)勢?2、在本次實(shí)驗的程序編寫中,是如何實(shí)現(xiàn)各個進(jìn)程之間的優(yōu)先級仲裁的?附錄: 庫函數(shù)1. 執(zhí)行器輸出void stop() 關(guān)閉左右兩個電機(jī),停止運(yùn)動;void stop_motor(int m) 關(guān)閉電機(jī)m,0為所有電機(jī),1為左電機(jī), 2為右電機(jī), 3為擴(kuò)展電機(jī);void motor(int m, int speed) 以功率級別speed(-100到100)啟動電機(jī)m(1為左電機(jī), 2為右電機(jī), 3為擴(kuò)展電機(jī));void drive(int move, int turn) 同時設(shè)定兩個電機(jī)的速度,move 為平移速度,turn 為旋轉(zhuǎn)速度。2. 傳感器輸入int photo() 光敏傳感器檢測。photo(1)為檢測左光敏, photo(2)為檢測右光敏,返回值為0255的數(shù)字量;int microphone() 聲音傳感器檢測。返回值為0255的數(shù)字量;int ir_detector() 紅外傳感器檢測。返回值的意義:0= 沒有障礙, 1=左邊有
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職輕化工(日用化妝品生產(chǎn))試題及答案
- 2025年大學(xué)大二(戲劇影視文學(xué))戲劇理論基礎(chǔ)測試題及答案
- 2025年大學(xué)(化學(xué)生物學(xué))化學(xué)生物學(xué)概論試題及答案
- 2025年大學(xué)本科一年級(機(jī)械工程)機(jī)械原理基礎(chǔ)測試題及答案
- 2025年大學(xué)機(jī)械基礎(chǔ)應(yīng)用技術(shù)(機(jī)械應(yīng)用)試題及答案
- 2025年中職助產(chǎn)(助產(chǎn)實(shí)操)試題及答案
- 2025年大學(xué)工業(yè)機(jī)器人應(yīng)用技術(shù)(機(jī)器人應(yīng)用)試題及答案
- 2025年大學(xué)大三(生態(tài)學(xué))海洋生態(tài)學(xué)綜合測試題及答案
- 2026年廣東機(jī)電職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題有答案解析
- 2026年河南科技職業(yè)大學(xué)單招綜合素質(zhì)筆試模擬試題帶答案解析
- 洗衣液宣傳課件
- TTAF 241.1-2024 支持衛(wèi)星通信的移動智能終端技術(shù)要求和測試方法 第1部分:多模天通衛(wèi)星終端
- 奶茶品牌2026年新品研發(fā)上市流程
- 日常飲食營養(yǎng)搭配
- 上海醫(yī)療收費(fèi)目錄
- 人教版(2024)八年級上冊物理期末復(fù)習(xí)全冊知識點(diǎn)提綱
- 智慧廣場移多補(bǔ)少課件
- 2025年建筑工程勞務(wù)公司的年終總結(jié)大全5篇
- 半導(dǎo)體車間消防安全教育培訓(xùn)
- 分裝合同協(xié)議書范本
- 【MOOC】《學(xué)校體育學(xué)》(上海體育大學(xué))章節(jié)作業(yè)慕課答案
評論
0/150
提交評論