¿Cómo puedo integrar el micrófono y el altavoz en el proyecto de mi microcontrolador?

2

Al no haber trabajado nunca con el micrófono y los altavoces, estoy experimentando con estos. Ya hice un circuito simple con un micrófono ( micrófono de condensador electret ) y hablante. Utilicé el micrófono anterior con una etapa de amplificador simple y luego un altavoz de computadora. Funciona bien.

Ahora, estoy pensando en construir un circuito simple de micrófonos, altavoces y microcontroladores. La idea es básicamente alimentar la entrada del micrófono al microcontrolador y luego enviar la señal de audio al altavoz.

Para eso creo que primero debo convertir la señal analógica del micrófono a valores digitales utilizando el ADC de AVR. Después de eso necesito enviar los valores analógicos al altavoz. Como esta es mi primera vez, necesito consejos sobre cómo construir un circuito que funcione. ¿Cuál debería ser la frecuencia de muestreo y reproducción? ¿Tengo que preocuparme por los codecs, etc? (No sé qué tan grandes pueden ser los datos de audio en bruto).

Planeo usar Arduino primero, ya que es fácil y rápido para crear prototipos.

Cualquier ayuda es apreciada como siempre! :)

    
pregunta user734861

2 respuestas

3

Su frecuencia de muestreo debe ser el doble de la frecuencia máxima de interés. Este es el teorema de muestreo de Nyquist – Shannon . Si desea un audio de alta fidelidad, su frecuencia máxima es el límite de audición humana, aproximadamente 20 kHz. La voz humana es menos exigente: las redes telefónicas funcionan hasta aproximadamente 3400 Hz.

Encontrará que el ADC del AVR no es terriblemente rápido y no tiene muchos recursos para procesar los datos. Probablemente, las limitaciones de su hardware determinarán la frecuencia de muestreo para usted.

Probablemente no tengas que preocuparte por los códecs. Un codec codifica y decodifica un flujo de audio. Una cosa común es comprimir el audio para un almacenamiento o transmisión más eficiente, pero tampoco suena como si lo estuvieras haciendo. Hay codecs que codifican y decodifican por razones distintas a la compresión, pero no puedo pensar en ninguna que sea relevante aquí. Sus recursos informáticos son muy limitados en el microcontrolador de todos modos, y no tendrá mucho tiempo para codificar o decodificar de todos modos.

    
respondido por el Phil Frost
3

Si usa un ADC de 10 bits (la mayoría (o la mayoría) de las MCU las tienen), puede muestrear a 8 kHz el audio / voz básico y la salida a la misma velocidad. Incluso podría producir a la mitad (o cuarto) la velocidad para obtener efectos de alias de sonido funky.

Si está pensando en efectos digitales, tendrá que almacenar hasta 100 ms de muestras, por lo que necesita almacenar y recuperar casi un kbyte de datos.

Mantenga la entrada y salida de muestreo a la misma velocidad si está aprendiendo técnicas de filtrado digital o de efectos para un inicio.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas