라즈베리 파이 피코 미니 MP3 플레이어
이 튜토리얼은 Raspberry Pi Pico와 미니 MP3 플레이어 모듈을 사용하여 MP3 파일을 재생하는 방법을 안내합니다. 다루는 내용:
- 미니 MP3 플레이어 모듈을 Raspberry Pi Pico에 연결하는 방법
- MP3 파일을 재생하도록 Raspberry Pi Pico를 프로그래밍하는 방법
- 볼륨 제어, 다음/이전 트랙, 반복 재생 방법
- 여러 트랙 재생 방법
필요한 하드웨어
| 1 | × | Raspberry Pi Pico W | 쿠팡 | 아마존 | |
| 1 | × | Raspberry Pi Pico (alternative) | 쿠팡 | 아마존 | |
| 1 | × | 마이크로 USB 케이블 | 아마존 | |
| 1 | × | DIYables Mini Mp3 Player module | 아마존 | |
| 1 | × | 마이크로 SD 카드 | 아마존 | |
| 1 | × | Speaker | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 라즈베리 파이 피코용 스크루 터미널 확장 보드 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
미니 MP3 플레이어 모듈에 대하여
핀아웃
미니 MP3 플레이어 모듈에는 다음 핀이 있습니다:
- VCC 핀: 전원 공급 핀(3.3V~5V)
- GND 핀: 접지 핀
- RX 핀: UART 직렬 수신 핀
- TX 핀: UART 직렬 송신 핀
- SPK_1 핀: 스피커 양극 핀
- SPK_2 핀: 스피커 음극 핀

image source: diyables.io
SD 카드 파일 준비
SD 카드를 포맷하고 MP3 파일을 올바른 위치에 저장합니다:
- SD 카드를 FAT16 또는 FAT32로 포맷합니다.
- 루트에 파일 직접 저장: /001.mp3 형식으로 파일 이름을 지정합니다.
- 폴더에 저장: /01/001.mp3 형식을 사용합니다. 폴더는 01~99, 파일은 001~255입니다.
작동 원리
미니 MP3 플레이어 모듈은 UART 직렬 통신을 통해 명령을 받습니다. Raspberry Pi Pico는 DIYables-MicroPython-MiniMp3 라이브러리를 사용하여 UART를 통해 명령을 전송하며, 모듈이 SD 카드에서 MP3 파일을 재생합니다.
배선도
미니 MP3 플레이어 모듈을 Raspberry Pi Pico에 연결합니다.
| Mini MP3 Player | Raspberry Pi Pico |
|---|---|
| VCC | 3V3(OUT) |
| GND | GND |
| RX | GPIO4 (TX - UART1) |
| TX | GPIO5 (RX - UART1) |
| SPK_1 | 스피커 양극 |
| SPK_2 | 스피커 음극 |

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
참고:
- 모듈의 VCC를 Raspberry Pi Pico의 3V3(OUT) 핀에 연결합니다 — 모듈이 3.3V 로직과 호환되므로 별도의 저항이 필요하지 않습니다.
라이브러리 설치 방법
- Thonny IDE를 엽니다. 인터프리터를 MicroPython (Raspberry Pi Pico)로 설정합니다.
- Pico가 연결되어 있는지 확인합니다.
- Tools > Manage packages...를 클릭합니다.
- 검색창에 "DIYables-MicroPython-MiniMp3"를 입력하고 Search on PyPI를 클릭합니다.
- 목록에서 DIYables-MicroPython-MiniMp3를 선택합니다.
- Install을 클릭합니다.
- 설치가 완료될 때까지 기다립니다.
Raspberry Pi Pico 코드 - MP3 재생
빠른 시작
- 배선도에 따라 Raspberry Pi Pico에 부품을 배선합니다.
- Micro USB 케이블을 사용하여 Raspberry Pi Pico를 컴퓨터에 연결합니다.
- Thonny IDE를 열고 인터프리터를 MicroPython (Raspberry Pi Pico)로 설정합니다.
- 아래 코드를 Thonny IDE에 복사합니다.
/*
* 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다
* 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-mini-mp3-player-module
*/
"""
* DIYables MicroPython Mini Mp3 Player - Play One Track
*
* This example plays one track once then stops.
*
* Product: DIYables Mini Mp3 Player Module
* https://diyables.io/products/mini-mp3-player-module
*
* Wiring (Raspberry Pi Pico):
* Mini Mp3 RX -> Pico TX (GPIO4)
* Mini Mp3 TX -> Pico RX (GPIO5)
* Mini Mp3 VCC -> 3.3V
* Mini Mp3 GND -> GND
* Speaker connected to SPK_1 and SPK_2 pins
* SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, etc.
"""
from machine import UART
import time
from DIYables_MicroPython_MiniMp3 import MiniMp3Player
uart = UART(1, baudrate=9600, tx=4, rx=5)
mp3 = MiniMp3Player(uart)
time.sleep(1) # Wait for the module to initialize
mp3.set_volume(25) # Set volume (0 to 30)
print("Playing track 1...")
mp3.play(1) # Play track 001.mp3
- 코드를 Raspberry Pi Pico에 업로드합니다.
- SD 카드에 MP3 파일이 있는지 확인합니다.
- 스피커에서 MP3 파일이 재생되는 소리를 들어보세요.
재생 제어
다양한 재생 명령을 사용하여 MP3 재생을 제어합니다:
| 함수 | 설명 | 사용 예 |
|---|---|---|
| mp3.play(1) | 번호로 트랙 재생 | mp3.play(1) - 트랙 001 재생 |
| mp3.play_next() | 다음 트랙 재생 | mp3.play_next() |
| mp3.play_previous() | 이전 트랙 재생 | mp3.play_previous() |
| mp3.pause() | 재생 일시 정지 | mp3.pause() |
| mp3.resume() | 일시 정지된 재생 재개 | mp3.resume() |
| mp3.stop() | 재생 중지 | mp3.stop() |
| mp3.set_volume(20) | 볼륨 설정(0-30) | mp3.set_volume(20) |
| mp3.loop_all() | 모든 트랙 반복 재생 | mp3.loop_all() |
| mp3.loop(1) | 트랙 하나만 반복 재생 | mp3.loop(1) |
Raspberry Pi Pico 코드 - 여러 트랙 재생
/*
* 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다
* 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-mini-mp3-player-module
*/
"""
* DIYables MicroPython Mini Mp3 Player - Play Multiple Tracks
*
* This example plays tracks one after another with a delay between them.
*
* Product: DIYables Mini Mp3 Player Module
* https://diyables.io/products/mini-mp3-player-module
*
* Wiring (Raspberry Pi Pico):
* Mini Mp3 RX -> Pico TX (GPIO4)
* Mini Mp3 TX -> Pico RX (GPIO5)
* Mini Mp3 VCC -> 3.3V
* Mini Mp3 GND -> GND
* Speaker connected to SPK_1 and SPK_2 pins
* SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, 003.mp3
"""
from machine import UART
import time
from DIYables_MicroPython_MiniMp3 import MiniMp3Player
uart = UART(1, baudrate=9600, tx=4, rx=5)
mp3 = MiniMp3Player(uart)
time.sleep(1) # Wait for the module to initialize
current_track = 1
total_tracks = 3 # Change this to match your SD card
track_duration = 5000 # Wait 5 seconds between tracks (adjust as needed)
mp3.set_volume(20)
print("Playing track 1...")
mp3.play(current_track)
last_track_time = time.ticks_ms()
while True:
if time.ticks_diff(time.ticks_ms(), last_track_time) >= track_duration:
current_track += 1
if current_track > total_tracks:
current_track = 1 # Loop back to first track
print("Playing track", current_track)
mp3.play(current_track)
last_track_time = time.ticks_ms()
빠른 시작
- 위와 같이 코드를 업로드합니다.
- SD 카드에 여러 MP3 파일이 있는지 확인합니다.
- 여러 트랙이 순서대로 재생되는 소리를 들어보세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.