새 소식 다운로드 교육자료 강의 신청 문제해결 레퍼런스 구입방법

프로세싱 : 숙련자용 : Hamster

개요
햄스터 로봇을 제어하기 위한 메소드와 상수 값을 정의합니다.

햄스터 로봇은 10개의 센서 디바이스와 5개의 이펙터 디바이스, 11개의 커맨드 디바이스, 1개의 이벤트 디바이스로 구성되어 있으며, 각 디바이스의 데이터는 정수형 배열 또는 실수형 배열로 선언되어 있습니다. 각 디바이스의 데이터 형과 배열 크기, 값의 범위는 디바이스에 따라 다르며, 디바이스 ID 상수 값을 참고하기 바랍니다.

햄스터 로봇을 제어하기 위한 메소드는 크게 두 가지 종류가 있습니다.
첫 번째 종류의 메소드는 모든 로봇에 적용할 수 있는 일반화된 메소드입니다. 다음과 같이 해당 디바이스의 ID를 사용하여 read 또는 write 메소드를 호출하면 됩니다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    int value1 = hamster.read(Hamster.LEFT_PROXIMITY); // 왼쪽 근접 센서 값을 얻는다.
    int value2 = hamster.read(Hamster.ACCELERATION, 0); // X축 가속도 값을 얻는다.
    int value3 = hamster.read(Hamster.ACCELERATION, 1); // Y축 가속도 값을 얻는다.
    int value4 = hamster.read(Hamster.ACCELERATION, 2); // Z축 가속도 값을 얻는다.
    hamster.write(Hamster.LEFT_WHEEL, 30); // 왼쪽 바퀴의 속도를 30으로 한다.
}

두 번째 종류의 메소드는 햄스터 로봇에만 적용할 수 있으며, 메소드 내부에서 위의 일반화된 메소드를 호출해 줍니다. 이 메소드는 디바이스의 이름과 유사한 이름으로 구성되어 있습니다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    int value1 = hamster.leftProximity(); // 왼쪽 근접 센서 값을 얻는다.
    int value2 = hamster.accelerationX(); // X축 가속도 값을 얻는다.
    int value3 = hamster.accelerationY(); // Y축 가속도 값을 얻는다.
    int value4 = hamster.accelerationZ(); // Z축 가속도 값을 얻는다.
    hamster.leftWheel(30); // 왼쪽 바퀴의 속도를 30으로 한다.
}
햄스터 전용 메소드
버전 1.0.0부터
Hamster Hamster.create(PApplet applet)
햄스터 인스턴스를 생성하고 하드웨어 햄스터 로봇과 통신을 연결한다.

햄스터 인스턴스를 생성할 때마다 몇 번째 햄스터 로봇인지를 나타내는 인덱스는 1씩 증가한다.

파라미터:
  • applet: 프로세싱 애플릿

반환 값:
    햄스터(Hamster) 인스턴스의 참조

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}
버전 1.1.1부터
Hamster Hamster.create(PApplet applet, String portName)
햄스터 인스턴스를 생성하고 portName의 시리얼 포트를 통해 하드웨어 햄스터 로봇과 통신을 연결한다.

햄스터 인스턴스를 생성할 때마다 몇 번째 햄스터 로봇인지를 나타내는 인덱스는 1씩 증가한다.

파라미터:
  • applet: 프로세싱 애플릿
  • portName: 시리얼 포트 이름

반환 값:
    햄스터(Hamster) 인스턴스의 참조

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this, "COM52");
}

void draw() {
}
버전 1.1.1부터
int accelerationX()
X축 가속도 센서 값을 반환한다.

햄스터 로봇의 가속도 센서 좌표계는 로봇이 전진하는 방향이 X축, 로봇의 왼쪽 방향이 Y축, 위쪽 방향이 Z축의 양수 방향이다.

반환 값:
    X축 가속도 센서 값(-32768 ~ 32767, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // X축 가속도 값을 얻는다.
    int value = hamster.accelerationX();
}
버전 1.1.1부터
int accelerationY()
Y축 가속도 센서 값을 반환한다.

햄스터 로봇의 가속도 센서 좌표계는 로봇이 전진하는 방향이 X축, 로봇의 왼쪽 방향이 Y축, 위쪽 방향이 Z축의 양수 방향이다.

반환 값:
    Y축 가속도 센서 값(-32768 ~ 32767, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // Y축 가속도 값을 얻는다.
    int value = hamster.accelerationY();
}
버전 1.1.1부터
int accelerationZ()
Z축 가속도 센서 값을 반환한다.

햄스터 로봇의 가속도 센서 좌표계는 로봇이 전진하는 방향이 X축, 로봇의 왼쪽 방향이 Y축, 위쪽 방향이 Z축의 양수 방향이다.

반환 값:
    Z축 가속도 센서 값(-32768 ~ 32767, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // Z축 가속도 값을 얻는다.
    int value = hamster.accelerationZ();
}
버전 1.1.1부터
void beep()
440 Hz의 버저 음을 짧게(0.2초) 소리낸다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 버저 음을 짧게 소리낸다.
    hamster.beep();
}
버전 1.1.1부터
void boardForward()
검은색 격자로 구성된 말판 위에서 한 칸 앞으로 이동한다.

말판은 교육자료 - 수업자료 - 활동지에서 내려받을 수 있다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 말판 위에서 한 칸 앞으로 이동한다.
    hamster.boardForward();
}
버전 1.1.1부터
void boardLeft()
검은색 격자로 구성된 말판 위에서 왼쪽 방향으로 제자리에서 90도 회전한다.

말판은 교육자료 - 수업자료 - 활동지에서 내려받을 수 있다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 말판 위에서 왼쪽 방향으로 제자리에서 90도 회전한다.
    hamster.boardLeft();
}
버전 1.1.1부터
void boardRight()
검은색 격자로 구성된 말판 위에서 오른쪽 방향으로 제자리에서 90도 회전한다.

말판은 교육자료 - 수업자료 - 활동지에서 내려받을 수 있다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 말판 위에서 오른쪽 방향으로 제자리에서 90도 회전한다.
    hamster.boardRight();
}
버전 1.1.1부터
void buzzer(float hz)
버저 소리의 음 높이 주파수를 hz [Hz]로 설정한다.

음 높이는 소수점 둘째 자리까지 입력할 수 있으며, 버저 소리를 끄기 위해서는 0을 입력하면 된다.

파라미터:
  • hz: 버저 소리의 음 높이(0 ~ 167772.15 [Hz], 0: off)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 버저 소리의 음 높이를 1000 Hz로 한다.
    hamster.buzzer(1000);
    // 버저 소리의 음 높이를 261.63 Hz로 한다.
    hamster.buzzer(261.63);
    // 버저 소리를 끈다.
    hamster.buzzer(0);
}
버전 1.1.1부터
int inputA()
외부 확장 포트 중에서 포트 A로 입력되는 신호 값을 반환한다.

외부 확장 포트 A의 입출력 모드에 따라 반환하는 값의 범위가 달라진다.

반환 값:
    포트 A로 입력되는 신호 값(초기 값: 0)

입출력 모드 값의 범위 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 ~ 255 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
0 또는 1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    hamster.ioModeA(Hamster.IO_MODE_ANALOG_INPUT);
}

void draw() {
}

void run() {
    // 포트 A로 입력되는 신호 값을 얻는다.
    int value = hamster.inputA();
}
버전 1.1.1부터
int inputB()
외부 확장 포트 중에서 포트 B로 입력되는 신호 값을 반환한다.

외부 확장 포트 B의 입출력 모드에 따라 반환하는 값의 범위가 달라진다.

반환 값:
    포트 B로 입력되는 신호 값(초기 값: 0)

입출력 모드 값의 범위 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 ~ 255 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
0 또는 1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    hamster.ioModeB(Hamster.IO_MODE_DIGITAL_INPUT);
}

void draw() {
}

void run() {
    // 포트 B로 입력되는 신호 값을 얻는다.
    int value = hamster.inputB();
}
버전 1.1.1부터
void ioModeA(int mode)
외부 확장 포트 중에서 포트 A의 입출력 모드를 설정한다.

파라미터:
  • mode: 포트 A의 입출력 모드

입출력 모드 상수 값 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
8 외부 서보 제어용 PWM 신호를 출력한다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
9 듀티비(0 ~ 255 단계)에 따른 PWM 파형을 출력한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
10 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    // 포트 A의 입출력 모드를 아날로그 입력 모드로 설정한다.
    hamster.ioModeA(Hamster.IO_MODE_ANALOG_INPUT);
}

void draw() {
}
버전 1.1.1부터
void ioModeB(int mode)
외부 확장 포트 중에서 포트 B의 입출력 모드를 설정한다.

파라미터:
  • mode: 포트 B의 입출력 모드

입출력 모드 상수 값 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
8 외부 서보 제어용 PWM 신호를 출력한다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
9 듀티비(0 ~ 255 단계)에 따른 PWM 파형을 출력한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
10 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    // 포트 B의 입출력 모드를 PWM 출력 모드로 설정한다.
    hamster.ioModeB(Hamster.IO_MODE_PWM_OUTPUT);
}

void draw() {
}
버전 1.1.1부터
void leds(int leftColor, int rightColor)
왼쪽 LED와 오른쪽 LED의 색상을 설정한다.

7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 0을 입력하면 된다.

파라미터:
  • leftColor: 왼쪽 LED의 색상(0 ~ 7, 0: off)
  • rightColor: 오른쪽 LED의 색상(0 ~ 7, 0: off)

LED 색상 상수 값 설명
LED_OFF 0 LED를 끈다.
LED_BLUE 1 LED를 파란색으로 켠다. (R: 0, G: 0, B: 255)
LED_GREEN 2 LED를 초록색으로 켠다. (R: 0, G: 255, B: 0)
LED_CYAN 3 LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255)
LED_RED 4 LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0)
LED_MAGENTA 5 LED를 보라색으로 켠다. (R: 255, G: 0, B: 255)
LED_YELLOW 6 LED를 노란색으로 켠다. (R: 255, G: 255, B: 0)
LED_WHITE 7 LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 LED를 빨간색으로, 오른쪽 LED를 파란색으로 켠다.
    hamster.leds(Hamster.LED_RED, Hamster.LED_BLUE);
    // 양쪽 LED를 끈다.
    hamster.leds(0, 0);
}
버전 1.1.1부터
void leds(int color)
양쪽 LED의 색상을 설정한다. leds(color, color)를 호출한 것과 같다.

7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 0을 입력하면 된다.

파라미터:
  • color: 양쪽 LED의 색상(0 ~ 7, 0: off)

LED 색상 상수 값 설명
LED_OFF 0 LED를 끈다.
LED_BLUE 1 LED를 파란색으로 켠다. (R: 0, G: 0, B: 255)
LED_GREEN 2 LED를 초록색으로 켠다. (R: 0, G: 255, B: 0)
LED_CYAN 3 LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255)
LED_RED 4 LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0)
LED_MAGENTA 5 LED를 보라색으로 켠다. (R: 255, G: 0, B: 255)
LED_YELLOW 6 LED를 노란색으로 켠다. (R: 255, G: 255, B: 0)
LED_WHITE 7 LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 양쪽 LED를 초록색으로 켠다.
    hamster.leds(Hamster.LED_GREEN);
    // 양쪽 LED를 끈다.
    hamster.leds(0);
}
버전 1.1.1부터
int leftFloor()
왼쪽 바닥 센서 값을 반환한다.

바닥 센서의 값은 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다. 센서가 출력하는 값의 범위는 0 ~ 255이지만 바닥에서 가장 밝은 색(흰색에 가까운 색 중에서 가장 밝은 색)을 100으로 자동 보정하기 때문에 코드 작성 시 사용되는 값의 범위는 0 ~ 100이다.

반환 값:
    왼쪽 바닥 센서 값(0 ~ 100, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 바닥 센서 값을 얻는다.
    int value = hamster.leftFloor();
}
버전 1.1.1부터
void leftLed(int color)
왼쪽 LED의 색상을 설정한다.

7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 0을 입력하면 된다.

파라미터:
  • color: 왼쪽 LED의 색상(0 ~ 7, 0: off)

LED 색상 상수 값 설명
LED_OFF 0 LED를 끈다.
LED_BLUE 1 LED를 파란색으로 켠다. (R: 0, G: 0, B: 255)
LED_GREEN 2 LED를 초록색으로 켠다. (R: 0, G: 255, B: 0)
LED_CYAN 3 LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255)
LED_RED 4 LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0)
LED_MAGENTA 5 LED를 보라색으로 켠다. (R: 255, G: 0, B: 255)
LED_YELLOW 6 LED를 노란색으로 켠다. (R: 255, G: 255, B: 0)
LED_WHITE 7 LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 LED를 빨간색으로 켠다.
    hamster.leftLed(Hamster.LED_RED);
    // 왼쪽 LED를 끈다.
    hamster.leftLed(0);
}
버전 1.1.1부터
int leftProximity()
왼쪽 근접 센서 값을 반환한다.

근접 센서의 데이터는 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다.

반환 값:
    왼쪽 근접 센서 값(0 ~ 255, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 근접 센서 값을 얻는다.
    int value = hamster.leftProximity();
}
버전 1.1.2부터
void leftWheel(float speed)
void leftWheel(int speed)를 호출한 것과 같다.
버전 1.1.1부터
void leftWheel(int speed)
왼쪽 바퀴의 속도를 설정한다.

왼쪽 바퀴의 속도는 최대 속도에 대한 % 값이다. 양수 값은 전진 방향으로의 회전을, 음수 값은 후진 방향으로의 회전을 의미한다. 부호를 제외한 절대치가 클수록 속도가 빨라진다.

파라미터:
  • speed: 왼쪽 바퀴의 속도(-100 ~ 100 [%], 0: 정지)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 바퀴를 30%의 속력으로 앞으로 회전하게 한다.
    hamster.leftWheel(30);
    // 왼쪽 바퀴를 30%의 속력으로 뒤로 회전하게 한다.
    hamster.leftWheel(-30);
    // 왼쪽 바퀴를 정지한다.
    hamster.leftWheel(0);
}
버전 1.1.1부터
int light()
밝기 센서 값을 반환한다.

반환 값:
    밝기 센서 값(0 ~ 65535 [Lux], 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 밝기 센서 값을 얻는다.
    int value = hamster.light();
}
버전 1.1.1부터
void lineTracerMode(int mode)
햄스터 로봇에 내장된 라인 트레이서 기능의 모드를 설정한다.

내장된 라인 트레이서 기능을 사용하면 초당 50회 이상의 내부 피드백 제어를 통해 고속 주행이 가능하다.

파라미터:
  • mode: 라인 트레이서 모드(0 ~ 15)

라인 트레이서 모드 데이터 값 설명
LINE_TRACER_MODE_OFF 0 내장된 라인 트레이서 기능을 사용하지 않는다.
LINE_TRACER_MODE_BLACK_LEFT_SENSOR 1 왼쪽 바닥 센서를 사용하여 검은색 라인을 오른쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_BLACK_RIGHT_SENSOR 2 오른쪽 바닥 센서를 사용하여 검은색 라인을 왼쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_BLACK_BOTH_SENSORS 3 양쪽 바닥 센서를 모두 사용하여 검은색 라인을 중앙에 두고 전진한다. 검은색 교차로와 짧게 끊어진 라인은 직진하여 통과한다.
LINE_TRACER_MODE_BLACK_TURN_LEFT 4 현재 교차로에 있으면 교차로를 벗어날 때까지 좌회전하고, 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_BLACK_TURN_RIGHT 5 현재 교차로에 있으면 교차로를 벗어날 때까지 우회전하고, 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_BLACK_MOVE_FORWARD 6 현재 교차로에 있으면 교차로를 벗어날 때까지 직진하고, 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_BLACK_UTURN 7 180도 유턴하고 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_LEFT_SENSOR 8 왼쪽 바닥 센서를 사용하여 흰색 라인을 오른쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_WHITE_RIGHT_SENSOR 9 오른쪽 바닥 센서를 사용하여 흰색 라인을 왼쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_WHITE_BOTH_SENSORS 10 양쪽 바닥 센서를 모두 사용하여 흰색 라인을 중앙에 두고 전진한다. 흰색 교차로와 짧게 끊어진 라인은 직진하여 통과한다.
LINE_TRACER_MODE_WHITE_TURN_LEFT 11 현재 교차로에 있으면 교차로를 벗어날 때까지 좌회전하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_TURN_RIGHT 12 현재 교차로에 있으면 교차로를 벗어날 때까지 우회전하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_MOVE_FORWARD 13 현재 교차로에 있으면 교차로를 벗어날 때까지 직진하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_UTURN 14 180도 유턴하고 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 라인 트레이서 모드를 설정한다.
    hamster.lineTracerMode(Hamster.LINE_TRACER_MODE_BLACK_LEFT_SENSOR);
    // 내장된 라인 트레이서 기능을 사용하지 않는다.
    hamster.lineTracerMode(0);
}
버전 1.1.2부터
void lineTracerSpeed(float speed)
void lineTracerSpeed(int speed)를 호출한 것과 같다.
버전 1.1.1부터
void lineTracerSpeed(int speed)
햄스터 로봇에 내장된 라인 트레이서 기능의 주행 속도를 설정한다.

주행 속도는 1 ~ 8의 8단계이며 값이 클수록 주행 속도가 빨라진다.

파라미터:
  • speed: 주행 속도(1 ~ 8, 초기 값: 5)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 라인 트레이서 주행 속도를 5로 설정한다.
    hamster.lineTracerSpeed(5);
}
버전 1.1.2부터
void note(float pitch)
void note(int pitch)를 호출한 것과 같다.
버전 1.1.1부터
void note(int pitch)
버저를 이용한 오차 0.01% 이하의 정확한 음정을 소리낸다.

유효한 값은 1 ~ 88이며 피아노의 88 건반에 대응된다. 소리를 끄기 위해서는 0을 입력하면 된다. 각 음표에 해당하는 상수 값은 음표 상수를 참고하기 바란다.

파라미터:
  • pitch: 음정(0 ~ 88, 0: off)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 4옥타브 도 음을 소리낸다.
    hamster.note(Hamster.NOTE_C_4);
    // 소리를 끈다.
    hamster.note(0);
}
버전 1.1.2부터
void note(float pitch, float beats)
void note(int pitch, float beats)를 호출한 것과 같다.
버전 1.1.1부터
void note(int pitch, float beats)
버저를 이용한 오차 0.01% 이하의 정확한 음정을 beats 박자 만큼 소리낸다.

유효한 pitch 값은 1 ~ 88이며 피아노의 88 건반에 대응된다. 소리를 끄기 위해서는 pitch에 0을 입력하면 된다. 각 음표에 해당하는 상수 값은 음표 상수를 참고하기 바란다.

파라미터:
  • pitch: 음정(0 ~ 88, 0: off)
  • beats: 박자

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 4옥타브 도 음을 0.5 박자 소리낸다.
    hamster.note(Hamster.NOTE_C_4, 0.5);
    // 0.5 박자 쉰다.
    hamster.note(0, 0.5);
}
버전 1.1.2부터
void outputA(float value)
void outputA(int value)를 호출한 것과 같다.
버전 1.1.1부터
void outputA(int value)
외부 확장 포트 중에서 포트 A로 출력하는 신호 값을 설정한다.

외부 확장 포트 A의 입출력 모드에 따라 설정할 수 있는 값의 범위가 달라진다.

파라미터:
  • value: 포트 A로 출력하는 신호 값

입출력 모드 값의 범위 설명
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
0 ~ 180
(0: off)
외부 서보 제어용 PWM 신호를 출력하며, 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 펄스 폭을 설정한다.
유효한 값은 1 ~ 180도이며, 펄스 폭 1.0msec ~ 2.0msec에 대응된다. (90도는 1.5msec에 대응)
0(off)인 경우에는 펄스 없이 항상 0이 출력되며, 180보다 큰 값을 입력하면 최대 펄스 폭인 2.5msec로 제한된다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
0 ~ 255 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비를 0 ~ 255 단계로 설정한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
0 또는 1 디지털 출력(0 또는 1)을 설정한다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    hamster.ioModeA(Hamster.IO_MODE_PWM_OUTPUT);
}

void draw() {
}

void run() {
    // PWM 출력을 50으로 설정한다.
    hamster.outputA(50);
}
버전 1.1.2부터
void outputB(float value)
void outputB(int value)를 호출한 것과 같다.
버전 1.1.1부터
void outputB(int value)
외부 확장 포트 중에서 포트 B로 출력하는 신호 값을 설정한다.

외부 확장 포트 B의 입출력 모드에 따라 설정할 수 있는 값의 범위가 달라진다.

파라미터:
  • value: 포트 B로 출력하는 신호 값

입출력 모드 값의 범위 설명
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
0 ~ 180
(0: off)
외부 서보 제어용 PWM 신호를 출력하며, 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 펄스 폭을 설정한다.
유효한 값은 1 ~ 180도이며, 펄스 폭 1.0msec ~ 2.0msec에 대응된다. (90도는 1.5msec에 대응)
0(off)인 경우에는 펄스 없이 항상 0이 출력되며, 180보다 큰 값을 입력하면 최대 펄스 폭인 2.5msec로 제한된다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
0 ~ 255 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비를 0 ~ 255 단계로 설정한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
0 또는 1 디지털 출력(0 또는 1)을 설정한다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    hamster.ioModeB(Hamster.IO_MODE_SERVO_OUTPUT);
}

void draw() {
}

void run() {
    // 서보 출력을 90으로 설정한다.
    hamster.outputB(90);
}
버전 1.1.1부터
int rightFloor()
오른쪽 바닥 센서 값을 반환한다.

바닥 센서의 값은 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다. 센서가 출력하는 값의 범위는 0 ~ 255이지만 바닥에서 가장 밝은 색(흰색에 가까운 색 중에서 가장 밝은 색)을 100으로 자동 보정하기 때문에 코드 작성 시 사용되는 값의 범위는 0 ~ 100이다.

반환 값:
    오른쪽 바닥 센서 값(0 ~ 100, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 바닥 센서 값을 얻는다.
    int value = hamster.rightFloor();
}
버전 1.1.1부터
void rightLed(int color)
오른쪽 LED의 색상을 설정한다.

7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 0을 입력하면 된다.

파라미터:
  • color: 오른쪽 LED의 색상(0 ~ 7, 0: off)

LED 색상 상수 값 설명
LED_OFF 0 LED를 끈다.
LED_BLUE 1 LED를 파란색으로 켠다. (R: 0, G: 0, B: 255)
LED_GREEN 2 LED를 초록색으로 켠다. (R: 0, G: 255, B: 0)
LED_CYAN 3 LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255)
LED_RED 4 LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0)
LED_MAGENTA 5 LED를 보라색으로 켠다. (R: 255, G: 0, B: 255)
LED_YELLOW 6 LED를 노란색으로 켠다. (R: 255, G: 255, B: 0)
LED_WHITE 7 LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 LED를 파란색으로 켠다.
    hamster.rightLed(Hamster.LED_BLUE);
    // 오른쪽 LED를 끈다.
    hamster.rightLed(0);
}
버전 1.1.1부터
int rightProximity()
오른쪽 근접 센서 값을 반환한다.

근접 센서의 데이터는 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다.

반환 값:
    오른쪽 근접 센서 값(0 ~ 255, 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 근접 센서 값을 얻는다.
    int value = hamster.rightProximity();
}
버전 1.1.2부터
void rightWheel(float speed)
void rightWheel(int speed)를 호출한 것과 같다.
버전 1.1.1부터
void rightWheel(int speed)
오른쪽 바퀴의 속도를 설정한다.

오른쪽 바퀴의 속도는 최대 속도에 대한 % 값이다. 양수 값은 전진 방향으로의 회전을, 음수 값은 후진 방향으로의 회전을 의미한다. 부호를 제외한 절대치가 클수록 속도가 빨라진다.

파라미터:
  • speed: 오른쪽 바퀴의 속도(-100 ~ 100 [%], 0: 정지)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 바퀴를 30%의 속력으로 앞으로 회전하게 한다.
    hamster.rightWheel(30);
    // 오른쪽 바퀴를 30%의 속력으로 뒤로 회전하게 한다.
    hamster.rightWheel(-30);
    // 오른쪽 바퀴를 정지한다.
    hamster.rightWheel(0);
}
버전 1.1.1부터
int signalStrength()
신호 세기 값을 반환한다.

햄스터 로봇과 컴퓨터 간의 블루투스 무선 통신의 신호 세기를 나타낸다. 신호의 세기가 셀수록 값이 커진다.

반환 값:
    신호 세기 값(-128 ~ 0 [dBm], 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 신호 세기 값을 얻는다.
    int value = hamster.signalStrength();
}
버전 1.1.1부터
void stop()
양쪽 바퀴를 정지한다. wheels(0, 0) 또는 wheels(0)을 호출한 것과 같다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 30%의 속력으로 앞으로 이동한다.
    hamster.wheels(30, 30);
    // 양쪽 바퀴를 정지한다.
    hamster.stop();
}
버전 1.1.1부터
int temperature()
온도 센서 값을 반환한다.

햄스터 로봇 내부의 온도를 나타낸다.

반환 값:
    온도 센서 값(-40 ~ 88 [oC], 초기 값: 0)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 온도 센서 값을 얻는다.
    int value = hamster.temperature();
}
버전 1.1.1부터
void tempo(float bpm)
연주하거나 쉬는 속도를 bpm(분당 박자 수)으로 설정한다.

파라미터:
  • bpm: 분당 박자 수(초기 값: 60)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 연주 속도를 60 BPM으로 한다.
    hamster.tempo(60);
}
버전 1.1.2부터
void wheels(float leftSpeed, float rightSpeed)
void wheels(int leftSpeed, int rightSpeed)를 호출한 것과 같다.
버전 1.1.1부터
void wheels(int leftSpeed, int rightSpeed)
왼쪽 바퀴와 오른쪽 바퀴의 속도를 설정한다.

바퀴의 속도는 최대 속도에 대한 % 값이다. 양수 값은 전진 방향으로의 회전을, 음수 값은 후진 방향으로의 회전을 의미한다. 부호를 제외한 절대치가 클수록 속도가 빨라진다.

파라미터:
  • leftSpeed: 왼쪽 바퀴의 속도(-100 ~ 100 [%], 0: 정지)
  • rightSpeed: 오른쪽 바퀴의 속도(-100 ~ 100 [%], 0: 정지)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 양쪽 바퀴를 30%의 속력으로 앞으로 회전하게 한다.
    hamster.wheels(30, 30);
    // 양쪽 바퀴를 30%의 속력으로 뒤로 회전하게 한다.
    hamster.wheels(-30, -30);
    // 양쪽 바퀴를 정지한다.
    hamster.wheels(0, 0);
}
버전 1.1.2부터
void wheels(float speed)
void wheels(int speed)를 호출한 것과 같다.
버전 1.1.1부터
void wheels(int speed)
양쪽 바퀴의 속도를 설정한다. wheels(speed, speed)를 호출한 것과 같다.

바퀴의 속도는 최대 속도에 대한 % 값이다. 양수 값은 전진 방향으로의 회전을, 음수 값은 후진 방향으로의 회전을 의미한다. 부호를 제외한 절대치가 클수록 속도가 빨라진다.

파라미터:
  • speed: 양쪽 바퀴의 속도(-100 ~ 100 [%], 0: 정지)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 양쪽 바퀴를 30%의 속력으로 앞으로 회전하게 한다.
    hamster.wheels(30);
    // 양쪽 바퀴를 30%의 속력으로 뒤로 회전하게 한다.
    hamster.wheels(-30);
    // 양쪽 바퀴를 정지한다.
    hamster.wheels(0);
}
로봇 공통 메소드
버전 1.1.2부터
void addDeviceDataChangedListener(String listener)
디바이스의 데이터가 갱신되었을 때 호출되도록 listener를 등록한다.

listener는 디바이스의 데이터 형에 따라 다음의 3가지 중 하나의 형태를 가지는 콜백 함수의 이름이다.
  • void onDeviceDataChanged(Device device, int[] values)
  • void onDeviceDataChanged(Device device, float[] values)
  • void onDeviceDataChanged(Device device, String[] values)

함수 이름이 onDeviceDataChanged일 필요는 없다. 여기서 device는 데이터가 갱신된 디바이스이고, values는 해당 디바이스(device)의 데이터 배열이다.

파라미터:
  • listener: 등록할 콜백 함수의 이름

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void onDeviceDataChanged(Device device, int[] values) {
    if(device.getId() == Hamster.LEFT_PROXIMITY) {
        int leftProximity = values[0];
    }
}

void setup() {
    hamster = Hamster.create(this);
    // 콜백 함수를 등록한다.
    hamster.addDeviceDataChangedListener("onDeviceDataChanged");
}

void draw() {
}
버전 1.1.0부터
void clearDeviceDataChangedListeners()
등록된 모든 콜백 함수를 제거한다.
버전 1.1.0부터
void dispose()
로봇의 통신 연결을 종료한다.
버전 1.0.0부터
boolean e(int deviceId)
ID가 deviceId인 디바이스의 데이터가 갱신되었는지 확인한다.

ID가 deviceId인 디바이스가 없으면 false를 반환한다. 센서 또는 이펙터 디바이스는 데이터가 계속 갱신되기 때문에 확인할 필요가 없지만, 커맨드 또는 이벤트 디바이스는 데이터를 읽기 전에 반드시 이 메소드를 사용하여 데이터가 갱신되었는지 확인해야 한다. 그렇지 않으면 커맨드 또는 이벤트가 발생한 시점을 알 수가 없기 때문에 현재 발생한 커맨드 또는 이벤트의 데이터가 아니라 과거에 발생하였던 커맨드 또는 이벤트의 데이터를 읽을 수도 있다.

파라미터:
  • deviceId: 디바이스 ID

반환 값:
    디바이스의 데이터가 갱신되었으면 true, 아니면 false

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    if(hamster.e(Hamster.LINE_TRACER_STATE)) { // 데이터가 갱신되었는지 확인한다.
        int state = hamster.read(Hamster.LINE_TRACER_STATE); // 데이터를 읽는다.
    }
}
버전 1.0.0부터
Device findDeviceById(int deviceId)
ID가 deviceId인 디바이스를 찾는다.

ID가 deviceId인 디바이스가 없으면 null을 반환한다.

파라미터:
  • deviceId: 찾을 디바이스의 ID

반환 값:
    Device 인스턴스의 참조 또는 null

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    // 왼쪽 바퀴 디바이스를 찾는다.
    Device device = hamster.findDeviceById(Hamster.LEFT_WHEEL);
}

void draw() {
}
버전 1.0.0부터
Device findDeviceByName(String name)
이름이 name인 디바이스를 찾는다.

이름이 name인 디바이스가 없으면 null을 반환한다. 이 때, 자식 로보이드에 포함된 디바이스의 이름은 "자식로보이드.디바이스"와 같이 "."으로 구분된 형식을 사용한다. 예: "Hamster.LeftWheel"

파라미터:
  • name: 찾을 디바이스의 이름

반환 값:
    Device 인스턴스의 참조 또는 null

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    // 왼쪽 바퀴 디바이스를 찾는다.
    Device device = hamster.findDeviceByName("Hamster.LeftWheel");
}

void draw() {
}
버전 1.0.0부터
Roboid findRoboidByName(String name)
이름이 name인 로보이드를 찾는다.

이름이 name인 로보이드가 없으면 null을 반환한다. 이 때, 자식 로보이드에 포함된 로보이드의 이름은 "자식로보이드.로보이드"와 같이 "."으로 구분된 형식을 사용한다. 예: "Child.Pen"

파라미터:
  • name: 찾을 로보이드의 이름

반환 값:
    Roboid 인스턴스의 참조 또는 null

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    Roboid roboid = hamster.findRoboidByName("Hamster");
}

void draw() {
}
버전 1.0.0부터
String getId()
로봇의 ID를 반환한다.

반환 값:
    로봇의 ID를 나타내는 문자열

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 로봇의 ID를 얻는다.
    String id = hamster.getId();
}
버전 1.0.0부터
int getIndex()
몇 번째 로봇인지를 나타내는 인덱스를 반환한다.

로봇의 인스턴스를 생성할 때 순서대로 0부터 시작하여 부여되는 일련 번호이다. 인덱스는 로봇들을 모델 기준으로 그룹핑하여 각 그룹 별로 순서대로 일련 번호가 부여된다. 즉, 로봇의 모델이 다르면 인덱스는 0부터 새로 시작한다. 따라서 로봇의 모델 ID와 인덱스를 사용하여 각각의 로봇을 구분할 수 있다.

예를 들어 햄스터 로봇 3대와 거북이 로봇 2대를 사용 중이라면, 햄스터 로봇 3대가 순서대로 0, 1, 2의 일련 번호(인덱스)를 가지고, 거북이 로봇 2대가 0, 1의 일련 번호(인덱스)를 가진다.

반환 값:
    몇 번째 로봇인지를 나타내는 인덱스

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 첫 번째 햄스터 로봇임을 확인한다.
    if(hamster.getIndex() == 0) {
    }
}
버전 1.0.0부터
String getName()
로봇의 이름을 반환한다.

반환 값:
    로봇의 이름을 나타내는 문자열. 항상 null이 아니다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 로봇의 이름을 얻는다.
    String name = hamster.getName();
}
버전 1.0.0부터
int read(int deviceId)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스 0의 위치에 있는 데이터를 정수 값으로 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. 디바이스의 데이터 배열 크기가 0인 경우에는 0을 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID

반환 값:
    디바이스의 데이터 값 또는 0

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 근접 센서 값을 얻는다.
    int value = hamster.read(Hamster.LEFT_PROXIMITY);
}
버전 1.0.0부터
int read(int deviceId, int index)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스가 index인 위치에 있는 데이터를 정수 값으로 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. index가 디바이스의 데이터 배열 크기보다 크거나 같은 경우, 혹은 index가 음수인 경우에는 0을 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • index: 디바이스 데이터 배열의 인덱스

반환 값:
    디바이스의 데이터 값 또는 0

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // Y축 가속도 값을 얻는다.
    int value = hamster.read(Hamster.ACCELERATION, 1);
}
버전 1.0.0부터
int read(int deviceId, int[] data)
ID가 deviceId인 디바이스의 데이터 배열을 정수형 배열 data에 복사하고, 복사한 데이터의 개수를 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. data 배열의 크기가 디바이스의 데이터 배열 크기보다 작은 경우에는 data 배열의 크기만큼만 복사한다. 디바이스의 데이터 배열 크기가 data 배열의 크기보다 작은 경우에는 디바이스의 데이터 배열 크기만큼만 복사한다. data 배열이 null인 경우, data 배열의 크기가 0인 경우, 디바이스의 데이터 형이 DataType.STRING인인 경우에는 복사하지 않고 0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스의 데이터 배열을 복사할 정수형 배열

반환 값:
    복사한 데이터의 개수

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    int[] data = new int[3];
    // 3축 가속도 센서 값을 모두 얻는다.
    hamster.read(Hamster.ACCELERATION, data);
}
버전 1.0.0부터
float readFloat(int deviceId)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스 0의 위치에 있는 데이터를 실수 값으로 반환한다.

ID가 deviceId인 디바이스가 없으면 0.0을 반환한다. 디바이스의 데이터 배열 크기가 0인 경우에는 0.0을 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 0.0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID

반환 값:
    디바이스의 데이터 값 또는 0.0
버전 1.0.0부터
int readFloat(int deviceId, float[] data)
ID가 deviceId인 디바이스의 데이터 배열을 실수형 배열 data에 복사하고, 복사한 데이터의 개수를 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. data 배열의 크기가 디바이스의 데이터 배열 크기보다 작은 경우에는 data 배열의 크기만큼만 복사한다. 디바이스의 데이터 배열 크기가 data 배열의 크기보다 작은 경우에는 디바이스의 데이터 배열 크기만큼만 복사한다. data 배열이 null인 경우, data 배열의 크기가 0인 경우, 디바이스의 데이터 형이 DataType.STRING인 경우에는 복사하지 않고 0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스의 데이터 배열을 복사할 실수형 배열

반환 값:
    복사한 데이터의 개수
버전 1.0.0부터
float readFloat(int deviceId, int index)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스가 index인 위치에 있는 데이터를 실수 값으로 반환한다.

ID가 deviceId인 디바이스가 없으면 0.0을 반환한다. index가 디바이스의 데이터 배열 크기보다 크거나 같은 경우, 혹은 index가 음수인 경우에는 0.0을 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 0.0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • index: 디바이스 데이터 배열의 인덱스

반환 값:
    디바이스의 데이터 값 또는 0.0
버전 1.0.0부터
String readString(int deviceId)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스 0의 위치에 있는 데이터를 스트링으로 반환한다.

ID가 deviceId인 디바이스가 없으면 빈 문자열("")을 반환한다. 디바이스의 데이터 배열 크기가 0인 경우에는 빈 문자열("")을 반환한다. 디바이스의 데이터 형이 DataType.STRING이 아닌 경우에는 빈 문자열("")을 반환한다.

파라미터:
  • deviceId: 디바이스 ID

반환 값:
    디바이스의 데이터 값 또는 빈 문자열("")
버전 1.0.0부터
String readString(int deviceId, int index)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스가 index인 위치에 있는 데이터를 스트링으로 반환한다.

ID가 deviceId인 디바이스가 없으면 빈 문자열("")을 반환한다. index가 디바이스의 데이터 배열 크기보다 크거나 같은 경우, 혹은 index가 음수인 경우에는 빈 문자열("")을 반환한다. 디바이스의 데이터 형이 DataType.STRING이 아닌 경우에는 빈 문자열("")을 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • index: 디바이스 데이터 배열의 인덱스

반환 값:
    디바이스의 데이터 값 또는 빈 문자열("")
버전 1.0.0부터
int readString(int deviceId, String[] data)
ID가 deviceId인 디바이스의 데이터 배열을 스트링 배열 data에 복사하고, 복사한 데이터의 개수를 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. data 배열의 크기가 디바이스의 데이터 배열 크기보다 작은 경우에는 data 배열의 크기만큼만 복사한다. 디바이스의 데이터 배열 크기가 data 배열의 크기보다 작은 경우에는 디바이스의 데이터 배열 크기만큼만 복사한다. data 배열이 null인 경우, data 배열의 크기가 0인 경우, 디바이스의 데이터 형이 DataType.STRING이 아닌 경우에는 복사하지 않고 0을 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스의 데이터 배열을 복사할 스트링 배열

반환 값:
    복사한 데이터의 개수
버전 1.1.2부터
void removeDeviceDataChangedListener(String listener)
등록된 콜백 함수 목록에서 listener를 제거한다.

listener는 디바이스의 데이터 형에 따라 다음의 3가지 중 하나의 형태를 가지는 콜백 함수의 이름이다.
  • void onDeviceDataChanged(Device device, int[] values)
  • void onDeviceDataChanged(Device device, float[] values)
  • void onDeviceDataChanged(Device device, String[] values)

함수 이름이 onDeviceDataChanged일 필요는 없다. 여기서 device는 데이터가 갱신된 디바이스이고, values는 해당 디바이스(device)의 데이터 배열이다.

파라미터:
  • listener: 제거할 콜백 함수의 이름

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void onDeviceDataChanged(Device device, int[] values) {
    if(device.getId() == Hamster.LEFT_PROXIMITY) {
        int leftProximity = values[0];
    }
}

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 콜백 함수를 제거한다.
    hamster.removeDeviceDataChangedListener("onDeviceDataChanged");
}
버전 1.1.1부터
void reset()
모든 디바이스의 데이터를 초기화한다.
버전 1.1.0부터
void setName(String name)
로봇의 이름을 name으로 설정한다.

파라미터:
  • name: 설정할 로봇의 이름. null을 입력한 경우에는 이름이 빈 문자열("")로 설정된다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 로봇의 이름을 "Hamster"로 설정한다.
    hamster.setName("Hamster");
}
버전 1.0.0부터
boolean write(int deviceId, int data)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스 0의 위치에 정수 값 data를 쓴다.

ID가 deviceId인 디바이스가 없으면 false를 반환한다. 디바이스의 데이터 배열 크기가 0인 경우에는 쓰지 않고 false를 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 쓰지 않고 false를 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스에 쓸 정수 값 데이터

반환 값:
    성공하면 true, 실패하면 false

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 바퀴의 속도를 30으로 한다.
    hamster.write(Hamster.LEFT_WHEEL, 30);
}
버전 1.0.0부터
boolean write(int deviceId, int index, int data)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스가 index인 위치에 정수 값 data를 쓴다.

ID가 deviceId인 디바이스가 없으면 false를 반환한다. index가 디바이스의 데이터 배열 크기보다 크거나 같은 경우, 혹은 index가 음수인 경우에는 쓰지 않고 false를 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 쓰지 않고 false를 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • index: 디바이스 데이터 배열의 인덱스
  • data: 디바이스에 쓸 정수 값 데이터

반환 값:
    성공하면 true, 실패하면 false

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 바퀴의 속도를 30으로 한다.
    hamster.write(Hamster.LEFT_WHEEL, 0, 30);
}
버전 1.0.0부터
int write(int deviceId, int[] data)
ID가 deviceId인 디바이스의 데이터 배열에 정수형 배열 data를 복사하고, 복사한 데이터의 개수를 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. data 배열의 크기가 디바이스의 데이터 배열 크기보다 작은 경우에는 data 배열의 크기만큼만 복사한다. 디바이스의 데이터 배열 크기가 data 배열의 크기보다 작은 경우에는 디바이스의 데이터 배열 크기만큼만 복사한다. data 배열이 null인 경우, data 배열의 크기가 0인 경우, 디바이스의 데이터 형이 DataType.STRING인 경우에는 복사하지 않고 0을 반환한다. 디바이스의 데이터 배열 크기가 가변적인 경우(데이터 배열 크기가 -1로 지정된 경우)에는 data 배열의 크기만큼 디바이스의 데이터 배열을 새로 만들어서 data 배열을 복사한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스의 데이터 배열에 복사할 정수형 배열

반환 값:
    복사한 데이터의 개수
버전 1.0.0부터
boolean writeFloat(int deviceId, float data)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스 0의 위치에 실수 값 data를 쓴다.

ID가 deviceId인 디바이스가 없으면 false를 반환한다. 디바이스의 데이터 배열 크기가 0인 경우에는 쓰지 않고 false를 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 쓰지 않고 false를 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스에 쓸 실수 값 데이터

반환 값:
    성공하면 true, 실패하면 false

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 버저 소리의 음 높이를 261.63 Hz로 한다.
    hamster.writeFloat(Hamster.BUZZER, 261.63);
}
버전 1.0.0부터
int writeFloat(int deviceId, float[] data)
ID가 deviceId인 디바이스의 데이터 배열에 실수형 배열 data를 복사하고, 복사한 데이터의 개수를 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. data 배열의 크기가 디바이스의 데이터 배열 크기보다 작은 경우에는 data 배열의 크기만큼만 복사한다. 디바이스의 데이터 배열 크기가 data 배열의 크기보다 작은 경우에는 디바이스의 데이터 배열 크기만큼만 복사한다. data 배열이 null인 경우, data 배열의 크기가 0인 경우, 디바이스의 데이터 형이 DataType.STRING인 경우에는 복사하지 않고 0을 반환한다. 디바이스의 데이터 배열 크기가 가변적인 경우(데이터 배열 크기가 -1로 지정된 경우)에는 data 배열의 크기만큼 디바이스의 데이터 배열을 새로 만들어서 data 배열을 복사한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스의 데이터 배열에 복사할 실수형 배열

반환 값:
    복사한 데이터의 개수
버전 1.0.0부터
boolean writeFloat(int deviceId, int index, float data)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스가 index인 위치에 실수 값 data를 쓴다.

ID가 deviceId인 디바이스가 없으면 false를 반환한다. index가 디바이스의 데이터 배열 크기보다 크거나 같은 경우, 혹은 index가 음수인 경우에는 쓰지 않고 false를 반환한다. 디바이스의 데이터 형이 DataType.STRING인 경우에는 쓰지 않고 false를 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • index: 디바이스 데이터 배열의 인덱스
  • data: 디바이스에 쓸 실수 값 데이터

반환 값:
    성공하면 true, 실패하면 false

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 버저 소리의 음 높이를 261.63 Hz로 한다.
    hamster.writeFloat(Hamster.BUZZER, 0, 261.63);
}
버전 1.0.0부터
boolean writeString(int deviceId, int index, String data)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스가 index인 위치에 스트링 data를 쓴다.

ID가 deviceId인 디바이스가 없으면 false를 반환한다. index가 디바이스의 데이터 배열 크기보다 크거나 같은 경우, 혹은 index가 음수인 경우에는 쓰지 않고 false를 반환한다. 디바이스의 데이터 형이 DataType.STRING이 아닌 경우에는 쓰지 않고 false를 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • index: 디바이스 데이터 배열의 인덱스
  • data: 디바이스에 쓸 스트링 데이터

반환 값:
    성공하면 true, 실패하면 false
버전 1.0.0부터
boolean writeString(int deviceId, String data)
ID가 deviceId인 디바이스의 데이터 배열에서 인덱스 0의 위치에 스트링 data를 쓴다

ID가 deviceId인 디바이스가 없으면 false를 반환한다. 디바이스의 데이터 배열 크기가 0인 경우에는 쓰지 않고 false를 반환한다. 디바이스의 데이터 형이 DataType.STRING이 아닌 경우에는 쓰지 않고 false를 반환한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스에 쓸 스트링 데이터

반환 값:
    성공하면 true, 실패하면 false
버전 1.0.0부터
int writeString(int deviceId, String[] data)
ID가 deviceId인 디바이스의 데이터 배열에 스트링 배열 data를 복사하고, 복사한 데이터의 개수를 반환한다.

ID가 deviceId인 디바이스가 없으면 0을 반환한다. data 배열의 크기가 디바이스의 데이터 배열 크기보다 작은 경우에는 data 배열의 크기만큼만 복사한다. 디바이스의 데이터 배열 크기가 data 배열의 크기보다 작은 경우에는 디바이스의 데이터 배열 크기만큼만 복사한다. data 배열이 null인 경우, data 배열의 크기가 0인 경우, 디바이스의 데이터 형이 DataType.STRING이 아닌 경우에는 복사하지 않고 0을 반환한다. 디바이스의 데이터 배열 크기가 가변적인 경우(데이터 배열 크기가 -1로 지정된 경우)에는 data 배열의 크기만큼 디바이스의 데이터 배열을 새로 만들어서 data 배열을 복사한다.

파라미터:
  • deviceId: 디바이스 ID
  • data: 디바이스의 데이터 배열에 복사할 스트링 배열

반환 값:
    복사한 데이터의 개수
모델 ID 상수
버전 1.1.1부터
ID
햄스터 로봇의 모델 ID를 나타내는 상수

상수 값:
    "kr.robomation.physical.hamster"
디바이스 ID 상수
요약
디바이스 ID 데이터 형 배열 크기 단위 값의 범위 초기 값
LEFT_WHEEL int[] 1 % -100 ~ 100 0
RIGHT_WHEEL int[] 1 % -100 ~ 100 0
BUZZER float[] 1 Hz 0 ~ 167772.15 (0: off) 0
OUTPUT_A int[] 1 0 ~ 255 0
OUTPUT_B int[] 1 0 ~ 255 0
TOPOLOGY int[] 1 0 ~ 15 0
LEFT_LED int[] 1 0 ~ 7 (0: off) 0
RIGHT_LED int[] 1 0 ~ 7 (0: off) 0
NOTE int[] 1 0 ~ 88 (0: off) 0
LINE_TRACER_MODE int[] 1 0 ~ 15 0
LINE_TRACER_SPEED int[] 1 1 ~ 8 5
IO_MODE_A int[] 1 0 ~ 15 0
IO_MODE_B int[] 1 0 ~ 15 0
CONFIG_PROXIMITY int[] 1 1 ~ 7 2
CONFIG_GRAVITY int[] 1 0 ~ 3 0
CONFIG_BAND_WIDTH int[] 1 1 ~ 8 3
SIGNAL_STRENGTH int[] 1 dBm -128 ~ 0 0
LEFT_PROXIMITY int[] 1 0 ~ 255 0
RIGHT_PROXIMITY int[] 1 0 ~ 255 0
LEFT_FLOOR int[] 1 0 ~ 100 0
RIGHT_FLOOR int[] 1 0 ~ 100 0
ACCELERATION int[] 3 -32768 ~ 32767 0
LIGHT int[] 1 Lux 0 ~ 65535 0
TEMPERATURE int[] 1 oC -40 ~ 88 0
INPUT_A int[] 1 0 ~ 255 0
INPUT_B int[] 1 0 ~ 255 0
LINE_TRACER_STATE int[] 1 0 ~ 255 0
버전 1.0.0부터
ACCELERATION
가속도 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400015

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 3
  • 값의 범위: -32768 ~ 32767
  • 초기 값: 0

가속도 센서 디바이스의 데이터는 햄스터 로봇의 3축 가속도 센서 값을 나타낸다. 크기 3의 데이터 배열에서 첫 번째 값은 X축, 두 번째 값은 Y축, 세 번째 값은 Z축의 가속도 값이다. 햄스터 로봇의 가속도 센서 좌표계는 로봇이 전진하는 방향이 X축, 로봇의 왼쪽 방향이 Y축, 위쪽 방향이 Z축의 양수 방향이다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // X축 가속도 값을 얻는다.
    int accelerationX = hamster.read(Hamster.ACCELERATION, 0);
    // Y축 가속도 값을 얻는다.
    int accelerationY = hamster.read(Hamster.ACCELERATION, 1);
    // Z축 가속도 값을 얻는다.
    int accelerationZ = hamster.read(Hamster.ACCELERATION, 2);
}
버전 1.0.0부터
BUZZER
버저 이펙터 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400002

디바이스의 데이터 배열:
  • 데이터 형: float[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 167772.15 [Hz] (0: off)
  • 초기 값: 0

버저 이펙터 디바이스의 데이터는 버저 소리의 음 높이를 Hz로 나타낸다. 소수점 둘째 자리까지 표현할 수 있으며, 버저 소리를 끄기 위해서는 0을 입력하면 된다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 버저 소리의 음 높이를 1000 Hz로 한다.
    hamster.write(Hamster.BUZZER, 1000);
    // 버저 소리의 음 높이를 261.63 Hz로 한다.
    hamster.writeFloat(Hamster.BUZZER, 261.63);
    // 버저 소리를 끈다.
    hamster.write(Hamster.BUZZER, 0);
}
버전 1.0.0부터
CONFIG_BAND_WIDTH
대역 폭 설정 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040000f

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 1 ~ 8
  • 초기 값: 3

대역 폭 설정 커맨드 디바이스의 데이터는 가속도 센서의 대역 폭, 즉 반응 속도를 나타낸다. 값을 크게 하면 반응 속도는 빨라지지만 잡음이 증가하고, 값을 작게 하면 잡음은 감소하지만 반응 속도가 느려진다. 데이터 값의 범위는 1 ~ 8이며, 기본 값은 3으로 설정되어 있다. 각 데이터 값에 대응하는 대역 폭은 다음과 같다.

데이터 값 대역 폭 (Hz)
1 7.81
2 15.63
3 (기본 값) 31.25
4 62.5
5 125
6 250
7 500
8 1000
버전 1.0.0부터
CONFIG_GRAVITY
중력 설정 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040000e

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 3
  • 초기 값: 0

중력 설정 커맨드 디바이스의 데이터는 가속도 센서의 G 값 측정 범위를 나타낸다. 측정 범위를 2G에서 4G로 2배 하면 가속도 센서의 데이터 값은 반으로 줄어든다. 충격량이나 빠른 운동을 측정하기 위해서는 측정 범위를 크게 설정하면 된다. 데이터 값의 범위는 0 ~ 3이며, 기본 값은 0, 즉 2G로 설정되어 있다. 각 데이터 값에 대응하는 G 값은 다음과 같다.

데이터 값 측정 범위
0 (기본 값) 2G
1 4G
2 8G
3 16G

버전 1.0.0부터
CONFIG_PROXIMITY
근접 설정 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040000d

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 1 ~ 7
  • 초기 값: 2

근접 설정 커맨드 디바이스의 데이터는 햄스터 로봇의 앞면 양쪽에 있는 근접 센서의 적외선 LED 전류 값을 나타낸다. 전류 값이 크면 적외선 LED의 출력이 커져서 먼 거리의 장애물을 감지할 수 있고, 전류 값이 작으면 가까운 거리의 장애물만 감지할 수 있다. 데이터 값의 범위는 1 ~ 7이며, 기본 값(2)으로 설정하면 10cm 이내의 거리 측정에 적합하다. 각 데이터 값에 대응하는 전류 값은 다음과 같다.

데이터 값 전류 (mA)
1 5
2 (기본 값) 10
3 20
4 50
5 100
6 150
7 200

버전 1.0.0부터
INPUT_A
입력 A 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400018

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

입력 A 센서 디바이스의 데이터는 외부 확장 포트 중에서 포트 A로 입력되는 신호를 나타낸다. 외부 확장 포트의 입출력 모드(IO_MODE_A)에 따라 아날로그 또는 디지털 신호를 입력받을 수 있으며, 다음과 같이 가질 수 있는 값의 범위가 달라진다.

입출력 모드 데이터 값의 범위 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 ~ 255 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
0 또는 1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.
버전 1.0.0부터
INPUT_B
입력 B 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400019

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

입력 B 센서 디바이스의 데이터는 외부 확장 포트 중에서 포트 B로 입력되는 신호를 나타낸다. 외부 확장 포트의 입출력 모드(IO_MODE_B)에 따라 아날로그 또는 디지털 신호를 입력받을 수 있으며, 다음과 같이 가질 수 있는 값의 범위가 달라진다.

입출력 모드 데이터 값의 범위 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 ~ 255 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
0 또는 1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.
버전 1.0.0부터
IO_MODE_A
입출력 모드 A 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040000b

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 15
  • 초기 값: 0

입출력 모드 A 커맨드 디바이스의 데이터는 외부 확장 포트 중에서 포트 A의 입출력 모드를 나타내며, 다음과 같은 상수 값을 가질 수 있다.

입출력 모드 데이터 값 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
8 외부 서보 제어용 PWM 신호를 출력한다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
9 듀티비(0 ~ 255 단계)에 따른 PWM 파형을 출력한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
10 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다.
버전 1.0.0부터
IO_MODE_B
입출력 모드 B 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040000c

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 15
  • 초기 값: 0

입출력 모드 B 커맨드 디바이스의 데이터는 외부 확장 포트 중에서 포트 B의 입출력 모드를 나타내며, 다음과 같은 상수 값을 가질 수 있다.

입출력 모드 데이터 값 설명
IO_MODE_ANALOG_INPUT
(아날로그 입력 모드)
0 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.
IO_MODE_DIGITAL_INPUT
(디지털 입력 모드)
1 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
8 외부 서보 제어용 PWM 신호를 출력한다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
9 듀티비(0 ~ 255 단계)에 따른 PWM 파형을 출력한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
10 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다.
버전 1.0.0부터
LEFT_FLOOR
왼쪽 바닥 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400013

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 100
  • 초기 값: 0

왼쪽 바닥 센서 디바이스의 데이터는 왼쪽 바닥 센서 값을 나타낸다. 바닥 센서의 데이터는 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다. 센서가 출력하는 값의 범위는 0 ~ 255이지만 바닥에서 가장 밝은 색(흰색에 가까운 색 중에서 가장 밝은 색)을 100으로 자동 보정하기 때문에 코드 작성 시 사용되는 데이터 값의 범위는 0 ~ 100이다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 바닥 센서 값을 얻는다.
    int leftFloor = hamster.read(Hamster.LEFT_FLOOR);
}
버전 1.0.0부터
LEFT_LED
왼쪽 LED 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400006

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 7 (0: off)
  • 초기 값: 0

왼쪽 LED 커맨드 디바이스의 데이터는 왼쪽 LED의 색상을 나타낸다. 7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 0을 입력하면 된다.

LED 색상 데이터 값 설명
LED_OFF 0 LED를 끈다.
LED_BLUE 1 LED를 파란색으로 켠다. (R: 0, G: 0, B: 255)
LED_GREEN 2 LED를 초록색으로 켠다. (R: 0, G: 255, B: 0)
LED_CYAN 3 LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255)
LED_RED 4 LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0)
LED_MAGENTA 5 LED를 보라색으로 켠다. (R: 255, G: 0, B: 255)
LED_YELLOW 6 LED를 노란색으로 켠다. (R: 255, G: 255, B: 0)
LED_WHITE 7 LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 LED를 빨간색으로 켠다.
    hamster.write(Hamster.LEFT_LED, Hamster.LED_RED);
    // 왼쪽 LED를 끈다.
    hamster.write(Hamster.LEFT_LED, Hamster.LED_OFF);
}
버전 1.0.0부터
LEFT_PROXIMITY
왼쪽 근접 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400011

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

왼쪽 근접 센서 디바이스의 데이터는 왼쪽 근접 센서 값을 나타낸다. 근접 센서의 데이터는 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 근접 센서 값을 얻는다.
    int leftProximity = hamster.read(Hamster.LEFT_PROXIMITY);
}
버전 1.0.0부터
LEFT_WHEEL
왼쪽 바퀴 이펙터 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400000

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: -100 ~ 100 [%]
  • 초기 값: 0

왼쪽 바퀴 이펙터 디바이스의 데이터는 왼쪽 바퀴의 속도를 %로 나타낸다. 양수 값은 전진 방향으로의 회전을, 음수 값은 후진 방향으로의 회전을 의미한다. 부호를 제외한 절대치가 클수록 속력이 빨라진다. 햄스터 로봇에 내장된 라인 트레이서 기능을 사용하는 경우에는 이 값이 무시된다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 왼쪽 바퀴를 30%의 속력으로 앞으로 회전하게 한다.
    hamster.write(Hamster.LEFT_WHEEL, 30);
    // 왼쪽 바퀴를 30%의 속력으로 뒤로 회전하게 한다.
    hamster.write(Hamster.LEFT_WHEEL, -30);
    // 왼쪽 바퀴를 정지한다.
    hamster.write(Hamster.LEFT_WHEEL, 0);
}
버전 1.0.0부터
LIGHT
밝기 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400016

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 65535 [Lux]
  • 초기 값: 0

밝기 센서 디바이스의 데이터는 햄스터 로봇의 밝기 센서 값을 나타낸다. 밝을 수록 값이 커진다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 밝기 센서 값을 얻는다.
    int light = hamster.read(Hamster.LIGHT);
}
버전 1.0.0부터
LINE_TRACER_MODE
라인 트레이서 모드 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400009

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 15
  • 초기 값: 0

라인 트레이서 모드 커맨드 디바이스의 데이터는 햄스터 로봇에 내장된 라인 트레이서 기능의 모드를 나타낸다. 내장된 라인 트레이서 기능을 사용하면 초당 50회 이상의 내부 피드백 제어를 통해 고속 주행이 가능하다. 데이터 값이 0이 아니면, 즉 내장 라인 트레이서 기능을 사용하는 경우, 왼쪽 바퀴 이펙터 디바이스(LEFT_WHEEL)와 오른쪽 바퀴 이펙터 디바이스(RIGHT_WHEEL)의 데이터는 무시된다.

라인 트레이서 모드 데이터 값 설명
LINE_TRACER_MODE_OFF 0 내장된 라인 트레이서 기능을 사용하지 않는다.
LINE_TRACER_MODE_BLACK_LEFT_SENSOR 1 왼쪽 바닥 센서를 사용하여 검은색 라인을 오른쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_BLACK_RIGHT_SENSOR 2 오른쪽 바닥 센서를 사용하여 검은색 라인을 왼쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_BLACK_BOTH_SENSORS 3 양쪽 바닥 센서를 모두 사용하여 검은색 라인을 중앙에 두고 전진한다. 검은색 교차로와 짧게 끊어진 라인은 직진하여 통과한다.
LINE_TRACER_MODE_BLACK_TURN_LEFT 4 현재 교차로에 있으면 교차로를 벗어날 때까지 좌회전하고, 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_BLACK_TURN_RIGHT 5 현재 교차로에 있으면 교차로를 벗어날 때까지 우회전하고, 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_BLACK_MOVE_FORWARD 6 현재 교차로에 있으면 교차로를 벗어날 때까지 직진하고, 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_BLACK_UTURN 7 180도 유턴하고 검은색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_LEFT_SENSOR 8 왼쪽 바닥 센서를 사용하여 흰색 라인을 오른쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_WHITE_RIGHT_SENSOR 9 오른쪽 바닥 센서를 사용하여 흰색 라인을 왼쪽에 두고 가장자리를 따라 전진한다.
LINE_TRACER_MODE_WHITE_BOTH_SENSORS 10 양쪽 바닥 센서를 모두 사용하여 흰색 라인을 중앙에 두고 전진한다. 흰색 교차로와 짧게 끊어진 라인은 직진하여 통과한다.
LINE_TRACER_MODE_WHITE_TURN_LEFT 11 현재 교차로에 있으면 교차로를 벗어날 때까지 좌회전하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_TURN_RIGHT 12 현재 교차로에 있으면 교차로를 벗어날 때까지 우회전하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_MOVE_FORWARD 13 현재 교차로에 있으면 교차로를 벗어날 때까지 직진하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
LINE_TRACER_MODE_WHITE_UTURN 14 180도 유턴하고 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다.
버전 1.0.0부터
LINE_TRACER_SPEED
라인 트레이서 속도 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040000a

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 1 ~ 8
  • 초기 값: 5

라인 트레이서 속도 커맨드 디바이스의 데이터는 햄스터 로봇에 내장된 라인 트레이서 기능의 주행 속도를 나타낸다. 주행 속도는 1 ~ 8의 8단계이며, 값이 클수록 주행 속도가 빨라진다.
버전 1.0.0부터
LINE_TRACER_STATE
라인 트레이서 상태 이벤트 디바이스의 ID를 나타내는 상수

상수 값:
    0x0040001a

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

라인 트레이서 상태 이벤트 디바이스의 데이터는 햄스터 로봇에 내장된 라인 트레이서 기능을 사용할 때 양쪽 바퀴의 주행 상태를 나타낸다. 데이터의 첫 번째 비트는 항상 0이고, 두 번째 비트는 라인 트레이서 기능을 사용하고 있으면 1, 아니면 0의 값을 가진다. 세 번째 비트부터 다섯 번째 비트까지는 왼쪽 바퀴, 여섯 번째 비트부터 여덟 번째 비트까지는 오른쪽 바퀴의 주행 속도 값이다. 주행 속도는 0 ~ 7의 8단계이며 값이 클수록 주행 속도가 빠르다는 것을 의미한다. 라인 트레이서 모드가 4 ~ 7 또는 11 ~ 14인 경우, 즉 다음 교차로까지 이동하는 모드일 때 주로 사용하며, 다음 교차로까지 이동하는 것이 완료되면 0x40의 값을 가진다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    hamster.write(Hamster.LINE_TRACER_MODE, Hamster.LINE_TRACER_MODE_BLACK_MOVE_FORWARD);
    // 앞쪽의 교차로까지 이동하는 것이 완료되었는지 확인한다.
    if(hamster.e(Hamster.LINE_TRACER_STATE)) {
        if(hamster.read(Hamster.LINE_TRACER_STATE) == 0x40) {
            println("완료");
        }
    }
}
버전 1.0.0부터
NOTE
음표 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400008

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 88 (0: off)
  • 초기 값: 0

음표 커맨드 디바이스의 데이터는 버저를 이용한 오차 0.01% 이하의 정확한 음정을 나타낸다. 유효한 값은 1 ~ 88이며 피아노의 88 건반에 대응된다. 소리를 끄기 위해서는 0을 입력하면 된다. 음표 커맨드 디바이스를 사용하기 위해서는 반드시 버저 이펙터 디바이스(BUZZER)의 데이터를 0(off)으로 하여야 한다. 각 음표에 해당하는 상수 값은 음표 상수를 참고하기 바란다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 4옥타브 도 음을 소리낸다.
    hamster.write(Hamster.NOTE, Hamster.NOTE_C_4);
    // 소리를 끈다.
    hamster.write(Hamster.NOTE, Hamster.NOTE_OFF);
}
버전 1.0.0부터
OUTPUT_A
출력 A 이펙터 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400003

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

출력 A 이펙터 디바이스의 데이터는 외부 확장 포트 중에서 포트 A로 출력하는 신호를 나타낸다. 외부 확장 포트의 입출력 모드(IO_MODE_A)에 따라 아날로그 서보 또는 PWM, 디지털 신호 등을 출력할 수 있으며, 다음과 같이 가질 수 있는 값의 범위가 달라진다.

입출력 모드 데이터 값의 범위 설명
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
0 ~ 180
(0: off)
외부 서보 제어용 PWM 신호를 출력하며, 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 펄스 폭을 설정한다.
유효한 값은 1 ~ 180도이며, 펄스 폭 1.0msec ~ 2.0msec에 대응된다. (90도는 1.5msec에 대응)
0(off)인 경우에는 펄스 없이 항상 0이 출력되며, 180보다 큰 값을 입력하면 최대 펄스 폭인 2.5msec로 제한된다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
0 ~ 255 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비를 0 ~ 255 단계로 설정한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
0 또는 1 디지털 출력(0 또는 1)을 설정한다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다.
버전 1.0.0부터
OUTPUT_B
출력 B 이펙터 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400004

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

출력 B 이펙터 디바이스의 데이터는 외부 확장 포트 중에서 포트 B로 출력하는 신호를 나타낸다. 외부 확장 포트의 입출력 모드(IO_MODE_B)에 따라 아날로그 서보 또는 PWM, 디지털 신호 등을 출력할 수 있으며, 다음과 같이 가질 수 있는 값의 범위가 달라진다.

입출력 모드 데이터 값의 범위 설명
IO_MODE_SERVO_OUTPUT
(아날로그 서보 출력 모드)
0 ~ 180
(0: off)
외부 서보 제어용 PWM 신호를 출력하며, 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 펄스 폭을 설정한다.
유효한 값은 1 ~ 180도이며, 펄스 폭 1.0msec ~ 2.0msec에 대응된다. (90도는 1.5msec에 대응)
0(off)인 경우에는 펄스 없이 항상 0이 출력되며, 180보다 큰 값을 입력하면 최대 펄스 폭인 2.5msec로 제한된다.
IO_MODE_PWM_OUTPUT
(PWM 출력 모드)
0 ~ 255 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비를 0 ~ 255 단계로 설정한다.
IO_MODE_DIGITAL_OUTPUT
(디지털 출력 모드)
0 또는 1 디지털 출력(0 또는 1)을 설정한다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다.
버전 1.0.0부터
RIGHT_FLOOR
오른쪽 바닥 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400014

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 100
  • 초기 값: 0

오른쪽 바닥 센서 디바이스의 데이터는 오른쪽 바닥 센서 값을 나타낸다. 바닥 센서의 데이터는 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다. 센서가 출력하는 값의 범위는 0 ~ 255이지만 바닥에서 가장 밝은 색(흰색에 가까운 색 중에서 가장 밝은 색)을 100으로 자동 보정하기 때문에 코드 작성 시 사용되는 데이터 값의 범위는 0 ~ 100이다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 바닥 센서 값을 얻는다.
    int rightFloor = hamster.read(Hamster.RIGHT_FLOOR);
}
버전 1.0.0부터
RIGHT_LED
오른쪽 LED 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400007

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 리스트 크기: 1
  • 값의 범위: 0 ~ 7 (0: off)
  • 초기 값: 0

오른쪽 LED 커맨드 디바이스의 데이터는 오른쪽 LED의 색상을 나타낸다. 7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 0을 입력하면 된다.

LED 색상 데이터 값 설명
LED_OFF 0 LED를 끈다.
LED_BLUE 1 LED를 파란색으로 켠다. (R: 0, G: 0, B: 255)
LED_GREEN 2 LED를 초록색으로 켠다. (R: 0, G: 255, B: 0)
LED_CYAN 3 LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255)
LED_RED 4 LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0)
LED_MAGENTA 5 LED를 보라색으로 켠다. (R: 255, G: 0, B: 255)
LED_YELLOW 6 LED를 노란색으로 켠다. (R: 255, G: 255, B: 0)
LED_WHITE 7 LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255)

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 LED를 초록색으로 켠다.
    hamster.write(Hamster.RIGHT_LED, Hamster.LED_GREEN);
    // 오른쪽 LED를 끈다.
    hamster.write(Hamster.RIGHT_LED, Hamster.LED_OFF);
}
버전 1.0.0부터
RIGHT_PROXIMITY
오른쪽 근접 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400012

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 255
  • 초기 값: 0

오른쪽 근접 센서 디바이스의 데이터는 오른쪽 근접 센서 값을 나타낸다. 근접 센서의 데이터는 약 10ms마다(초당 100회) 측정되며, 블루투스 통신으로 약 20ms마다(초당 50회) 전달된다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 근접 센서 값을 얻는다.
    int rightProximity = hamster.read(Hamster.RIGHT_PROXIMITY);
}
버전 1.0.0부터
RIGHT_WHEEL
오른쪽 바퀴 이펙터 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400001

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: -100 ~ 100 [%]
  • 초기 값: 0

오른쪽 바퀴 이펙터 디바이스의 데이터는 오른쪽 바퀴의 속도를 %로 나타낸다. 양수 값은 전진 방향으로의 회전을, 음수 값은 후진 방향으로의 회전을 의미한다. 부호를 제외한 절대치가 클수록 속력이 빨라진다. 햄스터 로봇에 내장된 라인 트레이서 기능을 사용하는 경우에는 이 값이 무시된다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 오른쪽 바퀴를 30%의 속력으로 앞으로 회전하게 한다.
    hamster.write(Hamster.RIGHT_WHEEL, 30);
    // 오른쪽 바퀴를 30%의 속력으로 뒤로 회전하게 한다.
    hamster.write(Hamster.RIGHT_WHEEL, -30);
    // 오른쪽 바퀴를 정지한다.
    hamster.write(Hamster.RIGHT_WHEEL, 0);
}
버전 1.0.0부터
SIGNAL_STRENGTH
신호 세기 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400010

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: -128 ~ 0 [dBm]
  • 초기 값: 0

신호 세기 센서 디바이스의 데이터는 햄스터 로봇과 PC 또는 스마트 기기의 블루투스 장치 간의 블루투스 무선 통신의 신호 세기를 나타낸다. 신호의 세기가 셀수록 값이 커진다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 신호 세기 값을 얻는다.
    int signalStrength = hamster.read(Hamster.SIGNAL_STRENGTH);
}
버전 1.0.0부터
TEMPERATURE
온도 센서 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400017

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: -40 ~ 88 [oC]
  • 초기 값: 0

온도 센서 디바이스의 데이터는 햄스터 로봇 내부의 온도를 나타낸다.

import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
}

void draw() {
}

void run() {
    // 온도 센서 값을 얻는다.
    int temperature = hamster.read(Hamster.TEMPERATURE);
}
버전 1.0.0부터
TOPOLOGY
토폴로지 커맨드 디바이스의 ID를 나타내는 상수

상수 값:
    0x00400005

디바이스의 데이터 배열:
  • 데이터 형: int[]
  • 배열 크기: 1
  • 값의 범위: 0 ~ 15
  • 초기 값: 0

토폴로지 커맨드 디바이스의 데이터는 여러 대의 햄스터 로봇으로 네트워크를 구성할 때 네트워크 구성 방식을 나타낸다. 현재 햄스터의 펌웨어에서는 지원하지 않으며, 네트워크 구성이 필요할 시 제조사로부터 네트워크 구성용 펌웨어를 받아서 햄스터 로봇에 다운로드하면 사용할 수 있다.

토폴로지 데이터 값 설명
TOPOLOGY_NONE 0 None (토폴로지 사용 안 함)
TOPOLOGY_DAISY_CHAIN 1 Daisy Chain
TOPOLOGY_STAR 2 Star
TOPOLOGY_EXTENDED_STAR 3 Extended Star
LED 색상 상수
버전 1.0.0부터
LED_BLUE
LED 색상 중 파란색을 나타내는 상수

상수 값:
    1
버전 1.0.0부터
LED_CYAN
LED 색상 중 하늘색을 나타내는 상수

상수 값:
    3
버전 1.0.0부터
LED_GREEN
LED 색상 중 초록색을 나타내는 상수

상수 값:
    2
버전 1.0.0부터
LED_MAGENTA
LED 색상 중 보라색을 나타내는 상수

상수 값:
    5
버전 1.0.0부터
LED_OFF
LED 끄기를 나타내는 상수

상수 값:
    0
버전 1.0.0부터
LED_RED
LED 색상 중 빨간색을 나타내는 상수

상수 값:
    4
버전 1.0.0부터
LED_WHITE
LED 색상 중 하얀색을 나타내는 상수

상수 값:
    7
버전 1.0.0부터
LED_YELLOW
LED 색상 중 노란색을 나타내는 상수

상수 값:
    6
음표 상수
버전 1.0.0부터
NOTE_A_0
0번째 옥타브의 라 음을 나타내는 상수

상수 값:
    1
버전 1.0.0부터
NOTE_A_1
1번째 옥타브의 라 음을 나타내는 상수

상수 값:
    13
버전 1.0.0부터
NOTE_A_2
2번째 옥타브의 라 음을 나타내는 상수

상수 값:
    25
버전 1.0.0부터
NOTE_A_3
3번째 옥타브의 라 음을 나타내는 상수

상수 값:
    37
버전 1.0.0부터
NOTE_A_4
4번째 옥타브의 라 음을 나타내는 상수

상수 값:
    49
버전 1.0.0부터
NOTE_A_5
5번째 옥타브의 라 음을 나타내는 상수

상수 값:
    61
버전 1.0.0부터
NOTE_A_6
6번째 옥타브의 라 음을 나타내는 상수

상수 값:
    73
버전 1.0.0부터
NOTE_A_7
7번째 옥타브의 라 음을 나타내는 상수

상수 값:
    85
버전 1.0.0부터
NOTE_A_FLAT_1
1번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    12
버전 1.0.0부터
NOTE_A_FLAT_2
2번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    24
버전 1.0.0부터
NOTE_A_FLAT_3
3번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    36
버전 1.0.0부터
NOTE_A_FLAT_4
4번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    48
버전 1.0.0부터
NOTE_A_FLAT_5
5번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    60
버전 1.0.0부터
NOTE_A_FLAT_6
6번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    72
버전 1.0.0부터
NOTE_A_FLAT_7
7번째 옥타브의 라b 음을 나타내는 상수

상수 값:
    84
버전 1.0.0부터
NOTE_A_SHARP_0
0번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    2
버전 1.0.0부터
NOTE_A_SHARP_1
1번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    14
버전 1.0.0부터
NOTE_A_SHARP_2
2번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    26
버전 1.0.0부터
NOTE_A_SHARP_3
3번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    38
버전 1.0.0부터
NOTE_A_SHARP_4
4번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    50
버전 1.0.0부터
NOTE_A_SHARP_5
5번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    62
버전 1.0.0부터
NOTE_A_SHARP_6
6번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    74
버전 1.0.0부터
NOTE_A_SHARP_7
7번째 옥타브의 라# 음을 나타내는 상수

상수 값:
    86
버전 1.0.0부터
NOTE_B_0
0번째 옥타브의 시 음을 나타내는 상수

상수 값:
    3
버전 1.0.0부터
NOTE_B_1
1번째 옥타브의 시 음을 나타내는 상수

상수 값:
    15
버전 1.0.0부터
NOTE_B_2
2번째 옥타브의 시 음을 나타내는 상수

상수 값:
    27
버전 1.0.0부터
NOTE_B_3
3번째 옥타브의 시 음을 나타내는 상수

상수 값:
    39
버전 1.0.0부터
NOTE_B_4
4번째 옥타브의 시 음을 나타내는 상수

상수 값:
    51
버전 1.0.0부터
NOTE_B_5
5번째 옥타브의 시 음을 나타내는 상수

상수 값:
    63
버전 1.0.0부터
NOTE_B_6
6번째 옥타브의 시 음을 나타내는 상수

상수 값:
    75
버전 1.0.0부터
NOTE_B_7
7번째 옥타브의 시 음을 나타내는 상수

상수 값:
    87
버전 1.0.0부터
NOTE_B_FLAT_0
0번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    2
버전 1.0.0부터
NOTE_B_FLAT_1
1번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    14
버전 1.0.0부터
NOTE_B_FLAT_2
2번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    26
버전 1.0.0부터
NOTE_B_FLAT_3
3번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    38
버전 1.0.0부터
NOTE_B_FLAT_4
4번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    50
버전 1.0.0부터
NOTE_B_FLAT_5
5번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    62
버전 1.0.0부터
NOTE_B_FLAT_6
6번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    74
버전 1.0.0부터
NOTE_B_FLAT_7
7번째 옥타브의 시b 음을 나타내는 상수

상수 값:
    86
버전 1.0.0부터
NOTE_C_1
1번째 옥타브의 도 음을 나타내는 상수

상수 값:
    4
버전 1.0.0부터
NOTE_C_2
2번째 옥타브의 도 음을 나타내는 상수

상수 값:
    16
버전 1.0.0부터
NOTE_C_3
3번째 옥타브의 도 음을 나타내는 상수

상수 값:
    28
버전 1.0.0부터
NOTE_C_4
4번째 옥타브의 도 음을 나타내는 상수

상수 값:
    40
버전 1.0.0부터
NOTE_C_5
5번째 옥타브의 도 음을 나타내는 상수

상수 값:
    52
버전 1.0.0부터
NOTE_C_6
6번째 옥타브의 도 음을 나타내는 상수

상수 값:
    64
버전 1.0.0부터
NOTE_C_7
7번째 옥타브의 도 음을 나타내는 상수

상수 값:
    76
버전 1.0.0부터
NOTE_C_8
8번째 옥타브의 도 음을 나타내는 상수

상수 값:
    88
버전 1.0.0부터
NOTE_C_SHARP_1
1번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    5
버전 1.0.0부터
NOTE_C_SHARP_2
2번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    17
버전 1.0.0부터
NOTE_C_SHARP_3
3번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    29
버전 1.0.0부터
NOTE_C_SHARP_4
4번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    41
버전 1.0.0부터
NOTE_C_SHARP_5
5번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    53
버전 1.0.0부터
NOTE_C_SHARP_6
6번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    65
버전 1.0.0부터
NOTE_C_SHARP_7
7번째 옥타브의 도# 음을 나타내는 상수

상수 값:
    77
버전 1.0.0부터
NOTE_D_1
1번째 옥타브의 레 음을 나타내는 상수

상수 값:
    6
버전 1.0.0부터
NOTE_D_2
2번째 옥타브의 레 음을 나타내는 상수

상수 값:
    18
버전 1.0.0부터
NOTE_D_3
3번째 옥타브의 레 음을 나타내는 상수

상수 값:
    30
버전 1.0.0부터
NOTE_D_4
4번째 옥타브의 레 음을 나타내는 상수

상수 값:
    42
버전 1.0.0부터
NOTE_D_5
5번째 옥타브의 레 음을 나타내는 상수

상수 값:
    54
버전 1.0.0부터
NOTE_D_6
6번째 옥타브의 레 음을 나타내는 상수

상수 값:
    66
버전 1.0.0부터
NOTE_D_7
7번째 옥타브의 레 음을 나타내는 상수

상수 값:
    78
버전 1.0.0부터
NOTE_D_FLAT_1
1번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    5
버전 1.0.0부터
NOTE_D_FLAT_2
2번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    17
버전 1.0.0부터
NOTE_D_FLAT_3
3번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    29
버전 1.0.0부터
NOTE_D_FLAT_4
4번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    41
버전 1.0.0부터
NOTE_D_FLAT_5
5번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    53
버전 1.0.0부터
NOTE_D_FLAT_6
6번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    65
버전 1.0.0부터
NOTE_D_FLAT_7
7번째 옥타브의 레b 음을 나타내는 상수

상수 값:
    77
버전 1.0.0부터
NOTE_D_SHARP_1
1번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    7
버전 1.0.0부터
NOTE_D_SHARP_2
2번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    19
버전 1.0.0부터
NOTE_D_SHARP_3
3번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    31
버전 1.0.0부터
NOTE_D_SHARP_4
4번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    43
버전 1.0.0부터
NOTE_D_SHARP_5
5번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    55
버전 1.0.0부터
NOTE_D_SHARP_6
6번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    67
버전 1.0.0부터
NOTE_D_SHARP_7
7번째 옥타브의 레# 음을 나타내는 상수

상수 값:
    79
버전 1.0.0부터
NOTE_E_1
1번째 옥타브의 미 음을 나타내는 상수

상수 값:
    8
버전 1.0.0부터
NOTE_E_2
2번째 옥타브의 미 음을 나타내는 상수

상수 값:
    20
버전 1.0.0부터
NOTE_E_3
3번째 옥타브의 미 음을 나타내는 상수

상수 값:
    32
버전 1.0.0부터
NOTE_E_4
4번째 옥타브의 미 음을 나타내는 상수

상수 값:
    44
버전 1.0.0부터
NOTE_E_5
5번째 옥타브의 미 음을 나타내는 상수

상수 값:
    56
버전 1.0.0부터
NOTE_E_6
6번째 옥타브의 미 음을 나타내는 상수

상수 값:
    68
버전 1.0.0부터
NOTE_E_7
7번째 옥타브의 미 음을 나타내는 상수

상수 값:
    80
버전 1.0.0부터
NOTE_E_FLAT_1
1번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    7
버전 1.0.0부터
NOTE_E_FLAT_2
2번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    19
버전 1.0.0부터
NOTE_E_FLAT_3
3번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    31
버전 1.0.0부터
NOTE_E_FLAT_4
4번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    43
버전 1.0.0부터
NOTE_E_FLAT_5
5번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    55
버전 1.0.0부터
NOTE_E_FLAT_6
6번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    67
버전 1.0.0부터
NOTE_E_FLAT_7
7번째 옥타브의 미b 음을 나타내는 상수

상수 값:
    79
버전 1.0.0부터
NOTE_F_1
1번째 옥타브의 파 음을 나타내는 상수

상수 값:
    9
버전 1.0.0부터
NOTE_F_2
2번째 옥타브의 파 음을 나타내는 상수

상수 값:
    21
버전 1.0.0부터
NOTE_F_3
3번째 옥타브의 파 음을 나타내는 상수

상수 값:
    33
버전 1.0.0부터
NOTE_F_4
4번째 옥타브의 파 음을 나타내는 상수

상수 값:
    45
버전 1.0.0부터
NOTE_F_5
5번째 옥타브의 파 음을 나타내는 상수

상수 값:
    57
버전 1.0.0부터
NOTE_F_6
6번째 옥타브의 파 음을 나타내는 상수

상수 값:
    69
버전 1.0.0부터
NOTE_F_7
7번째 옥타브의 파 음을 나타내는 상수

상수 값:
    81
버전 1.0.0부터
NOTE_F_SHARP_1
1번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    10
버전 1.0.0부터
NOTE_F_SHARP_2
2번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    22
버전 1.0.0부터
NOTE_F_SHARP_3
3번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    34
버전 1.0.0부터
NOTE_F_SHARP_4
4번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    46
버전 1.0.0부터
NOTE_F_SHARP_5
5번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    58
버전 1.0.0부터
NOTE_F_SHARP_6
6번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    70
버전 1.0.0부터
NOTE_F_SHARP_7
7번째 옥타브의 파# 음을 나타내는 상수

상수 값:
    82
버전 1.0.0부터
NOTE_G_1
1번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    11
버전 1.0.0부터
NOTE_G_2
2번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    23
버전 1.0.0부터
NOTE_G_3
3번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    35
버전 1.0.0부터
NOTE_G_4
4번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    47
버전 1.0.0부터
NOTE_G_5
5번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    59
버전 1.0.0부터
NOTE_G_6
6번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    71
버전 1.0.0부터
NOTE_G_7
7번째 옥타브의 솔 음을 나타내는 상수

상수 값:
    83
버전 1.0.0부터
NOTE_G_FLAT_1
1번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    10
버전 1.0.0부터
NOTE_G_FLAT_2
2번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    22
버전 1.0.0부터
NOTE_G_FLAT_3
3번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    34
버전 1.0.0부터
NOTE_G_FLAT_4
4번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    46
버전 1.0.0부터
NOTE_G_FLAT_5
5번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    58
버전 1.0.0부터
NOTE_G_FLAT_6
6번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    70
버전 1.0.0부터
NOTE_G_FLAT_7
7번째 옥타브의 솔b 음을 나타내는 상수

상수 값:
    82
버전 1.0.0부터
NOTE_G_SHARP_1
1번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    12
버전 1.0.0부터
NOTE_G_SHARP_2
2번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    24
버전 1.0.0부터
NOTE_G_SHARP_3
3번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    36
버전 1.0.0부터
NOTE_G_SHARP_4
4번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    48
버전 1.0.0부터
NOTE_G_SHARP_5
5번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    60
버전 1.0.0부터
NOTE_G_SHARP_6
6번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    72
버전 1.0.0부터
NOTE_G_SHARP_7
7번째 옥타브의 솔# 음을 나타내는 상수

상수 값:
    84
버전 1.0.0부터
NOTE_OFF
소리 끄기를 나타내는 상수

상수 값:
    0
입출력 모드 상수
버전 1.1.0부터
IO_MODE_ANALOG_INPUT
아날로그 입력 모드를 나타내는 상수

입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다.

상수 값:
    0
버전 1.1.0부터
IO_MODE_DIGITAL_INPUT
디지털 입력 모드를 나타내는 상수

입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다.

상수 값:
    1
버전 1.1.0부터
IO_MODE_DIGITAL_OUTPUT
디지털 출력 모드를 나타내는 상수

디지털 값 LOW(0) 또는 HIGH(1)를 출력한다.

상수 값:
    10
버전 1.1.0부터
IO_MODE_PWM_OUTPUT
PWM 출력 모드를 나타내는 상수

듀티비(0 ~ 255 단계)에 따른 PWM 파형을 출력한다.

상수 값:
    9
버전 1.1.0부터
IO_MODE_SERVO_OUTPUT
아날로그 서보 출력 모드를 나타내는 상수

외부 서보 제어용 PWM 신호를 출력한다.

상수 값:
    8
라인 트레이서 모드 상수
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_BOTH_SENSORS
양쪽 바닥 센서로 검은색 선을 따라가는 모드를 나타내는 상수

양쪽 바닥 센서를 모두 사용하여 검은색 선을 중앙에 두고 앞으로 이동한다. 검은색 교차로와 짧게 끊어진 선은 직진하여 통과한다.

상수 값:
    3
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_LEFT_SENSOR
왼쪽 바닥 센서로 검은색 선을 따라가는 모드를 나타내는 상수

왼쪽 바닥 센서를 사용하여 검은색 선의 왼쪽 가장자리를 따라 앞으로 이동한다.

상수 값:
    1
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_MOVE_FORWARD
검은색 선의 한 구역을 전진하는 모드를 나타내는 상수

검은색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    6
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_RIGHT_SENSOR
오른쪽 바닥 센서로 검은색 선을 따라가는 모드를 나타내는 상수

오른쪽 바닥 센서를 사용하여 검은색 선의 오른쪽 가장자리를 따라 앞으로 이동한다.

상수 값:
    2
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_TURN_LEFT
검은색 선의 한 구역을 좌회전하는 모드를 나타내는 상수

교차로에서 좌회전한 후에 검은색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    4
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_TURN_RIGHT
검은색 선의 한 구역을 우회전하는 모드를 나타내는 상수

교차로에서 우회전한 후에 검은색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    5
버전 1.0.0부터
LINE_TRACER_MODE_BLACK_UTURN
검은색 선의 한 구역을 유턴하는 모드를 나타내는 상수

180도 뒤로 돈 후에 검은색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    7
버전 1.0.0부터
LINE_TRACER_MODE_OFF
내장 라인 트레이서 기능을 사용하지 않음을 나타내는 상수

상수 값:
    0
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_BOTH_SENSORS
양쪽 바닥 센서로 하얀색 선을 따라가는 모드를 나타내는 상수

양쪽 바닥 센서를 모두 사용하여 하얀색 선을 중앙에 두고 앞으로 이동한다. 하얀색 교차로와 짧게 끊어진 선은 직진하여 통과한다.

상수 값:
    10
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_LEFT_SENSOR
왼쪽 바닥 센서로 하얀색 선을 따라가는 모드를 나타내는 상수

왼쪽 바닥 센서를 사용하여 하얀색 선의 왼쪽 가장자리를 따라 앞으로 이동한다.

상수 값:
    8
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_MOVE_FORWARD
하얀색 선의 한 구역을 전진하는 모드를 나타내는 상수

하얀색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    13
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_RIGHT_SENSOR
오른쪽 바닥 센서로 하얀색 선을 따라가는 모드를 나타내는 상수

오른쪽 바닥 센서를 사용하여 하얀색 선의 오른쪽 가장자리를 따라 앞으로 이동한다.

상수 값:
    9
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_TURN_LEFT
하얀색 선의 한 구역을 좌회전하는 모드를 나타내는 상수

교차로에서 좌회전한 후에 하얀색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    11
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_TURN_RIGHT
하얀색 선의 한 구역을 우회전하는 모드를 나타내는 상수

교차로에서 우회전한 후에 하얀색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    12
버전 1.0.0부터
LINE_TRACER_MODE_WHITE_UTURN
하얀색 선의 한 구역을 유턴하는 모드를 나타내는 상수

180도 뒤로 돈 후에 하얀색 선을 따라 앞으로 이동하다가 교차로를 만나면 정지한다.

상수 값:
    14
토폴로지 상수
버전 1.0.0부터
TOPOLOGY_DAISY_CHAIN
데이지 체인 토폴로지를 나타내는 상수

상수 값:
    1
버전 1.0.0부터
TOPOLOGY_EXTENDED_STAR
확장된 스타 토폴로지를 나타내는 상수

상수 값:
    3
버전 1.0.0부터
TOPOLOGY_NONE
토폴로지를 사용하지 않음을 나타내는 상수

상수 값:
    0
버전 1.0.0부터
TOPOLOGY_STAR
스타 토폴로지를 나타내는 상수

상수 값:
    2
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(akaii@kw.ac.kr)에게 연락하세요.