Skip to content

활동

소리로 불 켜기

초급 | MakeCode, Python | LED, 마이크 | 불 논리, 선택 실행, 센서

1단계: 만들어 보세요.

프로젝트 소개

박수 소리나 큰 소리로 micro:bit 에 불을 켜거나 꺼보세요.

소개

프로그래밍 가이드

학습 내용

  • 센서로 입력되는 값에 따라 출력되는 값을 변화시키는 방법
  • 같은 이벤트 동작에 대해 참/거짓 불 논리를 사용해서, 켜지고 꺼지는 토글되는 스위치를 만드는 방법

설명

  • 이 프로그램에서는 lightsOn 변수를 사용해서 불 빛의 상태를 추적합니다.: 즉, 불이 켜져 있는지 꺼저있는지를 확인합니다. 이 변수는 참(true) 또는 거짓(false) 값만 저장할 수 있는, 불 변수 입니다. 불(boolean) 변수에는 2가지 값 중 하나만 저장할 수 있습니다.: true(참) 또는 false(거짓) 값만 저장할 수 있습니다. true 이면 켜고, false 이면 끈 것입니다.
  • 마이크가 시끄러운 소리를 감지하면, lightsOn 변수에 저장되어 있는 값을 반대로(not) 바꿉니다.
  • 그렇게 하면, 박수를 쳤을 때, lightsOn 변수에 저장되어 있는 값이 false (불이 꺼져 있던 상태) 였다면, 그 값을 true 로 바꾸게 되고 LED 에 불을 켜게 됩니다.
  • 만약, lightsOn 변수에 저장되어 있던 값이 true (불이 켜져 있던 상태) 였다면, 그 값을 false 로 바꾸게 되고 LED 를 끄고, 화면을 지우게 됩니다.

준비물

  • micro:bit 1대
  • MakeCode 또는 Python 편집기
  • AAA 배터리 팩 (옵션)

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

1from microbit import *
2lightsOn = False
3
4while True:
5    if microphone.was_event(SoundEvent.LOUD):
6        lightsOn = not lightsOn
7        if lightsOn:
8            display.show(Image('99999:'
9                               '99999:'
10                               '99999:'
11                               '99999:'
12                               '99999'))
13        else:
14            display.clear()
15    sleep(100)

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

  • '소리 시끄러우면 실행' 블록을 실행시키는 민감도를 바꿀 수 있습니다. '시작하면 실행' 블록 안에 '소리 시끄러우면 기준값을 ... ' 블록으로 설정해 넣으면 됩니다. 더 조용한 소리를 위해 더 작은 값을, 더 시끄러운 소리를 위해 더 큰 값을 사용해 보세요. 위의 프로그래밍 동영상에서는 그 방법에 대해 보여주고 있습니다.
  • 파이썬 프로그래밍언어에서는, 시끄러운 소리로 구분하는데 사용되는 기준값을 microphone.set_threshold(SoundEvent.LOUD, 128) 명령을 사용해서 바꿀 수 있습니다. - 128 값을 0 ~ 255 범위의 원하는 값으로 바꾸면 됩니다.
  • 불 빛이 켜지면 주변 소리에 따라 반응하도록 더 만들어 보세요.
  • micro:bit 에 연결된 다른 LED, 서보 모터 등을 소리로 제어해보세요.