Arduino MP3 Shield: 5 pasos

Arduino MP3 Shield: 5 pasos

Tabla de contenido:

Anonim

Hola, hoy quisiera compartir mi experimento con MP3 Shield de ELECHOUSE, este escudo tiene teclas internas que pueden controlar el archivo de audio muy fácilmente, soporta FAT16 y FAT32, y puede leer MP3, formato WAV desde la tarjeta SD, disco U, y desde la memoria Flash incorporada en SPI, que le brinda la posibilidad de guardar su archivo de audio en la pizarra y reproducirlo más tarde, por lo que no necesita un dispositivo de almacenamiento externo.

como mencioné anteriormente, este escudo tiene teclas internas para controlar el archivo de audio, y usted puede controlar el archivo de audio mediante la programación desde Arduino. Puede programar su audio cuando comience, cambiar de archivo y controlar el volumen hacia arriba y hacia abajo muy fácilmente.

Quiero mostrarle cómo podemos reproducir audio desde la tarjeta SD y el disco U.

El componente que necesitamos es:

1) Tablero Arduino.

2) Arduino USB-SD MP3 Shield de Elechusa Puedes comprarlo de aquí.

3) Tarjeta SD con adaptador. O USB Flash.

4) Altavoces o auriculares.

Suministros:

Paso 1: Arduino MP3 Shield

El Arduino MP3 Shield tiene muchas ventajas, como la interfaz Control by Serial UART o las teclas integradas, tiene un amplificador de audio incorporado de 3W, y tiene SPI-FLASH incorporado de 64MBit, que puede guardar su archivo de audio y reproducirlo más tarde.

Este escudo se puede controlar desde Arduino por el hardware serie "Rx D0, Tx D1" y por el software serie "RX D7, Tx D8". Al principio, puede usar el hardware serie, fácil de usar, pero debe quitar el escudo cuando desee cargar. nuevo boceto.

Puede cambiar el pin de la interfaz en serie por las herramientas de soldadura. Simplemente retire la soldadura de los pads Upper 2 y suelde un pequeño puente entre los 2 pads a continuación al Pin serial del software activo. Mira la imagen adjunta para ver estos 3 pads.

También puede conectar el puente de control del amplificador de puente para que pueda activarlo o desactivarlo soldando el pin de control del amplificador, por lo que este pin unido al pin de arduino D9 no lo usé en este experimento

También puede soldar el encabezado del Pin en este escudo "Mire la imagen" para que pueda conectar los altavoces a este escudo

Paso 2: Prepare su archivo de audio

Puede reproducir 2 formatos de archivo de audio, MP3 y WAV. Antes de poder reproducir su archivo de audio en este escudo, debe:

1) Copie su archivo de audio a la tarjeta SD o al dispositivo de almacenamiento en U-disk.

2) Agregue el prefijo 0000 ~ 9999 a los nombres de archivos como 0000-Mi musica.mp3 Así que el escudo trata con el número de archivos, no con nombres.

3) inserte el dispositivo de almacenamiento en el protector, enciéndalo.

Así que vamos a ver cómo podemos controlar el archivo de audio.

Paso 3: Reproduce el archivo de audio

Lo que nunca si está modificando este escudo para controlarlo a través de la serie de software o dejarlo como serie de hardware, solo necesita cargar el siguiente boceto a su arduino, en este paso puede controlar el archivo de audio, reproducir, pausar, subir volumen y hacia abajo, y ponga el escudo en modo de reposo, a través del botón a bordo.

Este código para reproducir en la tarjeta SD, puede cambiarlo para reproducir U Disk, lea el código a continuación.

Sube este código si estás usando una serie de software:

//………………………………………………………………………………….

// Escrito por: Mohannad Rawashdeh

// este código para MP3 Shield Elechosue

// Interfaz serial del software

// Para el producto:

//http://www.instructables.com/member/Mohannad+Rawashdeh/

#incluir

SoftwareSerial Geno (7,8); // Rx, Tx

unsigned char cmd_buf 10;

Carácter sin firmar;

void ArduinoMP3Shield_SendCMD (unsigned char * cmd_buf, len unsigned)

{

sin firmar i;

para (i = 0; i

Geno.write (cmd_buf i);

}

}

configuración del vacío (vacío)

{

/ ** esperar hasta que el escudo de arduino mp3 esté listo * /

retraso (1000);

Geno.begin (9600);

/ ** ajustar el volumen * /

cmd_buf 0 = 0x7E; // COMIENZO

cmd_buf 1 = 0x03; // Longitud

cmd_buf 2 = 0xA7; // Comando

cmd_buf 3 = 0x0F; // nuevo volumen

cmd_buf 4 = 0x7E; // FINAL

ArduinoMP3Shield_SendCMD (cmd_buf, 5);

/ ** establecer el modo de reproducción repetir todo * /

cmd_buf 0 = 0x7E; // COMIENZO

cmd_buf 1 = 0x03; // Longitud

cmd_buf 2 = 0xA9; // Comando SET MODE

cmd_buf 3 = 0x02; // modo de ajuste

cmd_buf 4 = 0x7E; // FINAL

ArduinoMP3Shield_SendCMD (cmd_buf, 5);

/ ** seleccionar la tarjeta SD primero música y reproducir * /

cmd_buf 0 = 0x7E; // COMIENZO

cmd_buf 1 = 0x04; // Longitud

cmd_buf 2 = 0xA0; // Para U Disk cambia esta línea a 0xA2

cmd_buf 3 = 0x00; // número de archivo byte alto

cmd_buf 4 = 0x01; // número de archivo byte bajo

cmd_buf 5 = 0x7E; // FINAL

ArduinoMP3Shield_SendCMD (cmd_buf, 6);

}

bucle vacío (vacío)

{

}

//………………………………………………………………………………….

Sube este código si estás usando una serie de hardware:

//……………………………………………………………..

// este código para MP3 Shield Elechosue

// Interfaz serial del software

// Para el producto:

//http://www.instructables.com/member/Mohannad+Rawashdeh/

unsigned char cmd_buf 10;

Carácter sin firmar;

void ArduinoMP3Shield_SendCMD (unsigned char * cmd_buf, len unsigned)

{

sin firmar i;

para (i = 0; i

Serial.write (cmd_buf i);

}

}

configuración del vacío (vacío)

{

/ ** esperar hasta que el escudo de arduino mp3 esté listo * /

retraso (1000);

Serial.begin (9600);

/ ** ajustar el volumen * /

cmd_buf 0 = 0x7E; // COMIENZO

cmd_buf 1 = 0x03; // Longitud

cmd_buf 2 = 0xA7; // Comando

cmd_buf 3 = 0x0F; // nuevo volumen

cmd_buf 4 = 0x7E; // FINAL

ArduinoMP3Shield_SendCMD (cmd_buf, 5);

/ ** establecer el modo de reproducción repetir todo * /

cmd_buf 0 = 0x7E; // COMIENZO

cmd_buf 1 = 0x03; // Longitud

cmd_buf 2 = 0xA9; // Comando SET MODE

cmd_buf 3 = 0x02; // modo de ajuste

cmd_buf 4 = 0x7E; // FINAL

ArduinoMP3Shield_SendCMD (cmd_buf, 5);

/ ** seleccionar la tarjeta SD primero música y reproducir * /

cmd_buf 0 = 0x7E; // COMIENZO

cmd_buf 1 = 0x04; // Longitud

cmd_buf 2 = 0xA0; // Command For U Disk cambia esta línea a 0xA2

cmd_buf 3 = 0x00; // número de archivo byte alto

cmd_buf 4 = 0x01; // número de archivo byte bajo

cmd_buf 5 = 0x7E; // FINAL

ArduinoMP3Shield_SendCMD (cmd_buf, 6);

}

bucle vacío (vacío)

{

}

Paso 4: Controla el audio usando Aduino

Puede controlar el audio Reproducir, pausar y Subir y bajar el volumen. Dependiendo de los comandos que programe en arduino, Simplemente envíe el comando en serie. Es muy fácil enviar el comando; este bosquejo a continuación muestra este método.

No es necesario tener una biblioteca para programarlo, pero si quieres, hay una biblioteca para este escudo. Puede descargarlo desde aquí

//……………………………………………………………………

// Mohannad Rawashdeh

// Prueba de escudo de MP3 1.2V.

#incluir

SoftwareSerial Geno (7,8); // Rx, Tx

Datos de caracteres sin firmar 10;

Carácter sin firmar;

configuración vacía () {

// ponga su código de configuración aquí, para ejecutar una vez:

Geno.begin (9600);

SetVolume (20); // ajustar el volumen de 0-31

retraso (1000);

FileSource ('SD_card', 0x05);

SetPlayMode ('Single_play');

retraso (5000);

play_pause (); // pausa

retraso (3000);

FileSource ('SD_card', 0x01);

reproducir pausar(); // jugar

retraso (5000);

Siguiente();

retraso (5000);

Siguiente();

para (int v = 15; v> 0; v -) {

SetVolume (v); // ajustar el volumen de 0-31

retraso (1000);

}

para (int j = 0; j <15; j ++) {

SetVolume (j); // ajustar el volumen de 0-31

retraso (500);

}

retraso (1000);

FileSource ('SD_card', 0x04);

retraso (5000);

FileSource ('SD_card', 0x05);

// FileSource ('SD_card', 0x03);

//Detener();

}

bucle de vacío () {

// ponga su código principal aquí, para ejecutar repetidamente:

}

// Seleccionar archivo sorce "SD Card, SPI Flash, U Disk"

void FileSource (tipo de caracteres, byte track) {

play_pause (); // pausa

Datos 0 = 0x7E;

Datos 5 = 0x7E;

interruptor (tipo) {

caso 'SD_card':

// COMIENZO

Datos 1 = 0x04; // Longitud

Datos 2 = 0xA0; // Comando

Datos 3 = 0x00; // número de archivo byte alto

Datos 4 = pista; // número de archivo byte bajo

descanso;

caso 'SPI_Flash':

Datos 1 = 0x04; // Longitud

Datos 2 = 0xA1; // Comando spi flash 0XA1

Datos 3 = 0x00; // número de archivo byte alto

Datos 4 = pista;

descanso;

caso 'U_Disk':

Datos 1 = 0x04; // Longitud

Datos 2 = 0xA2; // Comando

Datos 3 = 0x00; // número de archivo byte alto

Datos 4 = pista; // número de archivo byte bajo

descanso;

}

Comando (Datos, 5);

play_pause (); // pausa

}

void SetVolume (int vol) {

Datos 0 = 0x7E; // COMIENZO

Datos 1 = 0x03; // Longitud No 0x02

Datos 2 = 0xA7; // Comando

Datos 3 = vol; // nuevo volumen

Datos 4 = 0x7E; // FINAL

Comando (Datos, 5);

}

void SetPlayMode (tipo char) {

Datos 0 = 0x7E; // COMIENZO

Datos 4 = 0x7E; // COMIENZO

interruptor (tipo) {

caso 'Single_play':

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA9; // Comando

Datos 3 = 0x00; // parámetro de modo

descanso;

caso 'Repeat_single':

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA9; // Comando

Datos 3 = 0x01; // parámetro de modo

descanso;

caso 'Repeat_all':

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA9; // Comando

Datos 3 = 0x02; // parámetro de modo

descanso;

caso 'Play_Random':

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA9; // Comando

Datos 3 = 0x03; // parámetro de modo

descanso;

}

Comando (Datos, 5);

}

//………………………….

void play_pause () {

Datos 0 = 0x7E; // COMIENZO

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA3; // Comando

Datos 3 = 0x7E; // parámetro de modo

Comando (Datos, 4);

}

void Stop () {

Datos 0 = 0x7E; // COMIENZO

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA4; // Comando

Datos 3 = 0x7E; // parámetro de modo

Comando (Datos, 4);

}

void Next () {

Datos 0 = 0x7E; // COMIENZO

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA5; // Comando

Datos 3 = 0x7E; // parámetro de modo

Comando (Datos, 4);

}

nulo Anterior () {

Datos 0 = 0x7E; // COMIENZO

Datos 1 = 0x02; // Longitud

Datos 2 = 0xA6; // Comando

Datos 3 = 0x7E; // parámetro de modo

Comando (Datos, 4);

}

Comando void (unsigned char * Data, int length) {

para (int i = 0; i

Geno.write (Datos i);

}

}

El video a continuación te muestra cómo funcionó.

Paso 5: Final, Documento, Enlaces Útiles

Este escudo consume aproximadamente 120 mA con 2 altavoces de 3.2 vatios y 5 ohmios, por lo que es seguro alimentar desde arduino y 70 mA sin auriculares o altavoces conectados

Para obtener más información sobre este escudo, puede volver al Manual de este escudo, desde Aquí puede encontrar todos los comandos para este escudo, y cómo puede guardar su archivo de audio en la memoria flash Board SPI

Prepararé algunos proyectos sobre este escudo y lo compartiré con ustedes.

Gracias