RB-86 제어기
개요
- 올로K에서 사용되는 제어기로, 블루투스기능, 모터출력축과 각종 입출력장치 (적외선 센서, 마이크, LED, 부저)가 내장되어 있습니다.
- RB-86 제어기는 로보티즈의 12mm 규격 제품과 호환됩니다.
- STEAMCUP 앱으로 펌웨어를 업데이트/복구 할 수 있습니다.
- 알블록으로 프로그램을 작성하고 다운로드 하여 제어기를 동작하도록 할 수 있습니다.
제품 사양
항목 | 사양 |
---|---|
무게 | 160g |
컨트롤러 | Arm® Cortex®-M4 MCU |
크기 | 120 mm x 60 mm x 36 mm |
모터 출력축 | 후방 축 x 2 |
기어비 | 60:1 |
속력 | 270RPM(at 4.5V) |
동작 전압 | 3.6V ~ 4.8V (AA 배터리 x 3) |
내부 I/O 장치 | 적외선 센서(장애물 감지) x 6 마이크(소리 감지) x 1 부저 x 1 AUX LED x 2 (주황, 초록) POWER LED x 1 (파랑) |
외부 I/O 포트 | DXL TTL 3P Port x 2 |
위험
(심각한 상해 또는 사망에 이르게 할 수 있습니다.)
- 제품 주위에 가연성 물질, 계면활성제, 음료수, 물을 분사하거나 흡입시키지 마세요.
- 작동 중인 제품에 손, 발과 같은 신체 또는 신체의 일부를 넣지 마세요.
- 제품에서 이상한 냄새가 나거나, 연기가 발생하면 전원 연결을 즉시 끊어주세요.
- 아이들이 제품으로 장난치지 않도록 하세요.
- 전원공급 시 극성을 반드시 확인해 주세요.
경고
(상해나 제품 손상의 원인이 됩니다.)
- 제품의 사용 환경을 준수하세요. (전압, 온도 등)
- 작동 중인 제품 내부로 칼날, 압정, 불씨 등을 흡입시키지 마세요.
주의
(상해나 제품 손상의 원인이 됩니다.)
- 제품을 사용자 임의로 분해 또는 개조하지 마세요.
- 제품에 강한 충격을 가하거나 떨어드리지 마세요.
컨트롤 테이블
컨트롤 테이블은 제어기 내부에 존재하는 데이터의 집합체입니다. 사용자는 컨트롤 테이블의 주소를 이용하여 해당 주소에 저장된 데이터를 읽어오거나 새로운 데이터를 입력할 수 있습니다.
- 영역(EEPROM, RAM) 컨트롤 테이블은 2개의 영역으로 구분됩니다. RAM 영역에 위치한 데이터는 전원이 인가될 때마다 다시 기본값으로 설정됩니다(Volatile). 반면 EEPROM 영역에 위치한 데이터는 값을 변경하면 전원이 꺼져도 그 값이 보존됩니다(Non-Volatile).
- 접근 속성(R, RW) 컨트롤 테이블의 데이터에는 2개의 접근 속성이 있습니다. ‘RW’는 읽기와 쓰기 접근이 모두 가능합니다. 반면 ‘R’은 읽기 전용(Read Only) 속성을 갖습니다. 읽기 전용 속성의 데이터는 사용자가 임의로 값을 바꿀 수 없기 때문에 주로 측정 또는 모니터링 용도로 사용되고, 읽기 쓰기 속성(‘RW’)은 제어 용도로 사용됩니다.
- 기본값 제어기에 전원이 인가될 때 컨트롤 테이블의 각 데이터는 기본값으로 설정됩니다. 사용자가 기본값을 변경하면 새로운 기본값이 적용됩니다. RAM 영역의 기본값은 전원이 인가되었을 때 설정되는 값입니다.
- 크기 데이터의 크기는 용도에 따라 1 ~ 4 byte로 정해져 있습니다. Instruction Packet을 통해 데이터를 변경할 때는 해당 데이터의 크기를 확인하시기 바랍니다.
RB-86 컨트롤 테이블
영역 | 주소 | 크기[Byte] | 명칭 | 접근 | 초기 값 | 범위 | 단위 | 설정 값 | 설명 |
---|---|---|---|---|---|---|---|---|---|
EEPROM | 0 | 2 | Model Number | R | 490 | - | - | - | 모델 번호 |
EEPROM | 6 | 1 | Firmware Version | R | - | - | - | - | 펌웨어 버전 |
EEPROM | 7 | 1 | ID | R | 200 | - | - | - | 제어기 ID |
EEPROM | 8 | 1 | Baud Rate | RW | 3 | 0 ~ 3 | - | 0 : 9600 bps 1 : 57600 bps 2 : 115200 bps 3 : 1 Mbps |
다이나믹셀 통신 속도 |
EEPROM | 11 | 1 | Bootloader Version | R | - | - | - | - | 부트로더 버전 |
RAM | 21 | 1 | Mode Number | RW | - | 1 ~ 6 | - | 1: Play Mode 2: Manage Mode 3: Reboot 4: TTL Bootloader 5: BLE Bootloader 6: Power Off |
모드 번호 1: Play Mode: 저장된 알블록 프로그램 실행 2: Manage Mode: 외부 제어 대기 3: Reboot: 재부팅 4: TTL Bootloader: 3핀 TTL 포트를 사용하는 부트로더 5: BLE Bootloader: BLE를 사용하는 부트로더 6: Power Off: 전원 끄기 |
RAM | 25 | 1 | Press Count | R | - | - | - | - | 제어기를 켤 때 전원버튼을 누른 횟수 |
RAM | 49 | 1 | BLE Paired | R | 0 | 0 ~ 1 | - | 0 : False 1 : True |
현재 BLE 페어링 상태 |
RAM | 51 | 4 | Serial Screen | W | 0 | -32768 ~ 32767 | - | - | 화면 출력용 4바이트 signed 값 (줄 바꿈 없음) |
RAM | 55 | 4 | Serial Screen LF | W | 0 | -32768 ~ 32767 | - | - | 화면 출력용 4바이트 signed 값 (줄 바꿈 있음) |
RAM | 59 | 2 | TX Remocon Data | W | - | - | - | - | BLE로 보낼 리모콘 데이터 |
RAM | 61 | 2 | RX Remocon Data | R | - | - | - | - | BLE로 받은 리모콘 데이터 |
RAM | 63 | 1 | RX Remocon Data Arrived | R | 0 | - | - | 0 : False 1 : True |
BLE로 받은 리모콘 데이터 유무 |
RAM | 66 | 2 | Motion Index Number | RW | 0 | 0 ~ 65535 | - | 0 : 모션 정지 유닛을 이용하여 모션 정지하기 1~65532 : 선택한 유닛의 모션 실행 하기 65533 : 모션 즉각 정지하기 65534 : 현재 키-프레임 에서 모션 정지하기 65535 : 현재 유닛에서 모션 정지 하기 |
특정 모션을 재생하거나 현재 재생중인 모션을 정지한다. |
RAM | 68 | 1 | Motion Play Status | R | 0 | 0 ~ 1 | - | 0 : False 1 : True |
모션 실행 유무를 확인할 수 있다. |
RAM | 71 | 2 | Delay Millisecond | W | 0 | 0 ~ 60000 | ms | - | 설정한 시간만큼 딜레이 (알블록 실행중에만 사용가능) |
RAM | 76 | 1 | Power Save Timer | RW | 5 | 0 ~ 255 | minute | 0: 꺼지지 않음 1 ~ 255: 2.0 패킷 받지 않으면 m분 이후 꺼짐 |
자동 꺼짐 타이머 설정 |
RAM | 79 | 1 | Red LED | RW | 0 | 0 ~ 1 | - | 0 : OFF 1 : ON |
빨강 LED 켜짐 / 켜짐 |
RAM | 80 | 1 | Green LED | RW | 0 | 0 ~ 1 | - | 0 : OFF 1 : ON |
초록 LED 켜짐 / 켜짐 |
RAM | 84 | 1 | Buzzer Index | RW | 0 | 0 ~ 51 | - | - | - 멜로디 모드: Buzzer Time(85)값이 255 일 때, 0 ~ 25 번 멜로디를 실행한다. - 음계 모드: Buzzer Time(85)값이 0 ~ 254 일 때, 0 ~ 51번의 음계를 실행한다. |
RAM | 85 | 1 | Buzzer Time | RW | 0 | 0 ~ 255 | 0.1 sec | - | 음계 모드 및 멜로디 모드로 진입할 수 있다. 음계 및 멜로디는 Buzzer Index에서 재생한다. - 0 : 음계를 0.3 s 동안 재생 - 1 ~ 50: 음계를 0.1 ~ 5.0 s 시간 동안 재생. Unit: 0.1 s - 50 ~ 254: 음계를 5 s 동안 재생 - 255: 멜로디 모드 진입 |
RAM | 86 | 1 | Sound Detected Count | RW | 0 | 0 ~ 255 | - | - | Write:어떤 값을 써도 0으로 초기화 된다. Read: 제어기에 내장된 마이크가 인식한 최종 감지 횟수 값 변화 방식: 소리가 감지되는 도중에는 값을 유지하다가 소리가 끝나면 마지막 실시간 값으로 바뀐다. |
RAM | 87 | 1 | Sound Detecting Count | R | 0 | 0 ~ 255 | - | - | Read: 제어기에 내장된 마이크가 인식한 실시간 감지 횟수 값 변화 방식: 소리가 감지되는 도중에는 값이 증가하다가 소리가 끝나면 0이 된다. |
RAM | 88 | 1 | Low Battery Sound Enable | RW | 1 | 0 ~ 1 | - | 0 : OFF 1 : ON |
저전압 알람을 활성화 또는 비활성화 시킨다. - 배터리 전압이 3.3V 이하 일때 3분 간격으로 총 3번 알람 발생 |
RAM | 90 | 2 | Motion Count | R | - | 0 ~ 65535 | - | - | 제어기에 저장된 모션 수 |
RAM | 92 | 2 | Motion Next Page | RW | 0 | 0 ~ 65535 | - | 0~65534 : 이동할 페이지 65535 : 사용 안함 |
모터의 정지 없이 부드러운 모션 페이지 사이를 이동 할때 사용한다. 모션 프로파일 생성 시 다음 모션 페이지의 동작을 예측하여, 부드러운 모션을 생성 할 수 있다. |
RAM | 96 | 2 | Random Min | RW | -100 | -1000 ~ 1000 | - | - | 난수 최소값 |
RAM | 98 | 2 | Random Max | RW | 100 | -1000 ~ 1000 | - | - | 난수 최대값 |
RAM | 100 | 2 | Random Number | R | - | -1000 ~ 1000 | - | - | Random Min(96)에서 Random Max(98)사이 범의의 난수 |
RAM | 300 | 2 | Decrease Timer | RW | 0 | -32768 ~ 32767 | ms | - | 카운트 다운 타이머 값이 write 되는 순간부터 감소 |
RAM | 302 | 4 | Increase Timer | RW | 0 | 0 ~ 4294967295 | ms | - | 카운트 업 타이머 임의의 값을 write 하는 순간 0으로 초기화 |
RAM | 360 | 2 | IR Sensor 1 | R | 0 | 0 ~ 400 | - | - | 1번 IR 센서 값 |
RAM | 362 | 2 | IR Sensor 2 | R | 0 | 0 ~ 400 | - | - | 2번 IR 센서 값 |
RAM | 364 | 2 | IR Sensor 3 | R | 0 | 0 ~ 400 | - | - | 3번 IR 센서 값 |
RAM | 366 | 2 | IR Sensor 4 | R | 0 | 0 ~ 400 | - | - | 4번 IR 센서 값 |
RAM | 368 | 2 | IR Sensor 5 | R | 0 | 0 ~ 400 | - | - | 5번 IR 센서 값 |
RAM | 370 | 2 | IR Sensor 6 | R | 0 | 0 ~ 400 | - | - | 6번 IR 센서 값 |
RAM | 440 | 12 | BLE Mac Address | R | - | - | - | - | 제어기의 BLE MAC 주소 |
RAM | 500 | 4 | Micros | R | 0 | 0 ~ 4294967295 | us | - | 펌웨어가 실행되어서부터 흐른 시간의 us 단위 값 |
RAM | 504 | 4 | Millis | R | 0 | 0 ~ 4294967295 | ms | - | 펌웨어가 실행되어서부터 흐른 시간의 ms 단위 값 |
RAM | 900 | 1 | Motor Stop | RW | 0 | - | - | - | Write: - 0 ~ 255: 모든 감속 모터 정지 Read: - 0: 양쪽 모터 회전 - 1: 좌측 모터 정지, 우측 모터 회전 - 2: 좌측 모터 회전, 우측 모터 정지 - 3: 양쪽 모터 정지 |
RAM | 901 | 1 | Motor Type | R | - | - | - | 0 : RB86 1 : RB88 |
제어기 Type |
RAM | 950 | 2 | Left Back Motor Speed | RW | 0 | -999 ~ 999 | - | - | 좌측 후방 모터의 회전 속도 - 전진 보정값, 후진 보정값을 적용한 PWM값으로 좌측 모터 회전 |
RAM | 952 | 2 | Right Back Motor Speed | RW | 0 | -999 ~ 999 | - | - | 우측 후방 모터의 회전 속도 - 전진 보정값, 후진 보정값을 적용한 PWM값으로 우측 모터 회전 |
RAM | 954 | 2 | Back Motor Forward Speed | W | 0 | 0 ~ 999 | - | - | 후방 모터 전진 속도 - 후방 바퀴가 180도 회전할 때마다 속도를 측정하여 좌측, 우측 모터의 속도가 동일 할때 까지 전진 보정값을 업데이트하여 PWM값 조정 |
RAM | 956 | 2 | Back Motor Backward Speed | W | 0 | 0 ~ 999 | - | - | 후방 모터 후진 속도 - 후방 바퀴가 180도 회전할 때마다 속도를 측정하여 좌측, 우측 모터의 속도가 동일 할때 까지 후진 보정값을 업데이트하여 PWM값 조정 |
RAM | 958 | 2 | Back Motor Turn Left Speed | W | 0 | 0 ~ 999 | - | - | 후방 모터 좌회전 속도 - 좌측 모터는 후진 보정값이 적용된 PWM값으로, 우측 모터는 전진 보정값이 적용된 PWM값으로 모터 회전 |
RAM | 960 | 2 | Back Motor Turn Right Speed | W | 0 | 0 ~ 999 | - | - | 후방 모터 우회전 속도 - 좌측 모터는 전진 보정값이 적용된 PWM값으로, 우측 모터는 후진 보정값이 적용된 PWM값으로 모터 회전 |
RAM | 1101 | 1 | DXL Count | R | 0 | - | - | - | 제어기에 연결된 다이나믹셀 수 |
RAM | 1102 | 8 | DXL ID | R | - | - | - | - | 제어기에 연결된 다이나믹셀 ID에 해당하는 bit가 1이 됩니다. 읽은 데이터는 Littlen endian으로 표시 됩니다. ex) ID 1번, 3번 다이나믹셀 연결 - 2진수 : 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001010 - 16진수 : 00 00 00 00 00 00 00 0A ID 2번, 8번 다이나믹셀 연결 - 2진수 : 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000100 - 16진수 : 00 00 00 00 00 00 01 04 |
RAM | 1166 | 1 | DXL Scan | W | - | 0 ~ 1 | - | - | 제어기에 연결된 다이나믹셀 스캔 |
RAM | 1167 | 1 | DXL Reboot | W | - | 0 ~ 252 | - | - | 선택한 ID의 다이나믹셀 Reboot |
RAM | 1322 | 1 | DXL Torque | W | - | - | - | - | 연결된 전체 Dynamixel들의 토크를 켜거나 끔 |
RAM | 1500 | 2 | Line Tracer Speed | RW | 0 | - | - | 0 : 라인트레이싱 종료 1 ~ 999 : 라인트레이싱 속도 |
라인트레이싱 속도 설정 |
RAM | 1505 | 1 | Line Category | R | 0 | - | - | 0 : 라인 위 1 : 라인 벗어남 5 : +교차로 6 : T교차로 7 : ⊣ 왼쪽 갈림길 8 : ⊢ 오른쪽 갈림길 9 : ⏋좌회전도로 10 : ⎾ 우회전도로 11 : | 막다른길 12 : 공백 1개 [—- —–] 13 : 공백 2개 [– — –] |
감지된 교차로 타입 |
각 부 명칭
- Power Button (전원 버튼): 짧게 버튼을 눌러 켜면, 전원 LED 에 불이 켜지며 제어기는 Play 모드에 진입하며 다운로드 한 프로그램이 실행됩니다. 3초 이상 길게 눌러 켜면, 부저가 2번 울리며 Manage 모드에 진입합니다. 9초정도 길게 눌러 켜면, 부저가 3번 울리며 펌웨어 복구 모드가 실행됩니다.
- Power LED (전원 LED): 전원버튼을 누르면 푸른색 LED가 깜빡이며 켜집니다. BT-430 동글과 연결되면 푸른색 LED가 깜빡이지 않고 계속 켜집니다.
- LED 1,2 (LED): 프로그래밍을 통해 LED를 켜거나 끌 수 있습니다.
- IR Sensor(1~6) (적외선 센서): 6개의 적외선 센서가 장착되어 있어 각 방향에서의 센서값을 이용하여 프로그래밍 할 수 있습니다.
- 3Pin DXL Port(1,2) (3핀 포트): 전원버튼 아래에 있으며, XL330-M077-T, XL330-M288-T 등을 연결할 수 있습니다.
- Rear Motor Shaft (후방 모터 축): 십자혼을 결합할 수 있습니다. 기어 비는 60:1입니다.
전원 연결
RB-86은 AA 배터리 세 개를 사용하여 전원을 공급받습니다.
제어기 모드 선택
Play 모드
- 제어기가 꺼진 상태에서 전원버튼을 짧게 눌렀다가 떼면, 파란색 LED가 켜지면서 로봇이 Play 모드로 시작합니다.
- Play 모드는 제어기에 다운로드된 알블록 프로그램을 실행합니다.
- 처음 시작시 연속으로 버튼을 누른 횟수에 따라 시작 버튼 눌림 횟수가 증가합니다. 따라서 이 파라미터를 사용하여 프로그래밍을 하면 RB-86을 작동시킬 때 시작 버튼을 누르는 횟수에 따라 각각 다른 행동을 하도록 할 수 있습니다.
- Play 모드에서는 블루투스가 Master 장치와 페어링 되지 않았으면 파란색 LED가 깜박이고 페어링 되면 파란색 LED가 깜박이지 않고 켜져있습니다.
Manage 모드
- 제어기가 꺼진상태에서, 전원버튼을 1초정도로 짧은 “띠띠” (2회) 소리가 날때까지 누르면, 파란색 LED가 켜지면서 Manage 모드로 시작합니다.
- Manage 모드에서 알블록 프로그램을 다운로드 받을 수 있습니다.
- Manage 모드에서는 블루투스가 Master 장치와 페어링 되지 않았으면 파란색 LED가 깜박이고 페어링 되면 파란색 LED가 깜박이지 않고 켜져있습니다.
언플러그드 코딩 모드
- RB-86이 카드를 제대로 인식하지 못하는 경우 센서값 보정 카드를 사용하여 센서값을 보정할 수 있습니다.
- Manage 모드에서 전원버튼을 짧게 3번 눌러 보정 모드에 진입 후 센서값 보정 카드를 읽어 보정을 진행 합니다.
복구 모드
- 제어기가 꺼진 상태에서, 전원버튼을 약 9초간 눌러 더이상 소리가 나지 않으면 복구모드에 진입된 것입니다.
- 복구모드에 진입하면 주황색, 파란색 두 LED가 깜박이게 됩니다.
- STEAMCUP 앱에서
로봇추가
를 클릭하여 복구모드에 진입한 RB-86제어기를 연결하면 자동으로 펌웨어 업데이트를 진행합니다. (모바일에서 연결) - 업데이트 도중에는 앱을 종료하지 마세요.
- 업데이트 도중에는 스마트폰을 최대한 제어기 가까이에 놓아주세요.
제어기 종료
제어기가 켜진 상태에서 다시 시작 버튼을 누르면 제어기가 꺼집니다.
블루투스를 통한 다이나믹셀 제어
- 제어기가 Manage 모드일 때 제어기에 연결된 다이나믹셀의 ID로 다이나믹셀 제어가 가능합니다.
- 제어기에 연결된 다이나믹셀 모델명을 확인 후 e-Manual에서 다이나믹셀 컨트롤 테이블을 확인해 주세요.
십자혼 조립 방법
RB-86의 기어 축 돌기 부분과 십자 혼 끝단 파인 부분의 방향을 일치시켜서 조립합니다.
STEAMCUP 연결
PC에서 연결
-
스팀컵 홈페이지로 접속 하여 회원가입을 진행 후 로그인을 합니다.
- 네이버에서 “스팀컵”을 검색하여 enjoy.steamcup.org로 접속합니다.
-
우측 상단 햄버거메뉴를 클릭 후 회원가입을 하고 로그인을 합니다
-
로봇추가
를 클릭합니다. -
블루투스장치 선택 창에서 연결하려는 제어기를 선택후 페어링을 진행합니다.
-
RB-86에서 “삐”(1회) 소리가 나고 연결이 완료 됩니다.
모바일에서 연결
-
Play 스토어 또는 App Store에서 STEAMCUP앱을 다운로드 받습니다.
-
STEAMCUP앱을 실행하여 회원가입을 진행 후 로그인을 합니다.
-
로봇추가
를 클릭 후 연결하려는 제어기를 선택 합니다. -
RB-86에서 “삐”(1회) 소리가 나고 연결이 완료 됩니다.
펌웨어 업데이트
-
STEAMCUP앱에서 RB-86을 연결합니다.
-
RB-86 아이콘을 클릭 합니다.
-
펌웨어 복구/업데이트 버튼을 클릭 합니다.
-
업데이트 시작 후 무선 펌웨어 업데이트 안내에 따라 업데이트를 진행 합니다.
주의: PC에서 펌웨어 업데이트 기능을 지원하지 않습니다.
조종기 연결
RC-100B 또는 RC-300 연결
- RB-86를 BLE가 연결되지 않은 상태로 켜둡니다.
- RC-100B(BT-410 SLAVE 모듈 장착) 또는 RC-300을 제어기에 가까이 가져간 뒤 전원을 켭니다.
- RC-100B(BT-410 SLAVE 모듈 장착) 또는 RC-300이 가까이 있는 제어기를 자동으로 연결합니다.
STEAMCUP에서 조종기 연결
-
PC또는 STEAMCUP앱에서 RB-86을 연결합니다.
-
조종기 아이콘을 선택하여 조종기를 실행 합니다.
직진성 보정
-
알블록에서 아래 블록으로 실행 할 경우 RB-86이 전진하는 도중에 자동으로 직진성을 보정 합니다.
-
알블록에서 아래 블록으로 실행할 경우 RB-86이 후진하는 도중에 자동으로 직진성을 보정 합니다.
- 먼 거리를 이동해야 직진성 보정이 완료 됩니다.
- 전원을 꺼도 직진성 보정 값은 유지 됩니다.