개요
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이면 꺼집니다.
#include "roboid.h"
int main(int argc, char *argv[]) {
hamster_create();
// 포트 A와 포트 B를 디지털 출력으로 설정한다.
hamster_io_mode_a("digital output");
hamster_io_mode_b("digital output");
while(1) {
if(hamster_acceleration_y() > 10000) { // 왼쪽으로 기울어졌으면
hamster_output_a(1); // 포트 A의 출력을 1로 하여 왼쪽 LED를 켠다.
} else {
hamster_output_a(0); // 포트 A의 출력을 0으로 하여 왼쪽 LED를 끈다.
}
if(hamster_acceleration_y() < -10000) { // 오른쪽으로 기울어졌으면
hamster_output_b(1); // 포트 B의 출력을 1로 하여 오른쪽 LED를 켠다.
} else {
hamster_output_b(0); // 포트 B의 출력을 0으로 하여 오른쪽 LED를 끈다.
}
wait(20); // 너무 빨리 반복하지 않도록 한다.
}
return 0;
}
추가 활동
- 햄스터 로봇의 앞면에 있는 왼쪽/오른쪽 근접 센서를 사용하여 손을 가져간 쪽의 LED가 켜지도록 해봅시다.
- 흰색 종이 위에 검은색 선을 굵게 긋고 햄스터 로봇이 달려가게 한 후, 햄스터 로봇의 왼쪽/오른쪽 바닥 센서가 검은색 선을 만나면 해당 방향의 LED가 켜지도록 해봅시다.
- LED 두 개 모두 끄기, 초록색 LED만 켜기, 빨간색 LED만 켜기, LED 두 개 모두 켜기 순서대로 하여 숫자 0, 1, 2, 3을 2진수로 표현해 봅시다.
- 0 ~ 3까지의 숫자를 무작위로(난수) 얻어서 빨간색 LED와 초록색 LED로 2진수를 표현합니다. 이를 일정 시간마다 계속 반복하다가 햄스터 로봇의 앞에 손을 가져가면 멈추는 제비 뽑기(또는 주사위)를 만들어 봅시다.
목차
고급
- 행위 기반의 로봇 제어
- 경로 탐색
- 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.