驱动器硬件说明

概述

BW-DR03 是本公司研发一款高性能,多功能,低成本的带霍尔传感器直流无刷驱动器。驱动器自带速度闭环PID控制,速度控制精度在1%以内,低速输出扭距大,高速制动迅速。支持同时控制两路电机,自带IMU,可外接4路红外避障模块和2路超声波测距模块。驱动器电机速度控制和参数配置都通过rs232串口实现,配合上位机配置软件和ROS驱动包可以快速搭建高性能机器人底盘。

BW-DR03 驱动器参数列表

参数 说明
电机驱动管输入电压 DC12V-46V
电机霍尔类型 120度
工作电流 最大30A(单路15A)
工作模式 霍尔速度闭环
调速方式 RS232串口指令
IMU MPU9250带3轴加速度计、3轴陀螺仪、3轴磁力计
红外避障模块 最多支持4路
超声测距模块 最大支持2路
工作环境 场合:无易燃、易爆气体,无粉尘
温度:-10-50摄氏度
振动:小于0.5G,10HZ-60HZ
防护等级:不防水
散热方式 自然风冷
尺寸 12815632里面
重量 500克

特点

速度 PID 闭环控制,低速转矩大。

调速范围宽,0-2000RPM。

支持电机电压范围宽,12V-36V。

支持同时控制两路电机,自带IMU,可外接4路红外避障模块和2路超声波测距模块。

带ROS驱动包,可以直接输出里程计、IMU这些话题数据。

接口定义

驱动器正面接口分布图

驱动器正面接口分布图

电源输入接口P2

电源输入接口P2

接口 说明
1. 5V RS232版本,此脚被废弃,请悬空不接东西
2. GND 电源地
3. VMT 电机驱动管电源正输入

VMT电压值由电机额定电压确定,比如36v电机就接入36v电池的正极即可,注意必须用电池直接供电,通过dc稳压电源供电会烧毁驱动器。

电机相线接口Ma1、Mb1

Ma1 Mb1

接口 说明
1. mA 电机相线U(黄)
2. mb 电机相线V(绿)
3. mC 电机相线W(蓝)

电机相线颜色的定义与电机厂家有关,实际接线时,请先将电机相线任意接入mA mB mC、然后调整下面的霍尔相线(理论上任意的电机相线接线,都有一组对应的霍尔接线,因此可以先任意指定电机相线接线顺序),当驱动器在开环模式下可以正常控制电机正反转时就说明霍尔相线和电机相线接线顺序是正确的。具体请参考驱动器配置软件手册相关章节。

电机霍尔线接口H0、H1

H0 H1

接口 说明
1. 5V 霍尔供电正极
2. HA 霍尔U线(黄)
3. HB 霍尔V线(绿)
4. HC 霍尔W线(蓝)
5. GND 霍尔供电地

H0对应Ma1通道电机, H1对应Mb1通道电机 驱动器正面朝下反面安装时,Ma1对应右轮电机,Mb1对应左轮电机;驱动器正面朝上安装时,Ma1对应左轮电机,Mb1对右轮电机。

红外避障模块接口C1、C4、C2、C3

H0

接口 说明
5V 模块电源正极
GND 模块电源地
ECHO 模块输出脚

请注意C3和C1、C4、C2三个的引脚排列方向是不同的,通常C1、C4、C2用于检测底盘前方的障碍物,C3用于检查底盘后方的障碍物,因此排列方向设计成不同。 模块被障碍物触发时,模块ECO脚输出低电平(驱动器反馈0),其它情况下模块ECO输出高电平(驱动器反馈1)。

超声波测距模块接口S1、S2

S1, S2

接口 说明
1. 5V 模块电源正极
2. TRG 模块测量触发脚
3. ECO 模块测量数据输出脚
4. GND 模块电源地

本驱动支持的是串口一体化超声波测距模块,驱动器测量频率是5hz,上传数据单位是米。

串口通信接口P1

P1

接口 说明
1. TXD 驱动器串口数据上传端口
2. RXD 驱动器串口命令接收端口
3. GND 串口地

驱动器通信连接方式是RS232串口,串口波特率为 115200,8 个数据位,1 个停止位,无奇偶校验。

通信协议

串口波特率为115200,8个数据位,1个停止位,无奇偶校验。

电脑下发指令

方向运动指令都是6个字节的无符号byte数组,驱动器正面朝下反面安装时,Ma1对应右轮电机,Mb1对应左轮电机;驱动器正面朝上安装时,Ma1对应左轮电机,Mb1对右轮电机。

前进

0xcd 0xeb 0xd7 0x02 0x66 0xXX
包头 包头 包头 命令长度 前进指令 速度大小,数值范围为0到100

后退

0xcd 0xeb 0xd7 0x02 0x62 0xXX
包头 包头 包头 命令长度 后退指令 速度大小,数值范围为0到100

左转

0xcd 0xeb 0xd7 0x02 0x63 0xXX
包头 包头 包头 命令长度 左转指令 速度大小,数值范围为0到100

右转

0xcd 0xeb 0xd7 0x02 0x64 0xXX
包头 包头 包头 命令长度 右转指令 速度大小,数值范围为0到100

停止

0xcd 0xeb 0xd7 0x02 0x73 0xXX
包头 包头 包头 命令长度 停止指令 制动量大小,数值范围为0到100

单个电机独立控制指令是13字节的

0xcd 0xeb 0xd7 0x09 0x74 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX 0xXX
包头 包头 包头 命令长度 类型 右轮电机指令 左轮电机指令 保留 保留 控制量大小 控制量大小 保留 保留

电机指令有三种状态,‘F’:向前,‘B’:向后,‘S’:刹车 控制量范围是0到100,

例如: tSSSS0000 翻译成hex为 cd eb d7 09 74 53 53 53 53 00 00 00 00 表示让四个电机全部以0%的制动量刹车 目前只有前两个电机有效,第一个电机对应右轮,第二个电机对应左轮

驱动器上传数据包

驱动器以50HZ的频率上传数据,上传的数据包格式:包头+长度+内容

包头:为3个u8字符:205 235 215

长度:1个u8字符,长度不包括包头和长度本身字符,当前数据包长度为125,这 个长度包括字符串结束符0x00

内容:由25个4字节小端模式二进制表示的数字组成,数字之间用空格0x20分开。

完整数据包内容构成一个c语言结构体,结构体具体构成如下所示:

typedef struct {
    int status;//驱动器状态,0表示未初始化,1表示正常,-1表示error
    float power;//电源电压【12 46】v
    float theta;//方位角,【0 360】°
    unsigned int encoder_ppr;//车轮1转对应的编码器个数
    int encoder_delta_r;//右轮编码器增量, 个为单位
    int encoder_delta_l;//左轮编码器增量, 个为单位
    int encoder_delta_car;//两车轮中心位移,个为单位
    unsigned int upwoard;//0表示正面朝下安装,1表示正面朝上安装
    float max speed;//最大转速,圈每秒
    int hbz1;//第一个红外避障模块状态,1表示触发,0表示没有触发
    int hbz2;//第一个红外避障模块状态,1表示触发,0表示没有触发
    int hbz3;//第一个红外避障模块状态,1表示触发,0表示没有触发
    int hbz4;//第一个红外避障模块状态,1表示触发,0表示没有触发
    float distance1;//第一个超声模块距离值 单位cm
    float distance2;//第二个超声模块距离值 单位cm
    float IMU[9];//mpu9250 9轴数据
    unsigned int time_stamp;//时间戳
}UPLOAD_STATUS;

IMU[9]数组里面的数据依次为下表

    0:加速度x
    1:加速度y
    2:加速度z
    3:角速度x
    4:角速度y
    5:角速度z
    6:磁力计x
    7:磁力计y
    8:磁力计z

数据包的使用请参考 ROS驱动包lungu分支对应部分代码。

安装尺寸

安装1

安装1

results matching ""

    No results matching ""