Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Audio via BT
#1
Buenos dias, vereis, necesitaba realizar una transmision de audio via BT a un dispositivo movil, y que pudiera ser reproducido en el mismo, barajaba varias opciones y tras informarme estas opciones se han visto mermadas, y me gustaria que si alguien conoce algo mas de este mundo, hablar un poco del tema.

La idea principal, era usar un modulo HC-05 o HC-06 para la transmision de la trama de datos del audio digitalizado, transmitirlo al movil y decodificarlo en el mismo movil a traves de una aplicacion.

Tras buscar informacion, me parece que esta opcion es poco viable, no me manejo mucho por android, pero nose si se podra realizar esto que pido, ya que existen perfiles propios como el A2DP del que voy a hablar ahora, para tal fin.

Os dejo aqui la lista de perfiles, donde teneis el A2DP:

http://en.wikipedia.org/wiki/List_of_Bluetooth_profiles

La cuestion es, que este perfil permite la emision de audio del dispositivo movil a un dispositivo BT, codificado adecuadamente y listo para la reproduccion. No he visto muy claro que sea bidireccional, aunque si es lo que se usa para los manos libres lo tiene que ser, estableciendo una conexion entrante y saliente de audio.

Tras buscar, me encontre con el modulo BT OVC3860:

http://www.szriley.com/DownLoadFile/OVC3860.pdf

Este modulo, es capaz de establecer una comunicacion con perfil A2DP, facilitando mucho la tarea, y tiene una entrada de MIC o Micro, por lo que imagino que la emision de audio a traves del mismo sera viable. Las cuestiones vienen ahora, en teoria este modulo es perfecto (Aunque los datasheet son algo escuetos) pero la entrada de audio al mismo se realiza de forma analogica, donde en el propio modulo es codificada y enviada. Yo necesitaba introducir la señal de audio de manera digital, ya que mi señal de audio ha sido previamete capturada y digitalizada por un DSPIC30F2010. Ya digo que los datasheets no aportan demasiada informacion, el modulo este tiene puerto UART, pero segun lei es solo para Debbug y poco mas....

Asique sigo buscando ideas para la transmision de audio ya digitalizado a traves de BT y reproduccion del mismo en un telefono movil.

Otra idea es descartar que el receptor sea el propio telefono y hacer un receptor donde a traves de dos HC-05/06 realizar una transmision de datos y decodificarlo en el propio receptor...., pero me gustaria priorizar la idea de reproducirlo en el movil.
Citar
#2
Hola Trigger.

¿Tu proyecto debe cumplir algún estandar en esa comunicación bluetooth? Porque de no ser así, no veo la necesidad de utilizar los perfiles de audio definidos en la especificación Bluetooth.
¿Debes transmitir el audio en tiempo real?
¿Por qué no implementas tu propio protocolo "limpio" para el envío/recepción de datos entre el teléfono y "tu dispositivo"? Es decir, sin apoyarte en la pila del protocolo bluetooth, de esto ya se encargaría el propio módulo de comunicación (como los que comentas tipo HC-05 o HC-06).

Al final, desde el punto de vista del software/firmware, estos módulos no dejan de implementar una UART virtual sin más.

Estableces una conexión serie (típica UART/USART) a x baudios, x bits de datos, control de flujo, etc... y te limitas a enviar la ristra de bits del muestreo que hayas hecho en "tu dispositivo".

Evidentemente, si lo que quieres es que cualquier teléfono pueda conectar con "tu dispositivo", sin necesidad incluso de instalar ninguna aplicación en el móvil, pues entonces sí que debes implementar un perfil estandarizado, para que la propia stack bluetooth del teléfono pueda "entenderse" con "tu dispositivo".

Realmente desconozco cual es el dispositivo que estás diseñando y que requisitos debe cumplir, pero a priori, si no debes "respetar estándares" entonces tiraría por una comunicación serie limpia sin más, que obviamente podrías cifrar, comprimir, etc. para agilizar y "securizar" la transmisión.
Citar
#3
Buenos Dias MAK (Si se pueden llamar buenos con este tiempo jajajaj)

Muchas gracias por la respuesta, por partes.

Mi idea principal era la que tu comentas, realizar una transmision limpia, mandar la señal digitalizada al dispositivo receptor. Y decodificarla. No necesito ningun tipo de seguridad, ni protocolo ni perfil. Simplemente que la señal de audio llege al receptor y se pueda reproducir.

La señal de audio es una señal lenta, lleva un filtrado de 10hz-2Khz aproximadamente.

Un pic recoge la señal, la digitaliza, (Seguramente la filtre, ya que es posible que implemente un filtro digital si el PIC me lo permie en ved de usar un recurso analogico) y la envia por BT.

El audio tiene que ser en tiempo real, puede tener cierto retraso como es logico, pero no algo exagerado.

La cuestion que me planteaba, antes de emprender nada, es si es viable programar una APP para Android que sea capaz de recibir esa trama de datos, decodificarlos y una vez decodificados pasarlos a Audio. Si esto que comento es factible entonces no hay ningun problema. Lo que pasa es que en el mundo android aun no tube tiempo de meterme, y nose si hay posibilida de hacer esto, alguna libreria..., desconozco el tratamiento de señales y audio en android ya digo....
Citar
#4
Ya te digo, menudas granizadas que caen :S

Interesante proyecto, si señor. En cuanto a si es viable, claro que si hombre!

Así a priori y sin pensar en más, la opción más "asequible y sencilla", dentro de lo complejo que de por sí, ya es todo esto, jajaja la opción más recomendable sería que, una vez hayas recibido la ristra de datos en el móvil, la guardes como un archivo de audio "sin codificar" tipo WAV, quiero decir, en lugar de MP3 o similares, ya que entonces tendrías que meterte también con el formato MP3, aunque también hay algo al respecto, pero bueno, esto es lo de menos. Inicialmente al menos, yo tiraría por guardar los datos recibidos en un archivo de audio sin codificación y después, utilizando por ejemplo la librería JAVA (android.media.MediaPlayer), mandarle a reproducir dicho archivo.

Hay muchas más opciones al respecto, pero esa al menos en un comienzo sería la más "rápida y sencilla".

A modo de resumen.

- Estableces una conexión serie entre tu dispositivo y el móvil vía módulo bluetooth (HC-0X)
- Una vez vas recibiendo los datos los guardas en un archivo en el almacenamiento del móvil, por ejemplo. Para esto puedes hacer uso de las librerías Java.io.* (OutputStream, FileOutputStream, etc)
- Llamas a las funciones de la librería android.media.MediaPlayer (mediaplayer.start() y mediaplayer.stop(), mediaplayer.pause(), mediaplayer.seekTo(), etc).
- y listo!

Obviamente podrías hacer muchas más cosas, no cabe duda, pero esto creo que es lo más rápido para empezar a ver resultados y sobre ello ir refinando o "acomplejando" todo lo que quieras, jejeje
Citar
#5
Por cierto, se me olvidaba. Si finalmente lo que quieres es "tratar" los datos recibidos, es decir la señal de audio en sí, por ejemplo con FFT, Filtros digitales, etc. Quizás una buena opción sería utilizar el NDK de Android para trabajar con C/C++ y tirar de librerías que ya existen para estos menesteres directamente programadas en C/C++, con lo que supone esto también en cuanto a rendimiento del código nativo frente al emulado de Java... pero bueno, como te digo, yo inicialmente tiraría por la opción de guardar en archivo de audio sin códec y a reproducir se ha dicho...
Citar
#6
Pues no tengo idea de tratar los datos en el telefono, de eso se encarga el PIC de transmision Gran sonrisa

Muchas gracias por la orientacion MAK, parece que ya veo algo de luz. La señal se digitaliza con 10bits, imagino que sera suficiente, el sonido no es Hi-Fi, son sonidos cardiacos.

En cuanto tenga avances os comentare, por ahora tengo que digitalizar la señal y demas....
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  APORTE Contruye tu propio AMPLIFICADOR DE AUDIO kuadri 0 209 02-10-2018, 04:02 PM
Último mensaje: kuadri
  Problema con un sistema de audio Gwynbleidd 8 780 28-02-2014, 09:08 AM
Último mensaje: Thorontir
  Comprar cable audio cansi22 1 631 15-07-2013, 07:40 PM
Último mensaje: jukillo