Reproductor MP3 con Arduino I




Después de algún tiempo trabajando y peleando,  os presento este nuevo proyecto Arduino: Un completo reproductor de MP3 basado en Arduino.
Como podéis observar en la foto, la idea era construir un reproductor independiente, al estilo de las antiguas radios o 'cassetes', en plena era de los Iphones ....
El reproductor utiliza un pequeño módulo basado en el chip VS1002d de VLSI (ya descatalogado, pero que tenía por un cajón). El módulo en cuestión lo compré en Futurlec . Actualmente se pueden conseguir módulos similares en ebay por algo más de 9€ , aunque el chip es el VS1003 o VS1053. También podéis utilizar una MP3 shield , pero bastante más cara (esta shield ya incluye una ranura SD).
Por lo que he podido ver los tres chips son bastante compatibles en cuanto a la programación, y de hecho casi toda la inicialización la he sacado de la librería para la MP3 Shield de SparkFun ;-)


Bueno el proyecto consta de :
  1. Arduino (como no)
  2. Módulo Mp3 basado en chip VS 1XXX
  3. Modulo SD (también se puede conseguir en ebay)
  4. LCD 4x20 caracteres
  5. Pequeño amplificador
  6. 2 altavoces.
Tanto el módulo SD como el MP3 se conectan al Arduino mediante el bus SPI. El LCD lo he conectado en modo 4 bits para ahorrar pines del Arduino.
Aquí os muestro una tabla con las distintas conexiones entre el Arduino y los distintos elementos. Entre paréntesis, la denominación de las distintas conexiones en los módulos (y la patilla correspondiente en el caso de la SD). Como podéis ver, he tenido que utilizar las entradas analógicas como salidas digitales para controlar el LCD.

PIN Arduino Módulo MP3Tarjeta SDLCDBotones
0-- -- --Adelante
1-- -- --Atrás
2DREQ-- ----
3-- -- RS--
4-- -- ENABLE  --
5(RESET)-- ----
6CS (XCS)-- ----
7DCS (BSYNC)   -- ----
8-- -- --Encoder A
9-- CS (CD/DAT3-1)   ----
10-- -- --Encoder B
11MOSI (SI) MOSI (CMD-2)----
12MISO (SO)MISO (DATO-7)----
13CLK (SCLK)CLK (5)----
A0-- -- D4--
A1-- -- D5--
A2-- -- D6--
A3-- -- D7--
A4-- -- ----
A5-- -- ----

Tanto el módulo MP3 como la tarjeta SD funcionan con 3,3V, así que toca adaptar niveles para hacerlos compatibles con los 5V del Arduino. La opción más sencilla es utilizar divisores de tensión con un par de resistencias , en mi caso he utilizado un divisor formado por una resistencia de 2,2K y una de 3,3 K. Para la señales hacia el micro no hace falta, los 3,3V se interpretan como nivel alto sin problema.
El esquema es el siguiente (clik para agrandar):
Esquema reproductor mp3 arduino vs1003
Según los módulos que utilicéis para el MP3 y la SD, deberéis ajustar los pines de los conectores (el orden mostrado en el esquema no corresponde a ningún módulo en concreto).
Si se utiliza el MP3 shield de SparkFun, revisad la documentación para ajustar  los pines de CS tanto para el MP3 como para la SD y modificarlo si es necesario en el códio fuente.

El resultado:

Reproductor MP3 Arduino VS1003

Aquí os dejo unas cuantas fotos del proceso de montaje :



En el próximo post el código ...


Si te ha gustado, recuerda compartirlo en tu red social favorita. Gracias

42 comentarios:

  1. Muy interesante el proyecto, la verdad que tiene su mérito. ¿Podrías poner más detalle del amplificador que has utilizado?

    ResponderEliminar
  2. Pues la verdad, tanto el amplificador como los dos altavoces pertenecen a unos altavoces comprados en una tienda de los chinos (4€) ....
    Puedes ver una foto si entras en facebook en el enlace del menú.
    http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/553872_476782862343016_992743569_n.jpg

    ResponderEliminar
  3. Enhorabuena!
    Excelente proyecto.
    Para entretenerse una temporada.

    ResponderEliminar
  4. Muchas Gracias, me alegro de que te guste.
    Seguiré trabajando para realizar algunas mejoras.

    ResponderEliminar
  5. Me encantó! Proyectos como éste motivan! Saludos!

    ResponderEliminar
  6. @Danielé
    Gracias. Me alegro de que te guste. Un saludo.

    ResponderEliminar
  7. Excelente el proyecto ! ¿Qué tan difícil sería ponerle una placa de red wi-fi y que se conecte a sitios para escuchar radio o música ?

    ResponderEliminar
  8. Un proyecto muy interesante, pero me surge una duda que modelo de encoder utilizaste ya que en el esquema no sale el tipo es para definir bien su funcionamiento. Gacias

    ResponderEliminar
  9. @SZ

    Pues es algo que tengo en mente.
    puedes encontrar información sobre un acceso radio en internet en Arduino on Ice: Internet Radio via Shoutcast. Luego tendrías que utilizar una "WI-Fi Shield" ....
    Estoy en ello , es posibre que dentro de poco publique algo sobre el tema.
    Un saludo.

    ResponderEliminar
    Respuestas
    1. Junto con saludarte quisiera saver si has logrado completar tu idea paresida a la mía usar un módulo arduino para escuchar radio online

      Eliminar
  10. @Jose Maria Modamio
    Es un encoder rotatorio típico, puedes encontrarlos en ebay, o en tiendas de electrónica, por ejemplo en este enlace BricoGeek .
    Saludos.

    ResponderEliminar
  11. Saludos! Genial idea. Justo lo que tenia en mente como mi proyecto de invierno.

    ResponderEliminar
  12. hola me gusto tu proyecto quiero hacer algo parecido pero en vez de tener pulsadores para avanzar y retroceder
    quisiera ponerle un teclado para seleccionar el track especifico que quiero oir t.tendrias algo parecido?

    ResponderEliminar
  13. hola muy bueno lo tuyo quería saber si se podría transferir música vía Bluetooth con algún shield saludos =)

    ResponderEliminar
  14. @Wilson Carrizo
    Puedes encontrar en ebay módulos bluetooth stereo si es a eso lo que te refieres:
    Sólo el módulo
    Montado

    Saludos

    ResponderEliminar
  15. Buenísimo el proyecto. Cómo se hace para que reciba las señales desde un reproductor de CD en reemplazo o adicional a la SD?

    ResponderEliminar
  16. @mpadm
    Pues me parece que debe ser un poco complicado. Con un CD no puedes utilizar el interfaz SPI. Hay una librería para acceder a un CD desde un Arduino (pero tiene que ser Mega por la cantidad necesaria de pines para el interfaz IDE). IDE Disk Support for Arduino Mega

    ResponderEliminar
  17. Arduino Guay:

    Gracias por la respuesta. Haré las investigaciones del caso. La idea es construir un CD Player Profesional que acepte archivos wav, MP3, el uso de USB´s, etc.

    ResponderEliminar
  18. muy buen proyecto!!! ahora me surgio la intriga si se podra hacer algo igual pero que reproduzca mp4 o algun formato de video. tenes idea si hay algun modulo que haga lo mismo que el vs1xxx? investigare :-/

    ResponderEliminar
  19. Tienen el codigo disponible para compilador CCS?
    Saludos

    ResponderEliminar
  20. Felicidades por el proyecto! He llegado a el, buscando como hacer lo mismo pero sin ampli ni altavoces, con salida para auriculares para conectar a la radio del coche. Que capacidad méxima tiene el lector de tarjetas?

    ResponderEliminar
  21. @Franopol
    No sabría decirte ...., la documentación no es clara pero en principio no tiene más limitación que la de la FAT.
    Yo he utilizado tarjetas de 8Gb sin problemas.

    ResponderEliminar
  22. Hola estoy intentando seguir tus pasos, pero no consigo hacer que mi VS1003B emita algun sonido. Me podrías ayudar ?

    ResponderEliminar
  23. @Anónimo
    ¿Qué tipo de placa utilizas para el VS1003B?

    ResponderEliminar
  24. se puede montar con arduino uno?
    porfavor ponte en contacto conmigo: torne98@gmail.com

    ResponderEliminar
  25. Porfavor nos podriamos poner en contacto? Estoy interesado en este proyecto y tengo algunas dudas torne98@gmail.com

    Gracias

    ResponderEliminar
  26. Hello,

    My name is janvier and i have started a new community called Duino's Playground.
    This is a community driven website where people can post, share and discuss there arduino projects.
    However, we are looking for Arduino projects we can use on our website.
    In the future we are looking into tutorials and such.
    I would like to ask if we can use your projects for our website.
    All credits and copyrights will be posted to the original owners. (Backlinks)

    Our website is: http://www.duinosplayground.com
    Dont forget to sign up at our forums at http://www.duinosplayground.com/community/
    There you can post your projects and share them with all the membes.
    If you like to know more about this, please send me an email back to this email address or community@duinosplayground.com.


    Thanks for taking time on this email.

    With friendly
    greetings Janvier
    Owner of http://www.duinosplayground.com

    ResponderEliminar
  27. mas o menos cuanto hay de presupuesto para este proyecto?

    ResponderEliminar
  28. @Unknown
    Depende de la placa Arduino y de la MP3 que utilices ...
    Si utilizas las "oficiales" será bastante más caro que si usas "clónicas", tendrá que mirar por ebay o tu proveedor habitual , para ver precios .
    Con placas "cónicas", puede costar menos de 20€

    ResponderEliminar
  29. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  30. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  31. hola disculpa sera que me pudieras facilitar el codigo
    si no es mucha molestia, el tipo de amplificador que haz usado y de cuantos ohms son las bocinas.

    soy nuevo en esto y quiero hacerlo.

    ResponderEliminar
  32. hola te presento mi proyecto pues creo que tu conocimiento puede solucionar mi inconveniente resulta que estos aparatos teatrales funcionan con una moneda la cual emite un pulso y activa un timer de 30 seg hay un motor y varios leds pero tambien conectado siempre al grupo un reproductor de mp3 el cual a pesar de tener grabados 45 canciones de 30 segundos siempre me lee la primera quisiera que cambie y que con cada encendido toque una diferente,bueno este es el video desde ya gracias https://www.facebook.com/daniel.fulco.7/videos/10211157489273728/

    ResponderEliminar
  33. el archivo AGMp3.h no me lo reconoce para poder meterlo y no lo encuentro en ningun otro lugar que puedo hacer

    ResponderEliminar
  34. Tengo arduino uno sirve y tendria que cambiar el ldd de 4x20 porque tengo 16x2

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.