Skip to content

활동

방음계

중급 | MakeCode, Python | 라디오, 마이크 | 과학적으로 일하기, 변수, 선택 실행, 측정, 통신

1단계: 만들어 보세요.

프로젝트 소개

다양한 재료의 방음 특성에 대한 과학적 조사에서 두 개의 BBC micro:bit 를 사용하여 소리 레벨을 측정합니다.

소개

프로그래밍 가이드

이 프로젝트에서는 컴퓨팅 기술을 사용하여 micro:bit 를 과학 실험을 수행하는 데 도움이 되는 도구로 변환합니다.

이 방법은 두 개의 micro:bit 와 음원을 사용하여 다양한 재료의 방음 특성을 테스트하는 것입니다. 센서가 덮여 있어도 소리 레벨 측정값을 읽을 수 있도록, 근처에 배치된 수신기 micro:bit 에 무선으로 소리 측정값을 전송합니다.

아래의 다양한 코드를 송신기와 수신기 micro:bit 로 전송할 수도 있고, 직접 코딩하여 위의 코딩 영상에서 작동 원리를 알아볼 수도 있습니다.

송신기/센서

송신기인 micro:bit 은 반드시 micro:bit V2 여야 하며, 다양한 소재로 감싸는 사운드 센서입니다. 이 장치는 마이크를 사용하여 소리 수준을 측정한 후 무선으로 전송합니다.

micro:bit V2 의 터치 로고 오른쪽에 있는 마이크 인렛 위치를 보여주는 다이어그램

마이크는 micro:bit 앞면의 작은 구멍에서 소리를 감지합니다. 테스트하려는 재료가 이에 닿거나 움직이지 않도록 주의하세요. 그렇지 않으면 소음 수준 측정값에 영향을 미칠 수 있습니다. 예를 들어, 센서 micro:bit 를 다양한 재질로 안감 처리된 골판지 상자 안에 넣으면 도움이 될 수 있습니다.

음원

센서로부터 고정된 거리에 음원을 놓습니다. 이는 일정한 볼륨으로 소리를 내는 악기나 휴대전화 벨소리 등 무엇이든 될 수 있습니다. 아래에는 휴대폰이나 컴퓨터에서 재생할 수 있는 오디오 파일도 제공되어 있습니다.

음원이 센서로부터 동일한 크기와 거리에서 동일한 볼륨의 소리를 내는 것은 공정한 테스트임을 보장합니다.

수신기

수신기 micro:bit 는 소리 레벨 판독값을 볼 수 있는 곳입니다. 송신기로부터 몇 미터 이내의 어느 곳에나 설치할 수 있습니다.

실험 시작

  • 테스트하려는 소재로 송신기/센서를 감싸세요.
  • 각 테스트를 시작할 때 수신기 micro:bit 뒷면의 재설정 버튼을 눌러 사운드 레벨을 0으로 설정하세요. 아주 조용히 하세요!
  • 음원을 사용하여 소리를 만들어 보세요.
  • 수신기의 버튼 A를 눌러 LED 디스플레이에서 사운드 레벨을 확인하세요. 이는 0 (가장 조용한 수준)에서 255 (가장 시끄러운 수준)까지의 척도로 표시됩니다. 리셋 버튼을 누른 이후 측정된 최대 소음 수준을 표시합니다.
  • 데이터 기록 시트나 다른 종이에 숫자를 기록해 두세요.
  • 송신기/센서를 다른 재질로 감싸서 실험을 반복합니다.
  • 그런 다음 데이터를 분석하여 어떤 재료가 가장 좋은 방음재인지에 대한 결론을 도출할 수 있습니다.

준비물

  • micro:bit 2대. (송신기는 micro:bit V2 여야 하지만, 수신기는 micro:bit V1 또는 V2 가 될 수 있습니다.)
  • 최소 1개의 배터리 팩(송신기에 권장)
  • 일정한 음원
  • 테스트할 재료는 다양합니다(예: 폼, 버블랩, 판지, 종이). 작은 골판지 상자도 유용할 수 있습니다.
  • 재료를 제자리에 고정하기 위한 접착 테이프 또는 고무 밴드
  • 음원과 송신기 사이의 고정된 거리를 측정하기 위한 자 또는 테이프 측정기
  • 데이터 기록 시트 또는 종이와 연필

지원 리소스

데이터 기록 시트는 측정값을 기록하는 데 사용할 수 있으며, 사운드 파일은 휴대폰이나 컴퓨터에서 재생하여 사운드 소스로 사용할 수 있습니다.

데이터 기록 시트

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

송신기/센서

1from microbit import *
2import radio
3
4
5radio.config(group=1)
6radio.on()
7
8while True:
9    # turn the sound level into a string so we can send it over radio
10    radio.send(str(microphone.sound_level()))
11    sleep(200)
12    

수신기

1from microbit import *
2import radio
3
4
5radio.config(group=1)
6radio.on()
7max = 0
8
9while True:
10    if button_a.was_pressed():
11        display.scroll(max)
12    sound_level = radio.receive()
13    if sound_level:
14        if int(sound_level) > max:
15            max = int(sound_level)
16            

같은 방에서 여러 가지 실험

같은 방에서 여러 실험을 수행해야 하는 경우, 각 micro:bit 쌍에는 고유한 무선 그룹 번호가 필요합니다. 라디오 그룹 번호를 변경하려면 코드를 수정하세요. 0~255 사이의 라디오 그룹 번호를 사용할 수 있으며, 각 micro:bit 쌍의 번호가 일치하는지 확인하세요.