Elephant
简介
Elephant是DBD团队开发的一款紧凑型创客神器,尺寸只有200mm x 40mm x 9mm, 它采用ARM Cortex-M7内核的32位处理器, 主频300MHz,独立MOS驱动,具有32通道功率PWM输出. 可以控制8个步进电机同时运行. 通常配合57步进电机进行使用,也可兼容86或者 42及以下型号的步进电机,运行电流动态可调.
Elephant拥有8个回零传感器接口,分别对应8路电机.支持位置模式,速度模式和插补模式.高达256细分的控制,使得运动更加细腻平滑. 电源防反接保护使得即便电源接反也不会烧毁.
Elephant拥有MicroUSB接口和RS485接口,可通过级联实现的方式最多64轴电机的同步轨迹控制。任意接USB的设备可作为主站,负责收集和转发消息。
Elephant支持多平台Windows,Linux,MacOS,Android等,及多语言C,C++,Python,Matlab,Java,易语言等的开发,提供SDK和技术支持。
资源特性
重量 | 185g |
电机 | 4线2相步进电机 |
细分 | 256 |
工作电压 | DC12V |
最大持续输出电流 | 3A |
PWM频率 | 20KHz |
输入IO | 1路(内部10K电阻上拉) |
RS485总线 | 最高10Mbps,默认250Kbps |
USB串口 | CH340@2Mbps |
运行温度 | -10 to +60摄氏度 |
产品细节
机械尺寸
接口布局
调试软件
DBD Tuner
运行模式
位置模式 | 位置模式,全称平滑位置模式.通常称为点位运动.根据设定的目标位置,目标速度以及加速时间
自行规划位置时间曲线并开始运动. 位置模式常用API及参数: 速度-时间曲线: API使用流程示意图: |
速度模式 | 速度模式,全称平滑速度模式,根据设定读目标速度和加速时间自行规划速度时间曲线并开始运动.
该模式的控制对象是电机的运行速度,不关心电机的位置. |
回零模式 | 进入回零模式后,根据设定的回零方向和目标速度开始运动,直到传感器触发,达到设置回零电平参数后停止运行,
并且自动将运行模式恢复为进入回零模式前的运行模式. |
插补模式 | 插补模式全称同步位置插补模式,用于实现最多16轴电机的同步插补运动.该模式通常用于3D打印机,写字机,画图机,雕刻机, 点胶机等需要多轴联动,并且执行连续轨迹的设备. |
气缸模式 | 气缸模式用于模拟气缸的控制方式,通过输入IO接口的电平,来控制电机的转动位置,即高电平电机运动到位置P1, 低电平电机运动到位置P2,运动过程的加速时间和运行速度等参数均可设置并保存.可以选择配合回零传感器定位起始位置. |
开发者
Python SDK
SDK接口
Python SDK接口说明
SDK接口分为4类,参数设置set类,参数获取get类,等待信号wait类,功能操作类,下面将做详细介绍.
setPowerOn(id, subid) | 设置对应id号的状态为使能,使能后电机开始受驱动器控制.使能后状态指示灯由快速闪烁变为慢速闪烁. |
setPowerOff(id, subid) | 设置对应id号的状态为失能,失能后电机不再受驱动器控制.失能后状态指示灯由慢速闪烁变为快速闪烁. |
setTargetVelocity(id, subid, value) | 设置目标速度.数值范围通常位1-300,单位pulse/ms近似等于RPM. |
setTargetPosition(id, subid, value) | 设置目标位置.Ant控制1.8度步进电机时,51200脉冲当量对应一圈. |
setVelocityMode(id, subid) | 设置运行模式为平滑速度模式,详细内容参考运行模式 |
setPositionMode(id, subid) | 设置运行模式为平滑位置模式,详细内容参考运行模式 |
setHomingMode(id, subid) | 设置运行模式为回零模式,详细内容参考运行模式 |
setHomingDirection(id, subid, value) | 设置回零方向.取值为1或者-1. |
setHomingLevel(id, subid, value) | 设置回零电平.取值为1或者0. |
setRunningCurrent(id, subid, value) | 设置运行电流.取值范围100-1500,单位mA,通常300-800比较合理. |
setKeepingCurrent(id, subid, value) | 设置保持电流.取值范围100-1500,单位mA,通常300-800比较合理. |
setAccTime(id, subid, value) | 设置加速时间.在位置模式下或者速度模式下的加减速过程的时间,单位ms.通常100-2000比较合理. |
getInputIO(id, subid) | 获取输入IO的状态.返回值为0或者1. |
getActualVelocity(id, subid) | 获取当前的实际运行速度. |
getActualPosition(id, subid) | 获取当前的实际位置. |
getTargetVelocity(id, subid) | 获取目标速度. |
getTargetPosition(id, subid) | 获取目标位置. |
getRunningCurrent(id, subid) | 获取运行电流. |
getKeepingCurrent(id, subid) | 获取保持电流. |
getAccTime(id, subid) | 获取加速时间. |
getHomingDirection(id, subid) | 获取回零方向. |
getHomingLevel(id, subid) | 获取回零电平. |
waitHomingDone(id, subid) | 等待回零完成. |
waitTargetPositionReached(id, subid) | 等待目标位置到达. |
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