개요
OpenRB-150은 아두이노와 호환되는 오픈소스 제어기입니다.
아두이노 MKR 보드와 동일한 폼팩터를 특징으로, MKR 악세사리와 호환 및 프로그래밍 할 수 있습니다.
4개의 다이나믹셀 전용 포트를 가지고 있으며, 다이나믹셀 전용 소프트웨어인 다이나믹셀 위자드 2.0을 사용할 수 있습니다.
참고: OpenRB-150에서 다이나믹셀 위자드 2.0을 사용하기 위해서는, 특정 펌웨어가 필요합니다. 해당 펌웨어는 OpenRB 보드 매니저에 포함되어 있습니다.
제품 사양
항목 | 사양 |
---|---|
CPU | SAMD21 Cortex-M0+ 32bit low power ARM® MCU |
동작 전압 | (USB 3.0) 5 V (VIN -or Terminal) 3.7 ~ 12.6 V |
지원 배터리 | Li-Po 1 - 3 cell (3.7 - 11.1 V) XT60 connector ready |
DC 전류 (3.3V) | Max 300 mA |
DC 전류 (5V) | Max 300 mA (변경 전) Max 150 mA (변경 후) |
다이나믹셀 포트 전류 | 3,000 mA |
회로 동작 전압 | 3.3 V |
디지털 입출력 I/O 핀 | 24 |
PWM 핀 | 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 - or 18 -, A4 -or 19) |
UART | 2 |
SPI | 1 |
I2C | 1 |
아날로그 입력 핀 | 7 (ADC 8/10/12 bit) |
아날로그 출력 핀 | 1 (DAC 10 bit) |
외부 인터럽트 | 10 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 - or 17) |
입/출력 DC 전류 | 7 mA |
플래시 메모리 | 256 KB |
플래시 메모리 (부트로더) | 8 KB |
SRAM | 32 KB |
EEPROM | 없음 |
클럭 속도 | 32.768 kHz (RTC), 48 MHz |
내장 LED | 3 |
다이나믹셀 TTL 포트 1 |
4 (Max 1 Mbps) |
크기 | 25 x 66 mm |
지원 소프트웨어 및 환경 | 아두이노 IDE, 다이나믹셀 위자드 2.0 |
지원 다이나믹셀 2 |
X 시리즈, MX 시리즈, AX 시리즈, P 시리즈 |
1
통신 속도 | 오차율 |
---|---|
1M [bps] | 0.000 [%] |
115,200 [bps] | -0.160 [%] |
57,600 [bps] | -0.160 [%] |
9,600 [bps] | 0.000 [%] |
1
RS-485 모델은 다이나믹셀 커뮤니케이션 브릿지를 사용하세요.
2
동작전압이 24V인 다이나믹셀은, 제어기와 독립된 별도의 전원을 사용하세요.
참고: 5V 레귤레이터가 변경되어 2024년부터 DC 전류(5V) 값이 변경되었습니다. (300mA -> 150mA)
- USB 포트에서 공급받을 수 있는 전류는 최대 500mA 입니다 (내장 퓨즈 사용). 그러나 순간적으로 높은 전류를 사용할 경우 OpenRB-150에 연결된 USB 포트가 손상될 수 있습니다.
- 높은 토크 및 순간적으로 빠른 동작을 요구하는 제품의 경우, 터미널 블록(외부 전원 입력)을 통해 충분한 전원을 공급하세요.
- 제어기와 다이나믹셀을 연결하기 전에, 반드시 동작전압에 맞는 전원을 사용하세요.
- I/O 핀이 허용할 수 있는 최대 전압은 3.3V입니다. I/O 핀에 3.3V보다 높은 전압을 인가하면 보드가 손상될 수 있습니다.
- 전원이 꺼진 상태에서 장치와 전원을 연결하시고 스위치로 ON/OFF 해주세요.
위험
(심각한 상해 또는 사망에 이르게 할 수 있습니다.)
- 제품 주위에 가연성 물질, 계면활성제, 음료수, 물을 분사하거나 흡입시키지 마세요.
- 작동 중인 제품에 손, 발과 같은 신체 또는 신체의 일부를 넣지 마세요.
- 제품에서 이상한 냄새가 나거나, 연기가 발생하면 전원 연결을 즉시 끊어주세요.
- 아이들이 제품으로 장난치지 않도록 하세요.
- 전원공급 시 극성을 반드시 확인해 주세요.
경고
(상해나 제품 손상의 원인이 됩니다.)
- 제품의 사용 환경을 준수하세요. (전압, 온도 등)
- 작동 중인 제품 내부로 칼날, 압정, 불씨 등을 흡입시키지 마세요.
주의
(상해나 제품 손상의 원인이 됩니다.)
- 제품을 사용자 임의로 분해 또는 개조하지 마세요.
- 제품에 강한 충격을 가하거나 떨어드리지 마세요.
하드웨어 레이아웃
핀아웃
리셋 버튼
RESET
버튼을 눌러, 제어기를 재부팅할 수 있습니다.
RESET
버튼을 빠르게 2번 누르면 부트로더 모드로 진입하며, 이 상태에서는 업로드된 스케치 또는 펌웨어가 실행되지 않습니다.
주의
OpenRB-150 제어기가 리셋되면, 다이나믹셀의 전원도 함께 리셋됩니다 (다이나믹셀 전원 스위치 참고).
제품의 손상 및 사고를 방지하기위해, 다이나믹셀이 안전한 위치에 있을 때 제어기를 리셋하세요.
다이나믹셀 전원 스위치
다이나믹셀 포트로 출력되는 전원은, 제어기 뒷면에 위치한 FET에 의해 제어됩니다.
FET는 다이나믹셀 포트로 전원을 연결 또는 차단할 수 있으며, OpenRB-150의 전원이 켜지면 FET는 기본값으로 차단됩니다.
FET이 켜진다면, DXL LED
(적색)가 켜지며 이를 통해 전원공급 상태를 알 수 있습니다.
터미널 전원 입력
터미널 블록을 통해, 넓은 범위의 입력전원을 사용할 수 있습니다 (권장).
터미널 블록을 통해 OpenRB-150에 전원 공급 시, 제공되는 전원 점퍼를 아래와 같이 VIN(DXL)
에 결합하세요.
터미널 블록 사용 시, VIN 전원 점퍼 결합 위치
전원 입력 회로
주의
배터리가 제어기에 연결되어 있는 상태에서는 배터리를 충전하지 마세요.
XT60 커넥터
RC 제품에서 광범위하게 사용하는 XT60 커넥터는, OpenRB-150의 후면에 조립이 가능합니다.
전면의 터미널 블록을 먼저 제거 후, 직각형 타입의 XT60 커넥터를 납땜하여 사용할 수 있슴니다.
XT60 커넥터 위치
전원 점퍼
OpenRB-150은 3개의 전원 입력을 선택할 수 있습니다.
선택한 전원 입력으로부터 다이나믹셀과 제어기에 공급하기 위해서는, 전원 점퍼를 아래와 같이 결합하세요.
USB or VIN 핀 사용시 | XT60 또는 터미널 블록 사용시 |
---|---|
다이나믹셀 포트
OpenRB-150은 4개의 TTL 다이나믹셀 포트를 제공합니다.
항목 | TTL |
---|---|
핀번호 | 1 GND2 VDD3 DATA |
다이어그램 | |
하우징 | JST EHR-03 |
PCB 헤더 | JST B3B-EH-A |
크림프 터미널 | JST SEH-001T-P0.6 |
다이나믹셀 전선규격 | 21 AWG |
참고: 위 회로는 5V 전원을 사용하는 MCU를 사용하거나 IO가 5V tolerant한 경우 사용 가능합니다. 그 외의 경우, Level Shifter를 사용하세요.
RS-485 다이나믹셀 모델을 OpenRB-150과 사용하기 위해서는, 다이나믹셀 커뮤니케이션 브릿지를 연결해서 사용할 수 있습니다.
다이나믹셀 커뮤니케이션 브릿지
시리얼 포트
Serial2
포트는 코드 디버깅 및 다양한 디바이스를 제어하기 위해 사용될 수 있습니다.
LED
3개의 내장 LED를 통해, OpenRB-150의 현재 상태를 알 수 있습니다.
PWR
(녹색) : OpenRB-150에 켜지면, 녹색 LED가 켜집니다.USER
(주황색) : 핀 번호32
, 또는 아두이노에서LED_BUILTIN
으로 선언된 상수를 사용해서, 주황색 LED를 켜거나 끌수 있습니다.DXL
(적색) : 다이나믹셀 포트에 전원이 들어오면, 적색 LED가 켜집니다.
핀 이름 정의
// Battery
#define ADC_BATTERY (33u)
// LEDs
#define PIN_LED (32u)
#define LED_BUILTIN PIN_LED
// DYNAMIXEL POWER FET
#define BDPIN_DXL_PWR_EN (31u)
전원 연결 방법
OpenRB-150은 다음의 3가지 전원 입력 방법을 통해 구동할 수 있습니다.
USB C
VIN
터미널 VIN 단자
주의
- OpenRB-150에 전원 연결시, 반드시 극성을 확인하세요. 극성이 반대일 경우, 제어기에 심각한 손상을 줄 수 있습니다.
- 선택한 전원 입력 방법에 따라, 전원 점퍼를 올바른 위치에 결합하세요.
연결 예시
[USB 전용] 5V 다이나믹셀 연결하기
주의
USB를 통해 다이나믹셀을 구동할 경우, 연결 가능한 다이나믹셀의 개수가 제한될 수 있습니다.
또한 USB포트에서 제공 가능한 전력을 초과하게 되면 PC에 오류가 생기거나 손상될 수 있습니다.
높은 토크를 필요로하거나 순간적으로 빠른 동작을 요구하는 어플리케이션은, 아래와 같이 터미널 블록(외부 전원 입력)을 통해, 연결된 액츄에이터에 충분한 전력을 공급해야 합니다.
[외부 전원] 12V 다이나믹셀 연결하기 (TTL)
[외부 전원] 12V 다이나믹셀 연결하기 (RS485)
개발 환경
다이나믹셀 위자드 2.0
OpenRB-150은 다이나믹셀 전용 유지보수 소프트웨어인 다이나믹셀 위자드 2.0을 지원합니다.
전용 펌웨어인 usb_to_dynamixel
예제는 새 제품에 기본 설치되며, 아두이노 IDE에서 보드 매니저의 기본예제로도 제공됩니다.
참고
usb_to_dynamixel
예제는 OpenRB-150에 공장 출하 상태로 설치되며, 최대 1 Mbps
까지 지원합니다.
usb_to_dynamixel
업로드 후, 다이나믹셀 위자드 2.0의 다양한 기능을 사용해 보세요.
OpenRB-150은 다이나믹셀 위자드 2.0의 대부분의 기능을 사용할 수 있습니다: 다이나믹셀 테스트, 펌웨어 업데이트/복구, 패킷 분석, 그래프 및 컨트롤 테이블 백업.
최대 1Mbps 내에서 여러 통신속도 지원
다이나믹셀 펌웨어 복구 및 업데이트 지원
그래프 기능 지원
다이나믹셀 전용 패킷 분석 도구 지원
아두이노 IDE 설치
리눅스에 설치하기
-
아두이노 공식 홈페이지에서,
Linux 64 bit
버전을 다운로드 하세요.
https://www.arduino.cc/en/software - 원하는 경로에서 다운로드한 파일을 압축 해제한 뒤, 터미널창에서 설치 스크립트를 실행하세요.
$ ./install.sh
- 리눅스에서 아두이노 IDE를 실행시키기 위해, 터미널창에서 다음의 실행 명령어를 실행하세요.
$ arduino
맥에 설치하기
-
아두이노 공식 홈페이지에서,
Mac OS X version
을 다운로드 하세요.
https://www.arduino.cc/en/software -
다운로드한 아두이노 파일을
Application
으로 드래그 하세요. -
아두이노 IDE를 실행하세요.
윈도우즈에 설치하기
Arduino Software Installation instruction video에서, 아두이노 설치영상을 참고하실수 있습니다.
-
아두이노 공식 홈페이지에서,
Windows Installer version
을 다운로드 하세요.
https://www.arduino.cc/en/software -
다운로드한 파일을 설치하세요.
-
Arduino IDE를 실행하세요.
보드 매니저 설치하기
Arduino IDE를 실행시킨 뒤, 파일
(File) > 환경설정
(Preferences) 을 선택하세요.
환경설정
창이 나타나면, 아래의 주소를 복사하여 Additional Boards Manager URLs
항목에 붙여넣기 합니다.
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenRB-150/master/package_openrb_index.json
Arduino SAMD 보드 매니저
OpenRB-150에 예제를 빌드하고 업로드하기 위해서는, Arduino SAMD 보드 매니저가 필요합니다.
아래의 설명을 참고하여, Arduino SAMD 보드 매니저를 설치하세요.
도구
(Tools) >보드
(Board) >보드 매니저
(Boards Manager)를 선택하세요.Arduino SAMD
를 검색 후, 가장 최신 버전의 보드 매니저를 설치하세요.
OpenRB-150 보드 매니저
아래의 설명을 참고하여, OpenRB-150 보드 매니저를 설치하세요.
도구
(Tools) >보드
(Board) >보드 매니저
(Boards Manager)를 선택하세요.OpenRB
를 검색 후, 가장 최신 버전의 보드 매니저를 설치하세요.
라이브러리 API
아두이노 IDE에서 라이브러리를 추가하는 세가지 방법이 있습니다.
- 라이브러리 매니저를 활용하는 방법
- Zip파일로 압축된 라이브러리를 불러오는 방법
- 수동으로 설치하는 방법
각각의 방법에 대한 자세한 설명은 Arduino Official Guide에서 찾을 수 있습니다.
다음은 라이브러리 매니저를 활용하는 방법입니다.
라이브러리 매니저에서 DYNAMIXEL2Arduino
를 검색하고 설치합니다.
DYNAMIXEL2Arduino 라이브러리가 성공적으로 설치되었다면, DYNAMIXEL2Arduino 항목에서 다이나믹셀을 제어하는 유용한 예제를 찾을 수 있습니다.
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 클래스로부터 다음의 함수를 상속받습니다.
스케치 업로드하기
USB 케이블로 OpenRB-150과 PC를 연결 후, OpenRB-150 보드를 선택하세요.
OpenRB-150이 연결된 Port를 선택 후, 업로드
버튼을 클릭하면 스케치가 업로드 됩니다.
참고 만약, 업로드를 진행하는동안 오류가 발생한다면, 리셋 버튼을 두번 누른 후, 부트로더 모드에서 스케치를 업로드하세요.
다운로드
- OpenRB-150 BOM (BOM)
- OpenRB-150 회로도 (PDF)
- OpenRB-150 2D 도면 (PDF, DWG)
- OpenRB-150 3D 모델링 파일 (STL, STEP)
- OpenRB-150 거버 (GBR)
- OpenRB-150 보드 매니저 (GitHub Repo)
- DYNAMIXEL2Arduino 라이브러리 (GitHub Repo)