[DF Player Mini 모듈을 이용한 MP3 제어 #1] 글에서 아두이노로 어떻게DF Player Mini 모듈을 제어하는지 기본적인 사항을 알아보았다. 이번에는 초음파 센서를 추가해서 물체가 감지될 경우 지정한 MP3 파일이 플레이 되도록 해 보겠다. 목표는 집의 현관문에 설치해서 집에 사람이 들어올 경우 좀 유치하지만 "안녕하세요. 우리집에 오신 것을 환영합니다" 라는 멘트를 녹음한 MP3 파일을 재생하는 것이다. 본 글을 따라해보기 전에 다음의 링크를 참고하면 더욱 도움이 될 것이다.
먼저 글을 시작하기 전에 이 글 부터는 예전에 글을 쓰던 방식인 반말 포스팅으로 되돌아 가려고 합니다. 존댓말로 포스팅을 하니까 글이 의도하지 않게 늘어지는 경향이 있어서 다시 예전의 방식으로 돌아가려고 합니다. ^^
이전 글에서 DF Robot 의 MP3 모듈인 DF Player Mini 에 대해서 알아보았다. 그 때에는 단순히 전원과 스위치를 연결해서 MP3 를 플레이 해 보았는데 사실 이 모듈은 아두이노와의 시리얼 통신을 통해 프로그래밍으로 제어가 가능한 모듈이다. 그러므로 아두이노 등과의 결합을 통하면 더욱 활용범위가 넓어지는 것이다. 이번에는 어떻게 DF Player Mini MP3 모듈을 아두이노로 제어할 수 있는지 알아보고자 한다.
DF Player Mini (이하 MP3 모듈) 이다. 각 핀의 배열은 위와 같다.
각 핀의 용도는 위와 같다. 핀들 중에서 RX, TX 를 아두이노에 연결하고 시리얼통신으로 MP3 모듈을 제어를 할 수 있는 것이다.
먼저 간단하게 MP3 파일을 제어하는 예제를 실행해 본다. 준비물은 스피커, MP3모듈, 마이크로SD카드, 브레드보드, 연결선, 1KΩ 저항 2개, 아두이노가 필요하다. 연결은 아래와 같다.
setup() 에서 시리얼 통신 및 볼륨을 세팅해주고 loop() 에서 mp3_play (플레이할 파일 1~9999) 값을 넣어주면 해당 파일이 플레이 된다. mp3_next() 와 mp3_prev() 각각 다음곡 이전곡을 플레이 한다. 소스를 플레이하면 재생 순서는 다음과 같이 될 것이다. 6초 간격으로 0001 -> 0002 -> 0001 -> 0004 파일이 무한반복 플레이 된다.
DF Player Mini 모듈은 DF Robot사에서 만든 MP3 플레이어 모듈 입니다. 간단한 회로구성으로 MP3 플레이어를 만들 수 있습니다. 게다가 2달러(한국까지 무료배송) 정도면 직구가 가능해서 저렴하게 MP3 플레이어를 구현해 볼 수 있습니다. 이 글에서는 이 모듈을 사용해서 MP3 플레이어를 만들어 보겠습니다. 모듈 외에 택트 스위치(Tactile Switch) 2개, 32GB 이하의 마이크로SD 카드, 스피커, 브레드보드, 5V 전원, 듀퐁전선 등이 필요 합니다.
핀배열은 위와 같습니다. MP3플레이어 본연의 기능 이외에 시리얼 통신 기능인 RX, TX 가 있어서 아두이노 등 RX, TX 신호를 보낼 수 있는 디바이스와 연결해서 제어가 가능합니다. 각 Pin 의 기능은 아래의 표와 같습니다.
DF Player Mini Pin Out - http://www.dfrobot.com/
이 글에서는 위의 Pin 중에서 VCC(5V), GND, SPK1, SPK2, IO1, IO2 를 사용합니다.
다양한 샘플링 레이트를 지원하고 24 Bit DAC Output 을 지원해서 앰프에 연결하면 고음질의 음악을 들을 수 있습니다.
SD 카드는 최대 32GB 까지 지원하며 FAT16, FAT32 파일 시스템을 지원 합니다.
다양한 제어환경을 지원 합니다. 시리얼 통신, AD Key, 스위치 등을 이용하여 모듈을 제어할 수 있습니다.
100개의 폴더를 지원하고, 각 폴더에는 255곡의 MP3를 담을 수 있습니다.
30단계의 볼륨, 6단계의 Equalizer 를 지원 합니다.
동작 전원은 3.3V ~ 5V를 지원 합니다.
■ 회로도
DF Player Mini I/O Circuit - http://www.dfrobot.com/
위와 같이 연결 하였습니다. 위의 회로에서 ADKEY1, ADKEY2에 연결되는 Segment 1, Segment 5 의 스위치는 연결하지 않았습니다. IO1, IO2 만 연결해 주었습니다. 아래의 두 개의 스위치만 연결해도 전원 ON, 이전 곡, 다음 곡, 볼륨 조정 등의 기능이 가능 합니다.
실제 연결한 모습 입니다. 브레드보드 위의 두 개의 스위치로 제어를 하게 됩니다. 스위치를 길게 누르면 볼륨 조절이 됩니다. 짧게 누르면 이전 곡, 다음 곡으로 이동 합니다.
동영상으로 모듈이 작동하는 모습을 찍어 보았습니다. 조그만 스피커라서 음량, 음질은 그렇게 좋지 못하지만 DAC Out 기능을 이용해서 적당한 앰프와 물려주면 꽤 괜찮은 음질을 낼 것으로 생각 됩니다. 스피커를 모듈에 바로 물리는 것은 Mono 출력만 되고 DAC Out 기능을 이용하면 Stereo 출력이 가능 합니다.
이렇게 모듈에 전원과 스위치를 붙여서 MP3 플레이어로 이용할 수도 있지만 사실 이 모듈의 진가는 아두이노 등의 시리얼 통신을 지원하는 장치와 연결해서 제어할 때 제대로 가치를 발휘할 것 같습니다. 시리얼 통신을 이용하면 Command 에 따라서 수 십가지의 제어를 할 수 있기 때문 입니다. 예를 들면 좀 더 Advanced 한 MP3 플레이어, 시간을 말 또는 멜로디로 알려주는 시계, 센서의 값을 음성으로 출력하는 기능 (말하는 온도계, 습도계, 침입 탐지, 손님이 오면 안녕하세요. 라고 말하는 장치... ) 등 활용 가치가 무궁무진 합니다.
앞으로 위에서 생각한 것들, 그리고 아이디어가 떠오르는 것들도 하나 하나 시간이 날 때 마다 만들어 볼 생각 입니다.
맥에서 아이튠즈는 기본 음악플레이어 입니다. 하지만 아이폰을 쓰지 않고 간단하게 음악파일만 재생할 목적으로는 무겁고 기능도 복잡한 아이튠즈를 쓸 필요가 없다고 봅니다. 게다가 고음질 음원인 flac, ape 등의 플레이가 되지 않습니다. 그래서 찾아보니 괜찮은 유틸이 있네요. 바로 VOX 라는 플레이어 입니다. 현재 애플 맥 앱스토어에서 무료로 다운로드가 가능하며 제작사 홈페이지에서도 다운로드가 가능합니다.
고해상도 오디오 코덱을 지원합니다. MP3는 물론이고 FLAC, APE, ALAC, OGG 등도 지원을 합니다. 저는 FLAC을 즐겨 듣습니다. 용량은 크지만 음질이 제일 좋은것 같습니다.
LOOP 라는 것인데 오디오 클라우드 서비스라고 보면 됩니다. 인터넷에 자신의 파일을 올려두고 어디서건 플레이 할 수 있도록 하는 것이죠. 유료 서비스 입니다. 설정하지 않으시려면 좌측 밑에 SKIP 을 눌러 줍니다.
LOOP 설정 화면 입니다.
설정이 모두 끝나면 위와 같이 아주 심플한 플레이어가 나옵니다.
VOX 가 실행중이면 메뉴 표시줄에 이런 아이콘도 생겨서 LOOP 로 가지 않더라고 플레이어의 컨트롤이 가능합니다.
이퀄라이저 버튼을 클릭하면 이퀄라이저도 조절이 가능합니다. 취향에 맞도록 조절하는 것도 좋겠네요.
... 모양의 펼침기능을 클릭하면 아래쪽으로 위와 같이 나타납니다. 아이콘별 기능은 위와 같습니다. 첫번째 아이콘은 플레이 리스트를 표시합니다.
두번째는 LOOP 연결 및 플레이 기능 입니다.
세번째는 큐 입니다. 다음에 실행할 파일들을 편집이 가능합니다. 네번째는 인터넷 라디오를 들을 수 있는 기능입니다. 몇 개 없는데 3000 개 이상의 라디오를 들으려면 언락을 구입 해야 합니다. 물론 스트리밍 주소를 안다면 File -> Open Stream 을 실행해서 스트리밍 주소를 넣으면 원하는 라디오 방송을 들을 수 있습니다.
다섯번째는 사운드 클라우드의 파일들을 플레이 하는 기능 입니다. 사운드 클라우드는 사운드 스트리밍 서비스 입니다. 자신이 올린 음원이나 타인이 공유한 음원을 플레이 할 수 있습니다.
APE, FLAC 파일들 모두 잘 재생이 됩니다.
딱 제가 원하는 플레이어 입니다. 예전의 윈앰프 같은 플레이어도 생각이 나고 심플하니 사용도 간단하고 좋네요. 맥에서 고음질 파일의 플레이를 원하거나 아이튠즈가 마음에 들지 않는 분들은 다운로드 받으면 후회하지 않을 것 같습니다.