14329| 3
|
Veyron 电机驱动器快速上手 |
Veyron 威龙系列电机驱动器是DFRobot推出的新一代智能电机驱动器,产品线涵盖直流有刷电机驱动器、直流无刷电机驱动器及步进电机驱动器。其中Veyron 2x25A和Veyron 2x12A为直流有刷电机驱动器,拥有智能的接口方式:包含模拟电压(Analog)、脉宽信号(PPM)及UART接口,完善的保护功能:欠电压、过电压、过电流、过热、短路、电压反接等保护功能,简易的操作方式:一键接口选择、开/闭环自动识别、PID参数自整定等功能,极大程度简化了用户的操作。 这个电机驱动器因为功能较多,新购买的用户会感觉无从下手。下面我以常用的带编码器电机为例,讲解一下如何初步的实现闭环控制。 所用部件: 1、Veyron 威龙 双路12A直流有刷电机驱动器 2、12V 直流减速电机251rpm 带编码器 3、Multiplexer USB/RS232/RS485/TTL 协议转换器 4、12V电源适配器或者可调实验电源 如下图连接: 这里主要是注意电机编码器和电机线不要接错,下面是这款电机线的说明: 连接好电机、电源、串口后,通过驱动器侧边的KEY按钮,切换到到UART模式(UART字样旁边的灯亮) 通过串口软件发送命令,注意命令是字符,后面需要更回车换行 SSCOM32这个软件有一个 发送新行 的选项 打勾就可以了, 驱动器出厂的波特率是 57600bps ,如果有设置过波特率导致不能通信,见这个产品的wiki有说明如何通过加电的时候指示灯来辨别波特率。 发送 读取内部配置命令 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回车换行
1,CER |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed