bobo | NPC | 创造力: | 帖子: | 发消息 | 串个门 | 加好友 | 打招呼
2014-9-11 11:22:19 [显示全部楼层]
10637浏览
查看: 10637|回复: 3

Veyron 电机驱动器快速上手

[复制链接]
本帖最后由 bobo 于 2015-1-7 17:39 编辑

     Veyron 威龙系列电机驱动器是DFRobot推出的新一代智能电机驱动器,产品线涵盖直流有刷电机驱动器、直流无刷电机驱动器及步进电机驱动器。其中Veyron 2x25A和Veyron 2x12A为直流有刷电机驱动器,拥有智能的接口方式:包含模拟电压(Analog)、脉宽信号(PPM)及UART接口,完善的保护功能:欠电压、过电压、过电流、过热、短路、电压反接等保护功能,简易的操作方式:一键接口选择、开/闭环自动识别、PID参数自整定等功能,极大程度简化了用户的操作。

这个电机驱动器因为功能较多,新购买的用户会感觉无从下手。下面我以常用的带编码器电机为例,讲解一下如何初步的实现闭环控制。

所用部件:
1、Veyron 威龙 双路12A直流有刷电机驱动器
2、12V 直流减速电机251rpm 带编码器
3、Multiplexer  USB/RS232/RS485/TTL 协议转换器
4、12V电源适配器或者可调实验电源

如下图连接:
Veyron驱动器连接电机.jpg


这里主要是注意电机编码器和电机线不要接错,下面是这款电机线的说明:
电机编码器.jpg


连接好电机、电源、串口后,通过驱动器侧边的KEY按钮,切换到到UART模式(UART字样旁边的灯亮)
通过串口软件发送命令,注意命令是字符,后面需要更回车换行 SSCOM32这个软件有一个 发送新行 的选项 打勾就可以了,
驱动器出厂的波特率是 57600bps ,如果有设置过波特率导致不能通信,见这个产品的wiki有说明如何通过加电的时候指示灯来辨别波特率。
串口软件.jpg


发送 读取内部配置命令
1,RCONFIG  (注意回车换行,以下类似)
如果能收到返回说明串口是通的

接收到的配置值返回
/*Common Parameters*/
ID                         : 1
BaudRate                   : 57600bps
Voltage Range              : 6.0-36.0V
Maximum Continuous Current : 12000mA
Maximum Peaky Current      : 20000mA
Protected Temperature      : 100C
Signal Mode                : Continuous
PPM Signal Range           : 500-2500us
PWM Type                   : Hpwm-Lpwm(on-off-on)
Direction Type             : CW/CCW
Discontinuous Timeout      : 1000ms
Start Detection Mode       : Non Zero Detection

/*Parameters Of Motor1*/
Reduction Gear Ratio       : 1
Encoder Resolution         : 1000
Maximum Velocity           : 1000
Velocity Mode              : Unloop
Acceleration               : 100
Deceleration               : 100
PID_Kp                     : 0.000
PID_Ti                     : 0
PID_Td                     : 0

/*Parameters Of Motor2*/
Reduction Gear Ratio       : 1
Encoder Resolution         : 1000
Maximum Velocity           : 1000
Velocity Mode              : Unloop
Acceleration               : 100
Deceleration               : 100
PID_Kp                     : 0.000
PID_Ti                     : 0
PID_Td                     : 0

首先我们设置 编码器和电机的减速比:
设置两个编码器线数 这里两个电机都是 16线,也就是说电机轴旋转一圈 编码器的A和B相都会输出16个脉冲(注意不是电机减速箱的输出轴)
1,SER,16,16  回车换行
设置两个电机减速比,根据电机的参数 这个减速比 是43.8 ,在电机的机身上也有标注
1,SGR,43.8,43.8  回车换行

保存设置的值 (注意一定要保存,否则断电或者重启就没有了)
1,EEPSAV   回车换行

此时驱动器会自动重启一次,等指示灯停留在UART模式的时候再接下来操作。

在读取一次电机驱动器的配置,看看刚才的编码器和减速比是否有被设置
1,RCONFIG

/*Common Parameters*/
ID                         : 1
BaudRate                   : 57600bps
Voltage Range              : 6.0-36.0V
Maximum Continuous Current : 12000mA
Maximum Peaky Current      : 20000mA
Protected Temperature      : 100C
Signal Mode                : Continuous
PPM Signal Range           : 500-2500us
PWM Type                   : Hpwm-Lpwm(on-off-on)
Direction Type             : CW/CCW
Discontinuous Timeout      : 1000ms
Start Detection Mode       : Non Zero Detection

/*Parameters Of Motor1*/
Reduction Gear Ratio       : 43.79
Encoder Resolution         : 16
Maximum Velocity           : 1000
Velocity Mode              : Unloop
Acceleration               : 100
Deceleration               : 100
PID_Kp                     : 0.000
PID_Ti                     : 0
PID_Td                     : 0

/*Parameters Of Motor2*/
Reduction Gear Ratio       : 43.79
Encoder Resolution         : 16
Maximum Velocity           : 1000
Velocity Mode              : Unloop
Acceleration               : 100
Deceleration               : 100
PID_Kp                     : 0.000
PID_Ti                     : 0
PID_Td                     : 0

可以看到Reduction Gear Ratio       : 43.79     这个是减速比 已经设置进去
Encoder Resolution         : 16           编码器线数 16
Maximum Velocity           : 1000         当前最大速度1000转每分钟 ,这个值还没有被校准
Velocity Mode              : Unloop         当前是开环模式
Acceleration               : 100                加速度是100
Deceleration               : 100                加速度是100
PID_Kp                     : 0.000               PID三个参数都是0  还没有被设置进去
PID_Ti                     : 0
PID_Td                     : 0

按KEY键切换到Set模式等待电机自整定完成,此时电机会加减速过程。

完成后自动跳转到UART模式

读取一次电机驱动器的配置
1,RCONFIG

/*Common Parameters*/
ID                         : 1
BaudRate                   : 57600bps
Voltage Range              : 6.0-36.0V
Maximum Continuous Current : 12000mA
Maximum Peaky Current      : 20000mA
Protected Temperature      : 100C
Signal Mode                : Continuous
PPM Signal Range           : 500-2500us
PWM Type                   : Hpwm-Lpwm(on-off-on)
Direction Type             : CW/CCW
Discontinuous Timeout      : 1000ms
Start Detection Mode       : Non Zero Detection

/*Parameters Of Motor1*/
Reduction Gear Ratio       : 43.79
Encoder Resolution         : 16
Maximum Velocity           : 212r/min
Velocity Mode              : Loop
Acceleration               : 100r/min/s
Deceleration               : 100r/min/s
PID_Kp                     : 0.305
PID_Ti                     : 16
PID_Td                     : 4

/*Parameters Of Motor2*/
Reduction Gear Ratio       : 43.79
Encoder Resolution         : 16
Maximum Velocity           : 210r/min
Velocity Mode              : Loop
Acceleration               : 100r/min/s
Deceleration               : 100r/min/s
PID_Kp                     : 0.307
PID_Ti                     : 16
PID_Td                     : 4

此时可以看到 电机当前电压的情况下的最高转速已经测试出来是 210转每分钟
PID三个参数已经自动帮我们设置好,并且检测到编码器已经设置到闭环模式。

下面对电机进行速度控制:
例如将M1的同步转速设定为100r/min
*发送:1,SVS,1,100 回车换行

电机1反方向 100转每秒
1,SVS,1,-100

电机2正方向 100转每秒
1,SVS,2,100

电机2反方向 100转每秒
1,SVS,2,-100

读取电机1编码器计数值用于确定机器人运行轨迹
1,GEP,1
返回值
如果电机是正方向旋转那么这个值是正数累加。

如果电机是反方向旋转这个值将计数值累减,减到0后,出现负

清除编码器计数值
1,CEP,1
/---------------------------------------------------------------------------------------------------------------------------------------------------
间断控制模式设置方式
在将驱动器用于移动机器人控制中, 我们希望在控制器死机时 驱动器可以自动控制机器人停止动作,这样防止灾难发生.
Veyron 电机驱动 具备 间断控制模式  
间断模式是指一旦驱动器在规定的时间内未收到有效的控制信号,驱动器将停止工作,同时指示信号丢失故障
首先将驱动器控制信号模式设置为间断模式发送:
1,SSM,1回车换行


保存设置的值 发送:
1,EEPSAV回车换行

保存设置后驱动器重启 查询设置情况发送:
1,GSM回车换行
返回的数据为: 1 代表设置到了间断模式

设置间断模式时限,超过这个时限没有收到下一条速度控制命令驱动器将停止工作同时报警,不响应电机控制指令。
1,SDCT,100回车换行   100×10ms = 1秒

通过串口 每隔200ms 发送一次速度控制命令
1,SVS,1,100回车换行

如果忘记发送导致错误,可以通过错误查询命令查询是否为数据丢失

1,GER回车换行

Bit
Error Sources
0Reserved
1Lower Voltage
2Over Voltage
3Over Temperature
4M1 Over Current
5M2 Over Current
6Control Signal Lost
7Reserved
8Reserved
9Reserved
10Reserved
11Reserved
12Reserved
13Reserved
14Reserved
15Reserved

清除所有故障信息 后可以继续对电机进行控制
1,CER




Eric  初级技神

发表于 2014-12-7 18:58:37

超赞的帖子,相当实用啊~这样的帖子应该也放在产品下面的链接中,让客户可以直接找到实用教程,以及问题所在
回复

使用道具 举报

lianuo  初级技师

发表于 2015-9-22 14:52:18

我现在用相同的通信软件给Veyron 写数据,并没有得到任何串口反馈数据,有没有可能这个机器有问题。
回复

使用道具 举报

bobo  NPC
 楼主|

发表于 2015-12-18 16:27:19

lianuo 发表于 2015-9-22 14:52
我现在用相同的通信软件给Veyron 写数据,并没有得到任何串口反馈数据,有没有可能这个机器有问题。 ...

发送控制命令给Veyron  是没有返回数据的。你可以读取一些参数看看是否有返回
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail