2016년 10월 22일 토요일

아두이노 DF Player 모듈 사용

아두이노로 만들 프로젝트를 위해
DF Player를 사용해봤다.

알리익스프레스에서 1.3달러 정도로 구입할수 있다.

위의 모듈로 쉽게 mp3를 만들수도 있지만
이번에는 그냥 기본적인 노래를 틀고 볼륨 조절등만 해봤다.




Vcc에다가 아두이노 5v쪽에 연결하고
Rx와Tx에 각각 1K옴을 연결후 아두이노에 연결한다.
저항이 없으면 잡음이 발생한다고 한다.

SPK_1에 스피커 한쪽을 연결하고
SPK_2에 스피커 다른 한쪽을 연결한다.
그리고 당연한거지만 GND는 GND로 연결한다.

아래의 사진을 보면 좀더 쉽게 이해 될 것이다.

출처 : http://deneb21.tistory.com/418

마이크로 SD카드에 mp3라는 폴더를 만들어서
그 안에다가 노래를 넣으면 되는데

곡 앞에다가 0001, 0002, 0003과 같이
번호를 붙여야 한다.

위와 같이 그냥 앞에 번호만 부여하면 된다.


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#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);
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

play라는 함수는 이름 그대로 곡을 재생하는 함수로 곡 앞에있는 번호를 넣으면 그 번호에 해당하는 곡을 실행 시킨다.

next라는 함수는 다음 곡을 재생하는 함수이다.

prev라는 함수는 이전곡을 재생하는 함수이다.


위의 순서대로면 1번 -> 2번 -> 1번 -> 4번순으로 각각 6초 동안 재생한다.


참고로 SD카드는 FAT32로 포맷 되어져 있어야 한다.



위의 처럼 곡을 재생하는것도 상관없지만 모든곡을 순차적으로 재생 하고 싶을땐
아래의 소스코드를 이용하면 된다.


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

SoftwareSerial mySerial(10, 11);  //RX, TX

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  mp3_set_serial(mySerial);       //mp3 모듈을 위한 SoftwareSerial 설정
  delay(1);                                   //볼륨 설정을 위한 시간
  mp3_set_volume(15);              //0 ~ 30
}

void loop() {
  boolean play_state = digitalRead(3);//3번핀을 BUSY핀에 연결
 
  if(play_state == HIGH) {
    mp3_next();
  }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


mp3모듈중 BUSY라는 핀은 현재 곡이 끝났을때 HIGH신호를 내보내서

그 신호를 가지고 3번에 HIGH 신호가 들어오면
mp3_next();라는 함수를통해 다음곡을 재생 한다.



그 밖의 함수들
/* 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 ();
*/


더 자세한 내용은 아래 사이트에서 확인 하길 바란다.

수학여행



학교 수학여행으로 정동진으로 갔다.

첫날 일정중에서 첫번째로 줄을 타고
하강하는 놀이기구인 짚라인이 탔다(왼쪽에 있는 것이 짚라인 타는곳).


주변에 바다하고 군대가 있어 전투기하고 헬기가 종종 이륙했다.

사진에는 없는데 낙하산도 주변에 있었다.


건너편으로 짚라인을 타고 다시 건너편에 있는 짚라인을 타고
이쪽으로 넘어와서 2번 탔는데
생각보다 재미 있었다.


그 다음으로는 시계 박물관으로 갔다.

예전에 기차 여행으로 왔었을때에는 저런게 있는줄 몰랐다.

위의 보이는것이 해시계인데
실제로 보면 엄청 크다.

오른쪽에 약간 보이는 그림자줄로 시간을 알수있다고한다.

위의 배는 봤던 사람도 있을건데
그냥 신기해서 찍어본거다.

사실 원래 저자리가 바다 였는데 파랑의 침식과
해수면이 낮아지면서 해안단구가 생성된 지형이다.

그 다음으로 바로 옆에 있는 시간 박물관으로 갔다.

밖에서 볼때는 기차의 형태를 하고있다.
아마도 옛날에 기차로 사용했던것이
지금은 박물관으로 사용되는것 같다.



기차 중간에 가보면 위와 같이
아날로그 시계들이 굉장히 많이 보인다.




위의 시계는 인생? 을 담고 있는 시계이다.
이름은 세븐맨 이었나.

6명의 사람이 시계를 움직이고
나머지 1명은 밑에서 올라오다가 위에서 한번에 뚝 떨어진다.

이것은 올라가기 까지는 시간이 많이 걸리지만
떨어질때는 한순간 떨어진다는 의미를 가진 시계이다.



위의 시계는 특별히 그곳 관장님이 경매에서 낙찰 받으셨다고 한다.

위의 시계는 타이타닉에 있던 손님이 가지고 있었던 시계로
아주 가치있는 시계이다.















박물관 위에는 소원종 이라고 종을 울리고
소원을 말하는 종이 있다.

원래 그런것을 안믿어서
그냥 종만 흔들고 내려왔다.



힘들어서 친구가 쓰러졌다.

사실 별거 한것이 없는데 예전과 다르게 체력이
빨리 소모되는것 같다는것을 느꼈다.



박물관 주변에 있는 바다이다.

짚라인도 재밌지만
위의 파도 소리 들으면서 친구들이랑 파도 비하면서
놀았던것이 더 재미있었다.




위의 사진은 첫날 마지막으로 찍은 사진으로

바스를 타려고 갈때 우연히 하늘을 처다봤는데
석양이 예뻐서 바로 찍은 사진이다.

첫날 찍은 사진중에서는 가장 잘찍었다고 생각되는 사진이다.






둘쨌날 처음 일정은 레일 바이크였다.

위의 사진은 중간 휴개소로 중간에 쉴수있게
여러가지 먹을것들을 판다.

역시나 너무 비쌌다.


출발을 기다리는 동안
우리가 타고있던 바이크 옆에 고양이가 지나 갔다.
워낙 사람이 많이 찾아와서 그런지 쿨하게 주변은 산책하고 있다.

중간중간 동굴들이 많다.
동굴안은 심심하지 않게 예쁘게 꾸며져 있었다.



우리 보다 먼저 출발한 앞차다.

빨리 달려서 범퍼카를 경험 해보고 싶었지만
담임 선생님이 타고 있으셔서 느리게 갔다가 전력 질주를 했다가를 반복하면서 갔다.

 선로 옆 도로에 버스 정류장이 있었다.

이런곳에도 버스 정류장이 있다는게 신기해서 한번 찍어봤다.


옆에는 어제 보았던 바다로 추정되는 바다가 있었다.



여기는 동굴 끝나고 나오면 볼수 있는 곳이다.

앞에 철도건널목이 있다.

아마도 옛 기차 레일을 사용하다보니
옛날 교통상황때문에 생긴 것 같다.


지금은 바이크와 자동차가 지나갈수 있도록 되어있다.


아까 그 앞차다.

우리 선로 말고 옆의 선로는 반대 쪽으로 가는 선로이다.

초등 학생들이 반대 쪽으로 가고 있는데

속도를 보니깐 우리가 미친듯이 달렸다는것을
알수 있었다.




이곳 레일 바이크는 위의 사진처럼

주변 풍경이 대부분 나무와 바다로 이루어져 있다.

그래서인지

주변 풍경을 보기위해

분노의 질주를 찍다가도 힘들때마다
멈추거나 서행하면서 주변 풍경을 보다가도

뒷차 친구들이 오면 짜증을 듣다가 다시 분도의 질주를 찍었다.


위의 배는 바이크를 타다 보면 볼수 있는 배다.

군함 처럼 생겼는데 이런쪽은 관심 없는지라
이름은 모르겠다.


이곳은 레일 옆 숲인데

바다와 모래를보아 추측한것인데

바람으로 사빈에 있던 모래가 날라와서
이곳 사람들에게 피해가 가지 못하도록 만들어 놓은

숲인것 같다.



주변 풍경을 보기위해 멈춰섰다.

비록 전선줄이 마음에 걸리기는 하지만

레일 바이크를 타고 있었때에는 그런것 안보이고
옆의 예쁜 바다만 보였다.


덕분에 앞차는 안보이고 뒷차 친구들과 부딪히면서
앞으로 편하게 갔다.



종착역에 다왔다.

레일 바이크를 타다보면 종종

위의 사진에 나와있는 흰색의 또 다른 선로가 보이는데
저 구간에서는 자동으로 바이크가 간다

고 설명 되어 있지만 우리가 탔을때는
그런것 없었던것 갔았다.

아마 우리가 분노의 질주를 찍고 있어서
못 느낀 것이라고 생각 된다.




다음으로 추암 촛대바위로 향했다.

(참고로 위의 사진은 파노라마로 찍은것이다)


처음에는 너무 올라가서 뭐가 촛대바위인지 몰랐다.


...처음에 이런 바위들 말고는 안보였다.


그러다가 올라오다가 있었던

마치 사진 찍는곳 처럼 보이는곳에 가서
드디어 촛대바위로 보이는 것을 봤다(맞는지 모르겠다)


그가 봐도 '이건 촛대바위군'이라고 생각되는 바위가 있어
찍어 왔다.

이걸보고 사회 시간에 배운 시스택이 생각 났다.

내 생각에는 저 촛대바위도 시스택의 한 종류라고 생각 된다.