개요
온도가 높으면 빨간색으로, 온도가 낮으면 파란색으로, 보통이면 노란색으로 햄스터 로봇의 LED 불을 표시해 봅시다.
부품 연결
- 서미스터를 A5-1과 A5-2에 연결합니다.
서미스터는 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
- 1 킬로오옴(kΩ) 저항을 A5-3과 A5-4에 연결합니다.
저항은 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
- 서미스터를 종이컵에 닿게한 후 종이컵에 차가운 물과 뜨거운 물을 채우면서 햄스터 로봇의 양쪽 LED 색깔을 관찰합니다.
코드 작성
- 포트 A의 모드를 아날로그 입력(ADC)으로 설정합니다.
- 보통 상태에서 입력 A의 값은 125 ~ 130 정도의 값을 가집니다. (255의 중간 정도)
- 온도가 올라가면 입력 A의 값이 커지고, 온도가 내려가면 입력 A의 값이 작아집니다.
- 실험을 하기 전에 우선 보통 상태일 때, 컵의 온도가 뜨거울 때, 컵의 온도가 차가울 때 각각에 대해 입력 A의 값을 관찰합니다.
- 뜨거울 때와 보통일 때를 구분하기 위한 경계 값은 관찰된 두 개의 값(뜨거울 때, 보통일 때)의 중간 값으로 합니다.
- 차가울 때와 보통일 때를 구분하기 위한 경계 값은 관찰된 두 개의 값(차가울 때, 보통일 때)의 중간 값으로 합니다.
from roboid import *
hamster = Hamster()
# 포트 A를 아날로그 입력으로 설정한다.
hamster.io_mode_a(Hamster.IO_MODE_ANALOG_INPUT)
while True:
temperature = hamster.input_a() # 포트 A의 입력
print(temperature) # python 3.x.x
#print temperature # python 2.7.x
if temperature > 135: # 온도가 높으면
hamster.leds(Hamster.LED_RED) # 양쪽 LED를 빨간색으로 켠다.
elif temperature < 120: # 온도가 낮으면
hamster.leds(Hamster.LED_BLUE) # 양쪽 LED를 파란색으로 켠다.
else: # 온도가 중간이면
hamster.leds(Hamster.LED_YELLOW) # 양쪽 LED를 노란색으로 켠다.
wait(20) # 너무 빨리 반복하지 않도록 한다.
추가 활동
- 서미스터를 손으로 잡으면 햄스터 로봇이 앞으로 달려가고 손을 떼면 정지하도록 해봅시다.
- 포트 B에 빨간색 LED를 연결한 후 서미스터를 손으로 잡으면 빨간색 LED가 켜지고 손을 떼면 꺼지도록 해봅시다.
포트 B에 연결하는 방법
- 서미스터를 B5-1과 B5-2에 연결합니다.
서미스터는 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
- 1 킬로오옴(kΩ) 저항을 B5-3과 B5-4에 연결합니다.
저항은 방향성이 없기 때문에 방향을 맞추어 꽂을 필요는 없습니다.
목차
고급
- 행위 기반의 로봇 제어
- 경로 탐색
- 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.