Edit on GitHub

개요

아두이노 보드에서 다이나믹셀과 RC-100을 사용하기위한 쉴드 보드이며 다이나믹셀 제어를 위한 라이브러리를 제공함.

본 제품은 아두이노 보드를 포함하지 않습니다. 아두이노 관련 제품은 별도로 구매를 해야합니다.

제품 사양

항목 사양
동작 전압 5 V (XL-330) ~ 24 V (PRO / X Series)
허용전류 1 A(아두이노), 10 A(터미널 전원 커넥터)


위험
(심각한 상해 또는 사망에 이르게 할 수 있습니다.)

  • 제품 주위에 가연성 물질, 계면활성제, 음료수, 물을 분사하거나 흡입시키지 마세요.
  • 작동 중인 제품에 손, 발과 같은 신체 또는 신체의 일부를 넣지 마세요.
  • 제품에서 이상한 냄새가 나거나, 연기가 발생하면 전원 연결을 즉시 끊어주세요.
  • 아이들이 제품으로 장난치지 않도록 하세요.
  • 전원공급 시 극성을 반드시 확인해 주세요.


경고
(상해나 제품 손상의 원인이 됩니다.)

  • 제품의 사용 환경을 준수하세요. (전압, 온도 등)
  • 작동 중인 제품 내부로 칼날, 압정, 불씨 등을 흡입시키지 마세요.


주의
(상해나 제품 손상의 원인이 됩니다.)

  • 제품을 사용자 임의로 분해 또는 개조하지 마세요.
  • 제품에 강한 충격을 가하거나 떨어드리지 마세요.

지원되는 다이나믹셀

다이나믹셀 시리즈          
AX AX-12W AX-12+/12A AX-18F/18A    
RX 1 RX-10 RX-24F RX-28 RX-64  
DX 1 DX-113 DX-116 DX-117    
EX 1 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
XC430-T150BB
XC430-T240BB
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 L 1 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    

1 RX, DX, EX, PRO L 시리즈를 사용하려면 소스 코드에서 별도의 설정이 필요합니다.

각 부 명칭

다이나믹셀 쉴드의 핀 맵은 아두이노 UNO 보드의 핀 맵과 동일하다. 관련된 핀 정보는 아두이노 공식 사이트에서 관련된 보드의 핀정보를 참고할것.

핀 번호 핀 이름 설명
0 HW UART RX DXL_RX
1 HW UART TX DXL_TX
7 SW UART RX 주의2 SoftwareSerial
8 SW UART TX 주의2 SoftwareSerial
항목 핀 이름 설명
다이나믹셀 포트 TTL, TTL(XL-430), RS485 주의3
전원 스위치 Power SW (다이나믹셀 포트 전원 스위치) -
UART 스위치 UART SW (업로드 또는 다이나믹셀 선택 스위치) 주의1
Jumper Cap 전원 선택 ‘전원 연결 방법’

주의1: UART SW(SW_2)를 Upload로 세팅해야, 펌웨어를 USB 포트를 통해서 업로드 할 수 있다. 다이나믹셀로 세팅해야만, 다이나믹셀을 활용할 수 있다. 이 때는, USB 포트를 사용하지 못하므로, 펌웨어를 업로드 할 수 없다.
주의2: SoftwareSerial을 지원하지 않는 보드를 사용한다면, 핀 7번과 8번을 UART 통신으로 사용하지 못한다.
주의3: TTL, TTL (XL-430) and RS485 커넥터들은 병렬로 연결되어 하나의 serial을 사용한다.

시리얼 모니터 사용시 주의사항

아두이노 보드와 다이나믹셀 쉴드와 함께 Serial Monitor를 사용할 때는 보드에 따라 제약조건이 있다.

UNO 및 Mega (8bit MCU)는 USB에서 사용하는 Serial핀이 다이나믹셀에서 사용하는 핀(0, 1)과 동일하기 때문에, USB로 시리얼 모니터를 사용 시, 다이나믹셀의 포트와 충돌하여 데이터가 손상 될 수 있다. 그에 따라 다이나믹셀 쉴드와 아두이노 보드에서 시리얼 모니터 사용 방법을 아래에 나열한다.

시리얼 모니터 사용 방법

해당하는 보드를 확인한뒤, 아래의 방법 중 하나를 택한다.

  1. [추천] #define DEBUG_SERIAL 사용
    • DynamixelShield Examples의 코드에 있는 #define DEBUG_SERIAL 정의를 확인 할것.
  2. 다이나믹셀 쉴드의 UART 포트 사용 (조건: UNO/Mega시리즈를 포함한 아두이노 AVR 8bit 보드)
    • UNO와 Mega를 포함한 아두이노 AVR 8bit 보드는 다이나믹셀 쉴드의 UART라고 표기된 핀(각 부 명칭 참조)을 사용하여 Serial Monitor를 사용할 수 있다.

    참고: 이 포트는 Serial 핀이 아닌 일반 핀을 사용하기때문에, SoftwareSerial 라이브러리를 반드시 사용 해야 한다. UART포트에 사용하기 적합한 통신 모듈은 BT-210, BT-410, LN-101이 있다.

  3. USB포트 사용
    • UNO 및 Mega 시리즈를 제외한 나머지 아두이노 보드에서는 USB포트를 통해 시리얼 모니터를 사용 할 것.
  4. USB to Serial 장치 사용
    • SoftwareSerial을 사용하는 방법과 HardwareSerial을 사용하는 방법이 있다. 각각은 보드에 따라 사용 가능 여부가 다르므로 각 제품의 관련 링크들을 찾아 보길 바란다.
  5. UART 포트 사용
    • UART로 표기된 포트는 다이나믹셀 쉴드의 7(RX), 8(TX)핀에 연결되어 있다.
      이 핀들은 UNO/MEGA시리즈와 같은 AVR 8bit 보드에서만 정상 작동하며, 다른 보드에서 이 포트를 사용하기 위해서는 7(RX), 8(TX)핀 대신에 다른 HardwareSerial 핀을 연결해야만 한다.
      사용 가능한 HardwareSerial이 있는지, 그리고 그 핀 번호를 확인하려면 관련 링크를 참조하라.

전원 연결 방법

VIN 전원 공유 VIN 전원 분리

스위치

업로드 스위치

다이나믹셀 전원 스위치

다이나믹셀 쉴드 라이브러리

특징

라이브러리 설치

아두이노 IDE에서 라이브러리를 추가하는 세가지 방법이 있다.

각각의 방법에 대한 자세한 설명은 Arduino Official Guide에서 찾을 수 있다.
다음은 라이브러리 매니저를 활용하는 예이다.

다이나믹셀 쉴드 라이브러리(v0.1.0 이상)를 사용하기 위해서는 DYNAMIXEL2Arduino 라이브러리를 먼저 설치해야 한다.

라이브러리를 설치하였다면, examples 항목에 DynamixelShield가 생기고 사용 가능한 예제를 볼 수 있다.

라이브러리 API

다이나믹셀 쉴드(v0.1.0 이상)

주의 : 다이나믹셀 쉴드 라이브러리(v0.1.0 이상)를 사용하기 위해서는 DYNAMIXEL2Arduino 라이브러리를 설치해야 합니다.

Dynamixel2Arduino 클래스

Master 클래스

Dynamixel2Arduino 클래스는 Master 클래스로부터 다음의 함수를 상속받습니다.

RobotisRemoteController 클래스

다이나믹셀 쉴드(v0.0.5)

주의 : 이 버전의 API는 더이상 지원되지 않습니다.

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);

참고자료

커넥터 정보

항목 TTL RS-485 XL-320 (TTL)
핀번호 1 GND
2 VDD
3 DATA
1 GND
2 VDD
3 DATA+
4 DATA-
1 GND
2 VDD
3 DATA
다이어그램
하우징
JST EHR-03

JST EHR-04

MOLEX 51065-0300
PCB 헤더
JST B3B-EH-A

JST B4B-EH-A

MOLEX 53253-0370
Crimp 터미널 JST SEH-001T-P0.6 JST SEH-001T-P0.6 MOLEX 50212-8000
다이나믹셀 전선규격 21 AWG 21 AWG 24 AWG

통신 회로

다이나믹셀을 제어하기 위해서는 제어기의 UART 신호를 Half duplex type으로 변환시켜 주어야 합니다. 다음은 권장 회로도입니다.

TTL 통신

TTL 통신회로

참고: 위 회로는 5V 전원을 사용하는 MCU를 사용하거나 IO가 5V tolerant한 경우 사용 가능합니다. 그 외의 경우, Level Shifter를 사용하세요.

RS-485 통신

RS-485 통신회로

참고: 위 회로는 5V 전원을 사용하는 MCU를 사용하거나 IO가 5V tolerant한 경우 사용 가능합니다. 그 외의 경우, Level Shifter를 사용하세요.

전원은 Pin1(-), Pin2(+)를 통하여 다이나믹셀로 공급됩니다.(다이나믹셀 전용 Controller에는 위의 회로가 내장되어 있습니다.)
위의 회로도에서 TTL Level의 TxD와 RxD는 TX_Enable_5V의 Level에 따라 다음과 같이 Data 신호의 방향이 결정됩니다.