Dynamixel RX-28舵機用戶手冊_第1頁
Dynamixel RX-28舵機用戶手冊_第2頁
Dynamixel RX-28舵機用戶手冊_第3頁
Dynamixel RX-28舵機用戶手冊_第4頁
Dynamixel RX-28舵機用戶手冊_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Dynamixel RX-28舵機用戶手冊目錄1 摘要1-1 RX-28概述及特點1-2 主要規(guī)格2 Dynamixel 操作2-1 機械組裝2-2 連接器組裝2-3 Dynamixel 連線3 通訊協(xié)議3-1 通訊概述3-2 指令包3-3 狀態(tài)包3-4 控制表4 指令設(shè)置和實例4-1 WRITE_DATA4-2 READ_DATA4-3 REG WRITE and ACTION 4-4 PING4-5 RESET4-6 SYNCWRITE5 示例附錄 1 Dynamixel RX-281-1 RX-28概述及特點Dynamixel RX-28 Dynamixel 系列機器人執(zhí)行器是一個聰明的

2、、模塊化的驅(qū)動器。它將一個齒輪減速裝置、一個高精密直流電機和一個具有聯(lián)網(wǎng)功能的控制電路集于一個單一封裝中。盡管它體積比較小,但是它可以產(chǎn)生很大的扭矩。它由高品質(zhì)的材料制成用于提供必要的強度和能夠忍受大的外力的結(jié)構(gòu)韌性。它也有檢測諸如內(nèi)部溫度和電源電壓的變化并采取相應(yīng)應(yīng)對措施的能力。精密控制 舵機位置和轉(zhuǎn)動速度是可以用1024步的分辨率進(jìn)行控制服從驅(qū)動 服從的等級可以調(diào)節(jié)并且可以指定在控制位置。 原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS反饋 具有角位移、角速度和負(fù)載轉(zhuǎn)矩的反饋。報警系統(tǒng) 當(dāng)參數(shù)偏離用戶定義范圍后(比如內(nèi)部溫度、扭矩電壓等等),Dyn

3、amixel系列機器人執(zhí)行器可以報警給用戶,并且也可以自動處理這些問題(比如關(guān)閉扭矩)。通訊 類似鏈條的連接使得接線容易,支持最高1M bps的通訊速度。分布式控制 位置、速度、遵從程度和扭矩可以用一個命令包進(jìn)行設(shè)置。這樣就可以使主控器利用很少的資源就可以控制很多個Dynamixel單元。工程塑料 舵機的主體是由高質(zhì)量的工程塑料制成,使得它可以承受很高的扭矩負(fù)載。軸軸承 輸出軸用軸承用于保證在高的外界負(fù)載下沒有效率丟失。狀態(tài)指示燈 這個LED可以向用戶指示錯誤狀態(tài)。框架 一個鉸鏈框架和側(cè)裝框架支持選項1-2主要規(guī)格和性能RX-28重量( g )72齒輪減速比1/193輸入電壓( V )At 1

4、2 VAt 16 V最大堵轉(zhuǎn)扭矩( kgf.cm )28.337.7Sec/60degree0.1670.126最小精度: 0.3工作角度: 300, 無邊界旋轉(zhuǎn)電壓 : 12V 16V最大電流: 1200mA工作溫度: -5 - +85命令信號: 數(shù)據(jù)包格式協(xié)議類型: RS485 異步串行通訊(8數(shù)據(jù)位,1停止位,無校驗位)連接 : RS485 多路總線ID : 254 ID 通訊速度: 7343bps 1Mbps反饋 : 位置,溫度,負(fù)載,輸入電壓等材料 : 全金屬齒輪, 工程塑料電機 : Maxon RE-MAX 2 Dynamixel 操作2-1 機械裝配選項框2-2 連接器裝配連接器

5、的組裝如下圖所示,用正確的壓線工具將電線和接頭連接到一起,如果你沒有工具就將電線頭和接頭焊接到一起以保證在使用時不會松動。2-3 Dynamixel 接線引腳分配 連接頭的引腳分配如下所示。兩個連接頭是引腳對應(yīng)連接的,所以只要原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS接上一個連接頭就可以操作RX-28 。 (注意:連接頭邊緣切掉一段的針腳號是PIN1)接線 按照下圖所示將RX-28執(zhí)行器針腳對針腳連接起來。許多RX-28執(zhí)行可以按照如下所示組成單個總線來控制。主控器 為了操作Dynamixel執(zhí)行器,主控器必須支持RS485串行通訊。一個專有控制器

6、就可以控制,但是強烈建議使用CM-2 PLUS Dynamixel控制器。串口連接 為了控制數(shù)字舵機,主控器需要將自己的串行信號轉(zhuǎn)換成485類型。推薦的電路原理圖如下所示。 主控器通過Molex3P的PIN1 和PIN2給舵機供電。(上面介紹的電路用于解釋485串行協(xié)議的用法,CM-2 PLUS控制器已包含上述的電路,所以數(shù)字舵機可以直接連接上它。)TTL電平的TXD 、RXD數(shù)據(jù)信號的方向取決于DIRECTION485 引腳的電平,如下所示當(dāng)DIRECTION485 為高電平:TXD信號輸出為D+、 D-。當(dāng)DIRECTION485 為低電平:D+、 D-輸入轉(zhuǎn)化為RXD。RS485串口 將

7、多個舵機執(zhí)行器連接到一個節(jié)點的多分枝方法是可以通過RS485串行通訊實現(xiàn)的。所以當(dāng)控制這些舵機時,一個不允許在同一時間有多個傳輸?shù)目偩€協(xié)議是需要存在的。警告 當(dāng)連接舵機線路時要確保引腳配置都正確。當(dāng)上電時要檢查電流消耗。一 個單獨的舵機在待機模式下的電流不會大于50mA 。連接狀態(tài)驗證 當(dāng)通電時,LED閃爍兩次來確認(rèn)已經(jīng)連接。 檢查 當(dāng)上述操作不成功時,就檢查連接頭連線是否正確還有電源的電壓電流最原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS大限3 通訊協(xié)議3-1 通訊概述數(shù)據(jù)包 主控器通過發(fā)送數(shù)據(jù)包和接收數(shù)據(jù)包和舵機單元通訊。有兩種類型的數(shù)據(jù)包,指令

8、包(主控器發(fā)送給舵機單元),狀態(tài)包(舵機發(fā)送給主控器)。 通訊 如下所示連接,如果主控器發(fā)送一個ID為N的指令包,只有ID為這個值的舵機單元會發(fā)送檢查狀態(tài)包給主機并且執(zhí)行相應(yīng)的指令。唯一的ID 如果多個舵機擁有同樣的ID ,同時發(fā)送多個數(shù)據(jù)包就會發(fā)生碰撞,造成通訊問題,因此,確保沒有相同ID的舵機連接在同一個網(wǎng)絡(luò)中就至關(guān)重要。 協(xié)議 舵機執(zhí)行器通過擁有8位數(shù)據(jù)位,1位停止位和無校驗的異步串行通訊協(xié)議通訊。 3-2 指令包指令包是主控器發(fā)送給舵機單元命令的數(shù)據(jù)包。指令包的結(jié)構(gòu)如下所示 指令包 0XFF 0XFF ID LENGTH INSTRUCTION ARAMETER1 PARAMETERN

9、 CHECKSUM 0XFF 0XFF 兩個0XFF 0XFF 字節(jié)表明一個輸入數(shù)據(jù)包的開始。 ID 一個舵機的唯一ID ,總共有254個可用的ID值,從0X00 到0XFD 廣播ID ID 為0XFE為廣播地址,表示所有的連接的舵機單元,一個ID為這個值的數(shù)據(jù)包適用于所有連接的舵機,所以包含廣播ID的數(shù)據(jù)包是不會返回任何狀態(tài)數(shù)據(jù)包的。 長度 數(shù)據(jù)包的長度,它的值為: 參數(shù)個數(shù)+2 指令 舵機需要執(zhí)行的指令。 參數(shù)。N 用于除了指令本身還需要發(fā)送附加信息的情況。 檢驗和 校驗和的計算方法如下所示: CheckSum = (ID + Length + Instruction+Parameter1

10、+.+ParameterN ) 如果計算的值超過255 ,最低八位的值將會被認(rèn)為是CheckSum值。 是“按位取反”邏輯運算。 3-3 狀態(tài)包(返回包) 狀態(tài)包是舵機接收指令包后返回給主控器的應(yīng)答包。返回包的構(gòu)成如下: 0XFF 0XFF ID LENGTH ERROR PARAMETER1 PARAMETER2 PARAMETER N CHECKSUM 每個包內(nèi)字節(jié)的意義如下所示: 0XFF 0XFF 數(shù)據(jù)包的開始。 ID 返回數(shù)據(jù)包的舵機的唯一的ID 。初始缺省值是1 。 LENGTH原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS 數(shù)據(jù)包長度值為

11、 :參數(shù)個數(shù)+2 ERROR 舵機發(fā)出的表示錯誤類型的字節(jié)。每個位的意義如下所示: 位名字細(xì)節(jié)Bit70Bit6指令錯誤如果一個沒有定義的指令被發(fā)送或者一個Action指令被發(fā)送卻沒有一個REG_WRITE指令,這些情況下該位都會置為1Bit5過載錯誤如果指定的最大負(fù)載都不能控制這個外部負(fù)載該位就會置為1Bit4校驗錯誤如果指令包的校驗和不正確該位就會置為1Bit3范圍錯誤如果發(fā)送的指令超出定義范圍該位就會置為1Bit2過熱錯誤如果內(nèi)部溫度超過控制表中定義的溫度時就會該位置為1Bit1角度限制錯誤如果目標(biāo)位置超過 CW Angle 和 CCW Angle限定的范圍,該位就會置為1 Bit0輸入

12、電壓錯誤如果工作電壓超過了控制表中定義的電壓范圍,該位就會置為1 Parameter0.N 用于需要加原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS入附加信息的場合。 校驗和 校驗和的計算方法如下所示: CheckSum = (ID + Length + Instruction+Parameter1+.+ParameterN ) 如果計算的值超過255 ,最低八位的值將會被認(rèn)為是CheckSum值。 是“按位取反”邏輯運算。 3-4 控制表地址項目訪問初始值0(0x00)模型號碼(L)RD 28(0x1C)1(0x01)模型號碼(H)RD0(0x00)

13、2(0x02)硬件版本號RD?3(0x03)IDRD , WR1(0x01)4(0x04)波特率RD , WR34(0x22)5(0x05)返回延時時間RD , WR250(0xFA)6(0x06)CW 角度極限(L)RD , WR0(0x00)7(0x07)CW 角度極限(H)RD , WR0(0x00)8(0x08)CCW 角度極限(L)RD , WR255(0xFF)9(0x09)CCW 角度極限(H)RD , WR3(0x03)10(0x0A)保留-0(0x00)11(0x0B)最高溫度RD , WR85(0x55)12(0x0C)最低電壓RD , WR60(0X3C)13(0x0D)

14、最高電壓RD , WR240(0xF0)14(0x0E)最大扭矩(L)RD , WR255(0XFF)15(0x0F)最大扭矩(H)RD , WR3(0x03)16(0x10)狀態(tài)返回等級RD , WR2(0x02)17(0x11)報警燈RD , WR4(0x04)18(0x12)報警關(guān)閉RD , WR4(0x04)19(0x13)保留RD , WR0(0x00)20(0x14)RD ?21(0x15)RD ?22(0x16)RD ?23(0x17)RD ?24(0x18)RD , WR0(0x00)25(0x19)RD , WR0(0x00)26(0x1A)RD , WR0(0x00)27(

15、0x1B)RD , WR0(0x00)28(0x1C)RD , WR32(0x20)29(0x1D)RD , WR32(0x20)30(0x1E)RD , WRaddr36value31(0x1F)RD , WRaddr37value32(0x20)RD , WR033(0x21)RD , WR034(0x22)RD , WRaddr14value35(0x23)RD , WRaddr15value36(0x24)RD ?37(0x25)RD?38(0x26)RD?39(0x27)RD?40(0x28)RD?41(0x29)RD?42(0x2A)RD?43(0x2B)RD?44(原文出處及作者

16、:Dynamixel RX-28 Users Manual ROBOTIS0x2C)RD , WR0(0x00)45(0x2D)-0(0x00)46(0x2E)RD 0(0x00)47(0x2F)RD , WR0(0x00)18(0x30)RD , WR32(0x20)49(0x31)RD , WR0(0x00) 控制表 控制表包含關(guān)于狀態(tài)和操作的信息。操作數(shù)字舵機就是通過向控制表寫據(jù)來完成的,并且它的狀態(tài)就是通過讀取控制表的數(shù)值來實現(xiàn)。 RAM和EEPROM 任何剛開始上電的時候,RAM區(qū)域中的數(shù)據(jù)值都會被賦予缺省值。但是EEPROM區(qū)域中的數(shù)值卻不改變,依然和上次斷電時一樣的數(shù)值。 初始值

17、 控制表的最右側(cè)一列顯示了EEPROM區(qū)域的出廠設(shè)置值和RAM區(qū)域中的數(shù)據(jù)每次上電時的初始值。 地址0x00 0x01 模型號碼,對于RX-28,這個值為0x001C(28)。 地址 0x02 硬件版本號 地址 0x03 ID ,為了辨別這些舵機,分配給它們唯一的ID號,在同一個網(wǎng)絡(luò)中不同的ID需要給每個舵機分配。 地址 0x04 波特率。決定通訊速率。這個計算由下列算式?jīng)Q定。 Speed = /(address4+1) 主要的幾個波特率對應(yīng)的數(shù)據(jù)值 地址 0x04hex設(shè)置波特率目標(biāo)波特率誤差10x01.0.00.0000%30x03.0.00.0000%40x04.0.00.0000%70

18、x07.0.00.0000%90x09.0.00.0000%160x10.1.0-2.1240%340x2257142.957600.00.7940%1030x6719230.819200.0-0.1600%2070xCF9615.49600.0-0.1600% 注意 最大波特率誤差不超過3%是在USART通訊的容忍范圍內(nèi)。 警告 波特率的初始設(shè)置值為34(57600bps) 地址 0x05 返回延時時間。舵機從收到指令包到返回狀態(tài)包所耗費的時間值。這個延時時間的值是決定于 2us*地址0x05的數(shù)值 。 地址 0x06 0x07 0x08 0x09 轉(zhuǎn)角極限。設(shè)置舵機的轉(zhuǎn)角范圍。目標(biāo)位置需要

19、在這個范圍以內(nèi): CW角度極限= 目標(biāo)角度= CCW角度值。如果目標(biāo)位置超出轉(zhuǎn)角極限規(guī)定的范圍就會產(chǎn)生一個角度越界錯誤。 地址 0x0B 最高極限溫度。舵機操作溫度的上限。如果舵機內(nèi)部溫度超過這個值,溫度過高位(狀態(tài)包的第2位)將要返回一個1,并且在地址17 、18出現(xiàn)一個警告。這個值是以攝氏度為單位。 地址0x0C,0x0D 最高和最低供電電壓。工作電壓的最低和最高極限。如果當(dāng)前電壓(地址42)超出指定的范圍,供電電壓錯誤(返回包的第0位)將會返回一個1,并且在地址17、18處產(chǎn)生一個警告,這個值是實際電壓的10倍。比如說,如果地址12的值為80,那么最低電壓極限設(shè)置為8V 。 地址 0x0

20、E 0x0F 0x22 0x23 最大扭矩。舵機的最大扭矩輸出。當(dāng)這個值被置為0的時候,舵機進(jìn)入自由轉(zhuǎn)動模式。定義這個最大值的位置有兩個地址;在EEPROM(地址0X0E,0X0F)和RAM(地址0X22,0X23)。當(dāng)電源剛供電時,EEPROM中定義的最大扭矩值被復(fù)制到RAM中的地址。舵機的扭矩輸出由RAM(地址0x22,0x23 )中的數(shù)值來限制。 地址 0x10 狀態(tài)返回等級。決定舵機是否在收到一個指令包后返回一個狀態(tài)包。 地址16返回狀態(tài)包0不對任何指令做應(yīng)答1只對READ_DATA指令做應(yīng)答2對任何指令都做應(yīng)答 在接收到一個應(yīng)用廣播地址的指令包的情況下,不管地址0x10是什么數(shù)值都不

21、返回狀態(tài)包。 地址 0x11 報警燈。如果相應(yīng)位置1,當(dāng)錯誤發(fā)生時,LED閃爍。 Bit返回狀態(tài)包Bit70Bit6如果置為1,指令錯誤時閃爍Bit5如果置為1,過載錯誤時閃爍Bit4原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS如果置為1,校驗和錯誤時閃爍Bit3如果置為1,范圍錯誤時閃爍Bit2如果置為1,過熱錯誤時閃爍Bit1如果置為1,角度極限越界錯誤時閃爍Bit0如果置為1,輸入電壓越界錯誤時閃爍 這個功能在進(jìn)行按位與運算后開始起作用。例如,當(dāng)這個值被設(shè)置為0x05,當(dāng)輸入電壓錯誤或者過熱錯誤發(fā)生時LED燈會閃爍。當(dāng)從一個錯誤的狀態(tài)返回到一個

22、正常的狀態(tài),LED將會閃爍2S后停止。地址 0x12 報警關(guān)閉。如果相應(yīng)位置1,當(dāng)錯誤發(fā)生時,舵機的扭矩將關(guān)閉。 Bit返回狀態(tài)包Bit70Bit6如果置為1,指令錯誤時扭矩關(guān)閉Bit5如果置為1,過載錯誤時扭矩關(guān)閉Bit4如果置為1,校驗和錯誤時扭矩關(guān)閉Bit3如果置為1,范圍錯誤時扭矩關(guān)閉Bit2如果置為1,過熱錯誤時扭矩關(guān)閉Bit1如果置為1,角度極限越界錯誤時扭矩關(guān)閉Bit0如果置為1,輸入電壓越界錯誤時扭矩關(guān)閉 這個功能在進(jìn)行按位與運算后開始起作用。但是,和報警LED不同的是,當(dāng)返回到一個正常的狀態(tài)后,它仍然處在扭矩關(guān)閉狀態(tài)。想要恢復(fù),就需要將扭矩開啟(地址0x18)復(fù)位為1。 地址

23、0x140x17 校準(zhǔn)。用于補償舵機中電位器誤差的數(shù)據(jù)。用戶不能改變這些數(shù)據(jù)。 以下(從地址0x18)是在RAM區(qū)域。 地址0x18 扭矩使能。當(dāng)是第一次供電時,舵機進(jìn)入自由運行狀態(tài)(扭矩為0)。設(shè)置在地址0x18中的這個值為1就開啟了扭矩。 地址 0x19 LED。當(dāng)置為1的時候LED點亮。反之,置為0 LED滅。 地址 0x1a0x1d 斜坡和邊緣順從性。舵機的順從性是由順從斜坡和邊緣來定義。這個特性可以吸收輸出軸的沖擊。下圖顯示了每一個符合值(A,B,C,D的長度)如何被位置誤差和施加的扭矩。地址0x1E 0x1F 目標(biāo)位置。舵機執(zhí)行器輸出將要移動到的期望位置。設(shè)置這個值到0x3ff將移

24、動這個輸出軸到300的位置。 地址0x20 0x21 轉(zhuǎn)動速度。設(shè)置輸出軸移動到目標(biāo)位置的角速度。設(shè)置這個最大值到0x3ff將使輸出達(dá)到最大的移動速度,這個最大速度的具體數(shù)值取決于電池電壓和舵機種類。(最低的速度是該值被置為1。當(dāng)它被置為0時,角速度將以電源電壓允許的最大速度移動。就像沒有速度控制被應(yīng)用于舵機。)地址0x24 0x25 當(dāng)前位置。當(dāng)前舵機輸出的角度位置。地址0x26 0x27 當(dāng)前速度。當(dāng)前舵機輸出的角速度。地址0x28 0x29 當(dāng)前負(fù)載。正在運行的舵機的負(fù)載大小。BIT10是負(fù)載的方向。地址 0x2A 當(dāng)前電壓。當(dāng)前舵機的供電電壓。這個值是實際電壓的10倍。例如,10V的電

25、壓用100(0x64)表示。地址 0x2B 當(dāng)前溫度。以攝氏度為單位的舵機當(dāng)前內(nèi)部溫度。地址 0x2C 注冊指令。當(dāng)一個指令被REG_WRITE分配后該地址的數(shù)值置為1。當(dāng)舵機原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS通過Action指令完成被分配的指令后該地址的數(shù)值被清零。地址 0x2E 正在轉(zhuǎn)動。當(dāng)舵機在電源的供應(yīng)下移動,該處置1地址 0x2F 鎖住。當(dāng)該處為1,只有0x18到0x23能夠被執(zhí)行寫操作,而其他地方不可以。一旦被鎖住,只能通過斷電解鎖。地址0x30 0x31 沖擊。電機工作時供應(yīng)的最小電流值。初始值為0x20而它的最大值是0x3f

26、f。無邊際旋轉(zhuǎn) 如果順時針角速度和逆時針角速度都置為0,一個無限旋轉(zhuǎn)模式將會通過設(shè)置目標(biāo)速度來實施。這種特性可以用來實施一個持續(xù)旋轉(zhuǎn)的車輪。目標(biāo)速度設(shè)置 位1511109876543210值0旋轉(zhuǎn)方向速度值范圍 每個數(shù)據(jù)都有一個合理的最大和最小值。寫指令時超出這些合理范圍將會導(dǎo)致返回一個錯誤。以下的表格總結(jié)了各個寄存器的數(shù)據(jù)范圍。16位數(shù)據(jù)寄存器表明兩個字節(jié)。兩個字節(jié)需要在一個數(shù)據(jù)包中同時被寫入。4 指令設(shè)置和示例以下為可用的指令指令功能值參數(shù)數(shù)量PING無動作,用于獲取一個狀態(tài)返回包0x010READ DATA讀取控制表的數(shù)值0x022WRIT原文出處及作者:Dynamixel RX-28

27、Users Manual ROBOTISE DATA向控制表寫數(shù)據(jù)0x032REG WRITE同WRITE_DATA很相似,但是保持在待機模式直到給出ACTION指令0x042ACTION出發(fā)被REG_WRITE指令注冊的指令0x050RESET將控制表的所有值恢復(fù)到出廠設(shè)置值0x060SYNC WRITE用于在同一時間控制多個舵機0x8344-1 WRITE_DATA功能: 向舵機的控制表中寫數(shù)據(jù)。長度: N+3(N是需要向控制表中的數(shù)據(jù)個數(shù))指令: 0x03參數(shù)1: 需要被寫數(shù)據(jù)的存儲器首地址。參數(shù)2: 將要寫的第一個數(shù)據(jù)。參數(shù)3: 將要寫的第二個數(shù)據(jù)。參數(shù)N+1: 將要寫的第N個數(shù)據(jù)。例

28、1 : 設(shè)置一個連接的舵機ID為1 向控制表的地址3寫入數(shù)據(jù)1。這個ID通過廣播地址0xfe來傳輸。指令a 指令包:0XFF 0XFF 0XFE 0X04 0X03 0X03 0X01 0XF6校驗和參數(shù)a長度aID 4-2 READ_DATA功能: 從控制表中讀取數(shù)據(jù)。長度: 0x04指令: 0x02參數(shù)1: 需要被讀出數(shù)據(jù)的存儲器首地址。參數(shù)2: 原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS 將要讀取數(shù)據(jù)的長度。例2 : 讀取一個ID為1的舵機的內(nèi)部溫度。 讀取控制表地址0x2B的1個字節(jié)。 指令包:0XFF 0XFF 0X01 0X04 0X0

29、2 0X2B 0X01 0XCC參數(shù)a指令a長度aID校驗和 返回狀態(tài)包如下所示:錯誤長度aID校驗和參數(shù)a 狀態(tài)包:0XFF 0XFF 0X01 0X03 0X00 0X20 0XDB 讀取的值為0x20 。所以當(dāng)前舵機的內(nèi)部溫度為大約為32(0x20)。4-3 REG_WRITE 和 ACTION 4-3-1 REG_WRITE功能: REG_WRITE指令和WRITE_DATA指令很相似,但是執(zhí)行時間卻不同。當(dāng)指令包被接收時這些值被存在緩存區(qū)中并且寫操作處于待機模式。這時,注冊指令寄存器(地址0x2C)被置為1。當(dāng)Action指令包被接收,已經(jīng)寄存的寫指令將被最終被執(zhí)行。長度: N+3(

30、N是需要向控制表中的數(shù)據(jù)個數(shù))指令: 0x04參數(shù)1: 需要被寫數(shù)據(jù)的存儲器首地址。參數(shù)2: 將要寫的第一個數(shù)據(jù)。參數(shù)3: 將要寫的第二個數(shù)據(jù)。參數(shù)N+1: 將要寫的第N個數(shù)據(jù)。4-3-2 ACTION功能: 觸發(fā)被REG_WRITE指令寄存的動作。長度: 0x02指令: 0x05參數(shù): NONE。 這個ACTION指令在多個舵機需要同時動作的場合很有用。當(dāng)控制多個舵機時,從第一個舵機收到到最后一個接收到指令會出現(xiàn)稍微的時間延遲。所以,Dynamxiel系列舵機通過ACTION指令解決這個問題。廣播 ACTION指令用廣播ID(0Xfe)來給多于兩個的舵機發(fā)送指令。注意這個操作不會返回任何數(shù)據(jù)

31、包。 4-4 PING功能: 不產(chǎn)生任何操作,只是為了返回一個數(shù)據(jù)包或者檢查特定ID的舵機的存在。長度: 0x02指令: 0x01原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS參數(shù): NONE。例3 : 讀取一個ID為1的舵機的狀態(tài)包。 指令包:0XFF 0XFF 0X01 0X02 0X01 0XFB 指令a長度aID校驗和 返回狀態(tài)包如下所示:錯誤長度aID 狀態(tài)包:0XFF 0XFF 0X01 0X02 0X00 0XRC校驗和 不管是否廣播地址被使用或者狀態(tài)返回級別(地址16)是0,PING指令總會返回一個狀態(tài)包。4-5 RESET功能: 控制

32、表中數(shù)據(jù)恢復(fù)出廠設(shè)置。長度: 0x02指令: 0x06參數(shù): NONE。例4 : 復(fù)位一個ID為0的舵機。 指令包:0XFF 0XFF 0X00 0X02 0X06 0XF7 校驗和指令a長度aID 返回狀態(tài)包如下所示:錯誤長度aID 狀態(tài)包:0XFF 0XFF 0X00 0X02 0X00 0XFD校驗和 注意復(fù)位操作后舵機的ID已經(jīng)改變?yōu)?。4-6 .SYNC WRITE功能: 用于在同一時間控制多個舵機。由于多個指令可以用一個指令來代替,所以通訊時間會減少。但是,只有在要寫的控制表數(shù)據(jù)的長度和地址都相同時才可以用這個指令。并且,傳輸時需要用到廣播地址。ID: 0xFE長度: ( L+1

33、)*N+4 (L:每個舵機的數(shù)據(jù)長度,N:舵機的數(shù)量)指令: 0x83參數(shù)1: 需要寫數(shù)據(jù)的首地址。參數(shù)2: 需要寫的數(shù)據(jù)的長度。參數(shù)3: 第一個原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS舵機執(zhí)行器的ID。第一個舵機數(shù)據(jù)參數(shù)4: 第一個舵機的第一個數(shù)據(jù)。參數(shù)5: 第一個舵機的第二個數(shù)據(jù)。 參數(shù)L+3: 第一個舵機的第L個數(shù)據(jù)。參數(shù)L+4: 第二個舵機執(zhí)行器的ID。第二個舵機數(shù)據(jù)參數(shù)L+5: 第二個舵機的第一個數(shù)據(jù)。參數(shù)L+6: 第二個舵機的第二個數(shù)據(jù)。 參數(shù)2L+4: 第二個舵機的第L個數(shù)據(jù)。例5 : 設(shè)置以下的四個舵機位置和角速度。 ID為0的舵

34、機:位置0x010速度0x150 ID為1的舵機:位置0x220速度0x360 ID為2的舵機:位置0x030速度0x170 ID為3的舵機:位置0x220速度0x380 指令包:0XFF 0XFF 0XFE 0X18 0X83 0X1E 0X04 0X00 0X10 0X00 0X50 0X01 0X01 0X20 0X02 0X60 0X03 0X02 0X30 0X00 0X70 0X01 0X03 0X20 0X02 0X80 0X03 0X12 由于使用了廣播地址所以沒有狀態(tài)包返回。 5 示例 為了下面的這個例子,我們假設(shè)一個在復(fù)位狀態(tài)的ID為1的舵機,并且它的波特率為57142bp

35、s示例6 讀取ID為1的舵機的模型號碼和版本號。 指令包 指令= READ_DATA 地址= 0x00 長度= 0x03 通訊 發(fā)送:FF FF 01 04 02 00 03 F5 (LEN:008) 接收:FF FF 01 05 00 1C 00 08 D5 (LEN:009) 狀態(tài)包結(jié)果 模型號 = 28(0x1C)(針對RX-28舵機) 版本號 = 0x08 示例7 把一個ID為1的舵機ID改為0。 指令包 指令= WRITE_DATA 地址= 0x03 數(shù)據(jù)= 0x00 通訊 發(fā)送:FF FF 01 04 03 03 00 F4 (LEN:008) 接收:FF FF 01 02 00

36、FC (LEN:006) 狀態(tài)包結(jié)果 無原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS錯誤 示例8 把一個舵機的波特率改為1Mbps。 指令包 指令= WRITE_DATA 地址= 0x04 數(shù)據(jù)= 0x01 通訊 發(fā)送:FF FF 00 04 03 04 01 F5 (LEN:008) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤示例9 把一個ID為0的舵機返回延遲時間復(fù)位為4微秒。 返回時間值1對應(yīng)于2微秒 指令包 指令= WRITE_DATA 地址= 0x05 數(shù)據(jù)= 0x02 通訊 發(fā)送:FF FF 00 0

37、4 03 05 02 F1 (LEN:008) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤 強烈建議將返回延遲時間調(diào)整到主控器能允許的最小時間。示例10 把一個ID為0的舵機工作角度范圍限制在0150。 由于CCW角度限制0x3ff對應(yīng)于300,150就對應(yīng)于0x1ff 。 指令包 指令= WRITE_DATA 地址= 0x08 數(shù)據(jù)= 0xff,0x01 通訊 發(fā)送:FF FF 00 05 03 08 FF 01 EF (LEN:009) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤示例11 把一個ID為0的舵機工作最

38、高溫度改為80。 指令包 指令= WRITE_DATA 地址= 0x0B 數(shù)據(jù)= 0x50 通訊 發(fā)送:FF FF 00 04 03 0B 50 9D (LEN:008) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤示例12 把一個ID為0的舵機工作電壓范圍限制在10V17V。 10V用100表示,17V用170表示 。 指令包 指令= WRITE_DATA 地址= 0x0C 數(shù)據(jù)= 0x64,0xAA 通訊 發(fā)送:FF FF 00 05 03 0C 64 AA DD (LEN:009) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)

39、果 無錯誤示例13 把一個ID為0的舵機最大扭矩調(diào)整為其最大可能值的50%。 設(shè)置位于ROM區(qū)域最大扭矩值為0x1ff,這個數(shù)值是最大值0X3FF的50%。 指令包 指令= WRITE_DATA 地址= 0x0E 數(shù)據(jù)= 0xff,0x01 通訊 發(fā)送:FF FF 00 05 03 0E FF 01 E9 (LEN:009) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤原文出處及作者:Dynamixel RX-28 Users Manual ROBOTIS示例14 把一個ID為0的舵機永不返回狀態(tài)包。 指令包 指令= WRITE_DATA 地址= 0x10

40、數(shù)據(jù)= 0x00 通訊 發(fā)送:FF FF 00 04 03 10 00 E8 (LEN:008) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤 在這個指令之后就不會再返回狀態(tài)包。示例15 設(shè)置當(dāng)工作溫度超過設(shè)定限制時報警LED閃爍并且關(guān)閉舵機扭矩。 由于過熱位是第二位,所以設(shè)置報警值為0x04 。 指令包 指令= WRITE_DATA 地址= 0x11 數(shù)據(jù)= 0x04,0x04 通訊 發(fā)送:FF FF 00 05 03 11 04 04 DE (LEN:009) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤示例16 把一

41、個ID為0的舵機開啟LED并且使能扭矩。 指令包 指令= WRITE_DATA 地址= 0x18 數(shù)據(jù)= 0x01,0x01 通訊 發(fā)送:FF FF 00 05 03 18 01 01 DD (LEN:009) 接收:FF FF 00 02 00 FD (LEN:006) 狀態(tài)包結(jié)果 無錯誤 你可以用手旋轉(zhuǎn)舵機輸出軸來鑒別扭矩使能狀態(tài)。示例17 把一個ID為0的舵機的服從邊緣設(shè)置為1,服從斜線為0x40。服從性 下圖可以表示出角度偏差和扭矩輸出的對應(yīng)關(guān)系 即使在順時針方向偏離目標(biāo)位置一點點,也會在逆時針方向產(chǎn)生一個很大的扭矩來彌補,但是由于必須考慮慣性,這種方法和實際情況不同。考慮如此,在給定的條件下,可以表示為如下圖。 A: 逆時針符合斜坡(地址0x1D)= 0x40(大約18.8) B: 逆時針符合邊緣(地址0x1B)= 0x01(大約0.29) C: 逆時針符合斜坡(地址0x1A)= 0x01(大約0.29)D: 逆時針符

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論