Edit on GitHub

XL320

주의 : 올로 감속, 서보 모터와 사이즈및 구동 전압이 다릅니다.

주요 사양

항목 내용
모터 Cored
통신 속도 7,343 [bps] ~ 1 [Mbps]
동작 모드 관절 모드 (0 ~ 300 [°])
바퀴 모드 (무한 회전)
최소 제어각 0.29 [°]
무게 16.7 [g]
크기 24 x 36 x 27 [mm]
기어비 238 : 1
Stall Torque 0.39 [N.m] (at 7.4 [V], 1.1 [A])
무부하 속도 114 [rev/min] (at 7.4 [V], 0.18 [A])
동작 온도 -5 ~ +65 [°C]
사용 전압 6 ~ 8.4 [V] (권장 전압 : 7.4 [V])
제어 명령 Digital Packet
프로토콜 타입 TTL Half Duplex Asynchronous Serial Communication with 8bit, 1stop, No Parity
통신 연결 TTL Multidrop Bus
ID 253 ID (0 ~ 252)
안전 장치 클러치
피드백 Position, Temperature, Load, Input Voltage 등
케이스 재질 Engineering Plastic
기어 재질 Engineering Plastic

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


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

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


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

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


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

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

컨트롤 테이블

컨트롤 테이블은 장치의 현재 상태와 구동 및 제어에 필요한 다수의 데이터로 이루어져 있습니다.
사용자는 Instruction Packet을 통해 컨트롤 테이블의 특정 데이터를 읽어서(READ Instruction) 장치의 상태를 파악할 수 있고, 데이터를 변경함으로써(WRITE Instruction) 장치를 제어할 수 있습니다.

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

컨트롤 테이블은 장치의 상태와 제어를 위한 다수의 데이터 필드로 구성된 집합체입니다.
사용자는 READ Instruction Packet을 통해 컨트롤 테이블의 특정 데이터를 읽어서 장치의 상태를 파악할 수 있습니다.
또한 WRITE Instruction Packet을 통해 컨트롤 테이블의 특정 데이터를 변경함으로써 장치를 제어할 수 있습니다.
Address는 Instruction Packet으로 컨트롤 테이블의 특정 데이터를 접근할 때 사용하는 고유값입니다.
장치의 데이터를 읽거나 쓰기 위해서는 Instruction Packet에 해당 데이터의 주소를 지정해 주어야 합니다.
Packet에 대한 자세한 내용은 다이나믹셀 프로토콜 2.0을 참고해주세요.

영역 (EEPROM, RAM)

컨트롤 테이블은 2가지 영역으로 구분됩니다. RAM 영역에 위치한 데이터는 전원이 인가될 때마다 다시 기본값으로 설정됩니다(Volatile).
반면 EEPROM 영역에 위치한 데이터는 값을 변경하면 전원이 꺼져도 그 값이 보존됩니다(Non-Volatile).

EEPROM Area에 위치한 모든 데이터는 Torque Enable(24)의 값이 ‘0’(Torque OFF)일 때만 변경할 수 있습니다.

크기

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

접근권한

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

기본값

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

EEPROM 영역

주소 크기(Byte) 명칭 의미 접근 기본값 Min Max
0 2 Model Number 모델 번호 R 350 - -
2 1 Firmware Version 펌웨어 버전 정보 R - - -
3 1 ID 통신 ID RW 1 0 252
4 1 Baud Rate 통신 속도 RW 3 0 3
5 1 Return Delay Time 응답 지연 시간 RW 250 0 254
6 2 CW Angle Limit 시계 방향 한계 각도 값 RW 0 0 1023
8 2 CCW Angle Limit 반시계 방향 한계 각도 값 RW 1023 0 1023
11 1 Control Mode 제어 모드 RW 2 1 2
12 1 Temperature Limit 내부 한계 온도 RW 65 0 150
13 1 Min Voltage Limit 최저 한계 전압 RW 60 50 250
14 1 Max Voltage Limit 최고 한계 전압 RW 90 50 250
15 2 Max Torque 토크 한계 값 RW 1023 0 1023
17 1 Status Return Level 응답 레벨 RW 2 0 2
18 1 Shutdown 알람용 셧 다운(Shut down) 기능 RW 3 0 7

RAM 영역

주소 크기(Byte) 명칭 의미 접근 기본값 Min Max
24 1 Torque Enable 토크 켜기 RW 0 0 1
25 1 LED LED 값 RW 0 0 7
27 1 D Gain Derivative Gain RW 0 0 254
28 1 I Gain Integral Gain RW 0 0 254
29 1 P Gain Proportional Gain RW 32 0 254
30 2 Goal Position 목표 위치 값 RW - 0 1023
32 2 Moving Speed 목표 속도 값 RW - 0 2047
35 2 Torque Limit 목표 토크 값 RW - 0 1023
37 2 Present Position 현재 위치 값 R - - -
39 2 Present Speed 현재 속도 값 R - - -
41 2 Present Load 현재 하중 값 R - - -
45 1 Present Voltage 현재 전압 R - - -
46 1 Present Temperature 현재 온도 R - - -
47 1 Registered Instruction Instruction의 등록 여부 R 0 - -
49 1 Moving 움직임 유무 R 0 - -
50 1 Hardware Error Status 하드웨어 에러  상태 R 0 - -
51 2 Punch Punch 값 RW 32 0 1023

컨트롤 테이블 설명

Model Number (0)

장치의 모델 번호입니다.

Firmware Version (2)

장치의 펌웨어 버전입니다.

ID (3)

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

참고 : 연결된 장치의 ID가 중복되지 않도록 주의해야 합니다. 장치의 ID가 중복되면, 통신 오류 및 고유의 ID를 가지는 다이나믹셀 검색에 실패합니다.

참고 : Instruction packet의 ID가 Broadcast ID(0xFE)인 경우, Stuatus Return Level (17)의 설정값과 무관하게 Read Instruction 또는 Write Instruction에 대한 Status Packet은 반환되지 않습니다. 더 자세한 설명은 다이나믹셀 프로토콜 2.0Status Packet 항목을 참조하세요.

Baud Rate (4)

제어기와 통신하기 위한 통신 속도 입니다.

Baud Rate
0 9,600 [bps]
1 57,600 [bps]
2 115,200 [bps]
3 1 [Mbps]

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

참고: U2D2을 이용 시, 높은 통신 Baud rate에서 안정적인 통신을 위해서는 USB 포트의 응답지연시간(Latency) 을 낮춰주세요.

Return Delay Time (5)

다이나믹셀은 Instruction Packet을 수신하면, Return Delay Time(5) 만큼 대기한 후 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(30)과 같습니다.

Control Mode(11)

동작 방식
1 바퀴 모드
2 관절 모드

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

Temperature Limit(12)

동작 온도의 상한 값입니다.
예를 들어, 값이 80이면 80 °C 입니다. 내부 온도가 Temperature Limit(11)을 넘으면 Status Packet은 ERROR 필드를 통해서 Overheating Error Bit (Bit2)를 전송합니다. Shutdown(18)의 플래그(flag)중 과열(Overheating)이 설정되어 있다면 Alarm LED가 점멸하고, 모터 출력은 0 [%]로 변경됩니다.

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

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

Min/Max Voltage Limit(13, 14)

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

Unit Value Range Description
About 0.1V 50 ~ 250 5.0 ~ 25.0V

장치에 현재 인가된 전압을 나타내는 Present Voltage(45)가 Max Voltage Limit(13)와 Min Voltage Limit(14)의 범위를 벗어날 경우,
Hardware Error Status(50)의 Input Voltage Error Bit(0x01)이 설정되고, Status Packet은 Error 필드를 통해서 Alert Bit(0x80)을 전송합니다.
Shutdown(18)에 Input Voltage Error Bit(0x10)가 설정된 경우, Torque Enable(24)은 ‘0’(Torque OFF)으로 변경됩니다.
자세한 설명은 Shutdown(18)을 참고하세요.

Max Torque(15)

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

Status Return Level(17)

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

응답하는 명령 상세설명
0 PING Instruction PING 명령에 대해서만 Status Packe을 반환함
1 PING Instruction
READ Instruction
PING과 READ 명령에 대해서만 Status Packe을 반환함
2 All Instructions 모든 명령에 대해서 Status Packe을 반환함

참고 : Instruction packet 의 ID가 Broadcast ID(0xFE) 인 경우는 Stuatus Return Level (17)의 설정값과 무관하게 Read Instruction 또는 Write Instruction에 대한 Status Packet은 반환되지 않습니다. 더 자세한 설명은 DYNAMIXEL Protocol 2.0Status Packet 항목을 참조하세요.

Shutdown(18)

장치는 동작 중에 발생하는 위험 상황을 감지하여 스스로를 보호할 수 있습니다. 설정할 수 있는 위험 상황은 아래 표와 같습니다.

Bit 명칭 내 용
Bit 3~7 - -
Bit 2 Input Voltage Error 인가된 전압이 설정된 동작 전압 범위를  벗어났을 경우
Bit 1 OverHeating Error 설정된 온도를 벗어난 경우
Bit 0 Overload Error 모터의 최대 출력으로 제어할 수 없는 하중이 지속적으로 적용되는 경우

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

Torque Enable(24)

Torque ON/OFF를 제어합니다. ‘1’을 쓰면 Torque ON 상태가 되고, EEPROM 영역의 모든 Data는 잠김 상태로 변경됩니다.

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

LED(25)

XL-320의 LED는 아래의 표와 같이 동작합니다.

활성화된 비트 10진수 값 출력 색상
없음 (000) 0 꺼짐
Bit 0 (001) 1 빨강
Bit 1 (010) 2 초록
Bit 2 (100) 4 파랑
Bit 0, Bit 1 (011) 3 노랑
Bit 1, Bit 2 (110) 6 청록
Bit 0, Bit 2 (101) 5 보라
Bit 0, Bit 1, Bit 2 (111) 7 하양

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

상태 LED 동작
부팅 1회 적색 점멸
초기화 4회 적색 점멸
알람 적색 점멸
부트 모드 적색 점등

PID Gains(27, 28, 29)

PID 제어기의 블럭다이어그램은 다음과 같습니다.

PID 와 컴플라이언스 슬로프와의 관계

Slope P Gain
8 128
16 64
32 32
64 16
128 8

P Gain이 작을수록 유격이 커지고 목표위치 근처에서의 출력이 약해집니다.
즉, Margin과 Slope를 합친 것과 같은 개념입니다.
구형 다이나믹셀의 Compliance의 개념과 매칭되지 않습니다.

참고: PID 제어론은 단순히 모터 제어에만 국한되지 않고, 모든 제어에 적용할 수 있는 일반적인 이론입니다. PID 제어에 대한 자세한 정보는 PID Controller를 참고하세요.

Goal Position(30)

Goal Position(30)을 통해 목표위치를 설정할 수 있습니다. 0 ~ 1,023 (0x3FF)까지 사용 가능하며 단위는 0.29 [°] 입니다.
CW/CCW Angle Limit(6, 8)의 범위를 벗어난 목표위치를 지령을 할 경우, Status Packet은 ERROR 필드를 통해서 Angle Limit Error Bit (0x01)를 전송합니다. Shutdown(18)의 설정 중에서 Angle Limit Error Bit(0x01)가 설정되어 있다면 Alarm LED가 점멸하고, 모터 출력은 0 [%]로 변경됩니다.

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

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

Moving Speed(32)

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

Torque Limit(35)

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

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

Present Position(37)

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

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

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

Present Speed(39)

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

Present Load(41)

현재 적용되는 하중을 의미합니다.
이 값의 범위는 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(45)

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

자세한 사항은 Min/Max Voltage Limit (13, 14)을 참고하세요

Present Temperature(46)

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

자세한 사항은 Temperature Limit(12)을 참고하세요

Registered Instruction(47)

Reg Write Instruction에 의해서 등록된 Write 정보의 유무를 나타냅니다.

상세 설명
0 REG_WRITE에 의해 등록된 명령이 없습니다.
1 REG_WRITE에 의해 등록된 명령이 있습니다.

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

Moving(49)

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

Hardware Error Status(50)

Shutdown 발생시 하드웨어 에러 상태를 나타냅니다.

Punch(51)

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

참고자료

참고 호환성 가이드
케이블 호환성

커넥터 정보

항목 TTL
핀 번 1 GND
2 VDD
3 DATA
다이어그램
하우징
MOLEX 51065-0300
PCB 헤더
MOLEX 53253-0370
Crimp 터미널 MOLEX 50212-8000
다이나믹셀 전선규격 24 AWG

통신 회로

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

TTL 통신

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

도면

더 많은 2D/3D 도면자료와 각종 소프트웨어 등 유용한 자료는 로보티즈 다운로드 센터에서 제공됩니다.