반응형

[DF Player Mini 모듈을 이용한 MP3 제어 #1] 글에서 아두이노로 어떻게 DF Player Mini 모듈을 제어하는지 기본적인 사항을 알아보았다. 이번에는 초음파 센서를 추가해서 물체가 감지될 경우 지정한 MP3 파일이 플레이 되도록 해 보겠다. 목표는 집의 현관문에 설치해서 집에 사람이 들어올 경우 좀 유치하지만 "안녕하세요. 우리집에 오신 것을 환영합니다" 라는 멘트를 녹음한 MP3 파일을 재생하는 것이다. 본 글을 따라해보기 전에 다음의 링크를 참고하면 더욱 도움이 될 것이다.

 

■ 사전 참고 글

 

DF Player Mini 모듈을 이용한 MP3 플레이어 만들기

[아두이노] DF Player Mini 모듈을 이용한 MP3 제어 #1

[아두이노] 초음파센서(HC-SR04)를 이용한 거리측정

 

먼저 나의 목소리 보다는 좀 더 나은 목소리를 녹음하기 위해 괜찮은 TTS (Text To Speech) 프로그램을 찾아 보다가 괜찮은 사이트를 발견했다. http://text-to-speech.imtranslator.net/speech.asp?dir=ko 라는 사이트인데 한글을 입력하면 그대로 읽어주는 사이트 이다. 

 

사이트에 들어가서 읽을 텍스트를 입력하고 Say it 버튼을 클릭하면 그대로 읽어준다. 이것을 oCam 프로그램을 이용하여 mp3 파일로 녹음을 하였다.

 

녹음한 mp3 파일은 '0099.mp3' 라는 파일명으로 마이크로SD 카드의 'mp3' 폴더에 복사해 주었다.

 

■ 연결

 

 

df_player_mini_sensor.fzz
다운로드

 

위와 같이 초음파 센서의 Trig 는 D9에 Echo 는 D8 에 추가 연결해 주었다. 기타 연결에 대한 궁금한  사항은 위의 사전 참고 글 중에서 [DF Player Mini 모듈을 이용한 MP3 제어 #1] 을 참고하면 된다.

 

 

 

■ 소스

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
//초음파 센서 핀설정
int trigPin = 9;
int echoPin = 8;
 
void setup () {
    Serial.begin (9600);
    mp3_set_serial (Serial);     // DFPlayer-mini mp3 module 시리얼 세팅
    delay(1);                     // 볼륨을 Setup 하기 위한 delay
    mp3_set_volume (30);          // 볼륨 0~30
 
    //초음파 센서 핀설정
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
}
void loop () {
  float duration, distance;
  digitalWrite(trigPin, HIGH);
  delay(10);
  digitalWrite(trigPin, LOW);
 
  // 장애물과의 거리계산
  duration = pulseIn(echoPin, HIGH);
  distance = ((float)(340 * duration) / 10000/ 2;
  delay(100);
  if(distance < 50//장애물이 50cm 이내일때
  {
    mp3_play(99); //안녕하세요... mp3 (0099.mp3) 파일 플레이
    delay(7000);
  }
}
cs

 

위의 소스는 장애물(사람)이 50cm 이내에 감지될 경우 0099.mp3 파일(안녕하세요. 파일)을 실행한다. 

 

https://youtu.be/yYnjZubG54Q

실행한 결과 영상이다. 손으로 실험해 보았는데 아주 잘 작동한다. 이 모듈을 조금 더 응용을 한다면 시간을 말로 알려주는 시계, 가스누출이나 화재 등 각종 위험요소 들을 센서로 감지하고 경고하는 장치 등을 만드는 것도 가능할 것 같다.

반응형
반응형

먼저 글을 시작하기 전에 이 글 부터는 예전에 글을 쓰던 방식인 반말 포스팅으로 되돌아 가려고 합니다. 존댓말로 포스팅을 하니까 글이 의도하지 않게 늘어지는 경향이 있어서 다시 예전의 방식으로 돌아가려고 합니다. ^^ 

 

이전 글에서 DF Robot 의 MP3 모듈인 DF Player Mini 에 대해서 알아보았다. 그 때에는 단순히 전원과 스위치를 연결해서 MP3 를 플레이 해 보았는데 사실 이 모듈은 아두이노와의 시리얼 통신을 통해 프로그래밍으로 제어가 가능한 모듈이다. 그러므로 아두이노 등과의 결합을 통하면 더욱 활용범위가 넓어지는 것이다. 이번에는 어떻게 DF Player Mini MP3 모듈을 아두이노로 제어할 수 있는지 알아보고자 한다.

 

DF Player Mini (이하 MP3 모듈) 이다. 각 핀의 배열은 위와 같다. 

 

각 핀의 용도는 위와 같다. 핀들 중에서 RX, TX 를 아두이노에 연결하고 시리얼통신으로 MP3 모듈을 제어를 할 수 있는 것이다.

 

먼저 간단하게 MP3 파일을 제어하는 예제를 실행해 본다. 준비물은 스피커, MP3모듈, 마이크로SD카드, 브레드보드, 연결선, 1KΩ 저항 2개, 아두이노가 필요하다. 연결은 아래와 같다.

 

■ 연결 #1

 

 

df_player_mini_basic_test.fzz
다운로드

 

위와 같이 연결을 한다. TX, RX 연결 시 중간에 반드시 1KΩ 저항을 연결해 주어야 한다. 그러지 않으면 아예 아두이노 스케치가 업로드 되지 않고 잡음이 많이 발생한다.

 

연결이 되었으면 MP3 파일이 담긴 마이크로SD카드를 준비해야 한다. 소스에서 특정 MP3 파일을 지정해서 플레이를 하려면 아래와 같이 파일의 네이밍 규칙을 맞춰서 파일을 복사해야 한다.

 

위와 같이 SD카드에 mp3 라는 폴더를 만들어주고 위와 같이 0001 ~ 9999 까지 번호를 원래의 MP3 파일명의 앞에 붙여주면 된다. 또는 번호만으로 네이밍을 해도 된다.

 

 

 

 

■ 소스 #1

소스의 실행을 위해서는 우선 MP3 모듈의 라이브러리가 설치되어 있어야 한다. 

DFPlayer_Mini_mp3.zip
다운로드

 

위의 파일을 다운로드 받아서 압축을 푼 후 아두이노 IDE 설치 폴더의 libraries 폴더에 넣어주면 된다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
 
void setup () {
    Serial.begin (9600);
    mp3_set_serial (Serial);      // DFPlayer-mini mp3 module 시리얼 세팅
    delay(1);                     // 볼륨값 적용을 위한 delay
    mp3_set_volume (30);          // 볼륨조절 값 0~30
}
 
void loop () {        
    mp3_play (1);    //0001 파일 플레이
    delay (6000);
    mp3_next ();    //0002 파일 플레이 , next
    delay (6000);
    mp3_prev ();    //0001 파일 플레이 , prev
    delay (6000);
    mp3_play (4);    //0004 파일 플레이
    delay (6000);
}
cs

 

setup() 에서 시리얼 통신 및 볼륨을 세팅해주고 loop() 에서 mp3_play (플레이할 파일 1~9999) 값을 넣어주면 해당 파일이 플레이 된다. mp3_next() 와 mp3_prev() 각각 다음곡 이전곡을 플레이 한다. 소스를 플레이하면 재생 순서는 다음과 같이 될 것이다.  6초 간격으로 0001 -> 0002 -> 0001 -> 0004 파일이 무한반복 플레이 된다.

 

https://youtu.be/LsY0PWCNsiE

실행 영상이다. 위의 mp3 파일을 넣기 전에 플레이한 영상이라서 위의 리스트와 다른 노래가 나오지만 노래만 바뀌면 같은 결과이다.

 

 

그럼 그냥 전원이 연결되었을 때 그냥 순차적으로 플레이 하려면 어떻게 해야 할까?

 

■ 연결 #2

 

 

df_player_mini_play_all.fzz
다운로드

 

연결 #1 에서 조금 변형을 해야 한다. MP3 모듈의 TX 를 아두이노의 D10에 연결하고 RX 를 D11에 연결하는 것으로 변경한다.  그리고 MP3 모듈의 BUSY 핀을 아두이노의 D3 에 연결을 추가한다.

 

■ 소스 #2

아래의 소스는 MP3 파일을 0001 부터 끝까지 모두 플레이 해 주는 소스이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
 
SoftwareSerial mySerial(1011); // RX, TX
 
void setup () {
  Serial.begin (9600);
  mySerial.begin (9600);
  mp3_set_serial (mySerial);    //set softwareSerial for DFPlayer-mini mp3 module 
  delay(1);                     // delay 1ms to set volume
  mp3_set_volume (15);          // value 0~30
}
void loop () {
  boolean play_state = digitalRead(3);// connect Pin3 to BUSY pin of player
  if(play_state == HIGH){
    mp3_next ();
  }
}
cs

 

BUSY 포트는 MP3 파일의 플레이의 플레이가 끝날 경우 아두이노에 HIGH 값을 보내준다. 그 때 mp3_next() 를 실행하여 다음곡을 플레이하는 원리이다. 실행하면 0001 ~ 9999 까지의 파일을 순차적 플레이를 반복한다.

 

아래는 MP3 모듈 라이브러리의 function 들이다. 아래의 기능만 있어도 거의 모든 mp3 플레이어의 기능을 구현 가능하다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   mp3_play ();     //start play
   mp3_play (5);    //play "mp3/0005.mp3"
   mp3_next ();     //play next 
   mp3_prev ();     //play previous
   mp3_set_volume (uint16_t volume);    //0~30
   mp3_set_EQ ();   //0~5
   mp3_pause ();
   mp3_stop ();
   void mp3_get_state ();   //send get state command
   void mp3_get_volume (); 
   void mp3_get_u_sum (); 
   void mp3_get_tf_sum (); 
   void mp3_get_flash_sum (); 
   void mp3_get_tf_current (); 
   void mp3_get_u_current (); 
   void mp3_get_flash_current (); 
   void mp3_single_loop (boolean state);    //set single loop 
   void mp3_DAC (boolean state); 
   void mp3_random_play (); 
cs

 

다음글 에서는 센서를 붙여서 테스트를 해 보려고 한다. 센서에서 값이 감지되면 해당되는 음성을 출력해 보려고 한다.

반응형
반응형

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 를 사용합니다.

 

모듈의 뒷면 입니다. 

 

■ DF Player Mini Spec.

  • supported sampling rates (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
  • 24 -bit DAC output, support for dynamic range 90dB , SNR support 85dB
  • fully supports FAT16 , FAT32 file system, maximum support 32G of the TF card, support 32G of U disk, 64M bytes NORFLASH
  • a variety of control modes, I/O control mode, serial mode, AD button control mode
  • advertising sound waiting function, the music can be suspended. when advertising is over in the music continue to play
  • audio data sorted by folder, supports up to 100 folders, every folder can hold up to 255 songs
  • 30 level adjustable volume, 6 -level EQ adjustable
  • Operation Voltage : 3.3V ~ 5V
 
요약하자면 
 
  • 다양한 샘플링 레이트를 지원하고 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, 이전 곡, 다음 곡, 볼륨 조정 등의 기능이 가능 합니다.

 

실제 연결한 모습 입니다. 브레드보드 위의 두 개의 스위치로 제어를 하게 됩니다. 스위치를 길게 누르면 볼륨 조절이 됩니다. 짧게 누르면 이전 곡, 다음 곡으로 이동 합니다.

 

 

https://youtu.be/2Vrofh5A5B4

 

동영상으로 모듈이 작동하는 모습을 찍어 보았습니다. 조그만 스피커라서 음량, 음질은 그렇게 좋지 못하지만 DAC Out 기능을 이용해서 적당한 앰프와 물려주면 꽤 괜찮은 음질을 낼 것으로 생각 됩니다. 스피커를 모듈에 바로 물리는 것은 Mono 출력만 되고 DAC Out 기능을 이용하면 Stereo 출력이 가능 합니다. 

 

이렇게 모듈에 전원과 스위치를 붙여서 MP3 플레이어로 이용할 수도 있지만 사실 이 모듈의 진가는 아두이노 등의 시리얼 통신을 지원하는 장치와 연결해서 제어할 때 제대로 가치를 발휘할 것 같습니다. 시리얼 통신을 이용하면 Command 에 따라서 수 십가지의 제어를 할 수 있기 때문 입니다. 예를 들면 좀 더 Advanced 한 MP3 플레이어, 시간을 말 또는 멜로디로 알려주는 시계, 센서의 값을 음성으로 출력하는 기능 (말하는 온도계, 습도계, 침입 탐지, 손님이 오면 안녕하세요. 라고 말하는 장치... ) 등 활용 가치가 무궁무진 합니다. 

 

앞으로 위에서 생각한 것들, 그리고 아이디어가 떠오르는 것들도 하나 하나 시간이 날 때 마다 만들어 볼 생각 입니다.

 

이상으로 미니 MP3 모듈인 DF Player Mini 모듈에 대해서 알아 보았습니다.

반응형
반응형

맥에서 아이튠즈는 기본 음악플레이어 입니다. 하지만 아이폰을 쓰지 않고 간단하게 음악파일만 재생할 목적으로는 무겁고 기능도 복잡한 아이튠즈를 쓸 필요가 없다고 봅니다.  게다가 고음질 음원인 flac, ape 등의 플레이가 되지 않습니다.  그래서 찾아보니 괜찮은 유틸이 있네요. 바로 VOX 라는 플레이어 입니다. 현재 애플 맥 앱스토어에서 무료로 다운로드가 가능하며 제작사 홈페이지에서도 다운로드가 가능합니다. 


애플 맥 앱스토어에서 vox 로 검색하면 설치가 가능 합니다.


VOX 홈페이지 ( http://coppertino.com/vox/mac ) 에서도 다운로드가 가능 합니다. dmg 파일이므로 클릭해서 응용프로그램에 드롭다운 하시면 설치가 됩니다.


응용프로그램에 VOX 아이콘이 생겼습니다.


처음 실행하게 되면 이런 설정화면이 나옵니다. 하이파이 플레이어.


음원을 보다 좋은 음질로 들을 수 있다는 설명


고해상도 오디오 코덱을 지원합니다. MP3는 물론이고 FLAC, APE, ALAC, OGG 등도 지원을 합니다. 저는 FLAC을 즐겨 듣습니다. 용량은 크지만 음질이 제일 좋은것 같습니다.


LOOP 라는 것인데 오디오 클라우드 서비스라고 보면 됩니다. 인터넷에 자신의 파일을 올려두고 어디서건 플레이 할 수 있도록 하는 것이죠. 유료 서비스 입니다. 설정하지 않으시려면 좌측 밑에 SKIP 을 눌러 줍니다.


LOOP 설정 화면 입니다.


설정이 모두 끝나면 위와 같이 아주 심플한 플레이어가 나옵니다. 


VOX 가 실행중이면 메뉴 표시줄에 이런 아이콘도 생겨서 LOOP 로 가지 않더라고 플레이어의 컨트롤이 가능합니다.


이퀄라이저 버튼을 클릭하면 이퀄라이저도 조절이 가능합니다. 취향에 맞도록 조절하는 것도 좋겠네요. 


... 모양의 펼침기능을 클릭하면 아래쪽으로 위와 같이 나타납니다. 아이콘별 기능은 위와 같습니다. 첫번째 아이콘은 플레이 리스트를 표시합니다.


두번째는 LOOP 연결 및 플레이 기능 입니다.


세번째는 큐 입니다. 다음에 실행할 파일들을 편집이 가능합니다. 네번째는 인터넷 라디오를 들을 수 있는 기능입니다. 몇 개 없는데 3000 개 이상의 라디오를 들으려면 언락을 구입 해야 합니다. 물론 스트리밍 주소를 안다면 File -> Open Stream 을 실행해서 스트리밍 주소를 넣으면 원하는 라디오 방송을 들을 수 있습니다.


다섯번째는 사운드 클라우드의 파일들을 플레이 하는 기능 입니다. 사운드 클라우드는 사운드 스트리밍 서비스 입니다. 자신이 올린 음원이나 타인이 공유한 음원을 플레이 할 수 있습니다.


APE, FLAC 파일들 모두 잘 재생이 됩니다. 



딱 제가 원하는 플레이어 입니다. 예전의 윈앰프 같은 플레이어도 생각이 나고 심플하니 사용도 간단하고 좋네요. 맥에서 고음질 파일의 플레이를 원하거나 아이튠즈가 마음에 들지 않는 분들은 다운로드 받으면 후회하지 않을 것 같습니다.

반응형
반응형

유튜브 동영상을 보다가 보면 음원만 MP3 파일로 저장하여 

스마트폰이나 MP3 플레이어 등에 넣어서 듣고 싶은 경우가 있다. 

이럴 경우 YouTube to MP3 Converter 라는 사이트를 통하여 별도의 프로그램 설치 없이 

브라우저 만으로 MP3 파일로 변환하여 다운로드 받을 수 있다.


먼저 유튜브 사이트로 이동하여 원하는 동영상을 찾는다.



유튜브 사이트에서 MP3로 다운로드 받고 싶은 동영상의 주소를 복사한다.




http://www.youtube-mp3.org/ 사이트로 이동을 하여 복사한 주소를 위와 같이 붙여넣기 한 후 

아래쪽의 Convert Video 버튼을 클릭한다.



잠시 후 위와 같이 다운로드 링크가 생긴다. Download를 클릭하면 동영상이 MP3로 변환되어 다운로드가 시작된다.




브라우저의 기본 다운로드 폴더로 MP3 파일이 다운로드 된다.




다운로드 폴더에 MP3 파일이 다운로드 되었다.




MP3 플레이어에서 정상적으로 플레이 된다.

반응형

+ Recent posts