Skip to content

활동

소리 데이터 기록 및 수집 프로그램

중급 | MakeCode, Python | LED, 마이크 | 데이터 처리, 변수, 산술 연산자, 입력/출력

1단계: 만들어 보세요.

프로젝트 소개

소리 데이터 기록 및 수집 프로그램을 만들어서 자신 주변의 소리 크기가 어떻게 달라지는지 분석해보세요.

소개

프로그래밍 가이드

학습 내용

  • 신형 micro:bit 의 마이크를 센서로 사용해서 소리 크기를 측정하는 방법
  • 실제 세상과 관련한 데이터들을 수집할 때, 최대값을 기록하고 추적하기 위해 변수와 연산자를 사용하는 방법

설명

  • 신형 micro:bit 의 마이크를 사용하면 0 부터 255 까지의 범위로 소리의 세기(크기)를 측정할 수 있습니다. 빛 센서로 측정되는 값과 똑같은 범위입니다.
  • 반복 실행구조를 사용해서 계속해서 주변 소리의 크기를 측정하고, 그렇게 측정한 소리 크기 값을 maxSound 변수에 저장되어있는 가장 큰 소리 값과 비교합니다. 측정한 소리 크기 값이 이전에 저장되어있던 가장 큰 소리 값보다 크다면, maxSound 변수에 측정한 소리 값을 가장 큰 소리 값으로 저장합니다.
  • 반복 실행구조 안에서는 A 버튼이 눌렸는지에 대한 버튼 눌림 상태도 계속 검사합니다. A 버튼이 눌려져 있는 경우에는, 소리 크기 값을 LED 화면으로 출력합니다. 이렇게 A 버튼을 사용하면, 장소에 따라 주변 소리가 얼마나 시끄러운지 체크하고 살펴볼 수 있습니다.
  • 가장 시끄러운 소리 크기 값은 micro:bit 뒷 면에 있는 리셋 버튼을 눌러 0 으로 초기화 할 수 있습니다.

준비물

  • 소리 기능이 있는 신형 micro:bit (또는 MakeCode 시뮬레이터)
  • MakeCode 또는 Python 편집기
  • AAA 배터리 팩 (옵션)

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

1from microbit import *
2maxSound = 0
3lights = Image("11111:"
4              "11111:"
5              "11111:"
6              "11111:"
7              "11111")
8# ignore first sound level reading
9soundLevel = microphone.sound_level()
10sleep(200)
11
12while True:
13    if button_a.is_pressed():
14        display.scroll(maxSound)
15    else:
16        soundLevel = microphone.sound_level()
17        display.show(lights * soundLevel)
18        if soundLevel > maxSound:
19            maxSound = soundLevel
20            

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

  • 가장 조용한 소리 크기 값, 평균 값, 소리 값을 계속 기록하도록 프로그램을 개선해보세요.
  • 무선 라디오 기능을 사용하면, 다른 micro:bit 로 측정한 소리 크기값을 전송해서 무선으로 소리 크기를 모니터링 할 수 있습니다.