Transmisor de audio inalámbrico

Estoy trabajando en un proyecto que digitalizará una señal de audio de un conector RCA estándar y transmitirá esa señal mediante Bluetooth a un receptor y luego la convertirá de nuevo en una señal analógica que enviaré a un altavoz.

Sé que necesitaré 2 microcontroladores que manejarán Bluetooth como receptor y transmisor. Sin embargo, no estoy seguro de qué microcontrolador me permitirá hacer esto.

¿Un Arduino BT (transmisor) me permitiría enviar una señal de audio de forma inalámbrica a través de Bluetooth a otro Arduino BT que actúa como receptor? No estoy muy seguro acerca de la tasa de muestreo o la tasa de bits de transferencia que me permite hacer esto.

Para conocer la tasa de bits de transferencia, debe conocer aproximadamente la calidad de la salida de audio que desea: es más difícil enviar un mp3 de 320 kbps, 44100 Hz que uno de 128 kbps, quizás a una tasa de muestreo más baja (por ejemplo, 22050 Hz). Y tenga en cuenta que introducirá un retraso, y tal vez puede causar lagunas, en caso de que la señal sea deficiente.
Entonces puedes pensar en un protocolo, pero ¿quieres absolutamente usar Bluetooth?
@xsari3x, es genial que estés ofreciendo una recompensa por esta pregunta. Pero Joby ya se ha vinculado a una pregunta que parece cubrir la mayor parte de esta pregunta. Clabacchio también ha hecho algunas preguntas que aún no han sido respondidas. Deberán responderse antes de que esta pregunta pueda obtener buenas respuestas. Todo lo que está pidiendo en la descripción de su recompensa es un alcance demasiado amplio para una sola pregunta.
@Kellenjb MMMM ASÍ que perdí mis puntos :S
@ xsari3x - No, todavía tienes la recompensa - Solo necesitas poner algunas especificaciones básicas. EEStudent debería haber hecho lo mismo, pero no lo hizo: continúe e investigue algunas especificaciones "estándar" y edítelas en la pregunta.

Respuestas (1)

Bluetooth es un término que cubre una pila de protocolos y la especificación de hardware requerida para implementar enlaces basados ​​en radio entre dos o más dispositivos de manera estandarizada. El objetivo es permitir que los consumidores puedan comprar dispositivos compatibles con "Bluetooth" de cualquier proveedor y que esos productos funcionen entre sí sin problemas. Por lo tanto, su teléfono móvil Nokia debería funcionar con un auricular Motorola o el kit de manos libres para automóvil en su BMW sin ningún problema.

Permitir que "cualquier cosa" se conecte a "cualquier cosa" a través del protocolo Bluetooth no siempre tiene sentido práctico, ni siempre vale la pena. Por ejemplo, ¿tiene sentido que una impresora habilitada para Bluetooth pueda conectarse a un auricular Bluetooth? Además, es importante conocer el tipo de datos que desea transferir a través del enlace Bluetooth. Por ejemplo, si deseo imprimir algo a través de Bluetooth, me preocupa más que mi carta se imprima sin errores que el tiempo que tarde (dentro de lo razonable). Para el audio, me preocupa más tener un flujo de audio continuo sin interrupciones, chasquidos o crujidos, pero si se pierde ocasionalmente uno o dos milisegundos de audio o si la señal no se reproduce con precisión al 100 % al llegar, probablemente no escucharé esto. (Por lo tanto, si eres un audiófilo,

Así, dependiendo de qué tipo de datos y funcionalidad se desee, los SIG de Bluetooth (ellos escriben la especificación) han definido diferentes "perfiles" para cubrirlos. Para que una conexión de datos estándar proporcione una alternativa inalámbrica a un tipo COM/RS-232 conectado, tiene el "perfil de puerto serie" o SPP. Para una transferencia de audio de alta calidad, tiene el "Perfil de distribución de audio avanzado" o H2DP. Para audio de telefonía de baja calidad para auriculares, tiene el "Perfil de conjunto de auriculares" o HSP. (ver http://en.wikipedia.org/wiki/Bluetooth_profile )

Entonces, al módulo Arduino BT. En cuanto a la breve descripción, parece estar dirigido a la transferencia de datos en serie y probablemente no me equivoque mucho al decir que utiliza principalmente el perfil SPP. Por lo tanto, la tasa de datos que se ofrece variará enormemente dependiendo de factores como la distancia, la interferencia, etc. Tal vez no sea un problema para los datos inalámbricos, pero no es bueno para el audio inalámbrico donde se debe garantizar una tasa de datos mínima "tan buena como sea posible electrónicamente".

Por lo tanto, debe buscar un módulo Bluetooth que admita el perfil A2DP, de los cuales hay muchos (el producto encontrado al azar está aquí http://kcwirefree.com/audio.html )

La construcción de un sistema para un enlace de audio a través de Bluetooth podría tener el siguiente aspecto:

Audio In/Out <-> Audio CODEC (hardware) <-> Microcontroller <-> BT Module <-> Antenna

o

Audio In/Out <-> Audio CODEC (hardware) <-> BT Module <-> Antenna
                                  ^          ^
                                  |          |
                                 Microcontroller

Tenga en cuenta que hay algunos módulos BT que tienen todo el soporte necesario y solo requieren el CODEC de audio externo y ningún microcontrolador.

El CODEC de audio es un chip de hardware que convierte las señales de audio analógicas en un flujo de bits digital, además de hacer lo contrario, que tiene una interfaz que funciona de manera similar a SPI, excepto que el reloj funciona continuamente. Tal interfaz a menudo se llama I2S. También tienen una interfaz SPI real que se usa para configurar el CODEC (frecuencia de muestreo, amplificación de señales, etc.) Un ejemplo de Wolfson está aquí: http://www.wolfsonmicro.com/products/codecs/WM8731/

El rendimiento del microcontrolador depende de la cantidad de protocolo Bluetooth que se implemente en el módulo Bluetooth. La pila de protocolos Bluetooth se divide bastante bien en dos; por debajo de HCI y por encima de HCI, donde HCI significa interfaz de controlador de host. Las implementaciones de Bluetooth para PC (como ejemplo) usan módulos/chipsets de Bluetooth donde solo se implementa HCI e inferior, y luego confían en el sistema operativo de la PC para ejecutar la HCI y la parte superior de la pila de software. La mitad superior de la pila requiere un procesador de rendimiento decente (la experiencia propia dice que 16 bits y 16 MHz o mejor considerando que probablemente también desee ejecutar su propia aplicación). Muchos módulos Bluetooth tienen la pila completa y mucho más ejecutándose en ellos y luego ofrecen algún tipo de protocolo propietario sobre una interfaz serial (USART, I2C o SPI) que le permiten interactuar con el módulo Bluetooth. Este protocolo le permite elegir los perfiles que desea utilizar, configurar un código PIN, crear y destruir conexiones, etc. En este caso, un microcontrolador simple de 8 bits con unos pocos kBytes de flash y unos cientos de bytes de RAM debería ser suficiente para implementar un enlace de audio.

Bluetooth no es un protocolo simple de implementar. Incluso los grandes fabricantes de productos electrónicos de consumo tienen desafíos para hacerlo bien (¡aunque tienen más en juego si no funciona perfectamente todo el tiempo!)

Puede parecer una evasión/tomar el camino fácil, pero recomendaría seriamente usar una solución de módulo que esté diseñada para admitir audio a través de Bluetooth, como el enlace ya mencionado (http://kcwirefree.com/audio.html) Su las posibilidades de éxito son mucho mayores y podrá concentrarse en otras características interesantes que desee implementar en lugar de luchar para que el enlace Bluetooth funcione.

Tenga en cuenta: no estoy relacionado de ninguna manera con ninguna de las empresas que mencioné aquí; son simplemente los enlaces más relevantes que aparecieron más arriba en Google cuando busqué.

Espero que esto llene algunos agujeros de conocimiento. ¡Siéntase libre de agregar las correcciones que considere necesarias!

Saludos, Estuardo

Gracias, tu respuesta es genial :))) y llena de mucha información
De nada. Pasé un par de años trabajando en Bluetooth y me temo que no es tan simple. La enorme cantidad de módulos disponibles en el mercado simplifica mucho las cosas, pero aún así necesitará persistencia para que todo funcione como desea si tiene poca o ninguna experiencia previa. Buena suerte a cualquiera que lo pruebe. A pesar de la inclinación negativa de mis respuestas, ¡ponerlo en marcha será muy gratificante y una excelente experiencia de aprendizaje!