• 03软件(softwares)
  • ROBOTIS相关软件
  • DYNAMIXEL-Protocol-1
  • DYNAMIXEL-Protocol-2
  • Dynamixel-wizard2
  • Robotis-Manipulator库
  • 04单片机欧宝体育娱乐app官
  • 02-OpenRB-150欧宝体育娱乐app官
  • OpenCM9.04欧宝体育娱乐app官
  • 01_OpenCM9-04欧宝体育娱乐app官介绍
  • 02_OpenCM9-04硬件介绍
  • 03_OpenCM9-04供电方式
  • 04-OpenCM9-04软件安装
  • 05-如何安装windows驱动
  • 06-OpenCM9-04的Recovery模式
  • 05资料下载
  • ROBOTIS产品相关下载
  • ROBOTIS产品相关软件
  • ROBOTIS相关产品图纸下载
  • 07-TurtleBot3-ROS机器人
  • 01-概览
  • 01-1-TurtleBot3概述
  • 01-2-TurtleBot3纪事
  • 02-产品特征
  • 03-快速入门
  • 03-1-PC设置
  • 03-2-SBC设置
  • 03-3-OpenCR设置
  • 03-4-硬件装配
  • 03-5-启动
  • 03-6-基本操作
  • 04-SLAM
  • 05-Navigation导航
  • 06-Simulation模拟仿真
  • 06-1-Gazebo仿真
  • 06-2-SLAM仿真
  • 06-3-Navigation仿真
  • 06-4-Fake节点仿真
  • 06-5-独立运行Gazebo仿真
  • 07-机械手
  • 07-1-TurtleBot3机械手基本操作
  • 07-2-TurtleBot3家庭服务挑战
  • 08-自动驾驶
  • 08-1-自动驾驶基本操作
  • 08-2-TurtleBot3自动驾驶挑战赛2019
  • 09-机器学习
  • 10-Examples范例
  • 11-其他拓展样例
  • 12-其他学习资料
  • 13-更多相关资源
  • 14-FAQ常见问题
  • Dynamixel-Shield-Arduino扩展板

    小芽科技 2021-12-01 09:22:29
    Categories: Tags:

    产品介绍

    img

    立刻购买goumai

    DYNAMIXEL Shield的创建是为了在arduino板上使用RC-100遥控器和DYNAMIXEL欧宝体育全站app。我们为DYNAMIXEL Shield提供了dynamixel库,它可以帮助您轻松使用dynamixel 欧宝体育全站app。

    jingshi 此产品不包含Arduino欧宝体育娱乐app官,请另外选购Arduono欧宝体育娱乐app官。

    规格

    名目 描述
    操作电压
    5 V (XL-330) ~ 24 V (PRO / X Series)
    最大支持电流
    1 A(Arduino), 10 A (Terminal Connector)

    支持的DYNAMIXEL的欧宝体育全站app型号

    DYNAMIXEL Series
    AX
    AX-12W
    AX-12+/12A
    AX-18F/18A
    RX biaoji
    RX-10
    RX-24F
    RX-28
    RX-64
    DX biaoji
    DX-113
    DX-116
    DX-117
    EX biaoji
    EX-106+
    MX
    MX-12W
    MX-28, MX-28(2.0)
    MX-64, MX-64(2.0)
    MX-106, MX-106(2.0)
    XL
    XL320
    XL430-W250
    XL330-M077 XL330-M288
    2XL430-W250
    XC
    XC330-T288 XC330-T181 XC330-M288 XC330-M181
    XC430-W150 XC430-W240
    2XC430-W250
    XM
    XM430-W210
    XM430-W350
    XM540-W150
    XM540-W270
    XH
    XH430-W210 XH430-W350
    XH430-V210 XH430-V350
    XH540-W150 XH540-W270
    XH540-V150 XH540-V270
    XD
    XD430-T210-R XD430-T350-R
    XD540-T150-R XD540-T270-R
    XW
    XW430-T333-R XW430-T200-R
    XW540-T140-R XW540-T260-R
    PRO H
    H42-20-S300-R
    H54-100-S500-R
    H54-200-S500-R
    PRO M
    M42-10-S260-R
    M54-40-S250-R
    M54-60-S250-R
    PRO Lbiaoji
    L42-10-S300-R
    L54-30-S500-R
    L54-30-S400-R
    L54-50-S500-R
    L54-50-S290-R
    PRO H(A)
    H42-20-S300-R(A)
    H54-100-S500-R(A)
    H54-200-S500-R(A)
    PRO M(A)
    M42-10-S260-R(A)
    M54-40-S250-R(A)
    M54-60-S250-R(A)
    PH
    PH42-020-S300-R
    PH54-100-S500-R
    PH54-200-S500-R
    PM
    PM54-060-S250-R
    PM54-040-S250-R
    PM42-010-S260-R

    biaoji 默认情况下,由于RX、DX、EX系列停产,所以此板对它们处于禁用状态,如需使用,请在DynamicXel2Arduino中修改config.h

    产品细节展示

    img

    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
    jinggao警告2 SoftwareSerial
    8
    SW UART TX
    jinggao警告2 SoftwareSerial
    名目 描述 备注
    DYNAMIXEL Port
    TTL, TTL(XL-320), RS485
    jinggao警告3
    Power Switch
    Power SW (DYNAMIXEL Port Power Switch)
    -
    UART Switch
    UART SW (Upload or DYNAMIXEL Select Switch)
    jinggao警告1
    Jumper Cap
    Power Source Selection
    Read ‘Connecting Power’
  • DXL_RX (0), DXL_TX (1) : 用于与Dynamixel欧宝体育全站app通信的硬件串行端口。
  • DXL_DIR(2) : 收发DYNAMIXEL数据包的使能控制管脚.
  • 硬件串行端口用于与Dynamixel欧宝体育全站app通信,因此,RC-100遥控器LN-101下载器必须通过Arduino引脚7和8连接到软件串行通信端口(SW TX/RX)。
  • jinggao 警告1 使用Ardino IDE通过USB端口上载固件程序时,应将波动开关UART SW切换到Upload模式。程序上载完毕之后,将UART SW选择为Dynamixel模式,可以控制Dynamixel欧宝体育全站app;也就是说,上传程序和控制欧宝体育全站app使用的是同一串口,两种行为不可以同时使用,只能选其一。

    jinggao 警告2 如果您使用的电路板不支持SoftwareSerial(如SAMD等),则不能将引脚7和8用于UART。

    jinggao 警告3 TTL、TTL(XL-320)和RS485连接器均在一个串行中并联连接。

    DYNAMIXEL Shield在使用IDE串行监视器时该注意的问题

    zhuyi**注意: **DynamixelShield使用与Arduino Uno/Mega相同的串行引脚(0,1)。使用串行监视器时,由于端口冲突,可能会导致电路板中的数据出现意外问题。

    为了防止电路板发生端口冲突,请务必仔细阅读下面章节:DYNAMIXEL Shield 如何使用串行监视器

    DYNAMIXEL Shield 如何使用串行监视器

    zhuyi**注意: **检查arduino板的类型,并选择所列解决方案中对应的一种,最好是能够了解所使用欧宝体育娱乐app官硬件串口情况,然后再决定使用哪种方案来使用串口监视器(或串口助手),以免出现无法显示或者反馈乱码等问题。

    1. [推荐] #define DEBUG_SERIAL

    2. 请在Arduino IDE中DynamixelShield Examples查阅 #define DEBUG_SERIAL的定义和使用 。
  • 使用DYNAMIXEL Shield的UART口(AVR 8位板,包括Uno/Mega板)

  • AVR 8 位板,比如Arduino Uno和Mega, 可以利用DYNAMIXEL Shield的管脚来是使用串行监视器(串口工具),这个串口将监视串行信息,如下图所示:

    power_polarity

  • : 可以使用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.
  • 连接电源

    连接跳帽 断开跳帽
    img
    img
  • 根据是否连接跳帽,板子使用电源(非欧宝体育全站app使用)输入按如下划分。

    1.连接跳帽:使用Arduino SMPS连接器的电源

    2.断开跳帽:使用DYNAMIXEL shield的电源输入连接器的电源。不使用arduino提供的电源。

  • 由于DYNAMIXEL欧宝体育全站app无法使用Arduino板的USB电源,因此需要连接外部电源。

  • 使用电源输入连接器时,确保检查电源的极性

  • img

    拨动开关

    img

    程序上载和Dyamixel欧宝体育全站app控制开关

  • 对于Dynamixel欧宝体育全站app的控制,使用arduino板的硬件串行端口。由于上载程序使用的是同一串行端口,所以这两个端口可能会发生冲突。因此,要上载程序,请把拨动开关拨到Upload一侧。
  • 当程序上载完毕,请把拨动开关拨到Dynamixel一侧,否则无法对欧宝体育全站app进行控制。
  • DYNAMIXEL 电源开关

  • 此开关用于开启或在关闭Dynamixel欧宝体育全站app电源。
  • 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官方指南详细描述了每种安装方式的流程

    下面是通过库管理器安装的方式演示:

    img

    在Library Manager中查找dynamixel shield,然后选择最新版本安装。

    img

    点击 Install all 去安装依赖库Dynamixel2Arduino.

    img

    如果你成功安装了这两个库,你将能在Examples中找到关于DynamixelShield的一些例程。

    img

    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类从主类继承以下公共函数。

  • syncRead()
  • syncWrite()
  • bulkRead()
  • bulkWrite()
  • getLastLibErrCode()
  • RobotisRemoteController Class

  • begin()
  • availableData()
  • readData()
  • availableEvent()
  • readEvent()
  • flushRx()
  • available()
  • read()
  • peek()
  • flush()
  • write()
  • DynamixelShield(v0.0.5)

    WARNING : 此版本的Dynamixel Shield API已弃用,不再维护。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    bool begin(uint32_t baud_rate = 57600, uint8_t protocol_version = DXL_PACKET_VER_2_0);

    bool scan(void);
    bool ping(uint8_t id = DXL_GLOBAL_ID);
    bool addMotor(uint8_t id, uint8_t model);
    bool setProtocolVersion(uint8_t version);
    bool write(uint8_t id, uint16_t addr, uint8_t *p_data, uint16_t length, uint32_t timeout);
    bool read(uint8_t id, uint16_t addr, uint8_t *p_data, uint16_t length, uint32_t timeout);

    uint8_t getDxlCount(void);
    uint8_t getDxlID(uint8_t index);
    uint32_t getErr(void);
    void clearErr(void);

    bool reboot(uint8_t id);
    bool reset(uint8_t id);

    bool setID(uint8_t id, uint8_t new_id);
    bool setBaud(uint8_t id, uint32_t new_baud);

    bool ledOn(uint8_t id);
    bool ledOff(uint8_t id);

    bool torqueOn(uint8_t id);
    bool torqueOff(uint8_t id);

    bool setJointMode(uint8_t id);
    bool setWheelMode(uint8_t id);

    bool setGoalPosition(uint8_t id, uint32_t position);
    int32_t getGoalPosition(uint8_t id);
    int32_t getCurPosition(uint8_t id);

    bool setGoalSpeed(uint8_t id, int32_t speed);
    int32_t getGoalSpeed(uint8_t id);
    int32_t getCurSpeed(uint8_t id);

    bool setGoalAngle(uint8_t id, int32_t angle);
    int32_t getGoalAngle(uint8_t id);
    int32_t getCurAngle(uint8_t id);

    bool syncWriteBegin(void);
    bool syncWriteEnd(void);
    01_OpenCM9-04欧宝体育娱乐app官介绍
    ROBOTIS产品相关软件