版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
機(jī)器人的伺服電機(jī)機(jī)器人的伺服電機(jī)是用來將機(jī)器人大腦發(fā)出的運動指令轉(zhuǎn)換為運動動作的部件,相當(dāng)于人的肌肉的作用。本講教你如何連接、調(diào)整以及測試機(jī)器人伺服電機(jī)。為此,你需要理解和掌握控制伺服電機(jī)方向、速度和運行時間的相關(guān)PBASIC指令及其編程技術(shù)。由于精確地控制伺服電機(jī)是決定機(jī)器人性能的關(guān)鍵,所以,在把伺服電機(jī)安裝到機(jī)器人底盤之前先熟悉這些內(nèi)容是非常重要而且必需的。連續(xù)旋轉(zhuǎn)伺服電機(jī)簡介機(jī)器人伺服電機(jī)有很多種,本講要介紹的主要是能夠使你的輪式機(jī)器人兩個輪子不停旋轉(zhuǎn)的連續(xù)旋轉(zhuǎn)伺服電機(jī),如圖2-1所示。圖中指出了該伺服電機(jī)的外部配件,這些配件將在本講或后續(xù)章節(jié)中用到。任務(wù)1:將伺服電機(jī)連接到教學(xué)板在本任務(wù)中首先將伺服電機(jī)連接到電源和BASICStamp模塊的I/O口,然后搭建一個LED電路來監(jiān)視BASICStamp模塊發(fā)送到伺服電機(jī)的運動控制信號。連接伺服電機(jī)所需的零部件口帕拉斯公司生產(chǎn)的連續(xù)旋轉(zhuǎn)伺服電機(jī)2個;口搭建LED電路所需的零配件(LED和470歐姆電阻)2套連接伺服電機(jī)到H21H21姓—何服電枕圖2-2-圖2-2-.Xi知電派教學(xué)底板把三位開關(guān)撥至0位切斷教學(xué)底板的電源(圖22)。圖2-3顯示的是教學(xué)板上伺服電機(jī)接線端子。你可以用板上的跳線來選擇伺服電機(jī)的供電電源是來自機(jī)器人套件中的電池盒Vin還是來自外接直流電源Vdd。要移動跳線帽,你必須向上把跳線帽從原來短接的2個腳上拔下來,然后把跳線帽壓進(jìn)你想短接的2個腳上去。如果使用6V電池組,將兩個伺服電機(jī)接線端子之間的跳線帽接Vin,參照圖2-3(左圖)所示。如果使用7.5V、1000mA的直流電源,將跳線帽接Vdd,參照圖2-3(右圖)所示。
BlAdk1514BlAdk□nnX4JVSVin\如果使用的是AC-DC直流電如果使用的是套件中的電池組,迷擇\鈿.圖2T選擇教學(xué)底板的電源如果使用的是AC-DC直流電如果使用的是套件中的電池組,迷擇\鈿.本書中所有的示例和說明都是用電池組供電。圖2-4是你將要搭建的電路的示意圖,跳線設(shè)定接Vin。注意:每個伺服電機(jī)的控制電纜有三根線,其中白色的線用來傳送電機(jī)的控制信號,紅色用來接到電源上,而黑色的則是地線。這些線的顏色的定義在伺服電機(jī)出廠時就已經(jīng)定義好。以后你將會在工程上看到,許多電氣元件都是通過線的顏色來標(biāo)記電線所承擔(dān)的功能。?口連接伺服電機(jī)到教學(xué)底板,如圖2-4所示。圖2-4伺郝電機(jī)與教學(xué)底板的連線示起慚口連接完成后,搭建好的系統(tǒng)如圖25圖所示(不含LED監(jiān)視電路)??贚ED監(jiān)視電路如圖2-6所示。左邊是電氣原如果使用的是套件中的電池組,選擇Vin。如果使用的是AC-DC直流電源,選擇Vdd。理圖,右邊是在面包板上的接線圖。該電路能夠監(jiān)視為什么呢?從圖2-4的伺服電機(jī)連線圖可知,兩個伺服電機(jī)的控制信號線(白藤分別接到了微控制器的P12和P13口,即由微控制器的P12和P13口輸出的控制信號控制兩個伺服電機(jī)的圖2-6所示的LED監(jiān)控指示電路正好也是指示的P12和P13口的信號,所以圖電路可以監(jiān)控伺服電機(jī)'2-6圖2-6所示的LED監(jiān)控指示電路正好也是指示的P12和P13口的信號,所以圖電路可以監(jiān)控伺服電機(jī)的控制信號。圖2-5圖2-5教學(xué)底板勺電池春.尚服電機(jī)按魏示意圖?按嗯圖2-6右邊的真實接線圖將LED監(jiān)視
電路在教學(xué)板上連接好;然后轉(zhuǎn)到任務(wù)、□□□□□□口口口口口口口口口口口UDQ□□□□□□□□□□□□□□口口口口口口口口口口口□口口口口□□□□□□□□口口口口口口口口口口口UDQ□□□□□□□□□□□□□□口口口口口口口口口口口□口口口口□□口口口口口口口口口口口口ODano□□□□□□□□□□□』□□□□□口口口口口□□□!□□i?luf?_■一?1?一?一?-?nrrr?】?l■一k&EC世恚冷5+321Q-111111A00-6754321OpppprIrFPAPPPPPP御2-6伺服電機(jī)控制信弓的LED監(jiān)視電路任務(wù)2:伺服電機(jī)調(diào)零所謂伺服電機(jī)調(diào)零是指,當(dāng)發(fā)送一個特定的控制信號(零點標(biāo)定信號)給伺服電機(jī)時,讓電機(jī)保持靜止的過程。由于伺服電機(jī)在工廠沒有預(yù)先調(diào)整,它們在接收到該零點標(biāo)定信號時可能會轉(zhuǎn)動。因此你要用螺絲刀調(diào)節(jié)伺服電機(jī)模塊內(nèi)的調(diào)節(jié)電阻讓伺服電機(jī)保持靜止。這就是伺服電機(jī)調(diào)零過程。調(diào)整完成之后,你要測試伺服電機(jī),驗證其功能是否正常。測試程序?qū)l(fā)送控制信號讓伺服電機(jī)順時針和逆時針以不同的速度旋轉(zhuǎn)。調(diào)零工具機(jī)器人套件中提供的螺絲起子是唯一在本任務(wù)中需要的額外的工具。發(fā)送零點標(biāo)定信號圖2-7顯示的信號是發(fā)送到與'1?-7零點標(biāo)定蓿號的時序圖P12連接的伺服電機(jī)的零點校準(zhǔn)信號,稱為零點標(biāo)定信號。即如果伺服電機(jī)零點已經(jīng)調(diào)節(jié)好,發(fā)送這個信號給電機(jī)就可以讓電機(jī)保持靜止不動。這是一個脈沖時間間隔為20ms,脈沖寬度為1.5ms'1?-7零點標(biāo)定蓿號的時序圖要讓機(jī)器人的大腦即BS2微控制器能夠產(chǎn)生圖2-7所示的零點標(biāo)定信號,必須用到幾個新的PABSIC指令:PULSOUT指令、PAUSE指令,和DO-LOOP循環(huán)語句。PULSOUT指令用來讓微控制器產(chǎn)生一個5V電平脈沖,其指令格式和指令參數(shù)如下:PULSOUTPin,Duration指令參數(shù)Pin用來確定是給微控制器的哪個I/O腳輸出脈沖,而Duration則是用來確定脈沖的寬度的時間單位數(shù),其時間單位是2微秒。因此,要給P12引腳產(chǎn)生圖2-7所示的1.5ms的高電平脈沖信號,需要輸入如下的指令行:PULSOUT12,750顯然,如果知道脈沖要持續(xù)多長時間,你就可以方便地計算出PULSOUT指令的參數(shù)Duration的值:Duration變量=脈沖持續(xù)時間/2微秒。按照此公式,零點標(biāo)定脈沖的寬度變量:Duration=0.0015s/0.000002s=750。PULSOUT指令只產(chǎn)生脈沖,要控制脈沖之間的間隔必須用到PBASIC語言的PAUSE指令。PAUSE指令的使用格式如下:PAUSEDurationDuration是PAUSE指令的參數(shù),它的值告訴BASICStamp微控制器在執(zhí)行下一條指令之前要等待多久。Duration的單位是千分之一秒,即毫秒。假如你想等待1秒,可以給Duration賦值為1000。指令表示如下:PAUSE1000如果想要等待2秒,表示如下:PAUSE2000因此,要實現(xiàn)圖2-7所示的零點標(biāo)定信號,必須在PULSOUT指令后添加如下語句:PAUSE20要持續(xù)不斷地產(chǎn)生圖2-7所示的脈沖序列信號,還必須將PULSOUT語句和PASUSE語句放到DO-LOOP循環(huán)中。對于計算機(jī)或者微控制器而言,它們作為機(jī)器人的大腦,與人類或者其它生物的大腦相比,具有一個最大的優(yōu)勢就是,它們可以毫不怨言地不斷重復(fù)做同一件事情。如果你要你的微控制器不斷重復(fù)同樣的操作,只需將相關(guān)的指令放到指令關(guān)鍵詞DO和LOOP之間。因此,你要讓微控制器不斷產(chǎn)生零點標(biāo)定信號,只需將PULSOUT語句和PAUSE語句放到DO和LOOP之間。最后能夠產(chǎn)生圖2-7零點標(biāo)定信號的程序模塊如下:例程:CenterServoP12.bs2'CenterServoP12.bs2'Thisprogramsends1.5mspulsestotheservoconnectedto'P12formanualcentering.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"DOPULSOUT12,750PAUSE20LOOP注意:以上程序一旦執(zhí)行,將永遠(yuǎn)執(zhí)行下去,直到你關(guān)斷微控制器的電源為止,下一個任務(wù)將指導(dǎo)你如何控制重復(fù)執(zhí)行的次數(shù)。最好每次只對一只電機(jī)做標(biāo)定,因為這樣的話,在你調(diào)節(jié)電機(jī)時你就可以聽到(為何用聽到,而不用看到?)什么時候電機(jī)停止。上面的程序只發(fā)送零點標(biāo)定信號到P12,下面的步驟將指導(dǎo)你從如何調(diào)整電機(jī),使其保持靜止?fàn)顟B(tài)。在調(diào)節(jié)完連接到P12上的伺服電機(jī)后,用同樣的方法調(diào)節(jié)連接到P13口的電機(jī)?!鯇⒔虒W(xué)底板三位開關(guān)撥到“2”,打開電源?!踺斎?、保存并運行程序CenterServoP12.bs2。如果電機(jī)沒有進(jìn)行零點標(biāo)定,它的連接喉就會轉(zhuǎn)動,而且你也能聽到里面馬達(dá)轉(zhuǎn)動的響聲?!跞绻姍C(jī)還沒有進(jìn)行零點標(biāo)定,按照圖2-8所示的步驟,用螺絲刀輕輕調(diào)節(jié)伺服電機(jī)上的電位器,直到電機(jī)停止轉(zhuǎn)動。(仔細(xì)傾聽電機(jī)的聲音,確信電機(jī)已經(jīng)停止轉(zhuǎn)動)口驗證連接到P12的信號監(jiān)視電路的LED燈是否發(fā)光,如果發(fā)光,表明零點標(biāo)定脈沖已經(jīng)發(fā)送給連接到P12口上的電機(jī)了。如果電機(jī)已經(jīng)完成了零點調(diào)節(jié),它不會轉(zhuǎn)動。但是損壞了或有故障的電機(jī)有時也不轉(zhuǎn)動。任務(wù)4將在電機(jī)安裝到機(jī)器人底盤之前排除這種可能。口如果電機(jī)確實不再轉(zhuǎn)動,下面你可以自己對連接到P13的伺服電機(jī)進(jìn)行測試并做零點標(biāo)定。將螺挫.刀插入伺雇電視的電也器調(diào)?」亂 輕輕的旋轉(zhuǎn)螺仔力調(diào)廿-電位器圖2-3拘服電機(jī)零點調(diào)節(jié)該你了 對連接到P13的伺服電機(jī)做零點調(diào)整?口利用下面程序?qū)B接到P13的伺服電機(jī)重復(fù)上述過程:程序示例:CenterServoP13.bs2'CenterServoP13.bs2'Thisprogramsends1.5mspulsestotheservoconnectedto'P13formanualcentering.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"DOPULSOUT13,750PAUSE20LOOP注意:如果上述任務(wù)完成后,不再進(jìn)行后面的任務(wù),一定要記得將教學(xué)板的電源斷開。任務(wù)3:如何保存數(shù)值和計數(shù)在任務(wù)2中,你已經(jīng)知道如何使用循環(huán)語句讓微控制器不斷產(chǎn)生零點標(biāo)定信號。當(dāng)然,你在編寫某個程序時,肯定并不總是需要機(jī)器人永遠(yuǎn)執(zhí)行同一個操作或者說任務(wù),而只希望它執(zhí)行一段指定的時間或者執(zhí)行一些固定的次數(shù)。這時,你就要在PBASIC程序中用于到變量。變量用來保存數(shù)值。后面的機(jī)器人程序很大程度上都要依賴使用變量。用變量保存數(shù)值的最主要的作用就是程序能用這些變量來計數(shù)。一旦你的程序能計數(shù),你就能控制和跟蹤事件發(fā)生的次數(shù)。用變量存儲數(shù)值,數(shù)學(xué)運算和計數(shù)變量可以用來儲存數(shù)值°PBASIC語言在使用一個變量之前,要先給該變量起一個名字,并說明該變量的大小類型。這叫聲明一個變量。聲明一個變量的PBASIC語法如下:variableNameVARSize實際聲明變量時,你用你自己起的名字代替variableName,Size用來說明變量的大小類型,PBASIC程序中可以聲明的變量類型如下:Bit一存儲0或者1;Bib一用來存儲0到15之間的任意數(shù)值;Byte一用來存儲0到255之間的任意數(shù)值;Word—用來存儲0到65535之間的任意數(shù)值,或者-32768到32767之間的任意數(shù)值。注意:為何有上述特定的變量類型大小呢?請參考二進(jìn)制的說明。下面的例程包含兩個“word”大小的變量:valueVARWordanotherValueVARWord在聲明變量之后,你也可以對它初始化,即給它一個初始值。value=500anotherValue=2000在“value=500”中,符號“=”是個運算符。你可以利用其它一些運算符和變量進(jìn)行數(shù)學(xué)運算。在這里有兩個乘法運算的例子:value=10*valueanotherValue=2*value程序示例:VariablesAndSimpleMath.bs2這個例程演示了如何對變量進(jìn)行聲明、初始化和運算?!踉谶\行程序之前,對DEBUG指令要顯示的內(nèi)容進(jìn)行預(yù)測?!踺斎搿⒈4娌⑦\行程序VariablesAndSimpleMath.bsZ□和你的預(yù)測進(jìn)行對比,解釋所有的不相同的原因。'VariablesAndSimpleMath.bs2'Declarevariablesandusethemtosolveafewarithmeticproblems.'{$STAMPBS2}'{$PBASIC2.5}valueVARWord'DeclarevariablesanotherValueVARWordvalue=500'InitializevariablesanotherValue=2000DEBUG?value'DisplayvaluesDEBUG?anotherValuevalue=10*anotherValue'PerformoperationsDEBUG?value'DisplayvaluesagainDEBUG?anotherValueEND程序VariablesAndSimpleMath.bs2是如何工作的下面的代碼定義了兩個字變量:value和anotherValue。valueVARWord'DeclarevariablesanotherValueVARWord然后,初始化變量,即給剛剛聲明的變量賦上你決定的初始值。這兩條指令執(zhí)行后,value的值是500,anotherValue的值是2000。value=500'InitializevariablesanotherValue=2000隨后的DEBUG指令幫助你了解初始化變量后每個變量存儲的數(shù)值,因為給value賦值是500,anotherValue賦值2000,因此DEBUG指令向調(diào)試終端發(fā)送信息:“value=500”和“anotherValue=2000”并顯示。DEBUG?value'DisplayvaluesDEBUG?anotherValue這里又新引入了一個DEBUG指令的格式說明字符“?”,該格式說明字符用在一個變量名之前,使DEBUG終端顯示其名稱,以及存儲在該變量中的數(shù)值,然后回車。這樣對于查詢一個變量的內(nèi)容非常方便。下面三行的疑問是:調(diào)試終端將顯示什么?答案是value的值是anotherValue的10倍,因為anotherValue的值是2000,那么value就是20000,而變量anotherValue不變。.value=10*anotherValue'PerformoperationsDEBUG?value'DisplayvaluesagainDEBUG?anotherValue該你了一一用負(fù)數(shù)計算如果你想做一些包含負(fù)數(shù)的計算,你可以使用DEBUG指令的SDEC格式說明來顯示。下面的例子能通過修改程序VariablesAndSimpleMath.bs2得到。□刪除程序VariablesAndSimpleMath.bs2的下面部分:value=10*anotherValue'PerformoperationsDEBUG?value'Displayvaluesagain□改成如下代碼:value=value-anotherValue'Answer=-1500DEBUG"value=",SDECvalue,CR'Displayvaluesagain□運行更改后的程序并驗證value的值是否由500變?yōu)?1500。計數(shù)并控制循環(huán)次數(shù)最方便的控制一段代碼執(zhí)行次數(shù)的方法是利用FOR-NEXT循環(huán),語法如下:FORCounter=StartValueTOEndVilue{STEPStepValue}…NEXT省略號“…”表示你可以在FOR和NEXT之間放一條或多條的程序指令。使用前面的循環(huán)前要確保先聲明一個變量替代參數(shù)Countero參數(shù)StartValue和EndValue可以是數(shù)值也可以是變量。語法描述中位于大括號{}之間的東西,表示是可選參數(shù)。換句話說,沒有它FOR…NEXT仍將工作,但是你可以將之用于一些特殊目的。你沒有必要一定要將變量命名為“counter”,例如,你可以用“myCounter”myCounterVARWord下面是一個用myCounter來計數(shù)的FOR-NEXT循環(huán)例程。每執(zhí)行一次循環(huán),它會顯示myCounter的值。例程:CountToTen.bs2□輸入、保存并運行程序CountToTen.bsZ'CountToTen.bs2'UseavariableinaFOR...NEXTloop.'{$STAMPBS2}'{$PBASIC2.5}myCounterVARWord
FORmyCounter=1TO10DEBUG?myCounterPAUSE500NEXTDEBUGCR,"Alldone!"END該你了一一不同的初始值和終值以及計數(shù)步長你可以給變量StartValue和EndValue賦不同的值?口修改FOR-NEXT循環(huán)如下:FORmyCounter=21TO9DEBUG?myCounterPAUSE500NEXT口運行修改后的程序。BASICStamp往下計數(shù)代替了往上計數(shù),你注意到了嗎?只要StartValue的值大于EndValue,程序就會這樣運行。還記得可選參數(shù){STEPStepValue}嗎?你可以用它來使myCounter以不同步長計數(shù),而不是按9,10,11…這樣每次增1來計數(shù)。例如,你可以讓它每次增加2(9,11,13…)或增加5(10,15,20…)或任何你給出的StepValue,遞增或遞減都可以。下面的例子是以3為步長向下計數(shù)??谠黾覵TEP3到FOR-NEXT循環(huán),如下所示:FORmyCounter=21TO9STEP3DEBUG?myCounterPAUSE500NEXT?口運行更改后的程序,驗證是否以3為步長遞減。任務(wù)4:測試伺服電機(jī)在裝配機(jī)器人之前還有最后一件事要做,那就是測試伺服電機(jī)。在本任務(wù)中,你將運行程序,使電機(jī)以不同速度和方向旋轉(zhuǎn)。通過測試,可以確保在裝配之前電機(jī)工作是正常的。這是一個子系統(tǒng)測試的例子。對子系統(tǒng)進(jìn)行測試是開發(fā)過程的好習(xí)慣,它不僅僅是讓你拆開機(jī)器人,而是在組裝之前盡可能修補可能出現(xiàn)的一些問題。所謂子系統(tǒng)測試是在將一些分立的部件組裝成一個更大的設(shè)備之前先對各分立的部件進(jìn)行測試的過程。在進(jìn)行機(jī)器人競賽時,這對于你贏得比賽很有幫助。對于工程師而言,無論是開發(fā)玩具、汽車和視頻游戲,還是開發(fā)航天飛機(jī)和火星機(jī)器人,這都是一個最為基本的技能。特別是在非常復(fù)雜的設(shè)備中,如果沒有事先對子系統(tǒng)進(jìn)行測試,要找出存在的問題幾乎不可能。例如,在太空項目中,如果要拆開一個原形設(shè)備以進(jìn)行維修,將耗費數(shù)百萬美元。因此,在這樣的項目中,必須對所有子系統(tǒng)進(jìn)行徹底而嚴(yán)格的測試。脈寬控制電機(jī)的速度和方向回憶前面的電機(jī)零點標(biāo)定,脈寬為1.5ms的控制信號使電機(jī)保持不動,這是通過給PULSOUT指令參數(shù)Duration賦值為指令參數(shù)Duration賦值為750來實現(xiàn)的。1.5ms,結(jié)果會是怎樣呢?現(xiàn)在編程發(fā)送了一系列1.3ms的脈沖給伺服電機(jī),你仔細(xì)研究一下這一系列脈沖,看它怎樣控制電機(jī)。圖2-9所示是連續(xù)旋轉(zhuǎn)電機(jī)將以全速順那么如果控制信號的脈沖寬度(簡稱脈寬)不是Vss(OV)—1時針旋轉(zhuǎn),全速的范圍大約是每分鐘50到60轉(zhuǎn)(RPM),即約每秒種轉(zhuǎn)一圈。你可以用下面的程序ServoP13Clockwise.bs2將這些脈沖 -:工', -- '?序列發(fā)送給端口P13。例程:ServoP13Clockwise.bs2口輸入、保存并運行程序ServoP13Clockwise.bs2??隍炞C電機(jī)的輸出軸是否順時針旋轉(zhuǎn),并且速度在50到60RPM之間。'ServoP13Clockwise.bs2'RuntheservoconnectedtoP13atfullspeedclockwise.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"DOPULSOUT13,650PAUSE20LOOP注意:1.3ms的脈沖需要PULSOUT指令的參數(shù)Duration的值為650,是一個小于750的數(shù)。所有的脈寬都小于1.5ms,即PULSOUT指令的Duration參數(shù)要小于750,才能使電機(jī)順時針旋轉(zhuǎn)。當(dāng)然,在進(jìn)行上述驗證時,一定要將伺服電機(jī)連接到控制端口上,并接上電源。例程:ServoP12Clockwise.bs2將PULSOUT指令的參數(shù)PIN的值由13改為12,就可以使連接到P12的電機(jī)以全速順時針旋轉(zhuǎn)??诎殉绦騍ervoP13Clockwise.bs2另存為ServoP12Clockwise.bs2.口把PULSOUT指令的參數(shù)PIN的值由13改為12,更新注釋??谶\行程序驗證連接P12的電機(jī)是否順時針旋轉(zhuǎn),并且速度在50到60RPM之間。'ServoP12Clockwise.bs2'RuntheservoconnectedtoP12atfullspeedclockwise.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"DOPULSOUT12,650PAUSE20LOOPVdd但V)Vss(OV)20ms圖Vdd但V)Vss(OV)20ms圖2-101.7m.捐建續(xù)味沖序河使電機(jī)逆時針全速旋轉(zhuǎn)你可能已經(jīng)猜到將PULSOUT指令的參數(shù)Duration設(shè)置為大于750的數(shù)會使伺服電機(jī)逆時針旋轉(zhuǎn)。Duration的值為850可以發(fā)出1.7ms寬度的脈沖,如圖2-10所示,這將使伺服電機(jī)全速逆時針旋轉(zhuǎn)?!鯇⒊绦騍ervoP12Clockwise.bs2另存為ServoP12Counterclockwise.bs2□把PULSOUT指令的參數(shù)Duration改為850。□運行程序,驗證連接P12的電機(jī)是否逆時針旋轉(zhuǎn),并且速度在50到60RPM之間。'ServoP12Counterclockwise.bs2'RuntheservoconnectedtoP12atfullspeedcounterclockwise.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"DOPULSOUT12,850PAUSE20LOOP該你了□修改上述例程中PULSOUT指令的參數(shù)PIN,使連接P13的電機(jī)逆時針轉(zhuǎn)動例程:ServosP13CcwP12Cw.bs2你可以使用兩個PULSOUT指令使兩個伺服電機(jī)同時旋轉(zhuǎn),你也可以使它們向相互相反的方向旋轉(zhuǎn)?!踺斎搿⒈4娌⑦\行程序下面的程序ServosP13CcwP12Cw.bs2?!踹\行程序,驗證連接到P13的電機(jī)是否全速逆時針旋轉(zhuǎn),而連接到P12的電機(jī)全速順時針旋轉(zhuǎn)。'ServosP13CcwP12Cw.bs2'RuntheservoconnectedtoP13atfullspeedcounterclockwise'andtheservoconnectedtoP12atfullspeedclockwise.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"DOPULSOUT13,850PULSOUT12,650PAUSE20LOOP下面的理解非常重要。想一想:當(dāng)電機(jī)安裝在機(jī)器人底盤的兩側(cè),一個順時針旋轉(zhuǎn)而另一個逆時針旋轉(zhuǎn),將使機(jī)器人沿直線運動。聽起來是否有些古怪?如果你無法理解,試試這樣:□把兩個電機(jī)背靠背放在一起重新運行程序。該你了 調(diào)整速度和方向兩個電機(jī)全速轉(zhuǎn)動時,兩個PULSOUT指令的參數(shù)Duration有四種不同的組合,在后面的章節(jié)中編寫機(jī)器人運動的程序時,這些組合經(jīng)常會被用到。程序ServosP13CcwP12Cw.bs2發(fā)送了這些組合中的一種,850給P13,650給P12。通過測試不同的運動組合,并填寫表2-1的運動描述欄,你將慢慢熟悉這些組合并為你自己建立一個參考。當(dāng)機(jī)器人安裝完成后,嘗試一下這些運動組合,填寫下表的運動行為欄,你就會看到每種數(shù)據(jù)組合使它怎樣運動?!踉囋囅旅娴腜ULSOUTDuration組合,將結(jié)果填寫到描述列。
表2-LPULSOUT指令的Duration參數(shù)蛆合P13P12運動描述實際運動行為表2-LPULSOUT指令的表2-LPULSOUT指令的Duration參數(shù)蛆合P13P12運動描述實際運動行為PHF7l2 運動描述 實際運動行為85065。全速,PL3電機(jī)逆時針,P12電機(jī)順時針6508508508506506^075085065Q750750750兩個電機(jī)都靜止,因為在任務(wù)二中對電機(jī)進(jìn)行了零點調(diào)整7607407707308507008D065。FOR-NEXT循環(huán)控制電機(jī)的運行時間到目前為止,你已經(jīng)完全理解了脈沖寬度控制連續(xù)旋轉(zhuǎn)電機(jī)速度和方向的原理??刂齐姍C(jī)速度和方向的方法是非常簡單的,當(dāng)然也有一個簡單的方法來控制電機(jī)運行的時間,那就是用FOR...NEXT循環(huán)。下面是FOR.NEXT循環(huán)的例子,它會使電機(jī)運行幾秒鐘。FORCOUNTER=1TO100PULSOUT13,850PAUSE20NEXT你計算一下這段代碼能使電機(jī)轉(zhuǎn)動的確切時間。每執(zhí)行循環(huán)一次,PULSOUT指令將持續(xù)1.7ms,PAUSE指令持續(xù)20ms,執(zhí)行一次循環(huán)大概額外需要1.3ms,那么FOR.NEXT循環(huán)整體執(zhí)行一次的時間是:1.7ms+20ms+1.3ms=23.0ms,本循環(huán)執(zhí)行100次,即就是23.0ms乘以100,時間=100*23.0毫秒=100*0.023秒=2.3秒。假如你要讓電機(jī)運行4.6秒,F(xiàn)OR.NEXT循環(huán)必須執(zhí)行上面兩倍的次數(shù)。FORcounter=1TO200PULSOUT13,850PAUSE20NEXT例程:ControlServoRunTimes.bs2輸入、保存并運行程序ControlServoRunTimes.bs2.?□驗證是否與P13連接的電機(jī)首先逆時針旋轉(zhuǎn)2.3秒,然后與P12連接的電機(jī)旋轉(zhuǎn)4.6秒。'ControlServoRunTimes.bs2'RuntheP13servoatfullspeedcounterclockwisefor2.3s,then'runtheP12servofortwiceaslong.'{$STAMPBS2}'{$PBASIC2.5}DEBUG"ProgramRunning!"counterVARByte
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度生態(tài)農(nóng)業(yè)產(chǎn)業(yè)園廠房租賃合同模板3篇
- 2025年度教育培訓(xùn)錄音合同模板課程錄音授權(quán)使用協(xié)議4篇
- 二零二五年度荒山綠化造林項目承包協(xié)議4篇
- 二零二五版酒店客房裝飾裝修與窗簾布藝定制合同3篇
- 2025年度旅行社與旅游攝影攝像服務(wù)合作協(xié)議4篇
- 2025年度旅行社與旅游紀(jì)念品生產(chǎn)商合作協(xié)議3篇
- 二零二五年度房地產(chǎn)公司股權(quán)轉(zhuǎn)讓委托代理合同3篇
- 2025年度鋁灰處理廢棄資源化利用合作協(xié)議4篇
- 二零二五年度反擔(dān)保抵押貸款合同審批流程3篇
- 2025年校長聘任合同:素質(zhì)教育推廣與實踐3篇
- 【中小企業(yè)融資難問題探究的國內(nèi)外綜述5800字】
- DL∕T 2138-2020 電力專利價值評估規(guī)范
- 深圳市購物中心租金調(diào)查
- 我國無菌包裝行業(yè)消費量已超千億包-下游需求仍存擴(kuò)容潛力
- 大數(shù)據(jù)管理與考核制度大全
- 大學(xué)面試后感謝信
- 2022屆上海高考語文調(diào)研試測卷詳解(有《畏齋記》“《江表傳》曰…”譯文)
- SBT11229-2021互聯(lián)網(wǎng)舊貨交易平臺建設(shè)和管理規(guī)范
- 如何打造頂尖理財顧問團(tuán)隊
- 土壤農(nóng)化分析課件
- 小區(qū)大型團(tuán)購活動策劃
評論
0/150
提交評論