News Download Tutorial FAQ Reference Buy

자바 언어 : LED 켜고 소리 내기

LED 켜고 앞으로 1초 이동하기
햄스터 로봇이 양쪽 LED를 파란색으로 켜고 1초 동안 앞으로 이동하게 해봅시다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.leds(Hamster.LED_BLUE, Hamster.LED_BLUE); // 왼쪽 LED와 오른쪽 LED를 파란색으로 켠다.
        hamster.wheels(30); // 앞으로 이동한다.

        Runner.wait(1000); // 1초 기다린다.

        hamster.leds(Hamster.LED_OFF, Hamster.LED_OFF); // 왼쪽 LED와 오른쪽 LED를 끈다.
        hamster.stop(); // 정지한다.
    }
}

색상에 해당하는 숫자를 입력해도 됩니다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.leds(1, 1); // 왼쪽 LED와 오른쪽 LED를 파란색으로 켠다.
        hamster.wheels(30); // 앞으로 이동한다.

        Runner.wait(1000); // 1초 기다린다.

        hamster.leds(0, 0); // 왼쪽 LED와 오른쪽 LED를 끈다.
        hamster.stop(); // 정지한다.
    }
}

햄스터 로봇의 LED는 7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 Hamster.LED_OFF 또는 0을 입력하면 됩니다.

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

색상을 하나만 입력하면 양쪽 LED를 같은 색상으로 설정합니다.

hamster.leds(Hamster.LED_BLUE); // 양쪽 LED를 파란색으로 켠다.

양쪽 LED를 다양한 색상으로 켜고 앞으로 이동하게 해봅시다.
LED 켜고 제자리에서 5초 돌기
회전하는 방향으로 한쪽 LED만 초록색으로 켜고 제자리에서 5초 동안 돌게 해봅시다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.leds(Hamster.LED_GREEN, Hamster.LED_OFF); // 왼쪽 LED를 초록색으로 켜고 오른쪽 LED를 끈다.
        hamster.wheels(-30, 30); // 제자리에서 왼쪽으로 돈다.

        Runner.wait(5000); // 5초 기다린다.

        hamster.leds(Hamster.LED_OFF, Hamster.LED_OFF); // 왼쪽 LED와 오른쪽 LED를 끈다.
        hamster.stop(); // 정지한다.
    }
}

색상에 해당하는 숫자를 입력해도 됩니다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.leds(2, 0); // 왼쪽 LED를 초록색으로 켜고 오른쪽 LED를 끈다.
        hamster.wheels(-30, 30); // 제자리에서 왼쪽으로 돈다.

        Runner.wait(5000); // 5초 기다린다.

        hamster.leds(0, 0); // 왼쪽 LED와 오른쪽 LED를 끈다.
        hamster.stop(); // 정지한다.
    }
}

왼쪽 LED 또는 오른쪽 LED, 하나의 값만 설정하기 위해서는 leftLed() 또는 rightLed() 메소드를 사용하여도 됩니다.

hamster.leftLed(Hamster.LED_CYAN); // 왼쪽 LED를 하늘색으로 켠다.
hamster.wheels(-30, 30); // 제자리에서 왼쪽으로 돈다.
hamster.rightLed(Hamster.LED_RED); // 오른쪽 LED를 빨간색으로 켠다.
hamster.wheels(30, -30); // 제자리에서 오른쪽으로 돈다.

한쪽 LED를 다양한 색상으로 켜고 제자리에서 왼쪽 또는 오른쪽으로 돌게 해봅시다.
소리 내며 뒤로 1초 이동하기
햄스터 로봇이 소리를 내면서 뒤로 1초 동안 이동하게 해봅시다. 버저 소리의 음 높이를 주파수[Hz]로 입력하면 됩니다. 버저 소리를 끄기 위해서는 0을 입력하면 됩니다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.buzzer(1000); // 버저 소리의 음 높이를 1000 Hz로 설정한다.
        hamster.wheels(-30); // 뒤로 이동한다.

        Runner.wait(1000); // 1초 기다린다.

        hamster.buzzer(0); // 버저 소리를 끈다.
        hamster.stop(); // 정지한다.
    }
}

버저 소리의 음 높이는 소수점 둘째 자리까지 입력할 수 있습니다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.buzzer(261.63); // 버저 소리의 음 높이를 261.63 Hz로 설정한다.
        hamster.wheels(-30); // 뒤로 이동한다.

        Runner.wait(1000); // 1초 기다린다.

        hamster.buzzer(0); // 버저 소리를 끈다.
        hamster.stop(); // 정지한다.
    }
}

다양한 음 높이로 소리를 내면서 뒤로 이동하게 해봅시다.
청력 테스트
햄스터 로봇의 버저 소리는 0 ~ 167772.15 Hz까지 입력할 수 있는데, 나이에 따라 사람이 들을 수 있는 최고 음의 높이가 다릅니다. 버저 소리의 음 높이를 다양하게 변경하면서 자신이 얼마나 높은 주파수의 음까지 들을 수 있는지 측정해 봅시다.

나이 최고 가청 주파수
보청기 필요 8000 Hz
50대 이후 10000 Hz
40대 정도 12000 Hz
30대 정도 14100 Hz
20대 후반 14900 Hz
20대 중반 15800 Hz
20대 초반 16700 Hz
10대 후반 17700 Hz
10대 초반 18800 Hz
10대 이하 19900 Hz
동물 수준 21100 Hz
정확한 음정 내기
buzzer() 메소드를 사용한 경우에는 연속적인 주파수의 음을 낼 수 있지만 소수점 둘째 자리까지밖에 입력할 수 없다는 한계가 있습니다. 좀 더 정확한 음을 내보도록 합시다. 오차 0.01% 이하의 정확한 음정을 낼 수 있습니다. 소리를 끄기 위해서는 Hamster.NOTE_OFF 또는 0을 입력하면 됩니다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.note(Hamster.NOTE_C_4); // 4옥타브 도 음을 소리낸다.
        Runner.wait(1000); // 1초 기다린다.
        hamster.note(Hamster.NOTE_OFF); // 소리를 끈다.
    }
}

음정에 해당하는 숫자를 입력해도 됩니다.

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        hamster.note(40); // 4옥타브 도 음을 소리낸다.
        Runner.wait(1000); // 1초 기다린다.
        hamster.note(0); // 소리를 끈다.
    }
}

유효한 값은 1 ~ 88이며 피아노의 88 건반에 해당합니다. 다양한 음을 소리내면서 햄스터 로봇이 이동하거나 회전하게 해봅시다.

음 높이 숫자 설명
Hamster.NOTE_OFF 0 소리를 끈다.
Hamster.NOTE_A_0 1 0번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_0 2 0번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_0 2 0번째 옥타브의 시b 음
Hamster.NOTE_B_0 3 0번째 옥타브의 시 음
Hamster.NOTE_C_1 4 1번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_1 5 1번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_1 5 1번째 옥타브의 레b 음
Hamster.NOTE_D_1 6 1번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_1 7 1번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_1 7 1번째 옥타브의 미b 음
Hamster.NOTE_E_1 8 1번째 옥타브의 미 음
Hamster.NOTE_F_1 9 1번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_1 10 1번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_1 10 1번째 옥타브의 솔b 음
Hamster.NOTE_G_1 11 1번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_1 12 1번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_1 12 1번째 옥타브의 라b 음
Hamster.NOTE_A_1 13 1번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_1 14 1번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_1 14 1번째 옥타브의 시b 음
Hamster.NOTE_B_1 15 1번째 옥타브의 시 음
Hamster.NOTE_C_2 16 2번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_2 17 2번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_2 17 2번째 옥타브의 레b 음
Hamster.NOTE_D_2 18 2번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_2 19 2번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_2 19 2번째 옥타브의 미b 음
Hamster.NOTE_E_2 20 2번째 옥타브의 미 음
Hamster.NOTE_F_2 21 2번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_2 22 2번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_2 22 2번째 옥타브의 솔b 음
Hamster.NOTE_G_2 23 2번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_2 24 2번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_2 24 2번째 옥타브의 라b 음
Hamster.NOTE_A_2 25 2번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_2 26 2번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_2 26 2번째 옥타브의 시b 음
Hamster.NOTE_B_2 27 2번째 옥타브의 시 음
Hamster.NOTE_C_3 28 3번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_3 29 3번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_3 29 3번째 옥타브의 레b 음
Hamster.NOTE_D_3 30 3번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_3 31 3번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_3 31 3번째 옥타브의 미b 음
Hamster.NOTE_E_3 32 3번째 옥타브의 미 음
Hamster.NOTE_F_3 33 3번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_3 34 3번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_3 34 3번째 옥타브의 솔b 음
Hamster.NOTE_G_3 35 3번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_3 36 3번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_3 36 3번째 옥타브의 라b 음
Hamster.NOTE_A_3 37 3번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_3 38 3번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_3 38 3번째 옥타브의 시b 음
Hamster.NOTE_B_3 39 3번째 옥타브의 시 음
Hamster.NOTE_C_4 40 4번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_4 41 4번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_4 41 4번째 옥타브의 레b 음
Hamster.NOTE_D_4 42 4번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_4 43 4번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_4 43 4번째 옥타브의 미b 음
Hamster.NOTE_E_4 44 4번째 옥타브의 미 음
Hamster.NOTE_F_4 45 4번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_4 46 4번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_4 46 4번째 옥타브의 솔b 음
Hamster.NOTE_G_4 47 4번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_4 48 4번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_4 48 4번째 옥타브의 라b 음
Hamster.NOTE_A_4 49 4번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_4 50 4번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_4 50 4번째 옥타브의 시b 음
Hamster.NOTE_B_4 51 4번째 옥타브의 시 음
Hamster.NOTE_C_5 52 5번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_5 53 5번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_5 53 5번째 옥타브의 레b 음
Hamster.NOTE_D_5 54 5번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_5 55 5번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_5 55 5번째 옥타브의 미b 음
Hamster.NOTE_E_5 56 5번째 옥타브의 미 음
Hamster.NOTE_F_5 57 5번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_5 58 5번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_5 58 5번째 옥타브의 솔b 음
Hamster.NOTE_G_5 59 5번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_5 60 5번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_5 60 5번째 옥타브의 라b 음
Hamster.NOTE_A_5 61 5번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_5 62 5번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_5 62 5번째 옥타브의 시b 음
Hamster.NOTE_B_5 63 5번째 옥타브의 시 음
Hamster.NOTE_C_6 64 6번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_6 65 6번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_6 65 6번째 옥타브의 레b 음
Hamster.NOTE_D_6 66 6번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_6 67 6번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_6 67 6번째 옥타브의 미b 음
Hamster.NOTE_E_6 68 6번째 옥타브의 미 음
Hamster.NOTE_F_6 69 6번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_6 70 6번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_6 70 6번째 옥타브의 솔b 음
Hamster.NOTE_G_6 71 6번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_6 72 6번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_6 72 6번째 옥타브의 라b 음
Hamster.NOTE_A_6 73 6번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_6 74 6번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_6 74 6번째 옥타브의 시b 음
Hamster.NOTE_B_6 75 6번째 옥타브의 시 음
Hamster.NOTE_C_7 76 7번째 옥타브의 도 음
Hamster.NOTE_C_SHARP_7 77 7번째 옥타브의 도# 음
Hamster.NOTE_D_FLAT_7 77 7번째 옥타브의 레b 음
Hamster.NOTE_D_7 78 7번째 옥타브의 레 음
Hamster.NOTE_D_SHARP_7 79 7번째 옥타브의 레# 음
Hamster.NOTE_E_FLAT_7 79 7번째 옥타브의 미b 음
Hamster.NOTE_E_7 80 7번째 옥타브의 미 음
Hamster.NOTE_F_7 81 7번째 옥타브의 파 음
Hamster.NOTE_F_SHARP_7 82 7번째 옥타브의 파# 음
Hamster.NOTE_G_FLAT_7 82 7번째 옥타브의 솔b 음
Hamster.NOTE_G_7 83 7번째 옥타브의 솔 음
Hamster.NOTE_G_SHARP_7 84 7번째 옥타브의 솔# 음
Hamster.NOTE_A_FLAT_7 84 7번째 옥타브의 라b 음
Hamster.NOTE_A_7 85 7번째 옥타브의 라 음
Hamster.NOTE_A_SHARP_7 86 7번째 옥타브의 라# 음
Hamster.NOTE_B_FLAT_7 86 7번째 옥타브의 시b 음
Hamster.NOTE_B_7 87 7번째 옥타브의 시 음
Hamster.NOTE_C_8 88 8번째 옥타브의 도 음
목차
Hardware
  1. Hamster robot
  2. USB dongle
Preparation for Class
  1. Software installation
  2. Robot to PC connection
  3. Run example files
Basic
  1. Create a new project
  2. Work in the cloud PC environment (optional)
  3. Move on a board #1 (sequence, repetition)
  4. Move and turn
  5. Turn on LEDs and make a sound
  6. Command in order repeatedly
  7. Use proximity sensors
  8. Move on a board #2 (repeat while)
  9. Use floor sensors
  10. Use light and acceleration sensors
  11. Braitenberg's robot
Advanced
  1. Create a board game
  2. Keyboard events
  3. Graphical interface
  4. Line following with one sensor
  5. Line following with two sensors
  6. Follow hamster friends (2 people 1 pair)
  7. Follow a wall
  8. Imitating a robot cleaner
  9. Line following at intersection
  10. Escape a maze
Extension Kit
  1. Assembling
  2. Pin/socket layout
  3. Digital input - Press button to beep
  4. Digital output - LED is on when it is dark
  5. Digital output - flashing twinkling LED
  6. Digital output - LED is on in tilting direction
  7. Analog input - Rotating the potentiometer changes the pitch.
  8. Analog input - please do not let it get hot
  9. Analog Input - Move along the light
  10. PWM output - LED light gently brighter and darker
  11. PWM output - LED candle shakes in the wind
  12. Analog servo output - hamster robot has tail
More Advanced
  1. Behavior based robot control
  2. Path navigation
  3. Swap
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (akaii@kw.ac.kr) if you have any problem.