Edit on GitHub

XL320

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

주요 사양

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

주의: 스톨 토크는 순간적으로 낼 수 있는 최대 정지 토크를 의미합니다. 실제 구동을 위해 로봇을 설계하신다면 스톨 토크의 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 2.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(64)의 값이 ‘0’일 때만 변경할 수 있습니다.

크기

Data의 Size는 용도에 따라 1 ~ 4 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) 명칭 의미 접근 기본값 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의 등록 여부 R 0 - -
49 1 Moving 움직임 유무 R 0 - -
50 1 Hardware Error Stat 하드웨어 에러  상태 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(7)는 EEPROM 영역에 존재하기 때문에 Torque Enable(64) 의 값이 ’0’ 일 때만 변경할 수 있습니다.

Baud Rate (4)

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

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

주의: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)과 같습니다.

Control Mode(11)

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

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

Temperature Limit(12)

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

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

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

Min/Max Voltage Limit(13, 14)

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

Max Torque(15)

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

Status Return Level(17)

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 항목을 참조하심시오.

Shutdown(18)

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

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

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

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

활성화된 비트 10진수 값 출력 색상
없음 0 꺼짐
0 1 빨강
1 2 초록
2 4 파랑
0 + 1 3 노랑
1 + 2 6 청록
0 + 2 5 보라
0 + 1 + 2 7 하양

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

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

PID Gains(27, 28, 29)

MX 시리즈는 대표적 제어기법인 PID Controller를 이용합니다.

The relationship between Compliance Slop and PID

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

The less the P gain, The larger the back lash, and the weaker the amount of output near goal position.
At some extent, it is like a combined concept of margine and slope.
It does not exactly match the previous concept of compliance. So it is obvious if you see the difference in terms of motion.
Explanation for PID required.
For the brief explanation about general PID, please refer to the website(link) below.
http://en.wikipedia.org/wiki/PID_controller FYI, PID control theory is not only limited to the control of motor(actuator) but is a generic theory that can be applied to all kinds of control.

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(35)

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

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

Present Position(37)

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

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

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

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

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이면 10 [V]입니다.

Present Temperature(46)

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

Registered Instruction(47)

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

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

Moving(49)

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

Hardware Error Status(50)

Present hardware error staus. Alarm shutdown error value.

Punch(51)

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

참고자료

주의: 호환성 가이드

커넥터 정보

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

통신 회로

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

TTL 통신

도면