제7강 Pd+micro:bit로 전자 악기 만들기
이번 강의의 목표
Pd와 micro:bit의 센서를 결합해서 간단한 전자 악기를 제작합니다. 지금까지 배운 Pd의 음향 처리와 micro:bit의 센서 연동을 활용해, 실제로 「연주할 수 있는」 악기를 만드는 것이 목표입니다.
이번 강의에서는 다음 네 가지 전자 악기를 만듭니다.
- 가속도 센서를 사용한 핸드벨
- 소리 센서를 사용한 강풍 이펙트
- 압력 센서를 사용한 드럼
- 【참고】가속도 센서를 사용한 파도의 재현
가속도 센서로 핸드벨을 만들어 보자
micro:bit의 가속도 센서를 사용해서, 본체를 흔들면 소리가 나는 핸드벨을 만듭니다.
가속도 센서 값의 취득 방법
micro:bit에는 3축(X, Y, Z)의 가속도 센서가 내장되어 있습니다. 본체를 흔들거나 기울이면 각 축의 값이 변화합니다.
- X축: 좌우의 기울기
- Y축: 앞뒤의 기울기
- Z축: 상하의 움직임(중력 방향)
흔드는 동작을 검출하려면 가속도의 변화량(특히 Z축이나 X축)에 주목합니다.
흔들림 검출에서 소리 재생까지
핸드벨을 구현하기 위한 기본적인 흐름은 다음과 같습니다.
- micro:bit에서 가속도 센서의 값을 받습니다
- 값의 변화량이 일정한 임계값을 넘으면 「흔들었다」고 판정합니다
- 흔들림을 검출하면 벨 소리의 음원 파일을 재생합니다
임계값의 조정
흔들림의 감도는 임계값으로 조정합니다. 값이 너무 작으면 조금만 움직여도 반응해 버리고, 너무 크면 세게 흔들지 않으면 반응하지 않습니다. 실제로 시험해 보면서 적당한 값을 찾읍시다.
채터링 대책
한 번 흔들었는데 여러 번 검출되는 경우에는 else/del 이나 timer 를 사용해서 일정 시간 내의 재검출을 방지하는 구조(채터링 대책)를 넣읍시다.
패치 예시

소리 센서로 강풍을 불게 하자
micro:bit의 소리 센서(마이크)를 사용해서, 숨을 불어넣는 것으로 바람 같은 노이즈 소리를 제어합니다.
소리 센서의 원리
micro:bit v2에는 마이크가 내장되어 있습니다. 마이크로 검출한 소리의 크기(음량 레벨)를 Pd로 보냄으로써, 입력의 세기에 따른 제어를 할 수 있습니다.
- 조용한 환경에서는 값이 작아집니다
- 숨을 불어넣거나 큰 소리를 내면 값이 커집니다
숨으로 노이즈를 제어하기
바람 소리는 노이즈(잡음)를 사용해서 재현할 수 있습니다. 숨의 세기에 따라 노이즈의 음량이나 필터를 변화시킴으로써, 바람이 부는 듯한 효과를 만들어 냅니다.
- micro:bit의 소리 센서에서 음량 값을 취득합니다
- 값을
noise~오브젝트의 음량에 매핑합니다 bp~(밴드패스 필터)등을 사용해서 바람다운 음색으로 가공합니다- 숨의 세기에 따라 음량과 필터의 주파수를 변화시킵니다
바람 소리를 자연스럽게 만드는 요령
- 필터의 주파수를 약간 랜덤하게 흔들면 더 자연스러운 바람 소리가 됩니다
else/lowpass를 사용해서 값의 변화를 매끄럽게 하면 급격한 음량 변화를 막을 수 있습니다
패치 예시

압력 센서로 드럼을 쳐 보자
외부 압력 센서(감압 센서)를 micro:bit에 연결해서, 치는 세기에 따른 음량으로 드럼 소리를 냅니다.
압력 센서의 연결 방법
압력 센서(FSR: Force Sensitive Resistor)를 micro:bit의 아날로그 입력 단자에 연결합니다.
- 압력 센서의 한쪽 단자를 micro:bit의 단자(예: P0)에 연결합니다
- 다른 쪽 단자를 GND에 연결합니다
- 필요에 따라 풀업 저항을 사용합니다
배선 시 주의
- 연결할 단자(P0, P1, P2 등)를 확인한 뒤에 프로그램을 만들어 주세요
- 쇼트(단락)되지 않도록 배선에 주의해 주세요
강약의 표현
압력 센서의 값은 치는 힘에 따라 변화합니다. 이 값을 음량에 매핑함으로써 강약이 있는 연주가 가능해집니다.
- micro:bit에서 압력 센서의 값을 취득합니다
- 일정한 임계값을 넘으면 「쳤다」고 판정합니다
- 압력 값을 음량(0〜1의 범위)으로 변환합니다
- 드럼 음원의 음량을 변환한 값으로 제어합니다
표현력을 높이려면
- 임계값을 넘은 순간의 값을 피크값으로 취득하면, 친 순간의 세기를 반영할 수 있습니다
- 여러 개의 압력 센서를 사용하면 킥・스네어・하이햇 등 여러 드럼 파트를 연주할 수 있습니다
패치 예시

【참고】가속도 센서로 파도를 재현해 보자
else/plate.rev.m~ 오브젝트를 사용해서, 가속도 센서의 움직임에 따른 파도 같은 리버브 효과를 만듭니다.
plate.rev.m~ 에 대해
else/plate.rev.m~ 은 플레이트 리버브를 시뮬레이션하는 오브젝트입니다. 금속판의 진동을 모방한 잔향 효과를 만들어 냅니다. 이 리버브에 가속도 센서의 값을 연동시킴으로써, 흔들림에 따라 파도 같은 음향 효과를 만들어 낼 수 있습니다.
구현의 흐름
- micro:bit의 가속도 센서(X축・Y축)의 값을 취득합니다
- 가속도 값을
else/plate.rev.m~의 파라미터(잔향 시간이나 웨트 비율 등)에 매핑합니다 - 입력 음원(노이즈나 사인파 등)에 대해 리버브를 적용합니다
- 본체를 기울이거나 흔듦으로써 파도처럼 변화하는 잔향 효과를 얻을 수 있습니다
파라미터 조정 포인트
- 잔향 시간(decay)을 가속도의 크기에 연동시키면, 흔들림이 클수록 긴 잔향이 됩니다
- 웨트/드라이의 비율을 기울기에 연동시키면, 기울기에 따라 리버브의 깊이가 바뀝니다
- 입력에 노이즈를 사용하면 바다의 파도 같은 소리가 됩니다
패치 예시

작품 제작을 향해
다음 강의부터는 지금까지 배운 기술을 결합해서 오리지널 사운드 아트 작품을 제작해 나갑니다.
다음 사항에 대해 생각해 봅시다.
- 어떤 센서를 쓰고 싶은가: 가속도, 밝기, 소리, 압력, 버튼 등
- 어떤 소리를 내고 싶은가: 악기음, 환경음, 전자음, 목소리의 가공 등
- 어떤 인터랙션으로 하고 싶은가: 흔들기, 기울이기, 치기, 숨 불어넣기, 만지기 등
- 어떤 경험을 제공하고 싶은가: 연주하는 즐거움, 환경의 변화를 느끼기, 협력해서 소리 만들기 등
아이디어 정리 방법
노트나 메모에 다음 세 가지를 써 봅시다.
- 쓰고 싶은 센서(여러 개도 OK)
- 내고 싶은 소리의 이미지(말이나 참고 음원)
- 조작 방법의 이미지(신체의 움직임)
이것들을 조합해서 나만의 전자 악기나 사운드 아트 작품의 아이디어를 생각해 보세요.