Skip to content

활동

micro:bit 펫

중급 | MakeCode, Python | LED, 가속도 센서, 스피커, 터치 로고 | 반복 실행, 변수, 선택 실행

1단계: 만들어 보세요.

프로젝트 소개

디지털 반려동물을 프로그래밍하고, 원하는대로 바꿔보세요. The micro:bit's built-in speaker makes it even more fun with its expressive sounds.

소개

프로그래밍 가이드

학습 내용

  • 변수와 반복 실행구조를 사용해서 간단한 타이머를 만드는 방법
  • How to use selection to make different events happen at different times.
  • micro:bit 프로그램이 실행 정지된 것처럼 보이도록 만드는 트릭

설명

  • 디지털 반려동물은 1990 년대에 일본에서 처음 발명된 후, 빠르게 전세계로 퍼져나갔습니다.
  • 크기가 작은 장치로서 열쇠 고리에 연결시켜 가지고 다닐 수 있습니다. 디지털 반려동물은 화면에 단순하게 나타납니다. 버튼을 누르거나 게임을 하면서, 그 디지털 동물과 교감하면서 돌봐주어야 합니다. 디지털 동물을 방치하거나, 먹이를 주지 않거나, 깨끗이 청소를 해주지 않으면, 디지털 동물이 우울해하거나, 이상한 행동을 하거나, 말을 듣지 않게 될 수도 있습니다.
  • 프로그램에서는 timer 변수를 이용해서, 무관심을 디지털 동물이 방치된 시간을 기록합니다. 무한반복 실행구조는 1초(1000밀리초) 마다 timer 변수의 값을 1 만큼 증가시킵니다.
  • 만약, timer 변수에 저장된 값이 20 이 되면, LED 화면에 슬픔 아이콘을 출력하고, 내장 스피커를 통해 슬픔 효과음을 출력합니다.
  • 30 이 되면, 디지털 동물이 잠이 듭니다.
  • 40 이 되면, 신비함 효과음을 출력하고 죽게됩니다. 프로그램에서는 '내장 스피커 끄기' 블록을 이용해서, 스피커로 소리가 출력되는 것을 정지 시킵니다. 'while 반복' 실행구조는 해골 아이콘을 LED 화면에 출력합니다.
  • 하지만 계속해서 디지털 동물에 관심을 가져주고 함께 놀아주면, 행복하게 계속 잘 살아가게 됩니다! 터치 로고를 누르면 행복함을 느끼게 되고, 흔들면 키득 키득 거리게 될 것입니다. 이렇게 터치 로고를 누르거나 흔들면, timer 변수에 저장된 값을 0 으로 초기화 시킵니다.
  • 디지털 동물이 죽으면, micro:bit 뒷면의 리셋 버튼을 눌러서 다시 살려낼 수 있습니다.

준비물

  • V2 micro:bit with sound (or MakeCode simulator)
  • MakeCode 또는 Python 편집기
  • AAA 배터리 팩 (옵션)

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

1from microbit import *
2import audio
3
4timer = 0
5display.show(Image(
6    "00000:"
7    "09090:"
8    "00000:"
9    "09990:"
10    "00000"))
11audio.play(Sound.HELLO)
12
13while True:
14    if pin_logo.is_touched():
15        timer = 0
16        display.show(Image.HAPPY)
17        audio.play(Sound.HAPPY)
18    elif accelerometer.was_gesture('shake'):
19        timer = 0
20        display.show(Image.SURPRISED)
21        audio.play(Sound.GIGGLE)
22    else:
23        sleep(500)
24        timer += 0.5
25        # sleep for half a second only to make it react more quickly to logo touch & shake
26        
27    if timer == 20:
28        display.show(Image.SAD)
29        audio.play(Sound.SAD)
30    elif timer == 30:
31        display.show(Image.ASLEEP)
32        audio.play(Sound.YAWN)
33    elif timer == 40:
34        display.show(Image.SKULL)
35        audio.play(Sound.MYSTERIOUS)
36        break
37    

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

  • 디지털 동물을 키우는 단계마다, 다른 시간 타이머로 실험해보세요.
  • micro:bit LED 화면에 그릴 얼굴 표정을 직접 만들어보세요.
  • Add more variables to track how hungry or dirty your pet is, and add new interactions to feed or clean your pet, for example by pressing buttons or making a loud sound picked up by the micro:bit's built-in microphone.