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_DATA4-2READ_DATA4-3REGWRITEandACTION4-4PING4-5RESET4-6SYNCWRITE5示例附录1DynamixelRX-281-1RX-28概述及特点DynamixelRX-28Dynamixel系列机器人执行器是一个聪明的、模块化的驱动器。它将一个齿轮减速装置、一个高精密直流电机和一个具有联网功能的控制电路集于一个单一封装中。尽管它体积比较小,但是它可以产生很大的扭矩。它由高品质的材料制成用于提供必要的强度和能够忍受大的外力的结构韧性。它也有检测诸如内部温度和电源电压的变化并采取相应应对措施的能力。精密控制舵机位置和转动速度是可以用1024步的分辨率进行控制服从驱动服从的等级可以调节并且可以指定在控制位置。1反馈具有角位移、角速度和负载转矩的反馈。报警系统当参数偏离用户定义范围后(比如内部温度、扭矩电压等等),Dynamixel系列机器人执行器可以报警给用户,并且也可以自动处理这些问题(比如关闭扭矩)。通讯类似链条的连接使得接线容易,支持最高1Mbps的通讯速度。分布式控制位置、速度、遵从程度和扭矩可以用一个命令包进行设置。这样就可以使主控器利用很少的资源就可以控制很多个Dynamixel单元。工程塑料舵机的主体是由高质量的工程塑料制成,使得它可以承受很高的扭矩负载。轴轴承输出轴用轴承用于保证在高的外界负载下没有效率丢失。状态指示灯这个LED可以向用户指示错误状态。框架一个铰链框架和侧装框架支持选项1-2主要规格和性能RX-28重量(g)72齿轮减速比1/193输入电压(V)At12VAt16V最大堵转扭矩(kgf.cm)28.337.7Sec/60degree0.1670.126最小精度:0.3°1原文出处及作者:DynamixelRX-28User’sManualROBOTIS工作角度:300°,无边界旋转电压:12V–16V最大电流:1200mA工作温度:-5℃-+85℃命令信号:数据包格式协议类型:RS485异步串行通讯(8数据位,1停止位,无校验位)连接:RS485多路总线ID:254ID通讯速度:7343bps~1Mbps反馈:位置,温度,负载,输入电压等材料:全金属齿轮,工程塑料电机:MaxonRE-MAX2Dynamixel操作2-1机械装配选项框2-2连接器装配连接器的组装如下图所示,用正确的压线工具将电线和接头连接到一起,如果你没有工具就将电线头和接头焊接到一起以保证在使用时不会松动。2-3Dynamixel接线引脚分配连接头的引脚分配如下所示。两个连接头是引脚对应连接的,所以只要2接上一个连接头就可以操作RX-28。(注意:连接头边缘切掉一段的针脚号是PIN1)接线按照下图所示将RX-28执行器针脚对针脚连接起来。许多RX-28执行可以按照如下所示组成单个总线来控制。2原文出处及作者:DynamixelRX-28User’sManualROBOTIS主控器为了操作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通讯协议3-1通讯概述数据包主控器通过发送数据包和接收数据包和舵机单元通讯。有两种类型的数据包,指令包(主控器发送给舵机单元),状态包(舵机发送给主控器)。3原文出处及作者:DynamixelRX-28User’sManualROBOTIS通讯如下所示连接,如果主控器发送一个ID为N的指令包,只有ID为这个值的舵机单元会发送检查状态包给主机并且执行相应的指令。唯一的ID如果多个舵机拥有同样的ID,同时发送多个数据包就会发生碰撞,造成通讯问题,因此,确保没有相同ID的舵机连接在同一个网络中就至关重要。协议舵机执行器通过拥有8位数据位,1位停止位和无校验的异步串行通讯协议通讯。3-2指令包指令包是主控器发送给舵机单元命令的数据包。指令包的结构如下所示指令包0XFF0XFFIDLENGTHINSTRUCTIONARAMETER1……PARAMETERNCHECKSUM0XFF0XFF两个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。LENGTH4数据包长度值为:参数个数+2ERROR舵机发出的表示错误类型的字节。每个位的意义如下所示:位名字细节Bit70Bit6指令错误如果一个没有定义的指令被发送或者一个4原文出处及作者:DynamixelRX-28User’sManualROBOTISAction指令被发送却没有一个REG_WRITE指令,这些情况下该位都会置为1Bit5过载错误如果指定的最大负载都不能控制这个外部负载该位就会置为1Bit4校验错误如果指令包的校验和不正确该位就会置为1Bit3范围错误如果发送的指令超出定义范围该位就会置为1Bit2过热错误如果内部温度超过控制表中定义的温度时就会该位置为1Bit1角度限制错误如果目标位置超过CWAngle和CCWAngle限定的范围,该位就会置为1Bit0输入电压错误如果工作电压超过了控制表中定义的电压范围,该位就会置为1Parameter0..N用于需要加5入附加信息的场合。校验和校验和的计算方法如下所示:CheckSum=~(ID+Length+Instruction+Parameter1+….+ParameterN)如果计算的值超过255,最低八位的值将会被认为是CheckSum值。~是“按位取反”逻辑运算。3-4控制表地址项目访问初始值0(0x00)模型号码(L)RD28(0x1C)1(0x01)模型号码(H)RD0(0x00)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)5原文出处及作者:DynamixelRX-28User’sManualROBOTIS13(0x0D)最高电压RD,WR240(0xF0)14(0x0E)最大扭矩(L)RD,WR255(0XFF)15(0x0F)最大扭矩(H)RD,WR3(0x03)16(0x10)状态返回等级RD,WR2(0x02)17(0x11)报警灯RD,WR4(0x04)18(0x12)报警关闭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(0x1B)RD,WR0(0x00)28(0x1C)RD,WR32(0x20)29(0x1D)RD,WR32(0x20)30(0x1E)RD,WR[addr36]value31(0x1F)RD,WR[addr37]value32(0x20)RD,WR033(0x21)RD,WR034(0x22)RD,WR[addr14]value35(0x23)RD,WR[addr15]value36(0x24)RD?37(0x25)RD?38(0x26)RD?39(0x27)RD?40(0x28)RD?41(0x29)RD?42(0x2A)RD?43(0x2B)RD?44(60x2C)RD,WR0(0x00)45(0x2D)-0(0x00)46(0x2E)RD0(0x00)47(0x2F)RD,WR0(0x00)6原文出处及作者:DynamixelRX-28User’sManualROBOTIS18(0x30)RD,WR32(0x20)49(0x31)RD,WR0(0x00)控制表控制表包含关于状态和操作的信息。操作数字舵机就是通过向控制表写据来完成的,并且它的状态就是通过读取控制表的数值来实现。RAM和EEPROM任何刚开始上电的时候,RAM区域中的数据值都会被赋予缺省值。但是EEPROM区域中的数值却不改变,依然和上次断电时一样的数值。初始值控制表的最右侧一列显示了EEPROM区域的出厂设置值和RAM区域中的数据每次上电时的初始值。地址0x000x01模型号码,对于RX-28,这个值为0x001C(28)。地址0x02硬件版本号地址0x03ID,为了辨别这些舵机,分配给它们唯一的ID号,在同一个网络中不同的ID需要给每个舵机分配。地址0x04波特率。决定通讯速率。这个计算由下列算式决定。Speed=2000000/(address4+1)主要的几个波特率对应的数据值地址0x04hex设置波特率目标波特率误差10x011000000.01000000.00.0000%30x03500000.0500000.00.0000%40x04400000.0400000.00.0000%70x07250000.0250000.00.0000%90x09200000.0200000.00.0000%160x10117647.1115200.0-2.1240%340x2257142.957600.00.7940%1030x6719230.819200.0-0.1600%2070xCF9615.496