LED 켜고 앞으로 1초 이동하기
햄스터 로봇이 양쪽 LED를 파란색으로 켜고 1초 동안 앞으로 이동하게 해봅시다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_leds("blue", "blue"); // 왼쪽 LED와 오른쪽 LED를 파란색으로 켠다.
hamster_wheels(30, 30); // 앞으로 이동한다.
wait(1000); // 1초 기다린다.
hamster_leds("off", "off"); // 왼쪽 LED와 오른쪽 LED를 끈다.
hamster_stop(); // 정지한다.
dispose_all(); // 통신 연결을 종료하고 메모리를 해제한다.
return 0;
}
색상에 해당하는 숫자를 입력해도 됩니다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_leds(1, 1); // 왼쪽 LED와 오른쪽 LED를 파란색으로 켠다.
hamster_wheels(30, 30); // 앞으로 이동한다.
wait(1000); // 1초 기다린다.
hamster_leds("off", "off"); // 왼쪽 LED와 오른쪽 LED를 끈다.
hamster_stop(); // 정지한다.
dispose_all(); // 통신 연결을 종료하고 메모리를 해제한다.
return 0;
}
햄스터 로봇의 LED는 7가지 색상을 표현할 수 있으며, LED를 끄기 위해서는 "off"를 입력하면 됩니다. 대소문자는 구분하지 않습니다.
LED 색상 |
설명 |
"off" |
LED를 끈다. |
"red" |
LED를 빨간색으로 켠다. (R: 255, G: 0, B: 0) |
"yellow" |
LED를 노란색으로 켠다. (R: 255, G: 255, B: 0) |
"green" |
LED를 초록색으로 켠다. (R: 0, G: 255, B: 0) |
"sky blue" |
LED를 하늘색으로 켠다. (R: 0, G: 255, B: 255) |
"blue" |
LED를 파란색으로 켠다. (R: 0, G: 0, B: 255) |
"purple" |
LED를 보라색으로 켠다. (R: 255, G: 0, B: 255) |
"white" |
LED를 하얀색으로 켠다. (R: 255, G: 255, B: 255) |
양쪽 LED를 다양한 색상으로 켜고 앞으로 이동하게 해봅시다.
LED 켜고 제자리에서 5초 돌기
회전하는 방향으로 한쪽 LED만 초록색으로 켜고 제자리에서 5초 동안 돌게 해봅시다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_leds("green", "off"); // 왼쪽 LED를 초록색으로 켜고 오른쪽 LED를 끈다.
hamster_wheels(-30, 30); // 제자리에서 왼쪽으로 돈다.
wait(5000); // 5초 기다린다.
hamster_leds("off", "off"); // 왼쪽 LED와 오른쪽 LED를 끈다.
hamster_stop(); // 정지한다.
dispose_all(); // 통신 연결을 종료하고 메모리를 해제한다.
return 0;
}
왼쪽 LED 또는 오른쪽 LED, 하나의 값만 설정하기 위해서는 hamster_left_led() 또는 hamster_right_led() 함수를 사용하여도 됩니다.
hamster_left_led("sky blue"); // 왼쪽 LED를 하늘색으로 켠다.
hamster_wheels(-30, 30); // 제자리에서 왼쪽으로 돈다.
|
hamster_right_led("red"); // 오른쪽 LED를 빨간색으로 켠다.
hamster_wheels(30, -30); // 제자리에서 오른쪽으로 돈다.
|
한쪽 LED를 다양한 색상으로 켜고 제자리에서 왼쪽 또는 오른쪽으로 돌게 해봅시다.
소리 내며 뒤로 1초 이동하기
햄스터 로봇이 소리를 내면서 뒤로 1초 동안 이동하게 해봅시다.
버저 소리의 음 높이를 주파수[Hz]로 입력하면 됩니다.
버저 소리를 끄기 위해서는 0을 입력하면 됩니다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_buzzer(1000); // 버저 소리의 음 높이를 1000 Hz로 설정한다.
hamster_wheels(-30, -30); // 뒤로 이동한다.
wait(1000); // 1초 기다린다.
hamster_buzzer(0); // 버저 소리를 끈다.
hamster_stop(); // 정지한다.
dispose_all(); // 통신 연결을 종료하고 메모리를 해제한다.
return 0;
}
버저 소리의 음 높이는 소수점 둘째 자리까지 입력할 수 있습니다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_buzzer(261.63); // 버저 소리의 음 높이를 261.63 Hz로 설정한다.
hamster_wheels(-30, -30); // 뒤로 이동한다.
wait(1000); // 1초 기다린다.
hamster_buzzer(0); // 버저 소리를 끈다.
hamster_stop(); // 정지한다.
dispose_all(); // 통신 연결을 종료하고 메모리를 해제한다.
return 0;
}
다양한 음 높이로 소리를 내면서 뒤로 이동하게 해봅시다.
청력 테스트
햄스터 로봇의 버저 소리는 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 |
정확한 음정 내기
hamster_buzzer() 함수를 사용한 경우에는 연속적인 주파수의 음을 낼 수 있지만
소수점 둘째 자리까지밖에 입력할 수 없다는 한계가 있습니다.
좀 더 정확한 음을 내보도록 합시다.
오차 0.01% 이하의 정확한 음정을 낼 수 있습니다.
소리를 끄기 위해서는 "off"를 입력하면 됩니다. 대소문자는 구분하지 않습니다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
hamster_pitch("C4"); // 4옥타브 도 음을 소리낸다.
wait(1000); // 1초 기다린다.
hamster_pitch("off"); // 소리를 끈다.
dispose_all(); // 통신 연결을 종료하고 메모리를 해제한다.
return 0;
}
유효한 값은 "A0" ~ "C8"이며 피아노의 88 건반에 해당합니다.
다양한 음을 소리내면서 햄스터 로봇이 이동하거나 회전하게 해봅시다.
음 높이 |
설명 |
"off" |
소리를 끈다. |
"A0" |
0번째 옥타브의 라 음 |
"A#0" |
0번째 옥타브의 라# 음 |
"Bb0" |
0번째 옥타브의 시b 음 |
"B0" |
0번째 옥타브의 시 음 |
"C1" |
1번째 옥타브의 도 음 |
"C#1" |
1번째 옥타브의 도# 음 |
"Db1" |
1번째 옥타브의 레b 음 |
"D1" |
1번째 옥타브의 레 음 |
"D#1" |
1번째 옥타브의 레# 음 |
"Eb1" |
1번째 옥타브의 미b 음 |
"E1" |
1번째 옥타브의 미 음 |
"F1" |
1번째 옥타브의 파 음 |
"F#1" |
1번째 옥타브의 파# 음 |
"Gb1" |
1번째 옥타브의 솔b 음 |
"G1" |
1번째 옥타브의 솔 음 |
"G#1" |
1번째 옥타브의 솔# 음 |
"Ab1" |
1번째 옥타브의 라b 음 |
"A1" |
1번째 옥타브의 라 음 |
"A#1" |
1번째 옥타브의 라# 음 |
"Bb1" |
1번째 옥타브의 시b 음 |
"B1" |
1번째 옥타브의 시 음 |
"C2" |
2번째 옥타브의 도 음 |
"C#2" |
2번째 옥타브의 도# 음 |
"Db2" |
2번째 옥타브의 레b 음 |
"D2" |
2번째 옥타브의 레 음 |
"D#2" |
2번째 옥타브의 레# 음 |
"Eb2" |
2번째 옥타브의 미b 음 |
"E2" |
2번째 옥타브의 미 음 |
"F2" |
2번째 옥타브의 파 음 |
"F#2" |
2번째 옥타브의 파# 음 |
"Gb2" |
2번째 옥타브의 솔b 음 |
"G2" |
2번째 옥타브의 솔 음 |
"G#2" |
2번째 옥타브의 솔# 음 |
"Ab2" |
2번째 옥타브의 라b 음 |
"A2" |
2번째 옥타브의 라 음 |
"A#2" |
2번째 옥타브의 라# 음 |
"Bb2" |
2번째 옥타브의 시b 음 |
"B2" |
2번째 옥타브의 시 음 |
"C3" |
3번째 옥타브의 도 음 |
"C#3" |
3번째 옥타브의 도# 음 |
"Db3" |
3번째 옥타브의 레b 음 |
"D3" |
3번째 옥타브의 레 음 |
"D#3" |
3번째 옥타브의 레# 음 |
"Eb3" |
3번째 옥타브의 미b 음 |
"E3" |
3번째 옥타브의 미 음 |
"F3" |
3번째 옥타브의 파 음 |
"F#3" |
3번째 옥타브의 파# 음 |
"Gb3" |
3번째 옥타브의 솔b 음 |
"G3" |
3번째 옥타브의 솔 음 |
"G#3" |
3번째 옥타브의 솔# 음 |
"Ab3" |
3번째 옥타브의 라b 음 |
"A3" |
3번째 옥타브의 라 음 |
"A#3" |
3번째 옥타브의 라# 음 |
"Bb3" |
3번째 옥타브의 시b 음 |
"B3" |
3번째 옥타브의 시 음 |
"C4" |
4번째 옥타브의 도 음 |
"C#4" |
4번째 옥타브의 도# 음 |
"Db4" |
4번째 옥타브의 레b 음 |
"D4" |
4번째 옥타브의 레 음 |
"D#4" |
4번째 옥타브의 레# 음 |
"Eb4" |
4번째 옥타브의 미b 음 |
"E4" |
4번째 옥타브의 미 음 |
"F4" |
4번째 옥타브의 파 음 |
"F#4" |
4번째 옥타브의 파# 음 |
"Gb4" |
4번째 옥타브의 솔b 음 |
"G4" |
4번째 옥타브의 솔 음 |
"G#4" |
4번째 옥타브의 솔# 음 |
"Ab4" |
4번째 옥타브의 라b 음 |
"A4" |
4번째 옥타브의 라 음 |
"A#4" |
4번째 옥타브의 라# 음 |
"Bb4" |
4번째 옥타브의 시b 음 |
"B4" |
4번째 옥타브의 시 음 |
"C5" |
5번째 옥타브의 도 음 |
"C#5" |
5번째 옥타브의 도# 음 |
"Db5" |
5번째 옥타브의 레b 음 |
"D5" |
5번째 옥타브의 레 음 |
"D#5" |
5번째 옥타브의 레# 음 |
"Eb5" |
5번째 옥타브의 미b 음 |
"E5" |
5번째 옥타브의 미 음 |
"F5" |
5번째 옥타브의 파 음 |
"F#5" |
5번째 옥타브의 파# 음 |
"Gb5" |
5번째 옥타브의 솔b 음 |
"G5" |
5번째 옥타브의 솔 음 |
"G#5" |
5번째 옥타브의 솔# 음 |
"Ab5" |
5번째 옥타브의 라b 음 |
"A5" |
5번째 옥타브의 라 음 |
"A#5" |
5번째 옥타브의 라# 음 |
"Bb5" |
5번째 옥타브의 시b 음 |
"B5" |
5번째 옥타브의 시 음 |
"C6" |
6번째 옥타브의 도 음 |
"C#6" |
6번째 옥타브의 도# 음 |
"Db6" |
6번째 옥타브의 레b 음 |
"D6" |
6번째 옥타브의 레 음 |
"D#6" |
6번째 옥타브의 레# 음 |
"Eb6" |
6번째 옥타브의 미b 음 |
"E6" |
6번째 옥타브의 미 음 |
"F6" |
6번째 옥타브의 파 음 |
"F#6" |
6번째 옥타브의 파# 음 |
"Gb6" |
6번째 옥타브의 솔b 음 |
"G6" |
6번째 옥타브의 솔 음 |
"G#6" |
6번째 옥타브의 솔# 음 |
"Ab6" |
6번째 옥타브의 라b 음 |
"A6" |
6번째 옥타브의 라 음 |
"A#6" |
6번째 옥타브의 라# 음 |
"Bb6" |
6번째 옥타브의 시b 음 |
"B6" |
6번째 옥타브의 시 음 |
"C7" |
7번째 옥타브의 도 음 |
"C#7" |
7번째 옥타브의 도# 음 |
"Db7" |
7번째 옥타브의 레b 음 |
"D7" |
7번째 옥타브의 레 음 |
"D#7" |
7번째 옥타브의 레# 음 |
"Eb7" |
7번째 옥타브의 미b 음 |
"E7" |
7번째 옥타브의 미 음 |
"F7" |
7번째 옥타브의 파 음 |
"F#7" |
7번째 옥타브의 파# 음 |
"Gb7" |
7번째 옥타브의 솔b 음 |
"G7" |
7번째 옥타브의 솔 음 |
"G#7" |
7번째 옥타브의 솔# 음 |
"Ab7" |
7번째 옥타브의 라b 음 |
"A7" |
7번째 옥타브의 라 음 |
"A#7" |
7번째 옥타브의 라# 음 |
"Bb7" |
7번째 옥타브의 시b 음 |
"B7" |
7번째 옥타브의 시 음 |
"C8" |
8번째 옥타브의 도 음 |
목차
고급
- 행위 기반의 로봇 제어
- 경로 탐색
- 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.