Este tablero es el compañero ideal para el chip VLSI códec VS1053B DSP. El VS1053 puede decodificar una amplia variedad de formatos de audio tales como MP3, AAC, Ogg Vorbis, WMA, MIDI, WAV, FLAC (PCM y ADPCM), también se puede utilizar para grabar audio tanto en PCM (WAV) y comprimido. Puedes hacer todo tipo de cosas con el audio, así como el bajo ajuste, los agudos, y el volumen de forma digital.
Existen dos versiones del Mp3, la primera versión necesita conectarse a unos capacitores extra.
En la segunda versión, viene mejorada, ya incluye los capacitores dentro del circuito.
Las dos versiones funcionan de la misma forma, no tienes que preocuparte de nada.
Dispone de 8 pines GPIO que se pueden usar para cosas como la iluminación de pequeños LED o la lectura de botones. Toda esta funcionalidad se implementa en una interfaz SPI; por lo que casi cualquier microcontrolador puede reproducir audio desde una tarjeta SD. También hay un modo MIDI especial que se puede arrancar el chip en que leerá los datos ‘clásicos’ a 31250Kb MIDI en un perno UART y actuar como una tablero sintetizador , incluye tambor incorporado y docenas de efectos de muestra.
Ideal para su uso con un Arduino pero también es bueno para otros microcontroladores que simplemente no tienen la capacidad de cálculo para decodificar archivos MP3. Hay 3.3 V y reguladores de 1.8 V, filtrado analógico para la salida analógica de calidad. Hay un puerto de entrada de micrófono que se puede cablear, una entrada de línea o micrófono y grabar audio comprimido. Los 8 GPIO se han construido en 100K ohms, sólo tiene que conectar el botón del pin GPIO a 3.3V para una conexión activa a alta. Es probable que quieras reproducir música desde una tarjeta micro SD por lo que hemos añadido un soporte.
Ya que la mayoría utilizan los microcontroladores 5V como el Arduino, que hicieron los pines de interfaz compatibles con palancas de cambios de nivel para que puedas utilizar el chip a 3V o 5V, Todas las placas de la primera versión, vienen con dos condensadores electrolíticos de 100uF de acoplamiento de salida de nivel de línea, en la segunda versión tienen los condensadores integrados en el PCB. Todos los kits del reproductor MP3, vienen con un conector para auriculares estéreo, que será útil cuando quieras conectar los auriculares en el.
[nextpage title=»Armando nuestro MP3″]
Soldemos los pines largo-corto, al MP3.
Cortar las tiras de pines si es necesario y coloca los pines largos hacia abajo en el tablero.
Ensamblando el MP3
Debes colocar el MP3 arriba de los pines largo-corto y a soldar.
Introducción al Software vs1053
https://github.com/adafruit/Adafruit_VS1053_Library/archive/master.zip
Y tienes que guardar la biblioteca en la carpeta de Arduino.
[nextpage title=»Conectando un reproductor de audio»]
El VS1053 se puede configurar como un reproductor de audio sencillo bajo el control de Arduino. El Arduino lee los datos de la tarjeta SD, después la reproduce a través del CODEC través de la interfaz SPI. Estos pasos son idénticos para ambas versiones de códecs, incluso si las juntas se ven un poco diferente.
Conectando el reproductor de MP3
Añade el conector de auriculares, y conectalo tal como se muestra en la imagen.
- VCC -> 5v
- GND -> GND
Conectando el SPI y Reset
Añadir jumper dupont para:
- CLK -> Arduino # 13 (Mega 52)
- MISO -> Arduino # 12 (Mega 50)
- MOSI -> Arduino # 11 (Mega 51)
- CS -> Arduino # 10
- RST -> Arduino # 9
Conectando el resto de pines digitales
Añadir jumper dupont para:
- XDCS-> Arduino # 8
- SDCS -> Arduino # 4
- DREQ -> Arduino # 3
Conectando el auricular
Este paso será un poco diferente dependiendo de la versión que tengas. Si tu reproductor esla versión 2 y tiene los condensadores, añade los puentes para:
- GND -> «tierra»
- LOUT-> Pin izquierdo
- ROUT -> Pin derecho
(estos se encuentran en la esquina)
Si tu reproductor es v1, los pines serán etiquetados así:
- GBUF -> Pin «tierra»
- LOUT -> Pin izquierdo
- ROUT -> Pin derecho
Para v1, no utilices este cableado para los altavoces amplificados o una línea de conexión a un ordenador / estéreo. Sólo para auriculares.Para v2, puedes utilizar este tipo de conexión para cualquier tipo de conexión sin preocupación.
[nextpage title=»Cargar algunos archivos MP3″]
Copiar archivos MP3 a una tarjeta micro SD y nombrarlos track001.mp3 y track002.mp3 (esto es sólo para la prueba, se puede cambiar el nombre de ellos más adelante). A continuación, instalar la tarjeta en la ranura de nuestro reproductor VS1053.
Debes escuchar tus archivos MP3 en los auriculares.También puedes ejecutar Archivo-> Examples->> Adafruit_VS1053_Codec- player_interrupts. Este ejemplo demuestra la reproducción de archivos en segundo plano el uso de las interrupciones. Esto te permite hacer otras cosas en el sketch mientras que la música suena.
[nextpage title=»Probando con Arduino nano»]
Nota: Para los sonidos en el fondo usando interrupciones, conecta DREQ al pin 3 y modificar el código para que coincida.
[nextpage title=»Conectando el Audio con altavoces»]
Tanto la versión 1 del VS1053 y la versión 2 puedes conducir un par de auriculares directamente. Sólo tienes que conectar los pines LOUT y ROUT a los auriculares. El pin de tierra debe estar conectada a GBUF.
Tanto v1 y v2 también puede conducir directamente dispositivos de audio con entradas diferenciales tales como nuestro 3,7 vatios estéreo amplificador de clase D. Conectar LOUT y L + R + y los pines del amplificador. Conectar L y R al pin GND.
Si tienes la versión 1, se puede conectar a altavoces con alimentación / estéreo pero debes utilizar los condensadores incluidos.
Para los dispositivos de audio de entrada que requieren un nivel de línea, utiliza los condensadores incluidos. Estos son los condensadores electrolíticos polarizados, por lo que es importante saber qué manera de conectarlos. Conecte el positivo a los pines de Lout y Rout, y los cables negativos a los terminales L y R de auriculares o entradas derecha e izquierda del dispositivo de audio. El pin de tierra de el audicular de audio debe ser conectado al pin AGND.
Si tienes la versión 2, estos condensadores pueden ser omitidos, ya que se incluyen en el propio tablero.
[nextpage title=»Conexiones MIDI»]
Con algunas conexiones de puentes, la junta se iniciará en el modo MIDI que se leen los datos de ‘clásicos’ 31250Kbaud MIDI en un perno UART y actuar como una máquina sintetizador / tambor – hay de tambor incorporado y efectos de muestra docenas.
Configurar para el funcionamiento MIDI
Añadir los jumper dupont de la siguiente manera:
- GPIO-0 -> GND
- GPIO-1 -> 3.3v
- Rx -> Arduino Digital # 2
- RST -> Arduino digital # 9
Conectar el auricular
Lo mismo que las pruebas anteriores, añadir los jumper dupont para:
- AGND (v2) o GBUF (v1) -> Tierra
- LOUT -> pin izquierdo
- ROUT -> pin derecho
Ejemplo Midi Bosquejo
Conectar el Arduino al ordenador y conecta los auriculares en el conector de auriculares. Seleccione Archivo-> Examples-> Adafruit_VS1053_Codec-> player_miditest para cargar el código de ejemplo para el funcionamiento MIDI. Deberas oír una serie repetida de tonos ascendentes desde el reproductor MIDI.
[nextpage title=»Pines GPIO»]
Usar la simple reproductor de audio cableado desde el enlace de la izquierda.
Añadir un puente desde la barra de tierra a la izquierda de la barra de tierra a la derecha de la placa.
A continuación, añadir algunos LED de los pines GPIO a tierra. Asegúrese de conectar los largos (ánodo) al pin GPOI y la ejecución corto (cátodo) a tierra. Y te preguntaras;¿Qué? No hay resistencias limitadoras de corriente?
Conectar el Arduino al ordenador , seleccione Archivo-> Examples-> Adafruit_VS1053-> player_gpiotest para cargar el código de ejemplo.
Si tienes los auriculares, se oirá un pitido en el inicio para indicar que el boceto se está ejecutando. A continuación, deberías ver los LEDs parpadeando en secuencia.
Si abre el monitor de serie, se puede ver los valores que se escriben y leer desde cada pin GPIO.
Ten en cuenta que los pines GPIO NO están 5V seguro. No conectes a tensiones o voltajes superiores a 3,3 v.
[nextpage title=»Grabación con el VS1053″]
El ejemplo boceto record_ogg convierte el reproductor VS1053 en un dispositivo de grabación que genera archivos codificados OGG en la tarjeta SD en tiempo real.
- VCC -> 5v
- GND -> GND
Conexiones básicas SPI:
- SCLK -> Arduino # 13
- MOSI -> Arduino # 11
- MISO -> Arduino # 12
- CS -> Arduino # 10
Señales de control adicionales:
- SDCS -> Arduino A0
- XDCS -> Arduino # 8
- RST -> Arduino # 9
- DREQ -> Arduino A1
Botón Start / Stop (momentáneo):
- de Arduino # 7 a GND
Micrófono electret Circuito:
El circuito del micrófono se deriva del diseño de referencia se muestra en VS1053B Hoja de datos . Ten en cuenta que las conexiones a tierra que se muestran son de tierra analógica (AGND).
Conectar el Arduino al ordenador con un cable USB y conecte sus auriculares en el conector de auriculares. Seleccione Archivo-> Examples-> Adafruit_VS1053_Codec-> record_ogg para cargar el código de ejemplo.
Plug-ins
El sketch ejemplo record_ogg demuestra una potente característica del reproductor VS1053: Plug-ins.capacidad de grabación de OGG no es compatible de forma nativa en el propio chip, sino a través de un módulo de código de plug-in. Un archivo binario que contiene la imagen de código del plug-in se carga desde la tarjeta SD en el inicio. Una vez cargado, el VS1053 se convierte en un dispositivo de grabación OGG.
Para registrar:
Presione el botón de inicio para iniciar la grabación. Presione una vez más para detener.Cada grabación se almacena en un archivo separado .OGG en la tarjeta SD.
Para la reproducción:
Utiliza cualquier reproductor de audio OGG en tu ordenador – o reproduce a través del VS1053 utilizando la configuración simple reproductor de audio.
[nextpage title=»Referencia de la biblioteca»]
Adafruit_VS1053_FilePlayer
Los métodos comunes:
Adafruit_VS1053_FilePlayer (uint8_t MOSI, uint8_t miso, CLK uint8_t, primer uint8_t, uint8_t cs, DCS uint8_t, dreq uint8_t, uint8_t cardCS) – constructor de software de SPI. Utiliza software de SPI, lo que debe especificar todos los pines SPI.
Adafruit_VS1053_FilePlayer (uint8_t primera, uint8_t cs, DCS uint8_t, dreq uint8_t, uint8_t cardCS) – Hardware SPI constructor. Utiliza hardware SPI y asume los pines SPI por defecto.
Boolean begin (void) – Inicializar la comunicación y restablecer el chip. UseInterrupt booleano (tipo uint8_t) – Especifica la interrupción de utilizar para la reproducción por interrupciones.Los argumentos válidos son:
- VS1053_FILEPLAYER_TIMER0_INT
- VS1053_FILEPLAYER_PIN_INT
booleano startPlayingFile (char * trackname) – Comenzar a reproducir el archivo especificado desde la tarjeta SD usando la reproducción por interrupciones. Esto permite que su programa para realizar otras tareas que el archivo está jugando.
Las variables miembro públicas:
CurrentTrack Archivo – archivo actualmente en reproducción playingMusic booleano – Verdadero si la reproducción en curso
La clase Adafruit_VS1053 implementa una interfaz para la funcionalidad básica VS1053. Para más detalles sobre el funcionamiento del chip VS1053, por favor refiérase a la documentación en la página de descargas.
Los métodos comunes:
Adafruit_VS1053 (uint8_t MOSI, uint8_t miso, CLK uint8_t, primer uint8_t, uint8_t cs, DCS uint8_t, uint8_t dreq) – Software SPI constructor – debe especificar todos los pines.
(Primera uint8_t, uint8_t cs, uint8_t DCS, uint8_t dreq) Adafruit_VS1053 – Hardware SPI constructor – asume hardware pines SPI.
uint8_t begin (void) -. inicializar la comunicación SPI y (duro) restablecer el chip
void reset (void) – Realiza un restablecimiento del chip. anular SoftReset (void) – los intentos de un restablecimiento automático de la viruta.
uint16_t sciRead (uint8_t addr) -. Lecturas del registro especificado en el chip
anular (direc uint8_t, uint16_t datos) sciWrite – escribe en el registro especificado en el chip.
anulará sineTest (uint8_t n, uint16_t ms) – Generar una condición sine señal de onda * prueba.
void spiwrite (uint8_t d) – bajo nivel de operación de escritura SPI.
uint8_t spiread (void) – bajo nivel de SPI operación de lectura. uint16_t decodeTime (void) -. lee el registro DECODETIME desde el chip
setVolume vacío (uint8_t izquierda, uint8_t derecha) – Ajuste el volumen de salida para el chip.
dumpRegs (void) -. Imprime el contenido de la modalidad, ESTADO, CLOCKF y el volumen de registros
void playData (uint8_t * buffer, uint8_t buffsiz) – Decodificar y reproducir el contenido del tampón suministrado.
readyForData booleanos (void) – Prueba si estuviera listo para más datos.
void applyPatch (const uint16_t * parche, patchsize uint16_t) – Aplicar un parche para el código (Ver ficha técnica para más detalles).
uint16_t LoadPlugin (char * fn) – carga . el plug-in especificado
sin efecto GPIO_digitalWrite (uint8_t i, uint8_t val)– Escribir a un pin GPIO.
anular GPIO_digitalWrite (uint8_t i) – Escribir a los 8 pines GPIO a la vez.
uint16_t GPIO_digitalRead (void) – Leer los 8 pines GPIO en una vez.
GPIO_digitalRead booleano (uint8_t i) – Leer un único pin GPIO.
GPIO_pinMode vacío (uint8_t i, uint8_t dir) -. Establecer la modalidad de alfileres (entrada / salida) para un pasador GPIO
prepareRecordOgg booleano (char * plugin) – Inicializar chip para grabación de OGG.
anulará startRecordOgg (mic booleano) – Comienza la grabación (micrófono = true para entrada de micrófono). void stopRecordOgg (void) – Detener la grabación.
uint16_t recordedWordsWaiting (void) -. Devuelve el número de palabras registradas
uint16_t recordedReadWord (void) – lee la siguiente palabra de la memoria intermedia de palabras registradas. uint16_t recordedReadWord (void) – lee la siguiente palabra de la memoria intermedia de palabras registradas.