Skip to content

활동

보물찾기

중급 | MakeCode, Python | LED, 라디오 | 라디오 파, 통신

1단계: 만들어 보세요.

프로젝트 소개

micro:bit 를 여러 대 사용하고, 무선 라디오 통신 기능을 이용해서 보물 찾기 게임을 해보세요.

micro:bit 와 보물 지도

설명

  • 이전의 두근두근 신호 발신기 프로젝트에서와 같이, 이번 프로젝트에서도 2 개의 프로그램을 사용합니다. 한 프로그램은 무선 라디오 신호를 전송하고, 다른 프로그램은 전송된 신호를 수신합니다.
  • 신호 발신기 (전송기) 비콘(beacon) 프로그램을 여러 대의 micro:bit 에 업로드 할 때에는, id 변수에 저장되는 값들을 서로 다르게 해주어야 서로 구분이 됩니다. 각각의 신호 발신 비콘에서는 자기 ID 번호를 짧은 시간 동안 보여주기 때문에, 각각의 비콘을 서로 구분할 수 있습니다. 각각의 신호 발신 비콘들에 배터리를 붙이고, 자신의 ID 번호를 200 밀리초 (0.2 초) 마다 전송하도록 한 후, 숨깁니다.
  • 보물을 찾는데 사용하는 수신 프로그램을 micro:bit 에 업로드 합니다. 수신 프로그램은 모두 똑같습니다. 신호 발신 비콘에 가깝게 접근하면, 비콘에서 전송하는 ID 번호가 수신기에 나타나게 됩니다. 비콘에서 가까워지면 가까워질수록, ID 번호가 자주 반짝이며 나타나게 됩니다.
  • 자유롭게 보물 찾기 규칙을 만들어 보세요. - 찾은 보물의 번호를 적거나, micro:bit 보물을 집어 모으거나 등이 가능합니다. 가장 많이 이긴 팀.

준비물

  • 여러 대의 micro:bit 와 AAA 배터리 팩
  • MakeCode 또는 Python 편집기
  • 보물 비콘들을 숨길 수 있는 충분히 넓은 공간 - 실내 실외 모두 가능합니다.

2단계: 프로그래밍 해보세요.

비콘 / 신호 발신기

1from microbit import *
2import radio
3radio.config(group=1, power=1)
4radio.on()
5id = '1' # change this number for each beacon
6display.show(id)
7sleep(2000)
8display.clear()
9
10while True:
11    radio.send(id)
12    sleep(200)
13

수신기

1from microbit import *
2import radio
3radio.config(group=1)
4radio.on()
5
6while True:
7    message = radio.receive()
8    if message:
9        display.show(message)
10        sleep(200)
11        display.clear()
12

3단계: 더 좋게 만들어 보세요.

  • 보물찾기 공간의 넓이에 따라 라디오 전송 강도를 바꿔보세요. 라디오 전송 강도는 0 부터 7 까지의 값을 사용할 수 있습니다.
  • 라디오 전송 강도를 줄이면 신호 발신 비콘을 찾기 어려워 집니다. - micro:bit 를 금속 용기 안에 넣지 않도록 주의 하세요. 종이 상자나 플라스틱 박스 안에 micro:bit 를 넣고, 그 위를 금속 호일로 덮는 경우에도, 무선 라디오 신호가 멀리까지 전송되지 않습니다.
  • 무선 라디오 신호를 전송하면 배터리를 더 많이 소모합니다. 신호 발신 비콘이 전송하는 신호 전송 간격을 200 밀리초 보다 더 길게하면 배터리를 더 오래 사용할 수 있습니다.