제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
CATALEX의 SERIAL MP3 PLAYER V1.0 사용 방법: <울>
#include
<울> #define ARDUINO_RX 5//직렬 MP3 플레이어 모듈의 TX에 연결해야 합니다. #define ARDUINO_TX 6//모듈의 RX에 연결 SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//직렬 프로토콜을 초기화하고 알려주십시오. 핀이 TX 및 RX인 myserial에
<울> #define
으로 번역했습니다. 데이터시트의 내용:0x7E FF aa bb 00 xx yy EF
어디에:
<울>아아
버전 번호입니다. 0x06을 입력하세요.bb
이전 항목에 나열된 실제 제어 명령입니다.xx
데이터의 첫 번째 b int입니다.yy
데이터의 두 번째 정수입니다.
그리고 이것은 배열을 만드는 실제 함수입니다. #defined
중 하나를 선택하기만 하면 됩니다. 명령어를 입력하고 데이터 값을 입력합니다.
설정 기능에서 TF에 적합한 장치를 선택하고 정착할 시간을 주어야 합니다(비동기 프로세스 마술).
void setup() { mySerial.begin(9600);//직렬 모니터용 직렬 통신을 시작합니다! delay(500);//칩 초기화가 완료되기를 기다립니다. sendCommand(CMD_SEL_DEV, DEV_TF);//TF 카드를 선택합니다. delay(200);//200ms 동안 기다립니다. }
루프에서 001이라고 표시된 노래를 간단히 재생했습니다.
void loop() { sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01);//볼륨 15 클래스 지연(1000000)으로 첫 번째 노래 재생;//프로그램은 100초마다 재생 옵션을 catalex 칩으로 보냅니다. } 코드>
SD 카드에 노래를 업로드하는 방법:
데이터 시트에서 정말 나쁜 영어로 말했듯이:
Mp3 칩은 .mp3
를 읽습니다. 또는 .wav
알파벳순으로 인덱싱되므로 이름이 01, 02인 폴더를 생성하면 이름이 001xxxxx.mp3
인 노래 , 002xxxx.mp3
. 우리는 우리가 사용하고 있는 노래/폴더에 대해 확신할 수 있습니다.
여기에 무료 사운드 라이브러리가 있습니다.
해킹을 즐기세요!
추가:
동일한 코드이지만 하드웨어 직렬을 사용합니다(내 STM32 보드에 대해 수행해야 함)
//code로 한 곡을 재생합니다. [email protected]#include로 문의하세요. Serial MP3 Player module#define ARDUINO_TX 6//모듈의 RX에 연결SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);//직렬 프로토콜을 초기화하고 myserial에 핀이 TX와 RX임을 알려줍니다//////////// ////////////////////////////////////////////////////// ////////////////////////데이터시트에 필요한 모든 명령(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf[8] ={0};//MP3 플레이어는 8 int 문자열의 순서를 이해하지 않습니다. //0X7E FF 06 command 00 00 00 EF;(if command =01 다음 노래 순서) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //DATA IS REQUIRED(곡 수)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD_SET_VOLUME 0X06//DATA IS REQUIRED(볼륨 수 0x1 E 30)#0define 센티미터 D_PLAY_WITHVOLUME 0X22 //데이터가 필요합니다 0x7E 06 22 00 xx yy EF;(xx 볼륨)(yy 노래 수)#define CMD_SEL_DEV 0X09 //SELECT STORAGE DEVICE, DATA IS REQUIRED #define DEV_TF DATA 0,RED 0,002 //HEL #define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_RESET 0X0C//CHIP RESET#define CMD_PLAY 0X0D //RESUME PLAYBACK#define CMD_PAUSE 0X0E//PLAYBACK IS PAUSED_WITHFF/PLAY;(\01\002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17// 데이터가 필요한 디렉토리로 노래를 재생합니다. 0x7E 06 17 00 01 XX EF;(01 폴더 재생)(값 xx는 상관 없음)#define SET_CYCLEPLAY 0X19//데이터가 필요합니다 00 시작; 01 닫기#define SET_DAC 0X17//데이터가 필요함 00 DAC OUTPUT 시작;01 DAC 출력 없음///////////////////////////// ////////////////////////////////////////////////////// ////void setup(){ Serial.begin(9600);//pcmySerial.begin(9600)에서 직렬 모니터용 직렬 통신 시작;//MP3delay(500)용 직렬 통신 시작;//Wait 칩 초기화가 완료되었습니다. sendCommand(CMD_SEL_DEV, DEV_TF);//TF 카드 지연 선택(200);//200ms 대기} 무효 루프(){sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01);//15권 classdelay로 첫 번째 노래 재생 (1000000);//프로그램은 100초마다 재생 옵션을 카탈렉스 칩으로 보냅니다.}void sendCommand(int8_t command, int16_t dat){ delay(20); Send_buf[0] =0x7e; //시작 바이트 Send_buf[1] =0xff; //버전 Send_buf[2] =0x06; //시작 바이트와 끝 바이트가 없는 명령의 바이트 수 Send_buf[3] =command; // Send_buf[4] =0x00;//0x00 =피드백 없음, 0x01 =피드백 Send_buf[5] =(int8_t)(dat>> 8);//datah Send_buf[6] =(int8_t)(dat); //데이터 Send_buf[7] =0xef; // 종료 바이트 for(uint8_t i=0; i<8; i++)// { mySerial.write(Send_buf[i]);//시리얼 mp3로 비트 전송 Serial.print(Send_buf[i],HEX);/ /PC의 시리얼 모니터로 비트 전송 } Serial.println();}섹션>
제조공정
이 프로젝트에서는 Arduino 터치 스크린 MP3 음악 플레이어와 알람 시계를 만드는 방법을 보여 드리겠습니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 홈 화면에는 큰 시계, 날짜 및 온도 정보, 뮤직 플레이어 및 알람 시계용 버튼 2개가 있습니다. 뮤직 플레이어에 들어가면 화면 중앙에 있는 큰 재생 버튼을 눌러 음악 재생을 시작할 수 있습니다. 바로 옆에는 이전 또는 다음 곡을 재생할 수 있는 두 개의 버튼이 더 있습니다. 이 버튼 위에는 노래 진행률 표시줄이 있고 화면 하단에는 볼
Arduino 직렬:Arduino를 통한 직렬 통신 직렬 통신의 배경: 마이크로 컨트롤러 또는 마이크로 프로세서가 외부 세계와 통신해야 할 때 데이터를 8비트 패킷 형태로 제공하므로 한 시스템이 다른 시스템과 통신해야 하는 경우 총 8선 케이블이 사용되며 항상 그런 것은 아닙니다. 장거리 여행 시 신호가 왜곡되기 때문에 실용적인 솔루션입니다. 그것은 또한 8선 묶음의 높은 비용 때문에 비싸다 이 프로토콜은 새로운 프로토콜의 필요성이 각성된 이후에 병렬 통신으로 명명되었으며 설계자는 직렬 프로토콜로 명명된 새로운 프로토콜을 도입하여