PROM.CDS5500-V1.0.3-YHSC (用户手册)

更新时间:2023-08-17 17:32:01 阅读量: 资格考试认证 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

博创兴盛机器人

UP-TECH Robotics.

部件使用指导

User’s Manual of Robotic Parts

机器人舵机CDS5500用户手册

ProMotion CDS Series User’s Manual 

 

文件编号:PROM.CDS5500-V1.0.2-YHSC 发布日期:2009-7-23发布 执行日期:2009-7-23执行 版本号: V1.0.2

文件修订记录:

版本号 V1.0.0

V1.0.1 V1.0.2

3 第一章 部件概述 ........................................................................................................................... 1.1产品特性 ....................................................................................................................................... 3 1.2结构尺寸 ....................................................................................................................................... 3 1.3电气连接 ....................................................................................................................................... 4 第二章 通信协议 ........................................................................................................................... 6 2.1通信协议概要 ............................................................................................................................... 6 2.2指令包 ........................................................................................................................................... 6 2.3 应答包 .......................................................................................................................................... 6 2.4 指令类型 ...................................................................................................................................... 7 第三章 内存控制表 ...................................................................................................................... 11 3.1 内存控制表 ................................................................................................................................ 11 3.2 电机调速模式 ............................................................................................................................ 14 第四章 示例 ................................................................................................................................. 15 附录 .............................................................................................................................................. 18 CDS5500电气原理框图 ..................................................................................................................... 18 控制器示例代码 ................................................................................................................................ 18

修订人 何裕德 徐俊辉 何裕德 何裕德

时间 2009-7-23 2009-7-25 2009-7-27 2009-8-05

拟制 审核 修改 修改

备注

用户手册 ProMotion CDS Series User’s Manual

————

第一章 部件概述

1.1产品特性

proMOTION CDS系列机器人舵机属于一种集电机、伺服驱动、总线式通讯接口为一体的集成伺服单元,主要用于微型机器人的关节、轮子、履带驱动,也可用于其他简单位置控制场合。CDS 5500的特点如下所示:

大扭矩:10Kgf cm的持续转动输出扭矩, 位置伺服控制模式下转动范围0-300°

大于20Kgf cm位置保持扭矩 可设置为电机模式整周旋转,开环调速 高转速:最高0.16s/60°输出转速 总线连接,理论可串联254个单元

高达1M通讯波特率 DC 6.5V~8.4V宽电压范围供电

0.32°位置分辨率 0.25KHz的伺服更新率 双端输出轴,适合安装在机器人关节 兼容Robotis Dynamixel通讯协议 高精度全金属齿轮组,双滚珠轴承 具备位置、温度、电压、反馈

连接处O型环密封,防尘防溅水

1.2结构尺寸

 

1.3电气连接

1.3.1 引脚定义

proMOTION CDS系列机器人舵机电气接口如下图,两组引脚定义一致的接线端子可将舵

机逐个串联起来。

 

1.3.2舵机通讯方式

CDS5500具备总线接口,理论多至254个机器人舵机可以通过总线组成链型,通过UART异步串行接口统一控制。每个舵机可以设定不同的节点地址,多个舵机可以统一运动也可以单个独立控制。

CDS5500的通讯指令集开放,通过异步串行接口与用户的上位机(控制器或PC机)连接,用户可对其设置、控制。通过异步串行接口发送指令,CDS5500可以设置为电机控制模式或位置控制模式。 在电机控制模式下,CDS5500可以作为直流减速电机,速度可调;在位置控制模式下,CDS5500拥有0-300°的转动范围,在此范围内具备精确位置控制性能,速度可调。

只要符合协议的半双工UART异步串行接口都可以和CDS5500进行通讯,对CDS5500进行各

种控制。主要有以下两种形式:

方式1:通过调试器控制CDS5500

PC机会将调试器识别为串口设备,上位机软件通过串口发出符合协议格式的数据包,经调试器转发给CDS5500。CDS5500会执行数据包的指令,并且返回应答数据包。CDS Series Debuger是博创推荐调试软件,用户也可根据本手册提供的协议设计专用的PC端软件。 方式2:通过专用控制器控制CDS5500

方式1可以快捷地调试CDS系列机器人舵机、修改各种性能与功能参数。但是,这种方式离不开PC机,不能搭建独立的机器人构型。用户可以设计专用的控制器,通过控制器的UART端口控制舵机,1.3.3小节给出了控制器UART接口原理图,附录给出了控制器的示例代码。

1.3.3 UART接口原理图

CDS系列机器人舵机用程序代码对UART异步串行接口进行时序控制,实现半双工异步串行总线通讯,通讯速度可高达1Mbps,且接口简单、协议精简。

在用户自行设计的控制器中,用于和CDS5500通讯的UART接口必须如下图所示进行处理。

 

用户手册 ProMotion CDS Series User’s Manual

————

第二章 通信协议

2.1通信协议概要

控制器和舵机之间采用问答方式通信,控制器发出指令包,舵机返回应答包。 一个网络中允许有多个舵机,所以每个舵机都分配有一个ID号。控制器发出的控制指令中包含ID信息,只有匹配上ID号的舵机才能完整接收这条指令,并返回应答信息。

通信方式为串行异步方式,一帧数据分为1位起始位,8位数据位和1位停止位,无奇偶校验位,共10位。

2.2指令包

指令包格式:

字头 0XFF 0XFF

ID号 ID

数据长度Length

指令 Instruction

参数

Parameter1 ...Parameter N

校验和 Check Sum

字头:连续收到两个0XFF ,表示有数据包到达。

ID: 每个舵机都有一个ID号。ID号范围0~253,转换为十六进制0X00~0XFD。 广播ID: ID号254为广播ID,若控制器发出的ID号为254(0XFE),所有的舵机均接收指令,但都不返回应答信息。

数据长度:等于待发送的参数长度N加上2,即“N+2”。 参数:除指令外需要补充的控制信息。

校验和:校验和Check Sum,计算方法如下:

Check Sum = ~ (ID + Length + Instruction + Parameter1 + ... Parameter N) 若括号内的计算和超出255,则取最低的一个字节,“~”表示取反。

2.3 应答包

2.3.1 应答包格式

应答包是CDS5500对控制器的应答,应答包格式如下:

字头 0XFF 0XFF

ID ID

数据长度 当前状态Length

ERROR

参数

Parameter1 ...Parameter N

校验和 Check Sum

返回的应答包包含舵机的当前状态ERROR,若舵机当前工作状态不正常,会通过这个字节反映出来,每一位的代表的信息如下:

BIT BIT7 BIT6

名称 0 指令错误

详细 ---

如果收到一个未定义的指令或收到ACTION前未收到REG WRITE指令置1

BIT5 BIT4 BIT3 BIT2 BIT1 BIT0

过载 校验和错

指令超范围 过热 角度超范围 过压欠压

位置模式运行时输出扭矩小于负载置1

校验和错误置1 指令超过指定范围置1 温度超过指定范围置1 角度超过设定范围置1 电压超过指定范围置1

若ERROR为0,则舵机无报错信息。

若指令是读指令READ DATA,则Parameter1 ...Parameter N是读取的信息。 其他数据的含义和指令包一样。

2.3.2 应答时间

理论上CDS5500收到指令包后会立即应答,但由于有时会被运动控制任务中断,所以返回时间可能长达850us,如下图:

 主控制器可根据上图,设置合适的等待时间。 建议大于等于1ms。

2.4 指令类型

可用指令如下:

指令 PING(查询) READ DATA(读) WRITE DATA(写) REG WRITE(异步写) ACTION(执行异步写)

RESET(复位) SYNC WRITE(同步写)

功能 查询工作状态 查询控制表里的字符 往控制表里写入字符

类似于WRITE DATA,但是控制字符写入后并不马上动作,直到ACTION指令到达

触发REG WRITE写入的动作 把控制表复位为出厂值 用于同时控制多个CDS5500

值 0x01 0x02 0x03 0x04 0x05 0x06 0x83

参数长度

0 2 不小于2 不小于2 0 0 不小于4

2.4.1 写指令WRITE DATA

功能 长度 指令

写数据到CDS5500的控制表 N+3 (N为写入数据的长度) 0X03

数据写入段的首地址

参数1

参数3 参数N+1

第二个数据 第N个数据

例1 把一个任意编号的CDS5500的ID设置为1。

在控制表里保存ID号的地址为3(控制表见后文),所以在地址3处写入1即可. 发送指令包的ID使用广播ID (0xFE)。

指令帧: 0XFF 0XFF 0XFE 0X04 0X03 0X03 0X01 0XF6

字头 0XFF 0XFF

ID 0XFE

有效数据长度

0X04

指令 0X03

参数 0X03 0X01

校验和0XF6

因为采用广播ID发送指令,所以不会有数据返回 校验和的计算方法如下:

Check Sum = ~ (ID + Length + Instruction + Parameter1 + ... Parameter N) 若计算的和超出255,则取最低的一个字节,“~”表示取反。

2.4.2 读指令READ DATA

功能 长度

从CDS5500的控制表里读出数据 0X04 0X02

数据读出段的首地址 读取数据的长度

指令 参数1 参数2

例2 读取ID为1的CDS5500的内部温度。

在控制表里从地址0X2B处读取一个字节。

指令帧:0XFF 0XFF 0X01 0X04 0X02 0X2B 0X01 0XCC

字头 0XFF 0XFF 字头 0XFF 0XFF

ID 0X01 ID 0X01

有效数据长度

0X04 有效数据长度

0X03

指令 0X02 工作状态0X00

参数 0X2B 0X01 参数 0X20

校验和0XCC 校验和0XDB

返回的数据帧: 0XFF 0XFF 0X01 0X03 0X00 0X20 0XDB

读出的数据是0x20,说明当前的温度约是32℃(0x20)。

2.4.3异步写指令REG WRITE

REG WRITE指令相似于 WRITE DATA,只是执行的时间不同。当收到REG WRITE指令帧时,把收到的数据储存在缓冲区备用,并把Registered Instruction寄存器(Address 0x2c)置1。当收到ACTION指令后,储存的指令最终被执行。

长度 指令 参数1 参数2 参数3

N+3 (N 为要写入数据的个数) 0X04

数据要写入区的首地址 要写入的第一个数据 要写入的第二个数据

2.4.4 执行异步写指令ACTION

功能 长度 指令 参数

触发REG WRITE指令 0X02 0X05 无

ACTION 指令在同时控制多个CDS5500时非常有用。 在控制多个独立的CDS5500时,使用ACTION指令可以使第一个和最后一个CDS5500同时执行各自的动作,中间无延时。

对多个CDS5500发送ACTION指令时,要用到广播ID(0xFE),因此,发送此指令不会有数据帧返回。

2.4.5 查询状态指令PING

功能 长度 指令 参数

读取CDS5500的工作状态 0X02 0X01 无

例3 读取ID号为1的CDS5500的工作状态

指令帧:0XFF 0XFF 0X01 0X02 0X01 0XFB`

字头 0XFF 0XFF 字头 0XFF 0XFF

ID 0X01 ID 0X01

有效数据长度

0X02 有效数据长度

0X02

指令 0X01 工作状态0X00

校验和0XFB 校验和0XFC

返回的数据帧: 0XFF 0XFF 0X01 0X02 0X00 0XFC

不管是广播ID还是Return Level (Address 16)等于0,只要发送PINE指令且校验和正确,都会返回舵机工作状态。

2.4.6 复位指令RESET

功能 指令 参数

把控制表里的数据复位为出厂值 0X02 无

长度

0X06

例4 复位CDS5500,ID号为0。

指令帧:0XFF 0XFF 0X00 0X02 0X06 0XF7`

字头 0XFF 0XFF

ID 0X00

有效数据长度

0X02

指令 0X06

校验和0XF7

返回的数据帧:0XFF 0XFF 0X00 0X02 0X00 0XFD

字头 0XFF 0XFF

ID 0X00

有效数据长度

0X02

工作状态0X00

校验和0XFD

2.4.7同步写指令SYNC WRITE

功能

用于同时控制多个CDS5500。

ID       0XFE

长度 (L + 1) * N + 4 (L: 发给每个CDS5500的数据长度, N: CDS5500的个数) 指令

0X83

参数1 写入数据的首地址 参数2 写入的数据的长度(L) 参数3 第一个CDS5500的ID号

参数4 写入第一个CDS5500的第一个数据 参数5 写入第一个CDS5500的第二个数据 ...

参数 L+3 写入第一个CDS5500的第L个数据 参数 L+4 第二个CDS5500的ID号

参数 L+5 写入第二个CDS5500的第一个数据 参数 L+6 写入第二个CDS5500的第二个数据 …

参数 2L+4 写入第二个CDS5500的第L个数据 ….

不同于REG WRITE+ACTION指令的是实时性比它更高,一条SYNC WRITE指令可一次修改多个CDS5500的控制表内容,而REG WRITE+ACTION指令是分步做到的。 尽管如此,使用SYNC WRITE指令时,写入的数据长度和保存数据的首地址必须相同即必须执行相同的动作。 例5 对4个CDS5500写入如下的位置和速度

ID0: 位置:0X010;速度:0X150 ID1: 位置:0X220;速度:0X360 ID2: 位置:0X030;速度:0X170 ID4: 位置: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

字头 0XFF 0XFF

ID 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

因为采用广播ID发送指令,所以不会有数据返回

用户手册 ProMotion CDS Series User’s Manual

———— 第三章 内存控制表

3.1 内存控制表

机器人舵机本身的信息和控制参数形成了一张表,保存在其控制芯片的RAM和EEPROM区域。我们通过实时修改表里的内容,可以达到实时控制舵机的目的。这张表称为内存控制表,内容如下:

命令,其范围为0x00—0xff。

保存在RAM里的参数掉电后不会保存,保存在EEPROM里的参数,掉电后可以保存。“ -- ”表示用户可以不去关心的参数的地址。

需要说明的参数地址如下: 0x03:

保存舵机的ID号。

0x04:

保存波特率,默认为1M,不建议修改。

0x06~0x09:

设置舵机可运行的角度范围,顺时针角度限制≤目标角度值≤逆时针角度限制值,注意,顺时针角度限制值必须小于逆时针角度限制值。若角度超过范围,则强行限制目标角度等于范围边界值,且舵机状态位的角度超范围标志会置1。

设置舵机的最大输出力矩。 0x10:

应答级别,设置舵机接收到数据后是否返回数据,

地址16 0 1 2

返回应答包 对所有的指令都不返回 只对读指令返回 对所有指令返回

0x12:

设置卸载条件

BIT BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0

功能 0

如果设置为1,则发生指令错误时卸载

如果设置为1,则过载时卸载 如果设置为1,则发生校验和错误时卸载 如果设置为1,则发生指令超范围时卸载 如果设置为1,则发生过热时卸载 如果设置为1,则发生超过角度时卸载 如果设置为1,则发生超过电压范围时卸载

以上若同时发生,遵行逻辑或的原则。 0x18:

力矩输出开关,“1”开,“0”关。 0x1A~0x1D:

位置环P、I、D参数和不灵敏区半径,此部分参数保存在EEPROM,调试好后可保存。推荐参数:P=32,I=0;D=2,R=2;

0x1E~0x1F:

命令舵机运行至的位置,范围0x0000—0x03ff,0x0000对应0度,0x03ff对应300度,偏差±2%; 0x20~0x21:

设置舵机运行至目标位置的速度。电源电压8.4V时,设置为0x3ff,对应与CDS5500的最大速度63RPM; 0x22~0x2E:

舵机的运行状态,只能读不能写; 0x2C:

若有REG WRITE指令等待执行,则显示为1,当REG WRITE指令执行完毕后显示为0; 0x2E:

若舵机正在运行中显示为1,反之显示为0; 0x2F:

锁功能位。若该位设置为1,则只有0x18~0x23可以被修改,其他位置被锁住不能修改。一旦锁功能生效,必须掉电后该功能方才失效。

位置闭环时,舵机运行的加速度和减速度,范围0~255。推荐值:加速度32;减速度32.

3.2 电机调速模式

CDS系列机器人舵机可以切换为电机调速模式,可用于轮子、履带等周转的执行机构上。 把顺时针角度限制和逆时针角度限制(0x06~0x09)都设置为0,再给一个速度(0x20~0x21),舵机就以电机调速模式转动起来。速度有大小和方向的控制方式,如下表所示: BIT VALUE

11~15 0

10 0/1

9

8

7

6

5

4

3

2

1

SPEED VALUE

地址0x20~0x21:BIT10是方向位,为0逆时针转动,为1顺时针转动。BIT0~BIT9为大小。

用户手册 ProMotion CDS Series User’s Manual

———— 第四章 示例

z 例1: 把ID号为1的舵机改为0

指令 = WRITE DATA;地址 = 0X03; 数据 = 0x00 指令包:FF FF 01 04 03 03 00 F4 应答包:FF FF 01 02 00 FC 状态:无错误

注意:除非同时将多个舵机设置成相同的ID地址,否则,舵机需要一个一个的设置ID号。指令包是指主控制器或调试器发送给CDS5500的控制数据,应答包是指CDS5500返回的信息。

z 例2:把0号舵机运行的角度范围限制在0~150°之间

指令 = WRITE DATA;地址 = 0X08; 数据 = 0XFF, 0X01 指令包:FF FF 00 05 03 08 FF 01 EF 应答包:FF FF 00 02 00 FD 状态:无错误

z 例3:把0号舵机工作温度的上限设置到80摄氏度

指令 = WRITE DATA;地址 = 0X0B; 数据 = 0X50 指令包:FF FF 00 04 03 0B 50 9D 应答包:FF FF 00 02 00 FD 状态:无错误

z 例4:把0号舵机允许的工作电压范围设为6V~9V

6V用60(0X3C)表示,9V用90(0X5A)表示

指令 = WRITE DATA;地址 = 0X0C; 数据 = 0X3C, 0X5A 指令包:FF FF 00 05 03 0C 3C 5A 55 应答包:FF FF 00 02 00 FD 状态:无错误

z 例5:把0号舵机的输出力矩限制为最大值的一半

输出最大时对应0x03ff,所以输出一半对应0x01ff 指令 = WRITE DATA;地址 = 0X0E; 数据 = 0XFF, 0X01 指令包:FF FF 00 05 03 0E FF 01 E9 应答包:FF FF 00 02 00 FD 状态:无错误

z 例6:设置0号舵机对所有的输入都不返回数据

指令 = WRITE DATA;地址 = 0X10; 数据 = 0X00 指令包:FF FF 00 04 03 10 00 E8 应答包:FF FF 00 02 00 FD 状态:无错误

z 例7:让0号舵机卸载

指令 = WRITE DATA;地址 = 0X18; 数据 = 0X00 指令包:FF FF 00 04 03 18 00 E0 应答包:FF FF 00 02 00 FD 状态:无错误

z 例8:让0号舵机以中速运动至150°的位置

全速时对应0x03ff,则中速可设置为0x01ff,300°对应0x03ff,所以150°对应0x01ff 指令 = WRITE DATA;地址 = 0X1E; 数据 = 0x00, 0x02, 0x00, 0x02 指令包:FF FF 00 07 03 1E 00 02 00 02 D3 应答包:FF FF 00 02 00 FD 状态:无错误

z 例9:让2号舵机运动至0°位置,1号舵机运行至300°位置。注意:要求它们同时开

始运行。

运用REG_WRITE + ACTION指令可以实现它们同时动作 ID=2;指令 = REG_WRITE;地址 = 0X1E; 数据 = 0x00, 0x00 ID=1;指令 = REG_WRITE;地址 = 0X1E; 数据 = 0xFF, 0x03 ID=0XFE; 指令 = ACTION

指令包:FF FF 02 05 04 1E 00 00 D6 应答包:FF FF 02 02 00 FB

指令包:FF FF 01 05 04 1E FF 03 D5 应答包:FF FF 01 02 00 FC 指令包:FF FF FE 02 05 FA 使用广播地址,无应答包 状态:无错误

z 例10:设置0号舵机内存控制表里,只能对0x18~0x23地址段进行修改

即在地址0x2f上写入1

指令 = WRITE DATA;地址 = 0X2F; 数据 = 0x03 指令包:FF FF 00 04 03 2F 01 C8 应答包:FF FF 00 02 00 FD 状态:无错误

z 例11: 将0号舵机位置闭环时运行的加速度设为4,减速度设为6

加、减速度的最大值为255

指令 = WRITE DATA;地址 = 0X30;数据 = 0X04, 0X06 指令包:FF FF 00 05 03 30 04 06 BD 应答包:FF FF 00 02 00 FD 状态:无错误

用户手册 ProMotion CDS Series User’s Manual

————

CDS5500电气原理框图

附录

控制器示例代码

// 2009‐07‐21 09:31:45 // Target : M128 // Crystal: 8.0000Mhz  

#include <iom128v.h> #include <macros.h> #include "delay.h"   

#define  TXD_ENABLE PORTD&=~(1<<6) #define  RXD_ENABLE PORTD|=(1<<6) 

typedef unsigned       char    uint8;                  /* 无符号8位整型变量  */ typedef signed         char    int8;                   /* 有符号8位整型变量  */ typedef unsigned short int     uint16;                   /* 无符号16位整型变量 */ typedef signed   short int     int16;                    /* 有符号16位整型变量 */ typedef unsigned long  int     uint32;                   /* 无符号32位整型变量 */ typedef signed   long  int     int32;                    /* 有符号32位整型变量 */  

uint8 Parameter[20]={0x1e,0x00,0x01,0x00,0x02};   //位置和速度控制数据队列  //UART0 initialize // desired baud rate: 1M // actual: baud rate:1M (0.0%) // char size: 8 bit 

// parity: Disabled 

void uart0_init(void)    //因为采用的是8M的晶振,所以采用倍速的方式产生1M的波特率 { 

 UCSR0B = 0x00;          //disable while setting baud rate  UCSR0A = 0x02;          //设置为倍速模式 

 UCSR0C = 0x06;          //设置串口以8位数据传送数据  UBRR0L = 0x00;          //设置波特率  UBRR0H = 0x00;          //设置波特率 

 UCSR0B = 0x98;          //开串口0的发送使能,以及接受使能 } 

//call this routine to initialize all peripherals void init_devices(void) { 

 //stop errant interrupts until set up  CLI(); //disable all interrupts  uart0_init(); 

 SEI(); //re‐enable interrupts  //all peripherals are now initialized }  

void TxPacket(uint8 ID, uint8 ParameterLength,uint8 Instruction) { 

   uint8  i;    uint16 j; 

   uint16 checksum=0;    

  TXD_ENABLE ;   UDR0=0xFF; 

   while ( !( UCSR0A & (1<<UDRE0)) ); 

  UDR0=0xFF;                                 //发送两个字头;    while ( !( UCSR0A & (1<<UDRE0)) ); 

  UDR0=ID;                                   //发送ID;    while ( !( UCSR0A & (1<<UDRE0)) ); 

  UDR0=ParameterLength+2;                    //发送字长;    while ( !( UCSR0A & (1<<UDRE0)) ); 

  UDR0=Instruction;                          //发送指令     for(i=0;i<ParameterLength;i++)     { 

     while ( !( UCSR0A & (1<<UDRE0)) );      UDR0=Parameter[i]; 

     }                                       //发送所有参数    checksum=ID+ParameterLength+Instruction+2; 

 

   while ( !( UCSR0A & (1<<UDRE0)) ); 

   for(i=0;i<ParameterLength;i++)  {      

 checksum+=Parameter[i];  } 

  

 

checksum=~(checksum%256); checksum&=0x000000ff;  

 

  

    while ( !( UCSR0A & (1<<UDRE0)) );        UDR0=checksum;   

                      //发送校检字节 

 while ( !( UCSR0A & (1<<UDRE0)) );   

   // while ( !( UCSR0A & (1<<TXC)) ); 

    for(j=0;j<20;j++)                             //等待最后一个字节发送完毕   {;}   RXD_ENABLE ;  }       void main() {  

  init_devices();   while(1)   {  

/**************************************************/    //对控制参数赋初值 

   Parameter[0]=0x1E;   //首地址  Parameter[1]=0x00;   // 位置L  Parameter[2]=0x01;   // 位置H  Parameter[3]=0x00;   // 速度L  Parameter[4]=0x02;   // 速度H 

/**************************************************/   

 TxPacket(1,5,03);  //ID,字长,指令,  delay_s(4);        //延时4秒   

 Parameter[2]=0x03;   //更改速度   TxPacket(1,5,03);  //ID,字长,指令,  delay_s(6);   

Parameter[0]=0x06;   //切换为直流电机模式  Parameter[1]=0x00;   // 顺时针位置限制L  Parameter[2]=0x00;   // 顺时针位置限制位置H  Parameter[3]=0x00;   // 逆时针位置限制L  Parameter[4]=0x00;   // 逆时针位置限制H  TxPacket(1,5,03);  //ID,字长,指令,  delay_s(2);   

 

 Parameter[0]=0x1e; 

 Parameter[4]=0x02;  //赋开环速度  TxPacket(1,5,03);  //ID,字长,指令,  delay_s(8);        //延时8秒   

 Parameter[4]=0x06; //同速度反向  TxPacket(1,5,03);  //ID,字长,指令,  delay_s(20);        //延时20秒   

 Parameter[0]=0x06;   //切换为舵机模式  Parameter[1]=0xFF;   // 顺时针位置限制L  Parameter[2]=0x03;   // 顺时针位置限制位置H  Parameter[3]=0xFF;   // 逆时针位置限制L  Parameter[4]=0x03;   // 逆时针位置限制H  TxPacket(1,5,03);  //ID,字长,指令,  delay_s(2);  }  } 

说明:示例代码没有通信错误机制。 

本文来源:https://www.bwwdw.com/article/p18j.html

Top