Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Leitor Arduino Mp3 Catalex

Componentes e suprimentos

Arduino UNO
× 1
MP3 player serial da catalex
× 1
Uma boa música funk
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto







Como usar o SERIAL MP3 PLAYER V1.0 da CATALEX:

  • Primeiro, baixe as bibliotecas normalmente:
  #include   
  • Agora escolhemos quais pinos do Arduino serão anexados ao mp3 player e inicializamos o protocolo serial.
  #define ARDUINO_RX 5 // deve conectar ao TX do módulo Serial MP3 Player #define ARDUINO_TX 6 // conectar ao RX do módulo SoftwareSerial mySerial (ARDUINO_RX, ARDUINO_TX); // iniciar o protocolo serial, diga para myserial quais pinos são TX e RX  
  • Acabei de traduzir aqui para #define o material da folha de dados:
  ////////////////////////////////////////////// //////////////////////////////////////////// // todos os comandos necessários na folha de dados ( http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf) static int8_t Send_buf [8] ={0}; // O tocador de MP3 entende ordens em uma string de 8 int // 0X7E FF 06 comando 00 00 00 EF; (se o comando =01 próxima ordem de música) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 // DADOS SÃO NECESSÁRIOS (número de música) #define VOLUME_UP_ONE 0X04 #define VOLUME_DOWN_ONE 0X05 // REQUERIDO CMD_PLAY_W_INDEX 0X03 // DADOS SÃO NECESSÁRIOS (número de música) #define VOLUME_UP_ONE 0X04 #define VOLUME_DOWN_ONE 0X05 // DEFINIR número de DATAXE_DOWN_ONE 0X05 de volume de 0 a 30 (0x1E)) #define SET_DAC 0X17 #define CMD_PLAY_WITHVOLUME 0X22 // dados são necessários 0x7E 06 22 00 xx yy EF; (xx volume) (yy número da música) #define CMD_SEL_DEV 0X09 // SELECIONE ARMAZENAMENTO DISPOSITIVO, DADOS SÃO NECESSÁRIOS #define DEV_TF 0X02 // OLÁ, IM OS DADOS NECESSÁRIOS #define SLEEP_MODE_START 0X0A #define SLEEP_MODE_WAKEUP 0X0B #define CMD_RESET 0X0C // CHIP RESET #defineBD_PALAY0 // REINICIALIZAÇÃO DE CHIP # 0EFINAR CMPLAY0 // REINICIALIZAÇÃO DE CHIPD_EFINER 0 // DEFINAR CMPLAY0 // REINICIALIZAÇÃO 0 // DEFINAR CMPLAY0 // DEFINAR CMPLAY0 A REPRODUÇÃO ESTÁ PAUSADA #define CMD_PLAY_WITHFOLDER 0X0F // DADOS SÃO NECESSÁRIOS, 0x7E 06 0F 00 01 02 EF; (reproduz a música com o diretório \ 01 \ 002xxxxxx.mp3 #define STOP_PLAY 0X16 #define PLAY_FOLDER 0X17 // dados são necessários 0x7E 06 17 00 01 XX EF; (reproduz a pasta 01) (valor xx não nos importamos) #define SET_CYCLEPLAY 0X19 // dados são necessários 00 start; 01 close #define SET_DAC 0X17 // dados são necessários 00 start DAC OUTPUT; 01 DAC sem saída ////////////////////////////// //////////////////////////////////////////////////////// ////  
  • O chip MP3 entende pedidos feitos de matriz int [8] com este formato
  0x7E FF aa bb 00 xx yy EF  

Onde:
  • o primeiro e o último int são fixados com os valores 0x7E e 0xEF
  • aa é o número da versão, basta colocar 0x06;
  • bb é o comando de controle real listado no ponto anterior
  • xx é o primeiro b int de dados
  • yy é o segundo int de dados

E esta é a função real que constrói o array. Só precisamos escolher um dos #defined comandos e coloque o valor dos dados.
  void sendCommand (comando int8_t, int16_t dat) {delay (20); Send_buf [0] =0x7e; // byte inicial Send_buf [1] =0xff; // versão Send_buf [2] =0x06; // o número de bytes do comando sem iniciar o byte e finalizar o byte Send_buf [3] =comando; // Send_buf [4] =0x00; // 0x00 =sem feedback, 0x01 =feedback Send_buf [5] =(int8_t) (dat>> 8); // datah Send_buf [6] =(int8_t) (dat); // datal Send_buf [7] =0xef; // byte final para (uint8_t i =0; i <8; i ++) // {mySerial.write (Send_buf [i]); }}  

Na função de configuração, precisamos selecionar o dispositivo adequado para TF e dar-lhe tempo para se estabelecer (mágica de processo assíncrono):
  void setup () {mySerial.begin (9600); // Inicie nosso coms serial para nosso monitor serial! delay (500); // Espera que a inicialização do chip esteja completa sendCommand (CMD_SEL_DEV, DEV_TF); // selecione o atraso do cartão TF (200); // aguarde 200ms}  

No loop, fiz uma simples reprodução da música rotulada como 001:
  void loop () {sendCommand (CMD_PLAY_WITHVOLUME, 0X0F01); // tocar a primeira música com volume 15 de atraso de classe (1000000); // o programa enviará a opção de reprodução a cada 100 segundos para o chip catalex}  





Como fazer upload de músicas para o cartão SD:


Como se costuma dizer na folha de dados com um inglês muito ruim:

O chip Mp3 lê o .mp3 ou .wav indexados alfabeticamente, portanto, se criarmos pastas com os nomes 01, 02. E as músicas com o nome 001xxxxx.mp3 , 002xxxx.mp3 . Podemos ter certeza sobre a música / pasta que estamos usando.

Aqui você tem uma biblioteca de som gratuita.

HAPPY HACKING!



EXTRA:
mesmo código, mas usando serial de hardware (eu tive que fazer para minha placa STM32)

Código

  • TESTE o dispositivo
TESTE o dispositivo Arduino
inicialize e reproduza uma música com o volume 30
 // código reorganizado por Javier Muñoz 11/10/2016 pergunte-me em [email protected]#include  #define ARDUINO_RX 5 // deve se conectar ao TX do Módulo Serial MP3 Player # define ARDUINO_TX 6 // conectar ao RX do móduloSoftwareSerial mySerial (ARDUINO_RX, ARDUINO_TX); // iniciar o protocolo serial, informar ao myserial quais pinos são TX e RX /////////// //////////////////////////////////////////////////////// ///////////////////////////// Todos os comandos necessários na folha de dados (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf) static int8_t Send_buf [8] ={0}; // O tocador de MP3 entende as ordens em uma string de 8 int // 0X7E FF 06 comando 00 00 00 EF; (se o comando =01 próxima ordem de música) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 // DADOS SÃO NECESSÁRIOS (número da música) #define VOLUME_UP_ONE 0X04 # define VOLUME_DOWN_ONE 0X05 # define CMD_SET_VOLUME 0X06 // DADOS SÃO NECESSÁRIOS (número de volume de 0 a 30 SET_DAC # define 0X1E) CM D_PLAY_WITHVOLUME 0X22 // os dados são necessários 0x7E 06 22 00 xx yy EF; (xx volume) (yy número da música) #define CMD_SEL_DEV 0X09 // SELECIONE O DISPOSITIVO DE ARMAZENAMENTO, OS DADOS SÃO NECESSÁRIOS #define DEV_TF 0X02 // OLÁ, IM OS DADOS NECESSÁRIOS #define SLEEP_MODE_START 0X0A # define SLEEP_MODE_WAKEUP 0X0B # define CMD_RESET 0X0C // CHIP RESET # define CMD_PLAY 0X0D // RETOMA REPRODUZIR # define CMD_PAUSE 0X0E // PLAYBACK ESTÁ PAUSADO # define CMD_PLAY 0X0D 0X0D // RETOMAR REPRODUÇÃO # define CMD_PAUSE 0X0E // A REPRODUÇÃO ESTÁ PAUSADA # define CMD_PLAY 0X0 0X0D 0X0D // RETOMAR REPRODUÇÃO # define CMD_PAUSE 0X0E // A REPRODUÇÃO ESTÁ PAUSADA # define CMD_PLAY 0X06 01 0xEFOLD 0; (toca a música com o diretório \ 01 \ 002xxxxxx.mp3 # define STOP_PLAY 0X16 # define PLAY_FOLDER 0X17 // os dados são necessários 0x7E 06 17 00 01 XX EF; (toca a pasta 01) (valor xx não nos importamos) #define SET_CYCLEPLAY 0X19 // dados são necessários 00 start; 01 close # define SET_DAC 0X17 // dados são necessários 00 start DAC OUTPUT; 01 DAC sem saída //////////////////////////////// //////////////////////////////////////////////////////// //// void setup () {Serial.begin (9600); // Iniciar nossas comunicações seriais para monitor serial em nosso pcmySerial.begin (9600); // Iniciar nossas comunicações seriais para o MP3delay (500); // Aguarde a inicialização do chip está completa sendCommand (CMD_SEL_DEV, DEV_TF); // selecione o atraso do cartão TF (200); // aguarde 200ms} void loop () {sendCommand (CMD_PLAY_WITHVOLUME, 0X0F01); // reproduz a primeira música com atraso de classe de volume 15 (1000000); // o programa enviará a opção de reprodução a cada 100 segundos para o chip catalex} void sendCommand (comando int8_t, int16_t dat) {delay (20); Send_buf [0] =0x7e; // byte inicial Send_buf [1] =0xff; // versão Send_buf [2] =0x06; // o número de bytes do comando sem iniciar o byte e finalizar o byte Send_buf [3] =comando; // Send_buf [4] =0x00; // 0x00 =sem feedback, 0x01 =feedback Send_buf [5] =(int8_t) (dat>> 8); // datah Send_buf [6] =(int8_t) (dat); // datal Send_buf [7] =0xef; // byte final para (uint8_t i =0; i <8; i ++) // {mySerial.write (Send_buf [i]); // enviar bit para serial mp3 Serial.print (Send_buf [i], HEX); / / enviar bit para monitor serial em pc} Serial.println ();} 

Esquemas

Na ficha técnica podemos ver que a fonte de alimentação pode variar de 3,2 a 5v
com um consumo de 200mA

Processo de manufatura

  1. Piano Player
  2. Cole essas músicas de manutenção em seu MP3 player
  3. Compilação de boneca Squid Games usando Arduino UNO
  4. Arduino Spybot
  5. FlickMote
  6. TV B-Gone caseiro
  7. Relógio mestre
  8. Encontre-me
  9. Arduino Power
  10. Tocar áudio no Arduino