5 votos

Emulación de reproductor de vinilo en Arduino

Digamos que tienes un Arduino Uno + audio shield, un altavoz y una rueda de desplazamiento (o rueda de ratón).

Y quieres reproducir algún archivo de audio vinculado al movimiento de la rueda, tal como mueves un disco de vinilo. Por ejemplo, al desplazar hacia adelante (lo suficientemente rápido) — se reproduce el audio hacia adelante (lo suficientemente rápido), al desplazar hacia atrás (lentamente) — se reproduce el audio hacia atrás (mismo ritmo lento).

¿Cómo se hace? ¿Es posible de alguna manera? Espero haberlo dejado claro.

1voto

ioplex Puntos 652

No tengo experiencia con este tipo particular de aplicación, pero supongo que todo depende de tu RAM disponible y de qué características tenga el códec para dirigirlo a los datos almacenados en la RAM. Por lo tanto, cuando avanzas, tu código le diría al códec que omita algunos búferes en la RAM. Mientras tanto, tu código tendría que anticipar qué búferes se necesitarán y extraerlos de la tarjeta SD. Por lo tanto, necesitas un buen algoritmo que pueda anticipar qué partes del archivo de sonido serán necesarias. Para reproducir hacia atrás, solo necesitarías invertir los datos en cada búfer. Para reproducir lentamente, podría ser tan simple como cambiar la tasa de bits del códec para que sea demasiado rápido y así el audio sonará lento.

Pero lo primero que necesitarías hacer es identificar el chip en el escudo de audio que se utiliza para convertir el archivo de sonido en audio digital y estudiar cuidadosamente qué tipo de control tienes sobre cómo alimentarlo con datos. Es posible que tenga una rutina que pueda acceder a un archivo en la tarjeta SD directamente, pero por supuesto, eso no te serviría de nada. Probablemente tenga rutinas de nivel inferior que funcionen en búferes. Necesitarías decir explícitamente que reproduzca búferes individuales en la RAM. Entonces, todo se trata de obtener los búferes correctos en la RAM.

Puede que en realidad no tengas suficiente RAM para hacer esto. Antes de emocionarte, deberías averiguarlo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X