개요
LED 두 개를 연결하고 햄스터 로봇을 좌우로 기울이면 기울어진 쪽의 LED가 켜지도록 해봅시다.
부품 연결
- 220 오옴(Ω) 저항을 A4-5와 A4-6에 연결합니다.
- 빨간색 LED의 양극(+, 다리가 긴 쪽)을 A4-7에, 음극(-, 다리가 짧은 쪽)을 A4-8에 연결합니다.
- 또 다른 220 오옴(Ω) 저항을 B4-5와 B4-6에 연결합니다.
- 초록색 LED의 양극(+, 다리가 긴 쪽)을 B4-7에, 음극(-, 다리가 짧은 쪽)을 B4-8에 연결합니다.
코드 작성
- 포트 A와 포트 B의 모드를 디지털 출력으로 설정합니다.
- 출력 A의 값이 1이면 빨간색 LED가 켜지고, 0이면 꺼집니다.
- 출력 B의 값이 1이면 초록색 LED가 켜지고, 0이면 꺼집니다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
// 포트 A와 포트 B를 디지털 출력으로 설정한다.
hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);
hamster.ioModeB(Hamster.IO_MODE_DIGITAL_OUTPUT);
}
void draw() {
}
void run() {
int accY;
while(true) {
accY = hamster.accelerationY();
if(accY > 10000) { // 왼쪽으로 기울어졌으면
hamster.outputA(1); // 포트 A의 출력을 1로 하여 왼쪽 LED를 켠다.
} else {
hamster.outputA(0); // 포트 A의 출력을 0으로 하여 왼쪽 LED를 끈다.
}
if(accY < -10000) { // 오른쪽으로 기울어졌으면
hamster.outputB(1); // 포트 B의 출력을 1로 하여 오른쪽 LED를 켠다.
} else {
hamster.outputB(0); // 포트 B의 출력을 0으로 하여 오른쪽 LED를 끈다.
}
delay(20); // 너무 빨리 반복하지 않도록 한다.
}
}
추가 활동
- 햄스터 로봇의 앞면에 있는 왼쪽/오른쪽 근접 센서를 사용하여 손을 가져간 쪽의 LED가 켜지도록 해봅시다.
- 흰색 종이 위에 검은색 선을 굵게 긋고 햄스터 로봇이 달려가게 한 후, 햄스터 로봇의 왼쪽/오른쪽 바닥 센서가 검은색 선을 만나면 해당 방향의 LED가 켜지도록 해봅시다.
- LED 두 개 모두 끄기, 초록색 LED만 켜기, 빨간색 LED만 켜기, LED 두 개 모두 켜기 순서대로 하여 숫자 0, 1, 2, 3을 2진수로 표현해 봅시다.
- 0 ~ 3까지의 숫자를 무작위로(난수) 얻어서 빨간색 LED와 초록색 LED로 2진수를 표현합니다. 이를 일정 시간마다 계속 반복하다가 햄스터 로봇의 앞에 손을 가져가면 멈추는 제비 뽑기(또는 주사위)를 만들어 봅시다.
목차
수업 자료 내려 받기
- 원본 그림 2017.01.16 버전 (34.7 MB)
햄스터 고급
- 행위 기반의 로봇 제어
- 경로 탐색
- 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.