产品介绍
DYNAMIXEL Shield的创建是为了在arduino板上使用RC-100遥控器和DYNAMIXEL舵机。我们为DYNAMIXEL Shield提供了dynamixel库,它可以帮助您轻松使用dynamixel 舵机。
此产品不包含Arduino控制板,请另外选购Arduono控制板。
规格
名目 | 描述 |
---|---|
操作电压 | 5 V (XL-330) ~ 24 V (PRO / X Series) |
最大支持电流 | 1 A(Arduino), 10 A (Terminal Connector) |
支持的DYNAMIXEL的舵机型号
默认情况下,由于RX、DX、EX系列停产,所以此板对它们处于禁用状态,如需使用,请在DynamicXel2Arduino中修改config.h。
产品细节展示
DYNAMIXEL Shield的引脚位置与Aruduino UNO相同。要查找引脚图,请参阅Arduino官方页面.
管脚标号 | 管脚名称 | 描述 |
---|---|---|
0 | HW UART RX | DXL_RX |
1 | HW UART TX | DXL_TX |
2 | HW UART DIR | DXL_DIR(DXL_TX_EN) |
7 | SW UART RX | 警告2 SoftwareSerial |
8 | SW UART TX | 警告2 SoftwareSerial |
名目 | 描述 | 备注 |
---|---|---|
DYNAMIXEL Port | TTL, TTL(XL-320), RS485 | 警告3 |
Power Switch | Power SW (DYNAMIXEL Port Power Switch) | - |
UART Switch | UART SW (Upload or DYNAMIXEL Select Switch) | 警告1 |
Jumper Cap | Power Source Selection | Read ‘Connecting Power’ |
- DXL_RX (0), DXL_TX (1) : 用于与Dynamixel舵机通信的硬件串行端口。
- DXL_DIR(2) : 收发DYNAMIXEL数据包的使能控制管脚.
- 硬件串行端口用于与Dynamixel舵机通信,因此,RC-100遥控器或LN-101下载器必须通过Arduino引脚7和8连接到软件串行通信端口(SW TX/RX)。
警告1 使用Ardino IDE通过USB端口上载固件程序时,应将波动开关UART SW切换到Upload模式。程序上载完毕之后,将UART SW选择为Dynamixel模式,可以控制Dynamixel舵机;也就是说,上传程序和控制舵机使用的是同一串口,两种行为不可以同时使用,只能选其一。
警告2 如果您使用的电路板不支持SoftwareSerial(如SAMD等),则不能将引脚7和8用于UART。
警告3 TTL、TTL(XL-320)和RS485连接器均在一个串行中并联连接。
DYNAMIXEL Shield在使用IDE串行监视器时该注意的问题
**注意: **DynamixelShield使用与Arduino Uno/Mega相同的串行引脚(0,1)。使用串行监视器时,由于端口冲突,可能会导致电路板中的数据出现意外问题。
为了防止电路板发生端口冲突,请务必仔细阅读下面章节:DYNAMIXEL Shield 如何使用串行监视器
DYNAMIXEL Shield 如何使用串行监视器
**注意: **检查arduino板的类型,并选择所列解决方案中对应的一种,最好是能够了解所使用控制板硬件串口情况,然后再决定使用哪种方案来使用串口监视器(或串口助手),以免出现无法显示或者反馈乱码等问题。
[推荐] #define DEBUG_SERIAL
- 请在Arduino IDE中DynamixelShield Examples查阅 #define DEBUG_SERIAL的定义和使用 。
使用DYNAMIXEL Shield的UART口(AVR 8位板,包括Uno/Mega板)
AVR 8 位板,比如Arduino Uno和Mega, 可以利用DYNAMIXEL Shield的管脚来是使用串行监视器(串口工具),这个串口将监视串行信息,如下图所示:
注: 可以使用Dynamicxel Shield自带的串行端口,但要确保使用’SoftwareSerial’库,该库就是为了能把通用管脚作为串行端口使用而设计的。对于该端口,推荐使用的通信模块:BT-210, BT-410, LN-101。当然,符合TTL通信的设备也是可以使用的。
使用USB口
- 当您使用Uno和Mega以外的其他arduino板时(当然,该板必须存在多个硬件串口),这时候可以考虑用USB端口进行串行监视。
使用USB串口转换器
- 你可以使用 SoftwareSerial 或者 HardwareSerial 的方式。 请查阅 Arduino Reference page of Serial, 并确定你的板子是否支持这两种方式 (SoftwareSerial 或者 HardwareSerial).
使用 UART Port
- DYNAMIXEL Shield 包含了UART管脚: 7(RX), 8(TX) 。 它仅与AVR 8位板兼容,比如Arduino Uno 和Arduino Mega。为了使用这类型的端口,可以考虑使用其他硬件串行管脚替代 7(RX), 8(TX)。要确定这些板是否具有硬件串行管脚,请参阅 Arduino Reference page of Comunication.
连接电源
连接跳帽 | 断开跳帽 |
---|---|
根据是否连接跳帽,板子使用电源(非舵机使用)输入按如下划分。
1.连接跳帽:使用Arduino SMPS连接器的电源
2.断开跳帽:使用DYNAMIXEL shield的电源输入连接器的电源。不使用arduino提供的电源。
由于DYNAMIXEL舵机无法使用Arduino板的USB电源,因此需要连接外部电源。
使用电源输入连接器时,确保检查电源的极性。
拨动开关
程序上载和Dyamixel舵机控制开关
- 对于Dynamixel舵机的控制,使用arduino板的硬件串行端口。由于上载程序使用的是同一串行端口,所以这两个端口可能会发生冲突。因此,要上载程序,请把拨动开关拨到Upload一侧。
- 当程序上载完毕,请把拨动开关拨到Dynamixel一侧,否则无法对舵机进行控制。
DYNAMIXEL 电源开关
- 此开关用于开启或在关闭Dynamixel舵机电源。
DYNAMIXEL Shield 库
- DYNAMIXEL2Arduino Library : GitHub Repository
- DYNAMIXEL Shield Library : GitHub Repository
特点
- 与Arduino板兼容
- 支持Dynamixel协议1.0/2.0
- 最多可控制16个DYNAMIXEL(通常,每个电机(XL-320或XL430-W250)消耗0.4~0.6A的电流)
- 支持SynWrite功能
- 支持RC-100库
- 使用Software Serial库进行串行通信
- DYNAMIXEL Shield库(v0.1.0或更高版本)需要DYNAMIXEL2Arduino库支持
库安装
这里有三种方式把库添加到 Arduino IDE.
- 使用库管理器
- 直接倒入 .zip 库文件
- 手动安装
Arduino官方指南详细描述了每种安装方式的流程
下面是通过库管理器安装的方式演示:
在Library Manager中查找dynamixel shield,然后选择最新版本安装。
点击 Install all
去安装依赖库Dynamixel2Arduino
.
如果你成功安装了这两个库,你将能在Examples中找到关于DynamixelShield的一些例程。
Library API
DYNAMIXELShield(v0.1.0 或更高)
注意 : 使用DYNAMIXEL Shield library(v0.1.0 或更高), 必须安装DYNAMIXEL2Arduino库。
Dynamixel2Arduino Class
- begin()
- getPortBaud()
- ping()
- scan()
- getModelNumber()
- setID()
- setProtocol()
- setBaudrate()
- torqueOn()
- torqueOff()
- ledOn()
- ledOff()
- setOperatingMode()
- setGoalPosition()
- getPresentPosition()
- setGoalVelocity()
- getPresentVelocity()
- setGoalPWM()
- getPresentPWM()
- setGoalCurrent()
- getPresentCurrent()
- readControlTableItem()
- writeControlTableItem()
Master Class
Dynamixel2Arduino类从主类继承以下公共函数。
RobotisRemoteController Class
- begin()
- availableData()
- readData()
- availableEvent()
- readEvent()
- flushRx()
- available()
- read()
- peek()
- flush()
- write()
DynamixelShield(v0.0.5)
WARNING : 此版本的Dynamixel Shield API已弃用,不再维护。
1 | bool begin(uint32_t baud_rate = 57600, uint8_t protocol_version = DXL_PACKET_VER_2_0); |