Tabla de contenido:

Reproductor MP3 controlado por infrarrojos: 6 pasos (con imágenes)
Reproductor MP3 controlado por infrarrojos: 6 pasos (con imágenes)

Video: Reproductor MP3 controlado por infrarrojos: 6 pasos (con imágenes)

Video: Reproductor MP3 controlado por infrarrojos: 6 pasos (con imágenes)
Video: 5 TIPS de como INSTALAR un MODULO 📢​ mp3 BLUETOOTH a un AMPLIFICADOR 2024, Junio
Anonim
Image
Image
Reproductor MP3 controlado por infrarrojos
Reproductor MP3 controlado por infrarrojos

Construya un reproductor MP3 con control remoto por infrarrojos por aproximadamente $ 10 (usd). Tiene las características habituales: reproducir, pausar, reproducir siguiente o anterior, reproducir una sola canción o todas las canciones. También tiene variaciones de ecualizador y control de volumen. Todo controlable a través de un control remoto.

Funcionalidad programada:

Tecla remota: función

+ 01: Bajar volumen + 02: Establecer en el directorio # 2. + 03: Subir volumen + 4… 9: Seleccione los siguientes ajustes del ecualizador: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZZ (9) DF_PLAYER + OK:: Reproducir + >>: Reproducir siguiente + <<: Reproducir anterior + Arriba: Reproducir canciones del directorio siguiente + Dn: Reproducir canciones del directorio anterior + * | Regresar: Reproducir una canción en bucle: encendido + # | Salir: Reproducir una canción en bucle: apagado

El primer paso es probar el Arduino y conectarlo a la placa de pruebas. Los siguientes pasos están diseñados para funcionar de forma independiente. Cada paso tiene instrucciones de cableado e instrucciones de prueba. Cuando construyo proyectos, cableo y pruebo cada componente para confirmar que están funcionando. Esto ayuda a integrar componentes porque sé que cada trabajo y yo puedo enfocarme en los requisitos de integración.

Este Instructable requiere que tenga instalado Arduino IDE. También debe tener las habilidades básicas para descargar un programa de bocetos de Arduino desde los enlaces de este proyecto, crear un directorio para el programa (el nombre del directorio es el mismo que el del programa). Los siguientes pasos son cargar, ver y editar el programa en el IDE. Luego, cargue el programa a través de un cable USB en su placa Arduino.

Suministros

  • Nano V3 ATmega328P CH340G Micro placa controladora para Arduino. Como alternativa, puede utilizar un Uno.
  • Receptor de infrarrojos y mando a distancia. Usé un kit de módulo de control remoto inalámbrico por infrarrojos que venía con un receptor de infrarrojos y un control remoto de infrarrojos.
  • Una resistencia, 1K a 5K. Estoy usando una resistencia 5K porque tengo un montón de ellas. El resistor elimina el ruido que existe cuando no se usa el resistor.
  • Cables de alambre para placa de pruebas
  • Adaptador de pared de 5 voltios

Compré las piezas en eBay, principalmente a distribuidores de Hong Kong o China. En ocasiones, los distribuidores estadounidenses tienen piezas iguales o similares a precios razonables y entregas más rápidas. Las piezas de China tardan de 3 a 6 semanas en ser entregadas. Los distribuidores que he usado han sido todos confiables.

Costos aproximados: Nano $ 3, kit de infrarrojos $ 1, placa de pruebas $ 2, paquete de 40 cables de alambre $ 1, $ 1 por un adaptador de pared de 5 voltios. Total, alrededor de $ 8. Tenga en cuenta que compré el Nano con los pines de la placa de pruebas ya soldados en su lugar, ya que mis habilidades de soldadura son deficientes.

Paso 1: agregue el Arduino Nano a la placa de pruebas

Agregue el Arduino Nano a la placa de pruebas
Agregue el Arduino Nano a la placa de pruebas

Conecte el Arduino Nano a la placa de pruebas. O, si lo prefiere, puede usar un Arduino Uno para este proyecto; ambos usan los mismos pines para este proyecto. Conecte el Nano (o Uno) a su computadora mediante un cable USB.

Conecte la energía y la tierra desde el Arduino a la barra de energía de la placa de pruebas. Conecte el pin Arduino 5+ a la barra positiva de la placa de pruebas. Conecte el pin Arduino GRN (tierra) a la barra negativa (tierra) de la placa de pruebas. Esto será utilizado por otros componentes.

Descargue y ejecute el programa de prueba básico de Arduino: arduinoTest.ino. Al ejecutar el programa, la luz LED integrada se encenderá durante 1 segundo y luego se apagará durante 1 segundo. Además, se publican mensajes que se pueden ver en Arduino IDE Tools / Serial Monitor.

+++ Configuración.

+ Inicializó el pin digital LED integrado para la salida. El LED está apagado. ++ Ir al bucle. + Contador de bucle = 1 + Contador de bucle = 2 + Contador de bucle = 3…

Como ejercicio, cambie el tiempo de retraso de la luz parpadeante, cargue el programa modificado y confirme el cambio.

En la foto de arriba hay una caja de kit de cables de puente de placa de pruebas sin soldadura de 140 piezas que puede obtener por 3 a 5 dólares. Hacen placas más ordenadas que utilizando cables largos para conexiones cortas.

Paso 2: agregue el receptor de infrarrojos y conéctelo al Arduino

Agregue el receptor de infrarrojos y conéctelo al Arduino
Agregue el receptor de infrarrojos y conéctelo al Arduino

Enchufe los cables del cable hembra a macho en el receptor de infrarrojos (extremos hembra). Conecte la clavija de tierra del módulo de reloj a la tira de la barra de tierra de la placa de pruebas. Conecte la clavija de alimentación del módulo de reloj a la tira de barra positiva de la placa de pruebas. Conecte el pin de salida del receptor de infrarrojos al pin Arduino A1.

Conecte el receptor de infrarrojos, pines de arriba a la derecha:

Más a la izquierda (junto a la X) - Nano pin A1 Centro - 5V Derecha - tierra A1 + - - Conexiones de nano pin | | | - Pines del receptor de infrarrojos --------- | S | | | | --- | | | | | | --- | | | ---------

En el IDE de Arduino, instale una biblioteca de infrarrojos. Seleccione Herramientas / Administrar bibliotecas. Filtre su búsqueda escribiendo "IRremote". Seleccione IRremote de Shirriff (como referencia, el enlace de la biblioteca GitHub). Información de la biblioteca Arduino Enlace a la biblioteca IRremote.

Descargue y ejecute el programa de prueba básico: infraredReceiverTest.ino. Cuando ejecute el programa, apunte su control remoto al receptor y presione varios botones como el número del 0 al 9. Los mensajes en serie se emiten (impresos) que se pueden ver en Arduino IDE Tools / Serial Monitor.

+++ Configuración.

+ Inicializó el receptor de infrarrojos. ++ Ir al bucle. + Tecla OK - Alternar + Tecla> - siguiente + Tecla <- anterior + Tecla arriba + Tecla abajo + Tecla 1: + Tecla 2: + Tecla 3: + Tecla 4: + Tecla 6: + Tecla 7: + Tecla 8: + Tecla 9: + Tecla 0: + Tecla * (Retorno) + Tecla # (Salir)

Como ejercicio, use un control remoto de TV para ver los valores impresos. A continuación, puede modificar el programa para utilizar los valores de la instrucción switch de la función infraredSwitch (). Por ejemplo, presione la tecla "0" y obtenga el valor de su control remoto, por ejemplo, "0xE0E08877". Luego, agregue un caso en la declaración de cambio como en el siguiente fragmento de código.

caso 0xFF9867:

case 0xE0E08877: Serial.print ("+ Tecla 0:"); Serial.println (""); rotura;

Paso 3: crea una tarjeta SD Mico de archivos MP3

Dado que DFPlayer es una pieza de hardware pequeña y económica, administra archivos y carpetas de una manera simplista. He tenido resultados mixtos al reproducir archivos MP3 que no siguen los siguientes formatos recomendados y, por lo tanto, recomiendo lo siguiente. Además, no he probado otras opciones, como nombres de archivos de 3 dígitos (ejemplo: 003.mp3), sin embargo, he visto nombres de archivos de 3 dígitos utilizados en otras instrucciones y ejemplos.

A continuación se muestran los formatos de nombre de archivo y directorio de carpeta recomendados:

  • El nombre de carpeta predeterminado es MP3, ubicado en el directorio raíz de la tarjeta SD: SD: / MP3. Esta carpeta es opcional cuando se utilizan varias carpetas.
  • El reproductor también reproducirá archivos MP3 en el directorio raíz.
  • Cuando utilice varias carpetas, utilice los nombres de las carpetas: 01, 02, 03,…, 99.
  • El nombre del archivo mp3 debe tener 4 dígitos con "0001.mp3" como extensión, por ejemplo, "0001.mp3".
  • Los archivos se pueden colocar en la carpeta MP3 o en una de las múltiples carpetas.
  • Nombres de archivo: 0001.mp3 a 0255.mp3. Tenga en cuenta que el reproductor también reproducirá archivos MP3 con otros nombres.
  • Puede agregar caracteres después de los dígitos, por ejemplo, "0001hello.mp3".

Se recomienda que formatee la tarjeta antes de agregar archivos. Esto asegura que la tarjeta esté libre de archivos del sistema. Formatee con FAT32 MS-DOS.

En Mac, use la utilidad de disco para formatear el disco: Aplicaciones> Utilidades> abra Utilidad de Discos.

Haga clic en la tarjeta SD, ejemplo: APPLE SD Card Reader Media / MUSICSD. Haga clic en el elemento del menú, Erase. Nombre del conjunto, ejemplo: MUSICSD. Seleccione: MS-DOS (Fat). Haga clic en Erase.

El disco se limpia y se formatea.

Escribí un programa Java que copiará un directorio de archivos MP3 en un directorio de destino, utilizando nombres de archivos y directorios que funcionan con un módulo DFPlayer. Para ejecutar el programa, necesitará tener instalado Java JRE. A continuación se muestra la salida de ayuda del programa.

$ java -jar mp3player.jar

+++ Inicio, programa de copia del módulo DFPlayer. Sintaxis: java -jar mp3player.jar copy [(IN: directorio MP3) (OUT: directorio MP3)] ---------------------- Este programa copia un directorio de archivos MP3 para crear otro directorio de archivos MP3 utilizando nombres de archivos y directorios que funcionan con un módulo DFPlayer. Antes de ejecutar este programa, + Cree un directorio de sus archivos MP3. + Crea un directorio de destino. + El directorio de destino es donde se copiarán los archivos MP3, ++ utilizando el directorio de números de dígitos y los nombres de los archivos. + Su directorio de destino debe estar vacío. + Si hay archivos en él, elimine los archivos y directorios. ---------------------- + Ejecute este programa. + Sintaxis: java -jar mp3player.jar copy [(IN: directorio MP3) (OUT: directorio MP3)] + Sintaxis usando los valores predeterminados: java -jar mp3player.jar copy + Nombres de directorio predeterminados: mp3player1 y mp3player2. + Igual que: java -jar mp3player.jar copiar mp3player1 mp3player2. ---------------------- + Inserte la tarjeta SD en su computadora. + Elimina los directorios y archivos de la tarjeta SD. + Vacíe la papelera porque los archivos todavía están en la tarjeta SD y es posible que el módulo DFPlayer los reproduzca. + Copie los nuevos directorios y archivos a la tarjeta SD. + Expulsar la tarjeta de la computadora. ---------------------- + Inserte la tarjeta en el módulo DFPlayer. + La carta está lista para jugar

Para ver el código fuente, haga clic aquí. Haga clic aquí para descargar el archivo de programa JAR que puede ejecutar.

Para referencia

En Mac, desde la línea de comandos, puede ejecutar lo siguiente.

Lista para encontrar la tarjeta.

$ diskutil list

… / Dev / disk3 (interno, físico): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme * 4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls / Volumes / MUSICSD

Copie los archivos en orden en la tarjeta SD. Dado que DFPlayer puede ordenar según la marca de tiempo, copie los archivos en el orden del nombre de archivo.

Limpiar archivos ocultos que pueden causar problemas (referencia:

$ dot_clean / Volúmenes / MUSICSD

Su tarjeta SD ahora está lista para usar. Insértelo en su módulo DFPlayer.

Paso 4: Conecte el módulo DFPlayer que reproduce archivos MP3

Conecte el módulo DFPlayer que reproduce archivos MP3
Conecte el módulo DFPlayer que reproduce archivos MP3
Conecte el módulo DFPlayer que reproduce archivos MP3
Conecte el módulo DFPlayer que reproduce archivos MP3
Conecte el módulo DFPlayer que reproduce archivos MP3
Conecte el módulo DFPlayer que reproduce archivos MP3

He separado las conexiones en 3 partes: comunicaciones en serie, alimentación y altavoz / sonido.

1. Conecte los pines Arduino RX / TX al módulo DFPlayer. Conecte un cable entre el pin 10 de Arduino y el pin 3 de DFPlayer (TX). Conecte un resistor, estoy usando un resistor 5K del pin 2 (RX) de DFPlayer, a una fila vacía entre el Arduino y el DFPlayer. Conecte un cable de la clavija Nano 11 al resistor 5K. El resistor 5K elimina el ruido que existe cuando no se usa el resistor.

2. Conecte la clavija de tierra (GND) del módulo DFPlayer, a la tira de la barra de tierra de la placa de pruebas. Conecte el pin de alimentación (VCC) del módulo DFPlayer, a la tira de barra positiva de la placa de pruebas.

3. Si tiene un solo altavoz pequeño, conéctelo a los pines 6 (SPK-) y 8 (SPK +) como en la foto de arriba con Nano.

Mini pines de DFPlayer

En el IDE de Arduino, instale la biblioteca DFPlayer. Seleccione Herramientas / Administrar bibliotecas. Filtre su búsqueda escribiendo "DFRobotDFPlayerMini". Seleccione DFRobotDFPlayerMini por la biblioteca del mini reproductor DFRobot (para referencia, el enlace de la biblioteca). Para mi implementación, cargué la versión 1.0.5.

Como referencia, el enlace de la biblioteca. Y el enlace de la página wiki de DFPlayer.

Cargue archivos MP3 en la tarjeta micro SD. Puede tener canciones en directorios separados. Inserte la tarjeta SD en el DFPlayer.

Descargue y ejecute el programa del reproductor MP3: mp3infrared.ino. Cuando ejecute el programa, apunte su control remoto al receptor y presione el botón OK para comenzar a reproducir la primera canción. Cuando comienza a reproducirse, la luz azul de DFPlayer se encenderá y permanecerá encendida mientras se reproduce un archivo.

Configuración avanzada

He construido una computadora emuladora Altair 8800 que usa un Arduino Mega. Cuando agregué DFPlayer había mucho ruido. Para eliminar el ruido, utilicé una fuente de alimentación separada para el DFPlayer. El Mega tiene una fuente de alimentación y envía señales de control en serie al DFPlayer. El DFPlayer tiene otra fuente de alimentación y recibe e implementa las señales de control en serie del Mega.

En la foto de arriba, el mini concentrador USB blanco del emulador Altair alimenta el Mega y está conectado al mini concentrador negro de la computadora portátil. El DFPlayer tiene un cable USB que lo conecta directamente al mini hub negro del portátil. Esta configuración eliminó el ruido que existía cuando el DFPlayer se alimentaba a través del mini concentrador blanco del emulador.

Haga clic aquí para obtener el código configurado para Mega. Esa versión del código usa pines Mega RX / TX, mientras que un Nano o Uno usa pines de puerto serie de software.

Lo siguiente es para referencia

Conexiones utilizadas con un Arduino, 1. Serie UART, RX para recibir instrucciones de control del DFPlayer. RX: la entrada se conecta a TX en Mega / Nano / Uno. TX para enviar información de estado. TX: la salida se conecta a RX en Mega / Nano / Uno. Conexiones para Nano o Uno: RX (2) para resistir al pin 11 del software serial (TX). TX (3) al pin 10 del software en serie (RX). Conexiones para Mega: RX (2) para resistir al pin 18 de Serial1 (TX). TX (3) al pin 19 de Serial1 (RX). 2. Opciones de energía. Conéctese desde Arduino directamente al DFPlayer: VCC a + 5V. Tenga en cuenta que también funciona con + 3.3V en el caso de un NodeMCU. GND a tierra (-). Utilice una fuente de alimentación completamente diferente: VCC a + 5V de la otra fuente de alimentación. GND a tierra (-) de la otra fuente de alimentación. Vi otra opción de energía: desde el Arduino + 5V, use un 7805 con capacitores y diodo al pin DFPlayer VCC. GND a tierra (-). 3. Salida de altavoz. Para un solo altavoz, menos de 3 W: SPK - al pin del altavoz. SPK + al otro pin de altavoz. Para salida a un amplificador estéreo o auriculares: DAC_R para salida derecha (+) DAC_L para salida izquierda (+) GND a tierra de salida.

Siguiendo las llamadas de función de la biblioteca de claves. Enlace a la página wiki de DFPlayer.

DFRobotDFPlayerMini myDFPlayer;

myDFPlayer.play (1); // Reproduce el primer mp3 myDFPlayer.pause (); // pausa el mp3 myDFPlayer.start (); // inicia el mp3 desde la pausa ------------------------------ myDFPlayer.next (); // Reproducir el siguiente mp3 myDFPlayer.previous (); // Reproducir mp3 anterior ------------------------------ myDFPlayer.playMp3Folder (4); // reproducir mp3 específico en SD: /MP3/0004.mp3; Nombre de archivo (0 ~ 65535) myDFPlayer.playFolder (15, 4); // reproducir mp3 específico en SD: /15/004.mp3; Nombre de carpeta (1 ~ 99); Nombre de archivo (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // reproducir mp3 específico en SD: /02/004.mp3; Nombre de carpeta (1 ~ 10); Nombre de archivo (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Repite el primer mp3 myDFPlayer.enableLoop (); // habilitar bucle. myDFPlayer.disableLoop (); // deshabilita el bucle. myDFPlayer.loopFolder (5); // repite todos los archivos mp3 en la carpeta SD: / 05. myDFPlayer.enableLoopAll (); // repite todos los archivos mp3. myDFPlayer.disableLoopAll (); // detiene el bucle de todos los archivos mp3. ------------------------------ myDFPlayer.volume (10); // Establecer valor de volumen. De 0 a 30 myDFPlayer.volumeUp (); // Subir volumen myDFPlayer.volumeDown (); // Bajar volumen ------------------------------ myDFPlayer.setTimeOut (500); // Establecer tiempo de espera de comunicación en serie 500ms myDFPlayer.reset (); // Reinicia el módulo ------------------------------ Serial.println (myDFPlayer.readState ()); // leer el estado del mp3 Serial.println (myDFPlayer.readVolume ()); // leer el volumen actual Serial.println (myDFPlayer.readEQ ()); // leer la configuración de EQ Serial.println (myDFPlayer.readFileCounts ()); // leer todos los recuentos de archivos en la tarjeta SD Serial.println (myDFPlayer.readCurrentFileNumber ()); // lee el número de archivo de reproducción actual Serial.println (myDFPlayer.readFileCountsInFolder (3)); // leer los recuentos de relleno en la carpeta SD: / 03 ------------------------------ myDFPlayer.available ()

Paso 5: fuente de alimentación externa

Image
Image
Fuente de alimentación externa
Fuente de alimentación externa
Fuente de alimentación externa
Fuente de alimentación externa

Ahora que su reproductor MP3 está probado y funcionando, puede desconectarlo de su computadora y usarlo con una fuente de alimentación independiente. Para simplificar, utilizo un adaptador de pared de 5 voltios, que se puede comprar por alrededor de un dólar, y un cable USB, otro dólar. El cable conecta el Arduino al adaptador de pared de + 5V. Dado que los pines de alimentación y tierra de Arduino están conectados a la placa de pruebas, eso alimentará los otros componentes. Debido a su simplicidad y bajo costo, utilizo esta misma combinación para impulsar otros proyectos.

La foto de la derecha y el video muestran el reproductor conectado a mi amplificador de $ 40 sentado en el altavoz Bose derecho en mi escritorio. Es mi sistema de música de escritorio: reproductor de MP3 Arduino, amplificador de audio Douk y 2 altavoces Bose. Buena calidad de sonido.

Espero que tenga éxito y haya disfrutado construyendo su propio reproductor de música MP3.

Paso 6: eliminar el ruido estático

En volumen bajo, hubo un ruido estático de fondo irritante. El ruido estaba bien cuando el volumen de DFPlayer era más alto y se estaba reproduciendo música. Pero cuando la música estaba tranquila, la estática estaba ahí.

Encontré una página de StackExchage que tenía muchas sugerencias. Lo siguiente funcionó para mí:

  • Conecte un cable corto entre las clavijas de tierra de DFPlayer: clavijas 7 a 10.
  • Utilice un enchufe de pared USB independiente (5 V) para alimentar el módulo DFPlayer.
  • Conecte la toma de tierra de la pared a la tierra de Arduino. Esto era necesario para que el control en serie funcionara entre el Arduino y el reproductor.

Lo anterior se probó en mi emulador Altair 8800 que mejoré con un DFPlayer para reproducir música. El reproductor se controla girando los conmutadores del panel frontal.

Recomendado: