Tabla de contenido:
- Paso 1: componentes utilizados
- Paso 2: seguidor de sobre
- Paso 3: PWM para el medidor analógico
- Paso 4: Calibración del micrófono
- Paso 5: aplicación de Android
- Paso 6: Resumen
Video: Medidor VU analógico habilitado para Bluetooth: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Este fue mi proyecto para una de mis clases universitarias llamada SMP. Como usamos la placa de desarrollo STM32F103RB, basé mi proyecto en esto, comenzando con un simple medidor de VU. Luego agregué algunas características adicionales como soporte Bluetooth para transmitir valores desde el ADC a una aplicación de Android para crear un gráfico de dB simple.
Paso 1: componentes utilizados
- Placa de desarrollo STM32F103RB
- Módulo bluetooth HC-05 zs040
- Panel de medidor de VU analógico (enlace)
- Micrófono electret
- Amplificador operacional cuádruple LM324N
- 2 transistores TIP120
- 3 diodos 1N4148
- Varios condensadores y resistencias.
Aunque puede conducir este circuito fuera del riel de 5 V de la placa, también utilicé una fuente de alimentación externa de 5 V.
Paso 2: seguidor de sobre
La pieza principal de este diseño es el seguidor de envolvente que toma la señal del micrófono electret y emite un voltaje proporcional a la amplitud de la señal del micrófono.
La señal sin procesar del micrófono se pasa primero a través de un amplificador con una ganancia de 150.
Luego, la señal pasa a través del seguidor de envolvente real, que debería emitir solo las partes de la señal positiva.
La última parte es restar el voltaje de compensación de 1,65 V de la salida del seguidor de envolvente para proporcionar una señal de 0 V para ausencia de sonido, 1,65 V para sonido medio y 3,3 V para sonido fuerte que debería ser compatible con el integrado. ADC del tablero.
Este seguidor de sobre se implementa a partir de esta gran respuesta de StackExchange.
Paso 3: PWM para el medidor analógico
Para poner en marcha la aguja del medidor, configuré el temporizador TIM4 de la placa del microcontrolador con una frecuencia de alrededor de 500 Hz.
Al probar sucesivamente diferentes ciclos de trabajo, me establecí con algunos valores que fueron suficientes para que la aguja pasara de 0 a 100.
Detallaré el proceso de mostrar un valor exacto en el siguiente paso aplicando algunas matemáticas.
Paso 4: Calibración del micrófono
Habiendo terminado el seguidor de envolvente, escribí un código simple para usar el ADC y verifiqué que el valor de lectura cambia de acuerdo con el volumen dentro de la habitación.
Para "traducir" este valor en una lectura real de dB, utilicé un generador de tonos en línea con una frecuencia de 550 Hz y mi Android para proporcionar una lectura de referencia.
Tracé esos valores y utilicé la herramienta Curve Fit de MatLAB para obtener una función que mapea las lecturas de ADC a aproximaciones reales de los niveles de dB (o al menos lo suficientemente cerca de las lecturas de mi teléfono).
Podemos ver que esto sigue la escala logarítmica del micrófono.
También hice lo mismo para asignar la posición de la aguja a los valores de PWM. Reuní esos valores aumentando el valor de PWM en 10 sucesivamente hasta que la necesidad golpeó la lectura en su escala.
Combinando esas 2 funciones obtuve una manera fácil de mostrar la lectura del ADC a un valor real en el indicador del medidor.
Paso 5: aplicación de Android
La aplicación está utilizando esta biblioteca genial para comunicarse a través de la serie Bluetooth para intercambiar información de bytes.
La principal advertencia de este sistema es que la longitud máxima de palabra enviada a través de Bluetooth es de 8 bits y el valor de ADC se representa como 12 bits. Para superar este problema, divido un valor ADC en 2 valores separados de 6 bits (MSB y LSB) y los 2 bits restantes se utilizan para identificar el tipo de mensaje (MSB, LSB, CHK).
Por lo tanto, para un solo valor de ADC que queremos transmitir, dividimos el valor real en 2 mensajes. Para comprobar la integridad de esos mensajes, envié un tercer mensaje con el XOR de los 2 primeros mensajes.
Después de verificar la integridad del valor, podemos aplicar la misma función para obtener el nivel de dB y trazarlo en nuestro gráfico en vivo.
Paso 6: Resumen
Si bien la parte del microcontrolador de este proyecto funciona bastante bien al mostrar el volumen dentro de una habitación, encontré algunos problemas al enviar datos a través de Bluetooth debido a la pérdida de paquetes.
El código fuente de este proyecto se puede encontrar aquí:
- Aplicación complementaria de Android: repositorio
- Código del microcontrolador - repo
Siéntase libre de contribuir si lo encuentra útil de alguna manera.
Recomendado:
Medidor de CO2 analógico gigante: 6 pasos (con imágenes)
Medidor de CO2 analógico gigante: la atmósfera actual sobre una montaña en Hawái contiene aproximadamente 400 ppm de dióxido de carbono. Este número es extremadamente importante para todos los que viven en la superficie de los planetas. Ahora estamos rodeados de negadores de esta preocupación o de aquellos que retuercen su
Nerf Blaster habilitado para Bluetooth: 7 pasos
Nerf Blaster habilitado para Bluetooth: Me sentí inspirado por el proyecto de Colin Furze y decidí hacer mi propia interpretación para el Remix Challenge. El diseño que utilicé es similar, pero más amateur, y cuenta con un módulo Bluetooth que permite controlar la torreta desde mi teléfono. Esto es
Sistema de seguridad para el hogar DSC habilitado para Internet: 22 pasos
Sistema de seguridad para el hogar DSC habilitado para Internet: modifique un sistema de seguridad para el hogar DSC existente para que esté habilitado para Internet y se autocontrole. Este instructivo asume que tienes una Raspberry Pi en funcionamiento. Ten en cuenta que esta implementación tiene las siguientes deficiencias: Si un ladrón corta el cable DSL entrante
Circuitos GPIO de Raspberry Pi: uso de un sensor analógico LDR sin un ADC (convertidor analógico a digital): 4 pasos
Circuitos GPIO de Raspberry Pi: uso de un sensor analógico LDR sin un ADC (convertidor analógico a digital): en nuestros Instructables anteriores, le mostramos cómo puede vincular los pines GPIO de su Raspberry Pi a los LED e interruptores y cómo los pines GPIO pueden ser altos o bajo. Pero, ¿y si quieres usar tu Raspberry Pi con un sensor analógico? Si queremos usar un
Uso de su teléfono Sony Ericsson habilitado para Bluetooth para controlar su computadora: 6 pasos
Uso de su teléfono Sony Ericsson habilitado para Bluetooth para controlar su computadora: He estado leyendo sobre instructivos por un tiempo y siempre quise hacer algunas de las cosas sobre las que la gente ha escrito, pero me he encontrado mirando cosas que son difíciles de hacer porque son realmente difíciles de hacer, o el