개요
햄스터 로봇의 밝기 센서와 확장 키트의 포토레지스터를 사용하여 빛을 비추는 방향으로 햄스터 로봇을 움직여 봅시다.
부품 연결
- 포토레지스터를 A5-1과 A5-2에 연결합니다.
포토레지스터는 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
- 10 킬로오옴(kΩ) 저항을 A5-3과 A5-4에 연결합니다.
저항은 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
코드 작성
- 포트 A의 모드를 아날로그 입력(ADC)으로 설정합니다.
- 보통 상태에서 입력 A의 값은 30 ~ 40 정도의 값을 가집니다. (주변 밝기에 따라 다름)
- 후레쉬 또는 후레쉬 앱으로 포토레지스터에 빛을 비추면 입력 A의 값이 커지고, 비추지 않으면 입력 A의 값이 작아집니다.
즉, 포토레지스터 주변이 밝아지면 입력 A의 값이 커지고, 어두워지면 입력 A의 값이 작아집니다.
- 실험을 하기 전에 우선 보통 상태일 때와 포토레지스터에 후레쉬 빛을 비추었을 때 각각에 대해 입력 A의 값을 관찰합니다.
- 또한, 햄스터 로봇의 밝기 센서에 대해서도 보통 상태일 때와 후레쉬 빛을 비추었을 때 각각에 대해 밝기 값을 관찰합니다.
- 햄스터 로봇의 밝기 센서는 앞면의 동그란 구멍 속에 들어 있습니다.
- 햄스터 로봇의 밝기 센서에 빛을 비추면 앞으로 이동하고, 확장 보드의 포토레지스터에 빛을 비추면 뒤로 이동하도록 합시다.
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;
Hamster hamster;
void setup() {
hamster = Hamster.create(this);
// 포트 A를 아날로그 입력으로 설정한다.
hamster.ioModeA(Hamster.IO_MODE_ANALOG_INPUT);
}
void draw() {
}
void run() {
while(true) {
if(hamster.light() > 180) { // 햄스터 로봇의 밝기 센서 값이 크면
hamster.wheels(30); // 앞으로 이동한다.
} else if(hamster.inputA() > 100) { // 확장 보드의 CdS 센서 값이 크면
hamster.wheels(-30); // 뒤로 이동한다.
} else {
hamster.stop(); // 정지한다.
}
delay(20); // 너무 빨리 반복하지 않도록 한다.
}
}
추가 활동
- 포토레지스터를 사용하여 햄스터 로봇이 어두운 곳에 들어가면 무서워서 비명을 지르도록(삐 소리를 내도록) 해봅시다.
- 포트 B에 빨간색 LED를 연결한 후 포토레지스터를 손으로 가리면(어두워지면) 빨간색 LED가 켜지고 손을 치우면 꺼지도록 해봅시다.
포트 B에 연결하는 방법
- 포토레지스터를 B5-1과 B5-2에 연결합니다.
포토레지스터는 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
- 10 킬로오옴(kΩ) 저항을 B5-3과 B5-4에 연결합니다.
저항은 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
목차
수업 자료 내려 받기
- 원본 그림 2017.01.16 버전 (34.7 MB)
햄스터 고급
- 행위 기반의 로봇 제어
- 경로 탐색
- 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.