Edit on GitHub

DX-117

WARNING : DX-117 은 현재 단종되어 더 이상 판매되지 않습니다.

주요 사양

항목 내용
무게 66g
크기 31mm x 46mm x 37mm
최소 제어각 0.29°
기어비 192.6 : 1
Stall Torque 3.7 N*m (at 18.5V, 1.9A)
No Load Speed 85 RPM (at 18.5V)
동작 모드 관절 모드 (0° ~ 300°)
동작 온도 -5°C ~ +80°C
사용 전압 12 ~ 18.5V (권장 전압 : 14.8V)
Command Signal Digital Packet
Protocol Type Half Duplex Asynchronous Serial Communication
(8bit, 1stop, No Parity)
Link (Physical) RS485 Multi Drop Bus(Daisy Chain Type Connector)
ID 254 ID (0~253)
통신 속도 7343 bps ~ 1 Mbps
Feedback Position, Temperature, Load, Input Voltage, etc
Material Full Metal Gear, Engineering Plastic Body

WARNING : Stall Torque 는 순간적으로 낼수있는 최대정지토크를 의미합니다. 실제 구동을 위해 로봇을 설계하신다면 Stall Torque의 1/5 이하의 로드가 걸리도록 설계하셔야 안정적인 움직임이 가능합니다.


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

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


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

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


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

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

컨트롤 테이블

Control Table은 장치 내부에 존재하는 값으로서 장치의 현재 상태와 구동에 관한 Data로 구성되어 있습니다.
사용자는 Instruction Packet을 통해 Control Table의 Data를 변경하는 방식으로 장치를 제어할 수 있습니다.

컨트롤 테이블, 데이터, 주소

Control Table은 장치의 상태와 제어를 위한 다수의 Data 필드로 구성된 집합체입니다.
사용자는 READ Instruction Packet을 통해 Control Table의 특정 Data를 읽어서 장치의 상태를 파악할 수 있습니다.
또한 WRITE Instruction Packet을 통해 Control Table의 특정 Data를 변경함으로써 장치를 제어할 수 있습니다.
Address는 Instruction Packet으로 Control Table의 특정 Data를 접근할 때 사용하는 고유값입니다.
장치의 Data를 읽거나 쓰기 위해서는 Instruction Packet에 해당 Data의 Address를 지정해 주어야 합니다.
Packet에 대한 자세한 내용은 Protocol 1.0을 참고해주세요.

참고 : 음수의 표현 방법은 2의 보수(Two’s complement) 규칙을 따릅니다. 2의 보수에 대한 자세한 설명은 위키피디아의 Two’s complement를 참고하세요.

영역 (EEPROM, RAM)

Control Table은 2가지 영역으로 구분됩니다. RAM Area에 위치한 Data는 전원이 인가될 때마다 다시 초기값으로 설정됩니다(Volatile).
반면 EEPROM Area에 위치한 Data는 값을 변경하면 전원이 꺼져도 그 값이 보존됩니다(Non-Volatile).
EEPROM Area에 위치한 모든 Data는 Torque Enable(24)의 값이 ‘0’일 때만 변경할 수 있습니다.

크기

Data의 Size는 용도에 따라 1 ~ 2 byte로 정해져 있습니다. Instruction Packet을 통해 Data를 변경할 때는 해당 Data의 Size를 확인하시기 바랍니다.
2 byte 데이터는 Little Endian 규칙에 의해 기록됩니다.

접근권한

Control Table의 Data는 2가지 접근 속성을 갖습니다. ‘RW’는 읽기와 쓰기 접근이 모두 가능합니다. 반면 ‘R’은 읽기 전용(Read Only) 속성을 갖습니다.
읽기 전용 속성의 Data는 WRITE Instruction으로 값이 변경되지 않습니다.
읽기 전용 속성(‘R’)은 주로 측정 또는 모니터링 용도로 사용되고, 읽기 쓰기 속성(‘RW’)은 장치의 제어 용도로 사용됩니다.

초기값

장치에 전원이 인가될 때, Control Table의 각 Data는 초기값으로 설정됩니다.
매뉴얼에 표기된 EEPROM 영역의 Default Value는 제품의 초기 설정값(공장 출하 설정값)입니다.
사용자가 변경한 경우, 초기값은 사용자가 변경한 값으로 적용됩니다.
RAM 영역의 Default Value 값은 전원이 인가되었을 때 설정되는 값입니다.

EEPROM 영역

주소 크기
(Byte)
명칭 의미 접근 초기값
0 2 Model Number 모델 번호의 바이트 R 117
2 1 Firmware Version 펌웨어 버전 정보 R -
3 1 ID 다이나믹셀 ID RW 1
4 1 Baud Rate 다이나믹셀 통신 속도 RW 34
5 1 Return Delay Time 응답 지연 시간 RW 250
6 2 CW Angle Limit 시계 방향 한계 각도 값의 바이트 RW 0
8 2 CCW Angle Limit 반시계 방향 한계 각도 값의 바이트 RW 1023
11 1 Temperature Limit 내부 한계 온도 RW 80
12 1 Min Voltage Limit 최저 한계 전압 RW 60
13 1 Max Voltage Limit 최고 한계 전압 RW 190
14 2 Max Torque 토크 한계 값의 바이트 RW 1023
16 1 Status Return Level 응답 레벨 RW 2
17 1 Alarm LED 알람용 LED 기능 RW 36
18 1 Shutdown 알람용 셧 다운(Shut down) 기능 RW 36

RAM 영역

주소 크기(Byte) 명칭 의미 접근 초기값
24 1 Torque Enable 토크 켜기 RW 0
25 1 LED Status LED On/Off RW 0
26 1 CW Compliance Margin CW Compliance Margin RW 1
27 1 CCW Compliance Margin CCW Compliance Margin RW 1
28 1 CW Compliance Slope CW Compliance Slope RW 32
29 1 CCW Compliance Slope CCW Compliance Slope RW 32
30 2 Goal Position 목표 위치 값의 바이트 RW -
32 2 Moving Speed 목표 속도 값의 바이트 RW -
34 2 Torque Limit 토크 한계 값의 바이트 RW ADD 14\&15
36 2 Present Position 현재 위치 값의 바이트 R -
38 2 Present Speed 현재 속도 값의 바이트 R -
40 2 Present Load 현재 하중 값의 바이트 R -
42 1 Present Voltage 현재 전압 R -
43 1 Present Temperature 현재 온도 R -
44 1 Registered Instruction의 등록 여부 R 0
46 1 Moving 움직임 유무 R 0
47 1 Lock EEPROM 잠금 RW 0
48 2 Punch Punch 값의 바이트 RW 32

컨트롤 테이블 설명

Model Number (0)

다이나믹셀의 모델 번호입니다

Firmware Version (2)

다이나믹셀 펌웨어 버전입니다.

ID (3)

Instruction Packet으로 장치를 식별하기 위한 고유 번호입니다.
0~253 (0xFD) 까지 사용 가능하며, 254(0xFE)는 브로드캐스트(Broadcast) ID로 특수하게 사용됩니다.
브로드캐스트 ID(254, 0xFE)로 Instruction Packet을 전송하면 모든 장치에 명령을 내릴 수 있습니다.

참고 : 연결된 장치의 ID가 중복되지 않도록 주의해야 합니다. 또한 ID(7)는 EEPROM 영역에 존재하기 때문에 Torque Enable(64) 의 값이 ’0’ 일 때만 변경할 수 있습니다.

Baud Rate (4)

제어기와 통신하기 위한 통신 속도 입니다. 0 ~ 254 (0xFE) 까지 사용 가능하며 산출 공식은 다음과 같습니다.
Baudrate(BPS) = 2,000,000 / (Value + 1)

통신속도(bps) 오차율
1 1M 0.000 [%]
3 500,000 0.000 [%]
4 400,000 0.000 [%]
7 250,000 0.000 [%]
9 200,000 0.000 [%]
16 115200 -2.124 [%]
34(초기값) 57600 0.794 [%]
103 19200 -0.160 [%]
207 9600 -0.160 [%]

참고 : UART는 Baudrate 오차가 3 [%] 이내이면 통신에 지장이 없습니다.

Return Delay Time (5)

제어기로부터 Instruction Packet을 받은 후, Status Packet을 반환하기까지 걸리는 시간입니다.
0 ~ 254 (0xFE) 까지 사용 가능하며 단위는 2 [μsec] 입니다.
예를 들어, 값이 10일 경우 20 [μsec] 만큼 시간이 지난 후에 Status Packet을 응답합니다.

단위 범위 상세설명
2 [μsec] 0 ~ 254 기본값: ‘250’(500 [μsec]), 최대 508 [μsec]

CW/CCW Angle Limit(6, 8)

동작이 허용되는 각도를 설정할 수 있습니다. 값의 범위와 단위는 Goal Position(Address 30, 31)과 같습니다.

CW와 CCW의 값에 따라 다음의 2가지 동작 모드를 설정할 수 있습니다.

동작 방식 CW / CCW
바퀴 모드 둘 다 ‘0’일때
관절 모드 둘 다 ‘0’이 아닐떄

바퀴 모드는 모터가 무한 회전을 하여 바퀴형 구동 로봇에 쓸 수 있습니다.
관절 모드는 특정 각도로 제어가 가능하여 다관절 로봇에 쓸 수 있습니다.

주의 : DX-117은 바퀴 모드를 지원하지 않습니다.

Temperature Limit (11)

동작 온도의 상한 값입니다.

단위 범위
약 1 [°C] 0 ~ 100

주의 : 온도 상한선을 초기값보다 높게 설정하지 마십시오. 온도 알람셧다운 발생시 20분이상 휴식하여 장치의 온도를 충분히 낮춘후 사용해 주세요. 온도가 높은상태에서 사용시 제품이 손상될 수 있습니다.

Min/Max Voltage Limit (12, 13)

전압 동작 범위의 상한과 하한 값입니다.

단위 범위 상세설명
약 0.1 [V] 50 ~ 250 5.0 ~ 25.0 [V]

상한과 하한 각각 50 ~ 250 (0x32 ~ 0xFA)까지 사용 가능하며, 단위는 0.1 [V]입니다. 예를 들어, 값이 120이면 12 [V]입니다. Present Voltage(42) 현재 전압 값이 이 범위를 벗어날 경우 Status Packet 중 ERROR의 Voltage Range Error Bit(Bit0)가 ‘1’로 설정되어 반환되고, Alram LED(Address 17)과 Shutdown(Address 18)의 플래그(flag)중 입력 전압 에러(Input Voltage Error)가 설정되어 있다면 기능이 발휘됩니다.

Max Torque (14)

모터의 최대 출력 제한 값입니다.
0 ~ 1,023 (0x3FF) 까지 사용 가능하며, 단위는 약 0.1 [%]입니다.
예를 들어, 값이 512이면 약 50 [%]이고 최대 출력 대비 50 [%]만 사용하겠다는 의미입니다.
전원이 켜지면 Torque Limit(Address 34, 35)는 이 값을 초기 값으로 사용합니다.

Status Return Level (16)

Status Packet의 반환 방식을 결정합니다.

응답하는 명령 상세설명
0 PING Instruction 모든 명령에 대해 반환하지 않음
1 PING Instruction
READ Instruction
READ 명령에 대해서만 반환함
2 All Instructions 모든 명령에 대해서 반환함

참고 : Instruction packet 의 ID가 Broadcast ID 인 경우는 이 값에 상관 없이 Status Packet이 반환되지 않습니다. 더 자세한 설명은 Protocol 1.0Protocol 2.0Status Packet 항목을 참조하심시오.

Alarm LED(17), Shutdown(18)

장치는 동작 중에 발생하는 위험 상황을 감지하여 스스로를 보호할 수 있습니다.
각 Bit의 기능은 ‘OR’의 논리로 적용되기 때문에 중복 설정이 가능합니다.
즉, Shutdown(63)이 ‘0x05’ (2 진수: 00000101)로 설정되었을 경우, Input Voltage Error(2 진수 : 00000001)와 Overheating Error(2 진수 : 00000100)가 발생하는 것을 모두 감지할 수 있습니다.
위험 상황이 감지되면, Torque Enable(64) 값이 ‘0’으로 변경되고 모터 출력은 0 [%]가 됩니다.
제어기는 Status Packet의 Error 필드에 Hardware Error Bit(0x80)이 설정되었는지를 확인하거나, Hardware Error Status(70)을 통해서 현재 상태를 확인할 수 있습니다.
위험 상황이 감지된 후에는 REBOOT을 하지 않는 한, Torque Enable(64)을 ‘1’(Torque ON)로 설정할 수 없습니다.
Shutdown(63)에서 감지할 수 있는 위험 상황은 아래 표와 같습니다.

Bit 항목 설명
Bit 7 0 -
Bit 6 Instruction Error 정의되지 않은 Instruction이 전송된 경우, 또는 reg_write명령없이 Action명령이 전달된 경우
Bit 5 Overload Error 모터의 최대 출력으로 제어할 수 없는 하중이 지속적으로 적용되는 경우
Bit 4 CheckSum Error 전송된 Instruction Packet의 ChecklSum이 맞지 않을 경우
Bit 3 Range Error 해당 Address의 값의 범위를 벗어난 값을 Instruction Packet으로 보내는 경우
Bit 2 OverHeating Error 내부 온도가 설정된 동작 온도 범위를 벗어난 경우
Bit 1 Angle Limit Error 적용한 Goal Position이 설정한 CW/CCW Angle Limit 범위를 벗어난 경우
Bit 0 Input Voltage Error 인가된 전압이 설정된 동작 전압 범위를 벗어났을 경우

각 Bit의 기능은 ‘OR’의 논리로 적용되기 때문에 중복 설정이 가능합니다. 즉, 0x05 (2 진수: 00000101)로 설정되었을 경우 Input Voltage Error와 Overheating Error가 발생하는 것을 모두 감지할 수 있습니다. 위험 상황이 발생하면 LED를 깜박이고, Torque Limit의 값을 0 으로 만들어서 모터 출력이 0%가 되도록 합니다.

Torque Enable (24)

상세 설명
0 Torque OFF(Free-run) 상태로 변경합니다
1 Torque ON 상태로 변경하고 EEPROM 영역의 모든 데이터는 잠김상태로 변경됩니다

LED (25)

LED를 ON/OFF 합니다.

설명
0(초기값) LED를 Off 시킵니다.
1 LED를 On 시킵니다.

참고 : 장치의 상태(조건)에 따른 LED의 동작입니다.

상태 LED 동작
부팅 1회 점멸
공장 초기화 4회 점멸
알람 점멸
슬레이브 모드(MX-106) 3회 점멸
부트 모드 점등

Compliance Margin (26, 27)

CW/CCW 방향 별로 존재하며 목표 위치와 현재 위치의 오차를 의미합니다. 값의 범위는 0 ~ 255이며, 단위는 Goal Position(Address 30, 31)과 같습니다.
이 값이 클수록 유격이 많이 생기는 효과가 나타납니다.

Compliance Slope (28, 29)

CW/CCW 방향 별로 존재하며 목표 위치 근처에서 출력의 정도를 설정합니다.
Compliance Slope는 총 7 단계로 설정할 수 있으며 값이 높을 수록 유연성이 좋아집니다.
Data 대표값은 실제로 사용되는 값입니다. 즉, 25로 설정되어도 대표값 16으로 내부에서는 사용됩니다.

단계 데이터 값 데이터 대표값
1 0(0x00) ~ 3(0x03) 2(0x02)
2 4(0x04) ~ 7(0x07) 4(0x04)
3 8(0x08)~15(0x0F) 8(0x08)
4 16(0x10)~31(0x1F) 16(0x10)
5 32(0x20)~63(0x3F) 32(0x20)
6 64(0x40)~127(0x7F) 64(0x40)
7 128(0x80)~254(0xFE) 128(0x80)

Compliance는 모터의 제어의 유연성을 설정하는 것입니다. 아래 그림은 위치와 모터의 출력 관계를 나타냅니다.

Goal Position (30)

이동 시키고자 하는 곳의 위치 값입니다. 0 ~ 1,023 (0x3FF)까지 사용 가능하며 단위는 0.29 [°] 입니다.
CW/CCW Angle Limit의 벗어난 값을 사용하게 되면 Status Packet 중 ERROR의 Angle Limit Error Bit(Bit1)가 ‘1’로 설정되어 반환되고, Alarm LED/Shutdown의 플래그(flag)중 Angle Limit Error가 설정되어 있다면 기능이 발휘됩니다.

위 그림은 다이나믹셀을 정면에서 보았을 때의 그림입니다.

참고 : 바퀴 모드로 설정되어 있는 경우 이 값은 사용되지 않습니다.

Moving Speed (32)

이동하는 속도를 나타내며 이 값의 범위와 단위는 동작 모드에 따라 다릅니다.

Torque Limit (34)

모터의 최대 출력 제한 값입니다.
0 ~ 1,023 (0x3FF)까지 사용 가능하며, 단위는 약 0.1 [%]입니다.
예를 들어, 값이 512이면 약 50 [%]이고 최대 출력 대비 50 [%]만 사용하겠다는 의미입니다.
전원이 켜지면 Max Torque(Address 14, 15)의 값을 초기 값으로 사용합니다.

참고 : Alarm Shutdown의 기능이 발휘되면 이 값이 0이 되어 모터의 힘이 없어지게 됩니다. Alarm Shutdown조건이 해제되고 이 값을 0이 아닌 값으로 바꾸면 다시 모터의 출력이 발휘되어 사용할 수 있습니다.

Present Position (36)

장치의 현재 위치 값입니다. 값의 범위는 0 ~ 1,023(0x3FF)이며 단위는 0.29 [°] 입니다.

위 그림은 해당 모델의 전면이 기준입니다.

주의 : 바퀴 모드로 설정되어 있는 경우 이 값을 회전량 또는 움직인 거리를 측정하는 용도로 사용할 수 없습니다.

Present Speed (38)

현재  이동하는 속도입니다.
이 값은 0~2047 (0x7FF) 까지 사용됩니다.
0~1023 범위의 값이면 CCW방향으로 회전한다는 의미입니다.
1024~2047 범위의 값이면 CW방향으로 회전한다는 의미입니다.
즉, 10번째 bit가 방향을 제어하는 direction bit가 되며 0과 1024는 같습니다.
이 값의 단위는 동작 모드에 따라 다릅니다.

Present Load (40)

현재 적용되는 하중을 의미합니다.
이 값의 범위는 0 ~ 2,047이며, 단위는 약 0.1 [%]입니다.
0 ~ 1,023 범위의 값은 CCW 방향으로 하중이 작용한다는 의미입니다.
1,024 ~ 2,047 범위의 값은 CW 방향으로 하중이 작용한다는 의미입니다.
즉, 10번째 bit가 방향을 제어하는 direction bit가 되며, 1,024는 0과 같습니다.
예를 들어, 값이 512이면 CCW 방향으로 최대 출력 대비 약 50 [%]로 하중이 감지된다는 의미입니다.

Bit 15 ~ 11 10 9 ~ 0
0 하중 방향 데이터 (하중 비율)

참고 : CCW 하중 : 하중 방향 비트(Bit 10) = 0, CW 하중 : 하중 방향 비트(Bit 10) = 1

참고 : 현재하중은 토크센서 등을 이용하여 측정된 값이 아니라 내부 출력 값을 기반으로 유추된 값 입니다. 따라서 무게나 토크를 측정하는 용도로는 부정확 할 수 있습니다. 해당 관절에 가해지는 힘의 방향과 크기를 예측하는 용도로 사용하시기를 권장합니다.

Present Voltage (42)

현재 공급되고 있는 전압입니다. 이 값의 단위는 0.1 [V]입니다. 예를 들어, 값이 100(0x64)이면 10 [V]입니다.

만약 Present Voltage(42)값이 범위를 벗어나게 되면 Status Packet의 Voltage Range Error Bit(Bit0)이 ‘1’이 되며 Alarm(Address 17)이 ‘1’로 설정되고 Alarm Shutdown(Address 18)의 0번 비트가 1로 설정됩니다.

Present Temperature (43)

내부의 온도이며 이 값의 단위는 섭씨 온도입니다.
예를 들어, 값이 85이면 현재 내부 온도는 85 [°C] 입니다.

Registered Instruction (44)

Value Description
0 REG_WRITE로 전달된 명령이 없습니다.
1 REG_WRITE로 전달된 명령이 있습니다.

참고 : ACTION 명령을 수행하면 이 값이 ‘0’으로 바뀝니다.

Moving (46)

설명
0 Goal position 명령 수행을 완료했습니다.
1 Goal position 명령을 수행중입니다.

Lock (47)

설명
0 EEPROM 영역을 수정할 수 있습니다.
1 EEPROM 영역을 수정하지 못합니다.

주의 : Lock이 1로 설정되면 전원을 껐다 켜야 0으로 바꿀 수 있습니다.

Punch (48)

구동시에 모터에 공급되는 최소 전류량 입니다. 초기값은 0x00이며 최고 0x3FF까지 설정할 수 있습니다.

조립 예시

유지보수

혼과 베어링 교체

혼은 다이나믹셀 정면의 출력축에 부착되어 있으며 베어링은 후면에 부착되어 있습니다.

혼 조립하기

혼을 끼워넣기 전에 혼 와셔를 넣어주어야 합니다.
아래 그림과 같이 혼과 기어의 마킹 위치에 맞추어 혼을 조립합니다.

혼을 끼워넣을 때 혼의 중심부를 밀면서 조립합니다.
이때 혼 와셔가 중심에서 벗어나지 않도록 하고 조립이 끝나면 볼트로 혼을 고정합니다.

베어링 조립하기

기존 다이나믹셀에서 사용하던 베어링을 새 다이나믹셀에 조립해야 할 경우 아래 방법을 따릅니다.
베어링은 쇼핑몰에서 별도로 구매할 수 있습니다. 베어링은 혼과는 달리 구동축에 연결되지 않기 때문에 자유롭게 회전이 가능합니다.

참고자료

주의: 호환성 가이드

커넥터 정보

항목 RS-485
핀 번호 1 GND
2 VDD
3 DATA+
4 DATA-
다이어그램
하우징
MOLEX 50-37-5043
PCB 헤더
MOLEX 22-03-5045
Crimp 터미널 MOLEX 80-70-1039
Wire Gauge 21 AWG

주의: 커넥터 제조사의 PIN 순서와 상이할 수 있으니 반드시 PIN 순서를 확인하시기 바랍니다.

도면

통신 회로

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

TTL 통신

RS-485 통신

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

주의: 커넥터 제조사의 PIN 순서와 상이할 수 있으니 반드시 PIN 순서를 확인하시기 바랍니다.