Bull

简介


Bull是DBD团队开发的一款高度集成的伺服单元,额定扭矩5N.m 特点: 外径80mm 厚度26MM 高度36mm 密封性良好


电器特性


供电 24V
额定电流 3A
额定转速 120RPM
额定扭矩 3Nm
RS485总线 隔离通信,最高10Mbps,默认250Kbps
减速比 1:8
编码器分辨率 12位
运行温度 -10 to +60摄氏度

产品细节



机械尺寸



接口布局




调试软件


DBD Tuner Bull

专门开发一款上位机软件,用于调参数

运行模式


位置模式 位置模式,全称平滑位置模式.通常称为点位运动.根据设定的目标位置,目标速度以及加速时间 自行规划位置时间曲线并开始运动.
位置模式常用API及参数:

速度-时间曲线:

API使用流程示意图:

速度模式 速度模式,全称平滑速度模式,根据设定读目标速度和加速时间自行规划速度时间曲线并开始运动. 该模式的控制对象是电机的运行速度,不关心电机的位置.



力矩模式
回零模式 进入回零模式后,根据设定的回零方向和目标速度开始运动,直到传感器触发,达到设置回零电平参数后停止运行, 并且自动将运行模式恢复为进入回零模式前的运行模式.

插补模式 插补模式全称同步位置插补模式,用于实现最多16轴电机的同步插补运动.该模式通常用于3D打印机,写字机,画图机,雕刻机, 点胶机等需要多轴联动,并且执行连续轨迹的设备.
气缸模式 气缸模式用于模拟气缸的控制方式,通过输入IO接口的电平,来控制电机的转动位置,即高电平电机运动到位置P1, 低电平电机运动到位置P2,运动过程的加速时间和运行速度等参数均可设置并保存.可以选择配合回零传感器定位起始位置.
阻尼模式

开发者


Python SDK


SDK接口

Python SDK接口说明

SDK接口分为4类,参数设置set类,参数获取get类,等待信号wait类,功能操作类,下面将做详细介绍.

setPowerOn(id) 设置对应id号的状态为使能,使能后电机开始受驱动器控制.使能后状态指示灯由快速闪烁变为慢速闪烁.
setPowerOff(id) 设置对应id号的状态为失能,失能后电机不再受驱动器控制.失能后状态指示灯由慢速闪烁变为快速闪烁.
setTargetVelocity(id, value) 设置目标速度.数值范围通常位1-300,单位pulse/ms近似等于RPM.
setTargetPosition(id, value) 设置目标位置.Ant控制1.8度步进电机时,51200脉冲当量对应一圈.
setVelocityMode(id) 设置运行模式为平滑速度模式,详细内容参考运行模式
setPositionMode(id) 设置运行模式为平滑位置模式,详细内容参考运行模式
setHomingMode(id) 设置运行模式为回零模式,详细内容参考运行模式
setHomingDirection(id, value) 设置回零方向.取值为1或者-1.
setHomingLevel(id, value) 设置回零电平.取值为1或者0.
setRunningCurrent(id, value) 设置运行电流.取值范围100-1500,单位mA,通常300-800比较合理.
setKeepingCurrent(id, value) 设置保持电流.取值范围100-1500,单位mA,通常300-800比较合理.
setAccTime(id, value) 设置加速时间.在位置模式下或者速度模式下的加减速过程的时间,单位ms.通常100-2000比较合理.
setOutputIO(id, value) 设置IO输出.取值0或者1.
getInputIO(id) 获取输入IO的状态.返回值为0或者1.
getActualVelocity(id) 获取当前的实际运行速度.
getActualPosition(id) 获取当前的实际位置.
getTargetVelocity(id) 获取目标速度.
getTargetPosition(id) 获取目标位置.
getRunningCurrent(id) 获取运行电流.
getKeepingCurrent(id) 获取保持电流.
getAccTime(id) 获取加速时间.
getHomingDirection(id) 获取回零方向.
getHomingLevel(id) 获取回零电平.
waitHomingDone(id) 等待回零完成.
waitTargetPositionReached(id) 等待目标位置到达.
getDeviceID(id) 获取设备ID.
scanDevices() 扫描在线设备.
saveParameters(id) 保存参数.
changeID(id, value) 修改ID.ID范围0-31.
如何使用Python SDK
准备工作

1.安装pyserial.用户可以通过pycharm的库管理下载添加, 或者通过命令行添加, 有问题请联系我们或者自行搜索解决.
2.桌面开发环境推荐使用PyCharm进行程序编写.
3.终端开发环境,sudo python3 -m pip install pyserial 4.获取串口权限.Linux下的设备使用都需要使用sudo或root用户才能打开,为了能让普通用户也能使用串口,可以增加udev规则来实现,具体方法如下: sudo vim /etc/udev/rules.d/70-ttyusb.rules 增加如下内容: KERNEL=="ttyUSB[0-9]*",MODE="0666" 保存,重新插入USB转串口,普通用户就能搞定了.
5.下载Python SDK.并拷贝到用户运行目录.
6.Git用户可以直接运行 git clone https://github.com/DBDynamics/Python.git


通信协议

Bee采用RS485总线接口进行通讯, 通信速率可根据需求调整, 最高支持10Mbps.

通信模型
通信模型采用常规的主从模式,即所有的Bee都是从站,用户的控制器或者USB调试器为主站.总线上主站发送指令后, 所有从站接收并判断是否是自己的指令.如果是自己的指令,则立刻进行回复,如果不是自己的消息,则保持沉默.

通信参数
波特率:默认250Kbps(客户定制的请自行调整)
数据位:8位
停止位:1位
校验位:无

通信指令格式
一条指令由8个字节组成:
功能码(1-byte),索引码(1-byte),主ID(1-byte),子ID(1-byte),数据值(4-byte)
其中:

功能码:
0x00 - 读参数指令
0x01 - 写参数指令
0x02 - 读成功
0x03 - 写成功
0x04 - 操作指令
0x05 - 操作成功

索引码:(共计32个)
0 - 主板类型(只读)(0x11代表Bee步进电机控制器)
1 - 设备ID(读/写)(可以读取该参数,通过遍历ID号,来判断该ID是否在线.写该参数可以用来改变设备ID,但需要随后发送新的ID号保存参数的指令,才能永久修改)
2 - 使能(读/写)(1-使能,电机控制开始.0-失能,电机不受控制,可用于手动模式)
3 - 运行模式(读/写)(21-速度模式,31-位置模式,34-同步插补模式,40-回零模式.)
4 - 状态信息(只读)(一个字节有8bit,每个bit代表一个状态信息:0x01-设备使能,0x02-回零,0x04-到位,0x08-输入IO,其他位预留)
5 - 预留.
6 - 预留.
7 - 目标速度(读/写)(步进电机的最大运行速度)
8 - 实际速度(只读)(步进电机的实际运行速度)
9 - 目标位置(读/写)(步进电机的目标运行位置)
10 - 实际位置(读/写)(步进电机的实际运行位置)
11 - 加速时间(读/写)(步进电机的加减速过程的时间,单位ms,通常不小于200ms)
12 - 插补目标位置(读/写)(插补模式下的目标位置指令)
13 - 预留
14 - 回零方向(读/写)(1-正方向,-1负方向)
15 - 回零电平(读/写)(1-高电平触发,0-低电平触发)
16 - 预留
17 - 运行电流(读/写)(步进电机运行时的电流)
18 - 保持电流(读/写)(步进电机保持时的电流)
19 - 增强电流(读/写)(步进电机启动阶段额外增加的电流)
20 - 运行到保持时间(读/写)(步进电机到位后继续报纸运行电流的时间)
21 - 增强时间(读/写)(步进电机增强电流的时间)
22 - 输入IO状态(只读)(0-低电平,1-高电平)
23 - 输出IO(读/写)(0-低电平,1-高电平)
24 - 预留
25 - 预留
26 - 预留
27 - 预留
28 - 预留
29 - 预留
30 - 预留
31 - 预留

主ID:
编码范围:0-31

子ID:(为了兼容Elephant 8in1控制器和其他多合一控制器,Bee控制器默认该参数为0即可)
编码范围:0-7

数据:
数据类型:int整数(32位)
低位在前,例如10进制数据:100 表示为 0x64 0x00 0x00 0x00

指令例子
1.读取ID=1d的设备类型:
0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00
返回值:
0x02 0x00 0x01 0x00 0x11 0x00 0x00 0x00

2.使能ID=1的设备:
0x01 0x02 0x01 0x00 0x01 0x00 0x00 0x00

3.失能ID=1的设备:
0x01 0x02 0x01 0x00 0x00 0x00 0x00 0x00


应用案例

升降机

开合门

移动机器人


测试记录


吊水桶测试:
负重4.5kg 温度<50度 最大电流1A@24V
负重6kg 温度接近100度(亚克力) 换成铝板温度正常 最大电流1.5A@24V
轮半径 55mm 折算力矩2.5Nm 3.3Nm

升级建议

可以估算出 长时间持续输出力矩2.5Nm
接下来测试: 短时间内 爆发力矩
需要加工金属配件.
设计上需要加装温度传感器,表面安装状态指示灯,采取温度功率限制功能.

相关视频