Dynamixel RX28舵机用户手册.docx

上传人:b****1 文档编号:2676634 上传时间:2023-05-04 格式:DOCX 页数:29 大小:125.31KB
下载 相关 举报
Dynamixel RX28舵机用户手册.docx_第1页
第1页 / 共29页
Dynamixel RX28舵机用户手册.docx_第2页
第2页 / 共29页
Dynamixel RX28舵机用户手册.docx_第3页
第3页 / 共29页
Dynamixel RX28舵机用户手册.docx_第4页
第4页 / 共29页
Dynamixel RX28舵机用户手册.docx_第5页
第5页 / 共29页
Dynamixel RX28舵机用户手册.docx_第6页
第6页 / 共29页
Dynamixel RX28舵机用户手册.docx_第7页
第7页 / 共29页
Dynamixel RX28舵机用户手册.docx_第8页
第8页 / 共29页
Dynamixel RX28舵机用户手册.docx_第9页
第9页 / 共29页
Dynamixel RX28舵机用户手册.docx_第10页
第10页 / 共29页
Dynamixel RX28舵机用户手册.docx_第11页
第11页 / 共29页
Dynamixel RX28舵机用户手册.docx_第12页
第12页 / 共29页
Dynamixel RX28舵机用户手册.docx_第13页
第13页 / 共29页
Dynamixel RX28舵机用户手册.docx_第14页
第14页 / 共29页
Dynamixel RX28舵机用户手册.docx_第15页
第15页 / 共29页
Dynamixel RX28舵机用户手册.docx_第16页
第16页 / 共29页
Dynamixel RX28舵机用户手册.docx_第17页
第17页 / 共29页
Dynamixel RX28舵机用户手册.docx_第18页
第18页 / 共29页
Dynamixel RX28舵机用户手册.docx_第19页
第19页 / 共29页
Dynamixel RX28舵机用户手册.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Dynamixel RX28舵机用户手册.docx

《Dynamixel RX28舵机用户手册.docx》由会员分享,可在线阅读,更多相关《Dynamixel RX28舵机用户手册.docx(29页珍藏版)》请在冰点文库上搜索。

Dynamixel RX28舵机用户手册.docx

DynamixelRX28舵机用户手册

DynamixelRX-28舵机用户手册

1摘要

1-1RX-28概述及特点

1-2主要规格

2Dynamixel操作

2-1机械组装

2-2连接器组装

2-3Dynamixel连线

3通讯协议

3-1通讯概述

3-2指令包

3-3状态包

3-4控制表

4指令设置和实例

4-1WRITE_DATA

4-2READ_DATA

4-3REGWRITEandACTION

4-4PING

4-5RESET

4-6SYNCWRITE

5示例

 

附录

 

1DynamixelRX-28

1-1RX-28概述及特点

DynamixelRX-28Dynamixel系列机器人执行器是一个聪明的、模块化的驱动器。

它将一个齿轮减速装置、一个高精密直流电机和一个具有联网功能的控制电路集于一个单一封装中。

尽管它体积比较小,但是它可以产生很大的扭矩。

它由高品质的材料制成用于提供必要的强度和能够忍受大的外力的结构韧性。

它也有检测诸如内部温度和电源电压的变化并采取相应应对措施的能力。

精密控制舵机位置和转动速度是可以用1024步的分辨率进行控制

 

服从驱动服从的等级可以调节并且可以指定在控制位置。

反馈具有角位移、角速度和负载转矩的反馈。

报警系统当参数偏离用户定义范围后(比如内部温度、扭矩电压等等),Dynamixel系列机器人执行器可以报警给用户,并且也可以自动处理这些问题(比如关闭扭矩)。

通讯类似链条的连接使得接线容易,支持最高1Mbps的通讯速度。

分布式控制位置、速度、遵从程度和扭矩可以用一个命令包进行设置。

这样就可以使主控器利用很少的资源就可以控制很多个Dynamixel单元。

工程塑料舵机的主体是由高质量的工程塑料制成,使得它可以承受很高的扭矩负载。

轴轴承输出轴用轴承用于保证在高的外界负载下没有效率丢失。

状态指示灯这个LED可以向用户指示错误状态。

框架一个铰链框架和侧装框架支持选项

1-2主要规格和性能

RX-28

重量(g)

72

齿轮减速比

1/193

输入电压(V)

At12V

At16V

最大堵转扭矩(kgf.cm)

28.3

37.7

Sec/60degree

0.167

0.126

 

最小精度:

0.3°

工作角度:

300°,无边界旋转

电压:

12V–16V

最大电流:

1200mA

工作温度:

-5℃-+85℃

命令信号:

数据包格式

协议类型:

RS485异步串行通讯(8数据位,1停止位,无校验位)

连接:

RS485多路总线

ID:

254ID

通讯速度:

7343bps~1Mbps

反馈:

位置,温度,负载,输入电压等

材料:

全金属齿轮,工程塑料

电机:

MaxonRE-MAX

 

2Dynamixel操作

2-1机械装配

选项框

 

2-2连接器装配

连接器的组装如下图所示,用正确的压线工具将电线和接头连接到一起,如果你没有工具

就将电线头和接头焊接到一起以保证在使用时不会松动。

2-3Dynamixel接线

引脚分配连接头的引脚分配如下所示。

两个连接头是引脚对应连接的,所以只要

接上一个连接头就可以操作RX-28。

(注意:

连接头边缘切掉一段的针脚号是PIN1)

接线按照下图所示将RX-28执行器针脚对针脚连接起来。

许多RX-28执行

可以按照如下所示组成单个总线来控制。

主控器为了操作Dynamixel执行器,主控器必须支持RS485串行通讯。

一个专有

控制器就可以控制,但是强烈建议使用CM-2PLUSDynamixel控制器。

串口连接为了控制数字舵机,主控器需要将自己的串行信号转换成485类型。

推荐的电路原理图如下所示。

 

主控器通过Molex3P的PIN1和PIN2给舵机供电。

(上面介绍的电路用

于解释485串行协议的用法,CM-2PLUS控制器已包含上述的电路,所以

数字舵机可以直接连接上它。

TTL电平的TXD、RXD数据信号的方向取决于DIRECTION485引脚的电平

,如下所示

当DIRECTION485为高电平:

TXD信号输出为D+、D-。

当DIRECTION485为低电平:

D+、D-输入转化为RXD。

RS485串口将多个舵机执行器连接到一个节点的多分枝方法是可以通过RS485串行通

讯实现的。

所以当控制这些舵机时,一个不允许在同一时间有多个传输的

总线协议是需要存在的。

 

警告当连接舵机线路时要确保引脚配置都正确。

当上电时要检查电流消耗。

个单独的舵机在待机模式下的电流不会大于50mA。

连接状态验证

当通电时,LED闪烁两次来确认已经连接。

检查当上述操作不成功时,就检查连接头连线是否正确还有电源的电压电流最大限

3通讯协议

3-1通讯概述

数据包主控器通过发送数据包和接收数据包和舵机单元通讯。

有两种类型的数据

包,指令包(主控器发送给舵机单元),状态包(舵机发送给主控器)。

通讯如下所示连接,如果主控器发送一个ID为N的指令包,只有ID为这个值

的舵机单元会发送检查状态包给主机并且执行相应的指令。

 

唯一的ID如果多个舵机拥有同样的ID,同时发送多个数据包就会发生碰撞,造成通讯问题,因此,确保没有相同ID的舵机连接在同一个网络中就至关重要。

协议舵机执行器通过拥有8位数据位,1位停止位和无校验的异步串行通讯协议通讯。

3-2指令包

指令包是主控器发送给舵机单元命令的数据包。

指令包的结构如下所示

指令包0XFF0XFFIDLENGTHINSTRUCTIONARAMETER1……PARAMETERNCHECKSUM

0XFF0XFF两个0XFF0XFF字节表明一个输入数据包的开始。

ID一个舵机的唯一ID,总共有254个可用的ID值,从0X00到0XFD

 

广播IDID为0XFE为广播地址,表示所有的连接的舵机单元,一个ID为这个值的数据包适用于所有连接的舵机,所以包含广播ID的数据包是不会返回任何状态数据包的。

长度数据包的长度,它的值为:

参数个数+2

指令舵机需要执行的指令。

参数。

N用于除了指令本身还需要发送附加信息的情况。

检验和校验和的计算方法如下所示:

CheckSum=~(ID+Length+Instruction+Parameter1+….+ParameterN)

如果计算的值超过255,最低八位的值将会被认为是CheckSum值。

~是“按位取反”逻辑运算。

3-3状态包(返回包)

状态包是舵机接收指令包后返回给主控器的应答包。

返回包的构成如下:

0XFF0XFFIDLENGTHERRORPARAMETER1PARAMETER2…PARAMETERNCHECKSUM

每个包内字节的意义如下所示:

0XFF0XFF数据包的开始。

ID返回数据包的舵机的唯一的ID。

初始缺省值是1。

LENGTH数据包长度值为:

参数个数+2

ERROR舵机发出的表示错误类型的字节。

每个位的意义如下所示:

名字

细节

Bit7

0

Bit6

指令错误

如果一个没有定义的指令被发送或者一个Action指令被发送却没有一个REG_WRITE指令,这些情况下该位都会置为1

Bit5

过载错误

如果指定的最大负载都不能控制这个外部负载该位就会置为1

Bit4

校验错误

如果指令包的校验和不正确该位就会置为1

Bit3

范围错误

如果发送的指令超出定义范围该位就会置为1

Bit2

过热错误

如果内部温度超过控制表中定义的温度时就会该位置为1

Bit1

角度限制错误

如果目标位置超过CWAngle和CCWAngle限定的范围,该位就会置为1

Bit0

输入电压错误

如果工作电压超过了控制表中定义的电压范围,该位就会置为1

Parameter0..N用于需要加入附加信息的场合。

校验和校验和的计算方法如下所示:

CheckSum=~(ID+Length+Instruction+Parameter1+….+ParameterN)

如果计算的值超过255,最低八位的值将会被认为是CheckSum值。

~是“按位取反”逻辑运算。

3-4控制表

地址

项目

访问

初始值

0(0x00)

模型号码(L)

RD

28(0x1C)

1(0x01)

模型号码(H)

RD

0(0x00)

2(0x02)

硬件版本号

RD

3(0x03)

ID

RD,WR

1(0x01)

4(0x04)

波特率

RD,WR

34(0x22)

5(0x05)

返回延时时间

RD,WR

250(0xFA)

6(0x06)

CW角度极限(L)

RD,WR

0(0x00)

7(0x07)

CW角度极限(H)

RD,WR

0(0x00)

8(0x08)

CCW角度极限(L)

RD,WR

255(0xFF)

9(0x09)

CCW角度极限(H)

RD,WR

3(0x03)

10(0x0A)

保留

-

0(0x00)

11(0x0B)

最高温度

RD,WR

85(0x55)

12(0x0C)

最低电压

RD,WR

60(0X3C)

13(0x0D)

最高电压

RD,WR

240(0xF0)

14(0x0E)

最大扭矩(L)

RD,WR

255(0XFF)

15(0x0F)

最大扭矩(H)

RD,WR

3(0x03)

16(0x10)

状态返回等级

RD,WR

2(0x02)

17(0x11)

报警灯

RD,WR

4(0x04)

18(0x12)

报警关闭

RD,WR

4(0x04)

19(0x13)

保留

RD,WR

0(0x00)

20(0x14)

RD

?

21(0x15)

RD

?

22(0x16)

RD

23(0x17)

RD

24(0x18)

RD,WR

0(0x00)

25(0x19)

RD,WR

0(0x00)

26(0x1A)

RD,WR

0(0x00)

27(0x1B)

RD,WR

0(0x00)

28(0x1C)

RD,WR

32(0x20)

29(0x1D)

RD,WR

32(0x20)

30(0x1E)

RD,WR

[addr36]value

31(0x1F)

RD,WR

[addr37]value

32(0x20)

RD,WR

0

33(0x21)

RD,WR

0

34(0x22)

RD,WR

[addr14]value

35(0x23)

RD,WR

[addr15]value

36(0x24)

RD

?

37(0x25)

RD

?

38(0x26)

RD

?

39(0x27)

RD

?

40(0x28)

RD

?

41(0x29)

RD

?

42(0x2A)

RD

?

43(0x2B)

RD

?

44(0x2C)

RD,WR

0(0x00)

45(0x2D)

-

0(0x00)

46(0x2E)

RD

0(0x00)

47(0x2F)

RD,WR

0(0x00)

18(0x30)

RD,WR

32(0x20)

49(0x31)

RD,WR

0(0x00)

控制表控制表包含关于状态和操作的信息。

操作数字舵机就是通过向控制表写

据来完成的,并且它的状态就是通过读取控制表的数值来实现。

RAM和EEPROM

任何刚开始上电的时候,RAM区域中的数据值都会被赋予缺省值。

但是EEPROM区域中的数值却不改变,依然和上次断电时一样的数值。

初始值控制表的最右侧一列显示了EEPROM区域的出厂设置值和RAM区域中的数据每次上电时的初始值。

地址0x000x01模型号码,对于RX-28,这个值为0x001C(28)。

地址0x02硬件版本号

地址0x03ID,为了辨别这些舵机,分配给它们唯一的ID号,在同一个网络中不同的ID需要给每个舵机分配。

地址0x04波特率。

决定通讯速率。

这个计算由下列算式决定。

Speed=2000000/(address4+1)

主要的几个波特率对应的数据值

地址0x04

hex

设置波特率

目标波特率

误差

1

0x01

1000000.0

1000000.0

0.0000%

3

0x03

500000.0

500000.0

0.0000%

4

0x04

400000.0

400000.0

0.0000%

7

0x07

250000.0

250000.0

0.0000%

9

0x09

200000.0

200000.0

0.0000%

16

0x10

117647.1

115200.0

-2.1240%

34

0x22

57142.9

57600.0

0.7940%

103

0x67

19230.8

19200.0

-0.1600%

207

0xCF

9615.4

9600.0

-0.1600%

注意最大波特率误差不超过3%是在USART通讯的容忍范围内。

警告波特率的初始设置值为34(57600bps)

地址0x05返回延时时间。

舵机从收到指令包到返回状态包所耗费的时间值。

这个延时时间的值是决定于2us*地址0x05的数值。

地址0x060x070x080x09

转角极限。

设置舵机的转角范围。

目标位置需要在这个范围以内:

CW角度极限<=目标角度<=CCW角度值。

如果目标位置超出转角极限规定的范围就会产生一个角度越界错误。

地址0x0B最高极限温度。

舵机操作温度的上限。

如果舵机内部温度超过这个值,温度过高位(状态包的第2位)将要返回一个1,并且在地址17、18出现一个警告。

这个值是以摄氏度为单位。

地址0x0C,0x0D

最高和最低供电电压。

工作电压的最低和最高极限。

如果当前电压(地址42)超出指定的范围,供电电压错误(返回包的第0位)将会返回一个1,并且在地址17、18处产生一个警告,这个值是实际电压的10倍。

比如说,如果地址12的值为80,那么最低电压极限设置为8V。

地址0x0E0x0F0x220x23

最大扭矩。

舵机的最大扭矩输出。

当这个值被置为0的时候,舵机进入自由转动模式。

定义这个最大值的位置有两个地址;在EEPROM(地址0X0E,0X0F)和RAM(地址0X22,0X23)。

当电源刚供电时,EEPROM中定义的最大扭矩值被复制到RAM中的地址。

舵机的扭矩输出由RAM(地址0x22,0x23)中的数值来限制。

地址0x10状态返回等级。

决定舵机是否在收到一个指令包后返回一个状态包。

地址16

返回状态包

0

不对任何指令做应答

1

只对READ_DATA指令做应答

2

对任何指令都做应答

在接收到一个应用广播地址的指令包的情况下,不管地址0x10是什么数值都不返回状态包。

地址0x11报警灯。

如果相应位置1,当错误发生时,LED闪烁。

Bit

返回状态包

Bit7

0

Bit6

如果置为1,指令错误时闪烁

Bit5

如果置为1,过载错误时闪烁

Bit4

如果置为1,校验和错误时闪烁

Bit3

如果置为1,范围错误时闪烁

Bit2

如果置为1,过热错误时闪烁

Bit1

如果置为1,角度极限越界错误时闪烁

Bit0

如果置为1,输入电压越界错误时闪烁

这个功能在进行按位与运算后开始起作用。

例如,当这个值被设置为0x05,当输入电压错误或者过热错误发生时LED灯会闪烁。

当从一个错误的状态返回到一个正常的状态,LED将会闪烁2S后停止。

地址0x12报警关闭。

如果相应位置1,当错误发生时,舵机的扭矩将关闭。

Bit

返回状态包

Bit7

0

Bit6

如果置为1,指令错误时扭矩关闭

Bit5

如果置为1,过载错误时扭矩关闭

Bit4

如果置为1,校验和错误时扭矩关闭

Bit3

如果置为1,范围错误时扭矩关闭

Bit2

如果置为1,过热错误时扭矩关闭

Bit1

如果置为1,角度极限越界错误时扭矩关闭

Bit0

如果置为1,输入电压越界错误时扭矩关闭

这个功能在进行按位与运算后开始起作用。

但是,和报警LED不同的是,当返回到一个正常的状态后,它仍然处在扭矩关闭状态。

想要恢复,就需要将扭矩开启(地址0x18)复位为1。

地址0x14~0x17

校准。

用于补偿舵机中电位器误差的数据。

用户不能改变这些数据。

以下(从地址0x18)是在RAM区域。

地址0x18扭矩使能。

当是第一次供电时,舵机进入自由运行状态(扭矩为0)。

设置在地址0x18中的这个值为1就开启了扭矩。

地址0x19LED。

当置为1的时候LED点亮。

反之,置为0LED灭。

地址0x1a~0x1d

斜坡和边缘顺从性。

舵机的顺从性是由顺从斜坡和边缘来定义。

这个特性可以吸收输出轴的冲击。

下图显示了每一个符合值(A,B,C,D的长度)如何被位置误差和施加的扭矩。

 

地址0x1E0x1F目标位置。

舵机执行器输出将要移动到的期望位置。

设置这个值到0x3ff将移动这个输出轴到300°的位置。

地址0x200x21转动速度。

设置输出轴移动到目标位置的角速度。

设置这个最大值到0x3ff将使输出达到最大的移动速度,这个最大速度的具体数值取决于电池电压和舵机种类。

(最低的速度是该值被置为1。

当它被置为0时,角速度将以电源电压允许的最大速度移动。

就像没有速度控制被应用于舵机。

地址0x240x25当前位置。

当前舵机输出的角度位置。

地址0x260x27当前速度。

当前舵机输出的角速度。

地址0x280x29当前负载。

正在运行的舵机的负载大小。

BIT10是负载的方向。

地址0x2A当前电压。

当前舵机的供电电压。

这个值是实际电压的10倍。

例如,10V的电压用100(0x64)表示。

地址0x2B当前温度。

以摄氏度为单位的舵机当前内部温度。

地址0x2C注册指令。

当一个指令被REG_WRITE分配后该地址的数值置为1。

当舵机通过Action指令完成被分配的指令后该地址的数值被清零。

地址0x2E正在转动。

当舵机在电源的供应下移动,该处置1

地址0x2F锁住。

当该处为1,只有0x18到0x23能够被执行写操作,而其他地方不可以。

一旦被锁住,只能通过断电解锁。

地址0x300x31

冲击。

电机工作时供应的最小电流值。

初始值为0x20而它的最大值是0x3ff。

无边际旋转如果顺时针角速度和逆时针角速度都置为0,一个无限旋转模式将会通过设置目标速度来实施。

这种特性可以用来实施一个持续旋转的车轮。

目标速度设置

15~11

10

9

8

7

6

5

4

3

2

1

0

0

旋转方向

速度值

范围每个数据都有一个合理的最大和最小值。

写指令时超出这些合理范围将会导致返回一个错误。

以下的表格总结了各个寄存器的数据范围。

16位数据寄存器表明两个字节。

两个字节需要在一个数据包中同时被写入。

 

4指令设置和示例

以下为可用的指令

指令

功能

参数数量

PING

无动作,用于获取一个状态返回包

0x01

0

READDATA

读取控制表的数值

0x02

2

WRITEDATA

向控制表写数据

0x03

2~

REGWRITE

同WRITE_DATA很相似,但是保持在待机模式直到给出ACTION指令

0x04

2~

ACTION

出发被REG_WRITE指令注册的指令

0x05

0

RESET

将控制表的所有值恢复到出厂设置值

0x06

0

SYNCWRITE

用于在同一时间控制多个舵机

0x83

4~

 

4-1WRITE_DATA

功能:

向舵机的控制表中写数据。

长度:

N+3(N是需要向控制表中的数据个数)

指令:

0x03

参数1:

需要被写数据的存储器首地址。

参数2:

将要写的第一个数据。

参数3:

将要写的第二个数据。

参数N+1:

将要写的第N个数据。

例1:

设置一个连接的舵机ID为1

向控制表的地址3写入数据1。

这个ID通过广播地址0xfe来传输。

指令包:

0XFF0XFF0XFE0X040X030X030X010XF6

 

4-2READ_DATA

功能:

从控制表中读取数据。

长度:

0x04

指令:

0x02

参数1:

需要被读出数据的存储器首地址。

参数2:

将要读取数据的长度。

例2:

读取一个ID为1的舵机的内部温度。

读取控制表地址0x2B的1个字节。

指令包:

0XFF0XFF0X010X040X020X2B0X010XCC

返回状态包如下所示:

状态包:

0XFF0XFF0X010X030X000X200XDB

 

读取的值为0x20。

所以当前舵机的内部温度为大约为32℃(0x20)。

4-3REG_WRITE和ACTION

4-3-1REG_WRITE

功能:

REG_WRITE指令和WRITE_DATA指令很相似,但是执行时间却不同。

当指

令包被接收时这些值被存在缓存区中并且写操作处于待机模式。

这时,注

册指令寄存器(地址0x2C)被置为1。

当Action指令包被接收,已经寄存

的写指令将被最终被执行。

长度:

N+3(N是需要向控制表中的数据个数)

指令:

0x04

参数1:

需要被写数据的存储器首地址。

参数2:

将要写的第一个数据。

参数3:

将要写的第二个数据。

参数N+1:

将要写的第N个数据。

4-3-2ACTION

功能:

触发被REG_WRITE指令寄存的动作。

长度:

0x02

指令:

0x05

参数:

NONE。

这个ACTION指令在多个舵机需要同时动作的场合很有用。

当控制多个舵

机时,从第一个舵机收到到最后一个接收到指令会出现稍微的时间延迟。

所以,Dy

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2