Grove - Serial MP3 Player 문의

메카 2016-10-18 (화) 17:36 3년전 410  

안녕하세요. 친절한 답변 감사합니다.


추천해주신 모듈 구매를 생각 중인데, 가지 궁금한 점이 있습니다.


1. 모듈 이미지를 보니 헤드셋 인터페이스에 이어폰이나 스피커 단자를 끼워넣을 수 있게 되있더라구요,  그럼 얇은 스피커 (Thin Speaker) 같이 + / - 이루어진 스피커는 연결이 불가한가요?ㅠㅠ

2. 상품페이지를 보니 구매옵션에 케이블이 있던데, 케이블을 구매해야지만 사용할 있는건가요?

3. 그리고 예제 코드를 참고하여 진행하게 된다면 어떤 식으로 코드를 짜게 것인지 간략하게 해보았습니다. 그런데 하다보니 이해가 안되는 부분이 있습니다. 주석을 단 부분에 대해서 혹시 간단하게 설명 해주실 있나요? 부탁드립니다.ㅠㅠ


#include <SoftwareSerial.h>


SoftwareSerial mp3(2, 3);

int button1 = 8;

int button2 = 7;

const int buttonState = 0;


void setup(){

  pinMode(8, INPUT);

  pinMode(7, INPUT);

  mp3.begin(9600); /*?*/

  Serial.begin(9600);

}


void loop(){

  SetPlayMode(0x00);

  delay(1000);


  if(digitalRead(button1) == HIGH){

    SetMusicPlay(00, 01);

    delay(1000);

    SetVolume(0x0E);

  }


  if(digitalRead(button2) == HIGH){

    SetMusicPlay(00, 02);

    delay(1000);

    SetVolume(0x0E);

  }

  while (1);/*?*/

}


//low byte highbyte 뜻하는 것인지 알려주실 있나요?

boolean SetMusicPlay(uint8_t hbyte, uint8_t lbyte){

  mp3.write(0x7E);

  mp3.write(0x04);

  mp3.write(0xA0);

  mp3.write(hbyte);

  mp3.write(lbyte);

  mp3.write(0x7E);

  delay(10);

  while (mp3.available())

  {

    if (0xA0 == mp3.read())

      return true;

    else

      return false;

  }

}


//return true return false 무슨 뜻인가요?

{

  mp3.write(0x7E);

  mp3.write(0x03);

  mp3.write(0xA7);

  mp3.write(0x30);

  mp3.write(0x7E);

  delay(10);

  while (mp3.available())

  {

    if (0xA7 == mp3.read())

      return true;

    else

      return false;

  }

}


boolean SetPlayMode(uint8_t playmode)

{

  if (((playmode == 0x00) | (playmode == 0x01) | (playmode == 0x02) | (playmode == 0x03)) == false)

  {

    Serial.println("PlayMode Parameter Error! ");

    return false;

  }

  mp3.write(0x7E);

  mp3.write(0x03);

  mp3.write(0xA9);

  mp3.write(0x01);

  mp3.write(0x7E);

  delay(10);

// 부분은 무슨 기능을 위해 들어가는 건가요 ㅠㅠ?

  while (mp3.available())

  {

    if (0xA9 == mp3.read())

      return true;

    else

      return false;

  }

}



==================================



안녕하세요 메카솔루션입니다.

1. 네 아쉽게도 소리를 출력시키기위해 출력을 올려주는 amp가 내장 된제 품이라서요 ㅠㅠ

2. 그로브 케이블 없이 연결이 가능은 하지만 케이블이 있으면 좀더 편하게 연결 하실 수 있습니다. 굳이 사실 필요는 없어요!

3. 
//low byte  highbyte -> setmeusic play 함수는 재생할 음악의 번호를 지정하는 함수입니다.
음.. 256 번째 음악을 재생하고 싶으실때, 1byte안에는 모두 저장을 할 수 없기때문에 2개의 바이트를 앞뒤로 이어줍니다. 즉 highbyte + lowbyte를 합쳐서 총 2byte로 저장을 할 수 있도록 한것입니다.

true/false -> 성공, 실패 유무를 확인하기 위함으로 알고 있습니다.

setplaymode 는 재생방식을 설정합니다. while문의 mp3.read는 mp3동작상태를 확인하기 위함입니다.

감사합니다.

담당자: yevgeny
메카리워즈 Image Map


모바일 버전으로 보기