개요
다이나믹셀 쉴드(아두이노 MKR 시리즈)(이후 “다이나믹셀 쉴드 MKR”로 통칭)는 MKR ZERO, MKR1000 WIFI, MKR WiFi 1010, Portenta H7과 같은 아두이노의 MKR 폼팩터를 공유하는 제어기와 호환됩니다.
아두이노 라이브러리(DYNAMIXEL2Arduino, DYNAMIXEL Shield)가 제공되어 아두이노 환경에서 다이나믹셀을 빠르고 편리하게 개발할 수 있습니다.
본 매뉴얼의 다이나믹셀 쉴드 라이브러리 항목을 참고하세요.
주의
- 본 제품은 아두이노 제어기를 포함하지 않습니다. 아두이노 제어기는 별도로 구매하시기 바랍니다.
- 다이나믹셀 X 시리즈와 호환되는 TTL 헤더가 한 개 기본장착 되어있습니다.
(제품 패키지에 AX, MX, X 시리즈에 사용할 수 있는 헤더가 동봉되어 있습니다) - 필요한 경우 동봉된 부품을 납땜해서 사용하시기 바랍니다.
- 일부 아두이노 MKR 쉴드는 사용하는 핀에 따라 다이나믹셀 쉴드 MKR과 완전하게 호환되지 않을 수 있습니다. 다이나믹셀 쉴드 MKR과 함께 사용할 경우 각 제품의 데이터시트를 참고하시기 바랍니다.
시작하기
사용하고자하는 다이나믹셀에 맞는 전원을 공급해주세요.
제품 사양
항목 | 사양 |
---|---|
VIN(DXL) 입력 전압1 | 3.5 ~ 24 [V] |
동작 온도 | -10 ~ +80 [°C] |
커넥터2 | JST(S3B-EH), Molex(5268-02A) 배터리 커넥터3(SMW250-02) 터미널 블럭(DG350-3.5-02P-14) |
통신 연결 | TTL Multidrop Bus (5V Level) |
케이블 | DC 잭 케이블. Type A, O.D: 5.5 [mm], I.D: 2.5 [mm] XL-320 변환 케이블 |
크기 | 65 x 25 [mm] |
무게 | 11 [g] |
1 12V를 지원하는 다이나믹셀 사용시 ROBOTIS SMPS 12V 5A PS-10 전원공급 장치를 추천합니다.
2 한개의 JST 헤더가 기본 조립되어 있습니다. 필요한 경우 동봉된 커넥터를 사용하세요.
3 배터리 커넥터는 다음의 로보티즈 배터리와 호환됩니다. LB-010 또는 LB-020.
위험
(심각한 상해 또는 사망에 이르게 할 수 있습니다.)
- 제품 주위에 가연성 물질, 계면활성제, 음료수, 물을 분사하거나 흡입시키지 마세요.
- 작동 중인 제품에 손, 발과 같은 신체 또는 신체의 일부를 넣지 마세요.
- 제품에서 이상한 냄새가 나거나, 연기가 발생하면 전원 연결을 즉시 끊어주세요.
- 아이들이 제품으로 장난치지 않도록 하세요.
- 전원공급 시 극성을 반드시 확인해 주세요.
경고
(상해나 제품 손상의 원인이 됩니다.)
- 제품의 사용 환경을 준수하세요. (전압, 온도 등)
- 작동 중인 제품 내부로 칼날, 압정, 불씨 등을 흡입시키지 마세요.
주의
(상해나 제품 손상의 원인이 됩니다.)
- 제품을 사용자 임의로 분해 또는 개조하지 마세요.
- 제품에 강한 충격을 가하거나 떨어드리지 마세요.
지원하는 다이나믹셀
다이나믹셀 쉴드 MKR은 TTL
기반의 다이나믹셀 제품을 지원합니다.
부품 목록
제품 패키지에는 다음과 같은 부품이 포함되어 있습니다.
- 다이나믹셀 쉴드 MKR (1)
- JST 헤더(S3B-EH) (2)
- Molex 헤더(5268-02A) (2)
- 터미널 블럭(DG350-3.5-02P-14) (1)
- DC 잭 케이블 (1)
- 배터리 커넥터(SMW250-02) (1)
- XL-320 변환 케이블 (1)
각 부 명칭
다이나믹셀 쉴드 MKR의 회로 도면은 아래 링크를 통해 다운로드 받을 수 있습니다.
다이나믹셀 쉴드 MKR의 헤더는 아두이노 MKR 제어기를 기반으로 호환됩니다.
항목 | 세부 설명 |
---|---|
DYNAMIXEL Ports(TTL) | TTL 기반의 다이나믹셀 지원 |
VIN(DXL) | 다이나믹셀 전용 외부 전원 공급 포트. 아두이노 MKR 제어기에 전원을 공급할 수 없음. |
+5V1 | 아두이노 MKR 제어기의 5V 전원을 다이나믹셀에 공급 (XL330 시리즈) |
Jumper Cap | VIN(DXL) 과 +5V 중 다이나믹셀 전원 공급 선택 |
1 일부 아두이노 MKR 제어기는 연결된 USB 장치를 보호하기 위해 5V 전원 공급이 원활하지 않을 수 있습니다.
아두이노 MKR 제어기 핀아웃 예시. 자세한 내용은 아두이노 제품을 참고하세요.
핀 번호 | 핀 명칭 | 세부 설명 |
---|---|---|
13 | RX | 다이나믹셀로부터 데이터를 수신받는 하드웨어 시리얼 입력 핀 |
14 | TX | 다이나믹셀에 데이터를 전송하는 하드웨어 시리얼 출력 핀 |
21(A6) | TX_EN | 다이나믹셀의 TTL BUS 흐름을 제어하는 핀 - HIGH : 송신 - LOW : 수신 |
연결 방법
다이나믹셀 쉴드 MKR은 아두이노 MKR 제어기의 상단 또는 하단에 조립될 수 있습니다.
하나의 아두이노 MKR 제어기에 여러 쉴드를 사용할 경우 사용하는 핀에 따른 호환여부에 주의하시기 바랍니다.
아두이노 MKR 제어기는 다이나믹셀 쉴드 MKR의 VIN(DXL) 포트로부터 전원을 공급받을 수 없습니다.
12V X 시리즈 다이나믹셀
12V 입력을 지원하는 대부분의 X 시리즈에는 다음과 같은 연결을 추천합니다 (XL-320과 XL330 제외).
PC와 연결된 USB로부터 아두이노 MKR 제어기의 전원 공급 및 시리얼 통신이 이루어지며, 12V SMPS로부터 다이나믹셀 쉴드 MKR에 연결된 다이나믹셀에 전원이 공급됩니다.
AX / MX 시리즈 다이나믹셀
AX와 MX 시리즈 다이나믹셀은 Molex 커넥터를 사용합니다.
동봉된 AX / MX 전용 커넥터를 비어있는 다이나믹셀 쉴드 MKR의 포트에 납땜하여 사용하거나 로봇 케이블-X3P 180mm (변환용)을 사용하세요.
XL330 (USB 전원)
XL330 시리즈는 다이나믹셀 최초의 저전압 제품으로, 5V USB 전원에서 구동할 수 있습니다.
다이나믹셀 쉴드 MKR의 전원 선택 점퍼를 +5V
쪽으로 바꿔 꽂은 다음, 아두이노 MKR 제어기의 5V USB 전원을 다이나믹셀에 공급할 수 있습니다.
일부 아두이노 MKR 제어기는 연결된 USB 장치를 보호하기 위해 5V 전원을 제한할 수 있습니다.
아두이노 제어기에 프로그램이 업로드 되고나면, 1셀 리튬 계열의 배터리(3.7V)를 사용하여 각각 아두이노 MKR 제어기와 XL330 다이나믹셀에 전원을 공급하여 사용할 수도 있습니다.
전원 선택 점퍼
VIN(DXL)을 통해 외부의 전원 사용시 | 아두이노 MKR 제어기의 5V USB 전원 사용시 |
---|---|
외부의 전원 공급 장치로부터 VIN(DXL) 를 통해 다이나믹셀의 전원을 공급할 경우, 터미널 블럭에 표시된 극성에 맞게 케이블을 연결하시기 바랍니다. 이때 아두이노 MKR 제어기의 전원을 별도로 공급해야 합니다. |
아두이노 MKR 제어기의 +5V USB 전원을 다이나믹셀에 공급할 경우 일부 아두이노 MKR 제어기의 내장된 퓨즈로 인해 충분한 5V 전원을 공급받지 못할 수 있습니다. 사용하려는 아두이노 MKR 제어기의 자료를 참고하시기 바랍니다. |
다이나믹셀 쉴드 MKR에 전원을 공급할 때 전원의 극성을 다시 한 번 확인해주세요.
다이나믹셀 쉴드 라이브러리
특징
아두이노 MKR
과Portenta H7
제어기에 호환됨- 다이나믹셀 프로토콜 1.0과 2.0을 모두 지원
- DYNAMIXEL2Arduino 라이브러리에서 기본적으로 16개의 다이나믹셀 연결을 지원함.(config.h)
- SyncWrite 기능 지원
- DYNAMIXEL Shield 라이브러리(v0.1.0 이후 버전)에서는 DYNAMIXEL2Arduino 라이브러리가 반드시 필요함
라이브러리 설치
참고
아두이노 MKR 제어기를 아두이노 IDE에서 프로그램할 때에는 Arduino SAMD Boards manager
가 아두이노 보드 매니저에 설치되어 있어야 합니다.
아두이노 IDE에 라이브러리를 설치하는 방법은 아래와 같이 세 가지가 있습니다.
- 라이브러리 매니저를 활용하는 방법
- Zip파일로 압축된 라이브러리를 불러오는 방법
- 수동으로 설치하는 방법
각각의 방법은 아두이노 공식 가이드에서 찾아볼 수 있습니다.
여기에서는 라이브러리 매니저를 활용하는 방법을 안내합니다.
아두이노 라이브러리 매니저에서 dynamixel shield
를 검색하고 최신 버전을 설치합니다.
전부 설치
를 선택해서 Dynamixel2Arduino
를 설치합니다.
라이브러리가 모두 설치되면, 아래와 같이 DynamixelShield 항목 아래의 예제를 사용할 수 있습니다.
라이브러리 API
다이나믹셀 쉴드(v0.1.0 이상))
주의
다이나믹셀 쉴드 라이브러리(v0.1.0 이상)를 사용하기 위해서는 DYNAMIXEL2Arduino 라이브러리를 설치해야 합니다.
Dynamixel2Arduino 클래스
- begin()
- getPortBaud()
- ping()
- scan()
- getModelNumber()
- setID()
- setProtocol()
- setBaudrate()
- torqueOn()
- torqueOff()
- ledOn()
- ledOff()
- setOperatingMode()
- setGoalPosition()
- getPresentPosition()
- setGoalVelocity()
- getPresentVelocity()
- setGoalPWM()
- getPresentPWM()
- setGoalCurrent()
- getPresentCurrent()
- readControlTableItem()
- writeControlTableItem()
Master 클래스
Dynamixel2Arduino 클래스는 Master 클래스로부터 다음의 함수를 상속받습니다.
RobotisRemoteController 클래스
Remote Controller 클래스는 아두이노 MKR 제어기의 SoftwareSerial 기능을 활성화 해서 사용할 수 있습니다.
- begin()
- availableData()
- readData()
- availableEvent()
- readEvent()
- flushRx()
- available()
- read()
- peek()
- flush()
- write()
예제
CAN2DYNAMIXEL
CAN2DYNAMIXEL는 CAN 기반의 다이나믹셀 프로토콜을 다이나믹셀 프로토콜 2.0으로 변환하는 예제입니다.
MCP2515를 사용하는 CAN shield board를 사용해야 하며, 107-Arduino-MCP2515 라이브러리는 아두이노 IDE의 Library Manager에서 검색 후 설치할 수 있습니다.
다운로드
본 예제는 DYNAMIXEL Shield library
에 포함되어 있으며 Arduino IDE의 File > Examples > DynamixelShield > advanced > can2dynamixel에서 찾을 수 있습니다.
테스트 환경
예제 테스트에 사용된 환경은 아래와 같습니다.
- DYNAMIXEL
- TTL 통신이 지원되는 X 시리즈 (XL-320 제외)
- ID = 1, Baudrate = 1000000bps, Protocol 2.0
- Controller
- Arduino MKR WAN 1300
- DYNAMIXEL Shield for Arduino MKR
- MKR CAN Shield
- CAN Interface
- IXXAT USB-to-CAN V2
- CAN Library
- 107-Arduino-MCP2515
- Software
- IXXAT canAnalyser3 Mini
- Bitrate = 1000CiA (1000 kbit/s)
- Arduino IDE
- 다이나믹셀 쉴드 라이브러리
주의
- 예제에서 사용하는 Baudrate은 1,000,000 bps입니다. 다이나믹셀의 통신속도를 맞춰주세요.
- 1,000,000 bps 이상의 통신속도를 사용할 경우 통신이 불안정할 수 있습니다.
구성도
추가 정보
이 예제에서는 아래와 같은 구조의 CAN Standard Protocol 2.0
이 사용되었습니다.
1 Bit | 11 Bit | 1 Bit | 1 Bit | 1 Bit | 4 Bit | 8 Byte | 2 Byte | 2 Bit | 7 Bit | 3 Bit |
---|---|---|---|---|---|---|---|---|---|---|
SOF | ID | RTR | IDE | r0 | DLC | Data | CRC | ACK | EOF | IFS |
- ID : 다이나믹셀 ID
- DLC : Data의 크기(바이트)
- Data : Instruction(1 Byte) + Parameters(0 ~ 7 Byte)
참고 : CAN2DYNAMIXEL은 Data 필드의 크기 제한으로 인해 Sync
또는 Bulk
를 지원하지 않습니다.
IXXAT canAnalyser3 Mini 프로그램의 Transmit 부분에서는 아래와 같이 ID (hex)
와 Data (hex)
를 입력하면 나머지 필드가 자동으로 완성됩니다.
RCPWM2DYNAMIXEL
RCPWM2DYNAMIXEL은 다이나믹셀을 RC로 제어하는 예제입니다.
RC 조종기에서 송신된 명령어가 RC 수신기에서 PWM 신호로 출력되면 아두이노 MKR 제어기에서 이를 다이나믹셀 프로토콜 2.0으로 변환합니다.
RC 수신기의 전원 인가시 갑작스러운 움직임으로 인한 사고를 방지하기 위한 Soft Start
기능과, RC 수신기의 전원이 차단되었을 때 안전한 위치로 다이나믹셀을 이동시키는 Fail Safe
기능이 구현되어 있습니다.
다운로드
본 예제는 DYNAMIXEL Shield library
에 포함되어 있으며 Arduino IDE의 File > Examples > DynamixelShield > advanced > rc_pwm2dynamixel에서 찾을 수 있습니다.
테스트 환경
예제 테스트에 사용된 환경은 아래와 같습니다.
- DYNAMIXEL
- TTL 통신이 지원되는 X 시리즈 (XL-320 제외)
- ID = 1 ~ 7, Baudrate = 1000000bps, Protocol 2.0
- Controller
- Arduino MKR Zero
- DYNAMIXEL Shield for Arduino MKR
- Futaba T10J 조종기
- RC Interface
- Futaba R3008SB 수신기
- Software
- Arduino IDE
- 다이나믹셀 쉴드 라이브러리
참고: 사용가능한 다이나믹셀의 개수는 수신기와 아두이노 제어기의 입력 가능한 채널개수에 따라 달라질 수 있습니다.
주의: 다이나믹셀 X 시리즈의 기본 통신속도는 57600 bps이며, 예제에서 사용하는 Baudrate은 1000000 bps입니다. 다이나믹셀과 예제의 통신속도를 동일하게 설정하시기 바랍니다.
구성도
배선도
RC 수신기와 DYNAMIXEL Shield MKR은 아래와 같이 연결할 수 있습니다.