// 햄스터 객체를 생성한다. var hamster = Hamster.create(); // 왼쪽 근접 센서 값을 읽는다. var leftProximity = hamster.read(Hamster.LEFT_PROXIMITY); // X축 가속도 값을 읽는다. var accelerationX = hamster.read(Hamster.ACCELERATION, 0); // Y축 가속도 값을 읽는다. var accelerationY = hamster.read(Hamster.ACCELERATION, 1); // Z축 가속도 값을 읽는다. var accelerationZ = hamster.read(Hamster.ACCELERATION, 2); // 왼쪽 바퀴의 속도를 30으로 한다. hamster.write(Hamster.LEFT_WHEEL, 30);두 번째 종류의 메소드는 햄스터 로봇에만 적용할 수 있는 메소드이며, 내부에서 위의 일반화된 메소드를 호출해 줍니다. 이 메소드는 디바이스의 이름과 유사한 이름으로 구성되어 있습니다.
// 햄스터 객체를 생성한다. var hamster = Hamster.create(); // 왼쪽 근접 센서 값을 읽는다. hamster.leftWheel(); // X축 가속도 값을 얻는다. hamster.accelerationX(); // Y축 가속도 값을 얻는다. hamster.accelerationY(); // Z축 가속도 값을 얻는다. hamster.accelerationZ(); // 왼쪽 바퀴의 속도를 30으로 한다. hamster.leftWheel(30);
var hamster = new Hamster();
var hamster = Hamster.create();
var hamster = Hamster.create(); // X축 가속도 값을 얻는다. var value = hamster.accelerationX();
var hamster = Hamster.create(); // Y축 가속도 값을 얻는다. var value = hamster.accelerationY();
var hamster = Hamster.create(); // Z축 가속도 값을 얻는다. var value = hamster.accelerationZ();
var hamster = Hamster.create(); // 버저 소리의 음 높이를 1000 Hz로 설정한다. hamster.buzzer(1000); // 버저 소리의 음 높이를 261.63 Hz로 설정한다. hamster.buzzer(261.63); // 버저 소리를 끈다. hamster.buzzer(0);
입출력 모드 | 값의 범위 | 설명 |
---|---|---|
IO_MODE_ANALOG_INPUT (아날로그 입력 모드) |
0 ~ 255 | 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다. |
IO_MODE_DIGITAL_INPUT (디지털 입력 모드) |
0 또는 1 | 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다. |
var hamster = Hamster.create(); hamster.ioModeA(Hamster.IO_MODE_ANALOG_INPUT); // 포트 A로 입력되는 신호 값을 얻는다. var value = hamster.inputA();
입출력 모드 | 값의 범위 | 설명 |
---|---|---|
IO_MODE_ANALOG_INPUT (아날로그 입력 모드) |
0 ~ 255 | 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다. |
IO_MODE_DIGITAL_INPUT (디지털 입력 모드) |
0 또는 1 | 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다. |
var hamster = Hamster.create(); hamster.ioModeB(Hamster.IO_MODE_DIGITAL_INPUT); // 포트 B로 입력되는 신호 값을 얻는다. var value = hamster.inputB();
입출력 모드 | 상수 값 | 설명 |
---|---|---|
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 | 듀티비(%)에 따른 PWM 파형을 출력한다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
10 | 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다. |
var hamster = Hamster.create(); // 포트 A의 입출력 모드를 아날로그 입력 모드로 설정한다. hamster.ioModeA(Hamster.IO_MODE_ANALOG_INPUT);
입출력 모드 | 상수 값 | 설명 |
---|---|---|
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 | 듀티비(%)에 따른 PWM 파형을 출력한다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
10 | 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다. |
var hamster = Hamster.create(); // 포트 B의 입출력 모드를 PWM 출력 모드로 설정한다. hamster.ioModeB(Hamster.IO_MODE_PWM_OUTPUT);
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) |
var hamster = Hamster.create(); // 왼쪽 LED를 빨간색으로, 오른쪽 LED를 파란색으로 켠다. hamster.leds(Hamster.LED_RED, Hamster.LED_BLUE); // 양쪽 LED를 끈다. hamster.leds(0, 0);
var hamster = Hamster.create(); // 왼쪽 바닥 센서 값을 얻는다. var value = hamster.leftFloor();
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) |
var hamster = Hamster.create(); // 왼쪽 LED를 빨간색으로 켠다. hamster.leftLed(Hamster.LED_RED); // 왼쪽 LED를 끈다. hamster.leftLed(0);
var hamster = Hamster.create(); // 왼쪽 근접 센서 값을 얻는다. var value = hamster.leftProximity();
var hamster = Hamster.create(); // 왼쪽 바퀴의 속도를 30으로 설정하여 30%의 속력으로 앞으로 회전하게 한다. hamster.leftWheel(30); // 왼쪽 바퀴의 속도를 -30으로 설정하여 30%의 속력으로 뒤로 회전하게 한다. hamster.leftWheel(-30); // 왼쪽 바퀴를 멈춘다. hamster.leftWheel(0);
var hamster = Hamster.create(); // 밝기 센서 값을 얻는다. var value = hamster.light();
라인 트레이서 모드 | 데이터 값 | 설명 |
---|---|---|
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도 유턴하고 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다. |
var hamster = Hamster.create(); // 라인 트레이서 모드를 설정한다. hamster.lineTracerMode(Hamster.LINE_TRACER_MODE_BLACK_LEFT_SENSOR); // 내장된 라인 트레이서 기능을 사용하지 않는다. hamster.lineTracerMode(0);
라인 트레이서 모드 | 데이터 값 | 설명 |
---|---|---|
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_TURN_LEFT | 11 | 현재 교차로에 있으면 교차로를 벗어날 때까지 좌회전하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다. |
LINE_TRACER_MODE_WHITE_TURN_RIGHT | 12 | 현재 교차로에 있으면 교차로를 벗어날 때까지 우회전하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다. |
LINE_TRACER_MODE_WHITE_MOVE_FORWARD | 13 | 현재 교차로에 있으면 교차로를 벗어날 때까지 직진하고, 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다. |
LINE_TRACER_MODE_WHITE_UTURN | 14 | 180도 유턴하고 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다. |
var hamster = Hamster.create(); function callback() { console.log("완료"); // 완료 메시지를 콘솔 창에 표시한다. } // 라인 트레이서 모드를 설정한다. hamster.lineTracerMode(Hamster.LINE_TRACER_MODE_BLACK_MOVE_FORWARD, callback);
var hamster = Hamster.create(); // 라인 트레이서 주행 속도를 5로 설정한다. hamster.lineTracerSpeed(5);
var hamster = Hamster.create(); // 4옥타브 도 음을 소리낸다. hamster.note(Hamster.NOTE_C_4); // 소리를 끈다. hamster.note(0);
입출력 모드 | 값의 범위 | 설명 |
---|---|---|
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 ~ 100 [%] | 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비(%)를 나타낸다. 100보다 큰 값을 입력하면 항상 ON인 파형이 출력된다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
0 또는 1 | 디지털 출력(0 또는 1)을 나타낸다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다. |
var hamster = Hamster.create(); hamster.ioModeA(Hamster.IO_MODE_PWM_OUTPUT); // PWM 출력을 50으로 설정한다. hamster.outputA(50);
입출력 모드 | 값의 범위 | 설명 |
---|---|---|
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 ~ 100 [%] | 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비(%)를 나타낸다. 100보다 큰 값을 입력하면 항상 ON인 파형이 출력된다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
0 또는 1 | 디지털 출력(0 또는 1)을 나타낸다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다. |
var hamster = Hamster.create(); hamster.ioModeB(Hamster.IO_MODE_SERVO_OUTPUT); // 서보 출력을 90으로 설정한다. hamster.outputB(90);
var hamster = Hamster.create(); // 오른쪽 바닥 센서 값을 얻는다. var value = hamster.rightFloor();
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) |
var hamster = Hamster.create(); // 오른쪽 LED를 파란색으로 켠다. hamster.rightLed(Hamster.LED_BLUE); // 오른쪽 LED를 끈다. hamster.rightLed(0);
var hamster = Hamster.create(); // 오른쪽 근접 센서 값을 얻는다. var value = hamster.rightProximity();
var hamster = Hamster.create(); // 오른쪽 바퀴의 속도를 30으로 설정하여 30%의 속력으로 앞으로 회전하게 한다. hamster.rightWheel(30); // 오른쪽 바퀴의 속도를 -30으로 설정하여 30%의 속력으로 뒤로 회전하게 한다. hamster.rightWheel(-30); // 오른쪽 바퀴를 멈춘다. hamster.rightWheel(0);
var hamster = Hamster.create(); // 신호 세기 값을 얻는다. var value = hamster.signalStrength();
var hamster = Hamster.create(); // 온도 센서 값을 얻는다. var value = hamster.temperature();
var hamster = Hamster.create(); // 양쪽 바퀴의 속도를 30으로 설정하여 30%의 속력으로 앞으로 이동하게 한다. hamster.wheels(30, 30); // 양쪽 바퀴의 속도를 -30으로 설정하여 30%의 속력으로 뒤로 이동하게 한다. hamster.wheels(-30, -30); // 양쪽 바퀴를 멈춘다. hamster.wheels(0, 0);
var hamster = Hamster.create(); function onDeviceDataChanged(device, values) { if(device.getId() == Hamster.LEFT_PROXIMITY) { var leftProximity = values[0]; } } // 리스너 콜백 함수를 등록한다. hamster.addDeviceDataChangedListener(onDeviceDataChanged);
통신 연결 상태 | 상수 값 | 설명 |
---|---|---|
CONNECTING | 1 | RobotCoding 소프트웨어에서 로봇과 통신을 연결 중임 |
CONNECTED | 2 | RobotCoding 소프트웨어에서 로봇과 통신이 연결되었음 |
CONNECTION_LOST | 3 | RobotCoding 소프트웨어에서 로봇과 통신 연결이 끊어졌음 |
DISCONNECTED | 4 | USB 동글을 컴퓨터에서 분리하여 로봇과 통신 연결이 끊어졌음 |
var hamster = Hamster.create(); // 통신 연결 상태를 콘솔 창에 표시한다. switch(hamster.connectionState()) { case ConnectionState.CONNECTING: { console.log('통신 연결 중'); break; } case ConnectionState.CONNECTED: { console.log('통신 연결됨'); break; } case ConnectionState.CONNECTION_LOST: { console.log('통신 연결 잃음'); break; } case ConnectionState.DISCONNECTED: { console.log('USB 동글이 연결되어 있지 않음'); break; } }
var hamster = Hamster.create(); if(hamster.e(Hamster.LINE_TRACER_STATE)) { // 데이터가 갱신되었는지 확인한다. var state = device.read(Hamster.LINE_TRACER_STATE); // 데이터를 읽는다. }
var hamster = Hamster.create(); // 왼쪽 바퀴 이펙터 디바이스의 객체를 얻는다. var device = hamster.findDeviceById(Hamster.LEFT_WHEEL);
var hamster = Hamster.create(); // 로봇의 ID가 Hamster.ID임을 확인한다. if(hamster.getId() == Hamster.ID) { }
var hamster = Hamster.create(); // 첫 번째 햄스터 로봇임을 확인한다. if(hamster.getIndex() == 0) { }
var hamster = Hamster.create(); // 로봇의 이름을 얻는다. var name = hamster.getName();
var hamster = Hamster.create(); // 왼쪽 근접 센서 디바이스의 데이터를 읽는다. var value = hamster.read(Hamster.LEFT_PROXIMITY);
var hamster = Hamster.create(); // 가속도 센서 디바이스의 Y축 가속도 데이터를 읽는다. var value = hamster.read(Hamster.ACCELERATION, 1);
var hamster = Hamster.create(); var data = new Array(3); // 가속도 센서 디바이스의 데이터를 모두 읽는다. hamster.read(Hamster.ACCELERATION, data);
var hamster = Hamster.create(); function onDeviceDataChanged(device, values) { if(device.getId() == Hamster.LEFT_PROXIMITY) { var leftProximity = values[0]; } } // 리스너 콜백 함수를 제거한다. hamster.removeDeviceDataChangedListener(onDeviceDataChanged);
var hamster = Hamster.create(); // 로봇의 이름을 'Hamster'로 설정한다. hamster.setName('Hamster');
var hamster = Hamster.create(); // 왼쪽 바퀴 이펙터 디바이스의 데이터를 30으로 한다. hamster.write(Hamster.LEFT_WHEEL, 30);
var hamster = Hamster.create(); // 왼쪽 바퀴 이펙터 디바이스의 데이터를 30으로 한다. hamster.write(Hamster.LEFT_WHEEL, 0, 30);
디바이스 ID | 데이터 형 | 배열 크기 | 단위 | 값의 범위 | 초기 값 |
---|---|---|---|---|---|
LEFT_WHEEL | 정수 Array | 1 | % | -100 ~ 100 | 0 |
RIGHT_WHEEL | 정수 Array | 1 | % | -100 ~ 100 | 0 |
BUZZER | 실수 Array | 1 | Hz | 0 ~ 167772.15 (0: off) | 0 |
OUTPUT_A | 정수 Array | 1 | 0 ~ 255 | 0 | |
OUTPUT_B | 정수 Array | 1 | 0 ~ 255 | 0 | |
TOPOLOGY | 정수 Array | 1 | 0 ~ 15 | 0 | |
LEFT_LED | 정수 Array | 1 | 0 ~ 7 (0: off) | 0 | |
RIGHT_LED | 정수 Array | 1 | 0 ~ 7 (0: off) | 0 | |
NOTE | 정수 Array | 1 | 0 ~ 88 (0: off) | 0 | |
LINE_TRACER_MODE | 정수 Array | 1 | 0 ~ 15 | 0 | |
LINE_TRACER_SPEED | 정수 Array | 1 | 1 ~ 8 | 5 | |
IO_MODE_A | 정수 Array | 1 | 0 ~ 15 | 0 | |
IO_MODE_B | 정수 Array | 1 | 0 ~ 15 | 0 | |
CONFIG_PROXIMITY | 정수 Array | 1 | 1 ~ 7 | 2 | |
CONFIG_GRAVITY | 정수 Array | 1 | 0 ~ 3 | 0 | |
CONFIG_BAND_WIDTH | 정수 Array | 1 | 1 ~ 8 | 3 | |
SIGNAL_STRENGTH | 정수 Array | 1 | dBm | -128 ~ 0 | 0 |
LEFT_PROXIMITY | 정수 Array | 1 | 0 ~ 255 | 0 | |
RIGHT_PROXIMITY | 정수 Array | 1 | 0 ~ 255 | 0 | |
LEFT_FLOOR | 정수 Array | 1 | 0 ~ 100 | 0 | |
RIGHT_FLOOR | 정수 Array | 1 | 0 ~ 100 | 0 | |
ACCELERATION | 정수 Array | 3 | -32768 ~ 32767 | 0 | |
LIGHT | 정수 Array | 1 | Lux | 0 ~ 65535 | 0 |
TEMPERATURE | 정수 Array | 1 | oC | -40 ~ 88 | 0 |
INPUT_A | 정수 Array | 1 | 0 ~ 255 | 0 | |
INPUT_B | 정수 Array | 1 | 0 ~ 255 | 0 | |
LINE_TRACER_STATE | 정수 Array | 1 | 0 ~ 255 | 0 |
var hamster = Hamster.create(); // X축 가속도 값을 읽는다. var accelerationX = hamster.read(Hamster.ACCELERATION, 0); // Y축 가속도 값을 읽는다. var accelerationY = hamster.read(Hamster.ACCELERATION, 1); // Z축 가속도 값을 읽는다. var accelerationZ = hamster.read(Hamster.ACCELERATION, 2);
var hamster = Hamster.create(); // 버저 소리의 음 높이를 1000 Hz로 설정한다. hamster.write(Hamster.BUZZER, 1000); // 버저 소리의 음 높이를 261.63 Hz로 설정한다. hamster.writeFloat(Hamster.BUZZER, 261.63); // 버저 소리를 끈다. hamster.write(Hamster.BUZZER, 0);
데이터 값 | 대역 폭 (Hz) |
---|---|
1 | 7.81 |
2 | 15.63 |
3 (기본 값) | 31.25 |
4 | 62.5 |
5 | 125 |
6 | 250 |
7 | 500 |
8 | 1000 |
데이터 값 | 측정 범위 |
---|---|
0 (기본 값) | 2G |
1 | 4G |
2 | 8G |
3 | 16G |
데이터 값 | 전류 (mA) |
---|---|
1 | 5 |
2 (기본 값) | 10 |
3 | 20 |
4 | 50 |
5 | 100 |
6 | 150 |
7 | 200 |
입출력 모드 | 데이터 값의 범위 | 설명 |
---|---|---|
IO_MODE_ANALOG_INPUT (아날로그 입력 모드) |
0 ~ 255 | 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다. |
IO_MODE_DIGITAL_INPUT (디지털 입력 모드) |
0 또는 1 | 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다. |
입출력 모드 | 데이터 값의 범위 | 설명 |
---|---|---|
IO_MODE_ANALOG_INPUT (아날로그 입력 모드) |
0 ~ 255 | 입력 전압을 8비트 ADC로 측정한다. 최대 입력 전압인 3.3V가 입력되면 255의 값을 가진다. |
IO_MODE_DIGITAL_INPUT (디지털 입력 모드) |
0 또는 1 | 입력 전압을 0과 1로 변환한다. 입력 전압이 1.6V 이상이면 1로 하고, 아니면 0으로 한다. |
입출력 모드 | 데이터 값 | 설명 |
---|---|---|
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 | 듀티비(%)에 따른 PWM 파형을 출력한다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
10 | 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다. |
입출력 모드 | 데이터 값 | 설명 |
---|---|---|
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 | 듀티비(%)에 따른 PWM 파형을 출력한다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
10 | 디지털 값 LOW(0) 또는 HIGH(1)를 출력한다. |
var hamster = Hamster.create(); // 왼쪽 바닥 센서 값을 읽는다. var leftFloor = hamster.read(Hamster.LEFT_FLOOR);
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) |
var hamster = Hamster.create(); // 왼쪽 LED를 빨간색으로 켠다. hamster.write(Hamster.LEFT_LED, Hamster.LED_RED); // 왼쪽 LED를 끈다. hamster.write(Hamster.LEFT_LED, Hamster.LED_OFF);
var hamster = Hamster.create(); // 왼쪽 근접 센서 값을 읽는다. var leftProximity = hamster.read(Hamster.LEFT_PROXIMITY);
var hamster = Hamster.create(); // 왼쪽 바퀴의 속도를 30으로 설정하여 30%의 속력으로 앞으로 회전하게 한다. hamster.write(Hamster.LEFT_WHEEL, 30); // 왼쪽 바퀴의 속도를 -30으로 설정하여 30%의 속력으로 뒤로 회전하게 한다. hamster.write(Hamster.LEFT_WHEEL, -30); // 왼쪽 바퀴를 멈춘다. hamster.write(Hamster.LEFT_WHEEL, 0);
var hamster = Hamster.create(); // 밝기 센서 값을 읽는다. var light = hamster.read(Hamster.LIGHT);
라인 트레이서 모드 | 데이터 값 | 설명 |
---|---|---|
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도 유턴하고 흰색 라인을 따라 직진하다가 다음 교차로를 만나면 정지한다. |
var hamster = Hamster.create(); 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) { console.log("완료"); } }
var hamster = Hamster.create(); // 4옥타브 도 음을 소리낸다. hamster.write(Hamster.NOTE, Hamster.NOTE_C_4); // 소리를 끈다. hamster.write(Hamster.NOTE, Hamster.NOTE_OFF);
입출력 모드 | 데이터 값의 범위 | 설명 |
---|---|---|
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 ~ 100 [%] | 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비(%)를 나타낸다. 100보다 큰 값을 입력하면 항상 ON인 파형이 출력된다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
0 또는 1 | 디지털 출력(0 또는 1)을 나타낸다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다. |
입출력 모드 | 데이터 값의 범위 | 설명 |
---|---|---|
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 ~ 100 [%] | 20msec의 주기를 갖는 PWM 파형에서 ON 상태의 듀티비(%)를 나타낸다. 100보다 큰 값을 입력하면 항상 ON인 파형이 출력된다. |
IO_MODE_DIGITAL_OUTPUT (디지털 출력 모드) |
0 또는 1 | 디지털 출력(0 또는 1)을 나타낸다. 0을 입력하면 LOW, 0이 아닌 값을 입력하면 HIGH 값을 출력한다. |
var hamster = Hamster.create(); // 오른쪽 바닥 센서 값을 읽는다. var rightFloor = hamster.read(Hamster.RIGHT_FLOOR);
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) |
var hamster = Hamster.create(); // 오른쪽 LED를 초록색으로 켠다. hamster.write(Hamster.RIGHT_LED, Hamster.LED_GREEN); // 오른쪽 LED를 끈다. hamster.write(Hamster.RIGHT_LED, Hamster.LED_OFF);
var hamster = Hamster.create(); // 오른쪽 근접 센서 값을 읽는다. var rightProximity = hamster.read(Hamster.RIGHT_PROXIMITY);
var hamster = Hamster.create(); // 오른쪽 바퀴의 속도를 30으로 설정하여 30%의 속력으로 앞으로 회전하게 한다. hamster.write(Hamster.RIGHT_WHEEL, 30); // 오른쪽 바퀴의 속도를 -30으로 설정하여 30%의 속력으로 뒤로 회전하게 한다. hamster.write(Hamster.RIGHT_WHEEL, -30); // 오른쪽 바퀴를 멈춘다. hamster.write(Hamster.RIGHT_WHEEL, 0);
var hamster = Hamster.create(); // 신호 세기 값을 읽는다. var signalStrength = hamster.read(Hamster.SIGNAL_STRENGTH);
var hamster = Hamster.create(); // 온도 센서 값을 읽는다. var temperature = hamster.read(Hamster.TEMPERATURE);
토폴로지 | 데이터 값 | 설명 |
---|---|---|
TOPOLOGY_NONE | 0 | None (토폴로지 사용 안 함) |
TOPOLOGY_DAISY_CHAIN | 1 | Daisy Chain |
TOPOLOGY_STAR | 2 | Star |
TOPOLOGY_EXTENDED_STAR | 3 | Extended Star |