Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Catalex del reproductor Mp3 Arduino

Componentes y suministros

Arduino UNO
× 1
Reproductor MP3 en serie de catalex
× 1
Un poco de buena música funk
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Cómo utilizar SERIAL MP3 PLAYER V1.0 de CATALEX:

  • Primero, descargue las bibliotecas como de costumbre:
  #include   
  • Ahora elegimos qué pines de Arduino se conectarán al reproductor de mp3 e inicializamos el protocolo serial.
  #define ARDUINO_RX 5 // debe conectarse a TX del módulo Serial MP3 Player #define ARDUINO_TX 6 // conectarse a RX del módulo SoftwareSerial mySerial (ARDUINO_RX, ARDUINO_TX); // iniciar el protocolo serial, indicar a mi serie cuyos pines son TX y RX  
  • Aquí acabo de traducir a #define el material de la hoja de datos:
  ////////////////////////////////////////////// //////////////////////////////////////// // todos los comandos necesarios en la hoja de datos ( http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf) static int8_t Send_buf [8] ={0}; // El reproductor MP3 entiende las órdenes en una cadena de 8 int // 0X7E FF 06 comando 00 00 00 EF; (si el comando =01 siguiente orden de canción) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 // SE REQUIEREN DATOS (número de canción) #define VOLUME_UP_ONE 0X04 #define VOLUME_DOWN_ONE_0XOLED_05 (número de volumen de 0 a 30 (0x1E)) #define SET_DAC 0X17 #define CMD_PLAY_WITHVOLUME 0X22 // Se necesitan datos 0x7E 06 22 00 xx yy EF; (xx volumen) (yy número de canción) #define CMD_SEL_DEV 0X09 // SELECCIONAR ALMACENAMIENTO DISPOSITIVO, SE REQUIEREN DATOS #define DEV_TF 0X02 // HOLA, YO SOY LOS DATOS REQUERIDOS #define SLEEP_MODE_START 0X0A #define SLEEP_MODE_WAKEUP 0X0B #define CMD_RESET 0X0C // CHIPBED_PLAY 0defineXCM0 LA REPRODUCCIÓN ESTÁ EN PAUSA #define CMD_PLAY_WITHFOLDER 0X0F // SE NECESITAN DATOS, 0x7E 06 0F 00 01 02 EF; (reproducir la canción con el directorio \ 01 \ 002xxxxxx.mp3 #define STOP_PLAY 0X16 #define PLAY_FOLDER 0X17 // Se necesitan datos 0x7E 06 17 00 01 XX EF; (reproducir la carpeta 01) (valor xx no nos importa) #define SET_CYCLEPLAY 0X19 // se necesitan datos 00 start; 01 cerrar #define SET_DAC 0X17 // se necesitan datos 00 iniciar DAC OUTPUT; 01 DAC sin salida //////////////////////////////// //////////////////////////////////////////////////// ////  
  • El chip MP3 comprende las órdenes hechas de int array [8] con este formato
  0x7E FF aa bb 00 xx yy EF  

Dónde:

  • el primero y el último int se fijan con valores 0x7E y 0xEF
  • aa es el número de versión, solo ponga 0x06;
  • bb es el comando de control real listado en el punto anterior
  • xx es el primer b int de datos
  • yy es el segundo int de datos

Y esta es la función real que construye la matriz. Solo tenemos que elegir uno de los #defined comandos y poner el valor de los datos.

  void sendCommand (comando int8_t, int16_t dat) {retraso (20); Send_buf [0] =0x7e; // byte inicial Send_buf [1] =0xff; // versión Send_buf [2] =0x06; // el número de bytes del comando sin byte inicial y byte final Send_buf [3] =comando; // Send_buf [4] =0x00; // 0x00 =sin comentarios, 0x01 =comentarios 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]); }}  

En la función de configuración, debemos seleccionar el dispositivo adecuado para TF y darle tiempo para que se establezca (magia de proceso asíncrono):

  void setup () {mySerial.begin (9600); // ¡Inicie nuestras comunicaciones en serie para nuestro monitor en serie! delay (500); // Espere a que se complete la inicialización del chip sendCommand (CMD_SEL_DEV, DEV_TF); // seleccione el retardo de la tarjeta TF (200); // espere 200ms}  

En el bucle, hice una reproducción simple de la canción etiquetada como 001:

  void loop () {sendCommand (CMD_PLAY_WITHVOLUME, 0X0F01); // reproduce la primera canción con un retraso de clase de volumen 15 (1000000); // el programa enviará la opción de reproducción cada 100 segundos al chip catalex}  

Cómo subir canciones a la tarjeta SD:

Como dicen en la hoja de datos con un inglés realmente malo:

El chip Mp3 lee el .mp3 o .wav indexadas alfabéticamente, por lo que si creamos carpetas con los nombres 01, 02. Y canciones con el nombre 001xxxxx.mp3 , 002xxxx.mp3 . Podemos estar seguros de la canción / carpeta que estamos usando.

Aquí tienes una biblioteca de sonidos gratuita.

¡FELIZ HACKING!

EXTRA:
mismo código pero usando hardware serial (tuve que hacerlo para mi placa STM32)

Código

  • PRUEBA el dispositivo
PRUEBA el dispositivo Arduino
initialice y reproduzca una canción con volumen 30
 // código reordenado por Javier Muñoz 10/11/2016 pregúnteme a [email protected]#include  #define ARDUINO_RX 5 // debe conectarse a TX del Módulo Serial MP3 Player # define ARDUINO_TX 6 // conecta a RX del móduloSoftwareSerial mySerial (ARDUINO_RX, ARDUINO_TX); // inicia el protocolo serial, indica a myserial qué pines son TX y RX /////////// //////////////////////////////////////////////////// ///////////////////////// todos los comandos necesarios en la hoja de datos (http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf) estático int8_t Send_buf [8] ={0}; // El reproductor MP3 entiende las órdenes en una cadena de 8 int // 0X7E FF 06 comando 00 00 00 EF; (si comando =01 siguiente orden de canción) #define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 // SE REQUIEREN DATOS (número de canción) #define VOLUME_UP_ONE 0X04 # define VOLUME_DOWN_ONE 0X05 # define CMD_SET_VOLUME 0X06 // SE REQUIEREN DATOS (número de volumen desde 0 hasta 30 definir SET_DAC) # define SET_DAC) CM D_PLAY_WITHVOLUME 0X22 // Se necesitan datos 0x7E 06 22 00 xx yy EF; (xx volumen) (yy número de canción) #define CMD_SEL_DEV 0X09 // SELECCIONAR DISPOSITIVO DE ALMACENAMIENTO, SE REQUIEREN DATOS #define DEV_TF 0X02 // HOLA, IMAGEN LOS DATOS REQUERIDOS #define SLEEP_MODE_START 0X0A # define SLEEP_MODE_WAKEUP 0X0B # define CMD_RESET 0X0C // CHIP RESET # define CMD_PLAY 0X0D // REANUDA REPRODUCCIÓN # define CMD_PAUSE 0X0E // REPRODUCCIÓN ESTÁ EN PAUSA # define CMDFOLD_PLAY 01 0x02; (reproduce la canción con el directorio \ 01 \ 002xxxxxx.mp3 # define STOP_PLAY 0X16 # define PLAY_FOLDER 0X17 // se necesitan datos 0x7E 06 17 00 01 XX EF; (reproduce la carpeta 01) (valor xx no nos importa) #define SET_CYCLEPLAY 0X19 // se necesitan datos 00 inicio; 01 cerrar # definir SET_DAC 0X17 // se necesitan datos 00 iniciar DAC OUTPUT; 01 DAC sin salida //////////////////////////////// //////////////////////////////////////////////////// //// void setup () {Serial.begin (9600); // Inicie nuestras comunicaciones en serie para el monitor en serie en nuestro pcmySerial.begin (9600); // Inicie nuestras comunicaciones en serie para el MP3delay (500); // Espere la inicialización del chip está completa sendCommand (CMD_SEL_DEV, DEV_TF); // selecciona el retardo de la tarjeta TF (200); // espera 200ms} void loop () {sendCommand (CMD_PLAY_WITHVOLUME, 0X0F01); // reproduce la primera canción con el volumen 15 classdelay (1000000); // el programa enviará la opción de reproducción cada 100 segundos al chip catalex} void sendCommand (int8_t command, int16_t dat) {delay (20); Send_buf [0] =0x7e; // byte inicial Send_buf [1] =0xff; // versión Send_buf [2] =0x06; // el número de bytes del comando sin byte inicial y byte final Send_buf [3] =comando; // Send_buf [4] =0x00; // 0x00 =sin comentarios, 0x01 =comentarios 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 a mp3 serial Serial.print (Send_buf [i], HEX); / / enviar bit al monitor serial en pc} Serial.println ();} 

Esquemas

En la hoja de datos podemos ver que la fuente de alimentación puede variar de 3,2 hasta 5v
con un consumo de 200mA

Proceso de manufactura

  1. Reproductor de piano
  2. Pegue estas canciones de mantenimiento en su reproductor MP3
  3. Construcción de Squid Games Doll usando Arduino UNO
  4. Arduino Spybot
  5. FlickMote
  6. Televisión casera B-Gone
  7. Reloj maestro
  8. Encuéntrame
  9. Arduino Power
  10. Reproducir audio en Arduino
  11. Arduino - Reproductor de MP3 basado en la web