Diseño de altavoces ultrasónicos de CA [cerrado]

Como ingeniero de software, pido disculpas de antemano, definitivamente soy un aficionado en el campo de la electrónica.

Problema

Estoy buscando medir la distancia desde un emisor ultrasónico hasta un dispositivo móvil. Para probar esta idea, construí una aplicación de prueba de concepto que toma la entrada del micrófono, la ejecuta a través de una transformada rápida de Fourier y usa la ley del inverso del cuadrado de la amplitud de las frecuencias para medir la distancia.

Ahora estoy buscando construir un altavoz reproducible (es decir, no el de mi computadora portátil) que tenga un alto rendimiento (dbA) en frecuencias ultrasónicas (20khz-22khz). nota : la frecuencia puede ser constante si facilita la construcción.

donde estoy

Para comenzar, busqué parlantes que fueron diseñados para producir frecuencia ultrasónica, encontré este parlante que genera frecuencias de 2.1khz-45khz a 118dB (lo que parece significativo)

Rat. Impedance: <1200 Ohm
Rat. Noise Voltage: 14V
Crossover Fraq. Range (fc): 10000 +_ 25% Hz
Rat. Fraq. Range: 2500 - 45000 Hz
Sound Pressure Level: max. 118dB +_15%

Leyendo las especificaciones veo que el voltaje nominal es de 14v. Entonces, sabiendo que probablemente necesitaré que la corriente final sea CA, busqué transformadores de CA a CA de 120 V a 14 V. Estos parecen bastante fáciles de encontrar. Encontré esto .

Input Voltage: 120VAC @ 60Hz
Output Rating: 14VAC @ 850mA
Size: 2.5"H x 2.0"W x 1.7"D

Ahora aquí es donde estoy atascado. Tengo la salida deseada de 14 V, pero la corriente, que yo sepa, sigue alternando 60 HZ (salida de pared estadounidense estándar).

No conozco ningún método disponible para convertir una corriente CA de 60 HZ a la señal estática de 20 khz-22 khz que necesito. ¿Hay una manera fácil/económica? ¿Qué partes debo mirar? Parece que todos los generadores de señales que encuentro son muy caros y de uso general.

¡Gracias!

Como suena más que fluido en el código, configurar una salida PWM en un ardunio debería ser bastante fácil de hacer, aumente la potencia de salida con un controlador de puerta.
Secundo esto. Arduino [+ amplificador de audio] + transductor ultrasónico producirá su transmisor deseado. Por cierto, para el receptor no necesita un fft, solo un filtro fir para aislar las frecuencias requeridas. Último comentario: necesita modular el ultrasonido, tal vez encenderlo y apagarlo 55 veces por segundo, para que su aplicación pueda estar segura de que está viendo una baliza, no solo una fuente de ruido general como un ventilador. Por supuesto, podría codificar la ID de la baliza en el sonido, etc.
@tomnexus ¿tiene alguna documentación de alguien que use un filtro de abeto para aislar una frecuencia? Me encontré con el filtro Goertzel hace un tiempo, solo tuve problemas para encontrar una buena implementación. ¿Es eso similar a lo que estás hablando?
Nada específico, pero es lo que he usado. Busque cualquier diseñador de filtros en línea, tal vez use un filtro Chebyshev. No sea demasiado codicioso con las bandas de parada, encuentre un filtro de orden razonable para aislar, digamos, 21+-1 kHz. Luego encuentre la potencia total en la serie de tiempo filtrada elevando al cuadrado y sumando un montón de muestras. Cuántos depende de qué tan rápido quieras que responda. Por ejemplo: muestreo de 44 kHz, 100 toques le darán 2 kHz más o menos. La suma de 2000 muestras (al cuadrado) es la potencia para esos 50 ms. Leí sobre el Filtro Goertzel, interesante, también podría funcionar.
Voto para cerrar esta pregunta como fuera de tema porque es un problema XY. Si bien un disco piezoeléctrico, un tweater o incluso un altavoz de propósito general producirán una energía sustancial a ~20 KHz que los micrófonos MEM de la mayoría de los teléfonos captarán fácilmente, el esquema de distanciamiento basado en la amplitud descrito no será práctico.

Respuestas (1)

Puede generar la señal usando su PC o cualquier microprocesador que esté usando para la FFT.

No quieres un transformador.

Quieres un amplificador. Tendrá que encontrar (o construir) uno destinado a operar en el rango de frecuencia adecuado.


No querrás intentar encontrar el rango usando la ley del inverso del cuadrado. Los resultados serán muy inconsistentes.

Hay módulos completos que hacen rango ultrasónico. Miden el tiempo que tarda el eco en regresar.

Envían un pulso de ultrasonido y miden el tiempo hasta que se recibe el eco. Dado que la velocidad del sonido en el aire es bastante constante a temperaturas normales, es trivial calcular la distancia a partir del tiempo.

Probablemente sea mejor usar un módulo completo y mirar el código de muestra, los ejemplos y el software del controlador para ver cómo hacerlo.

1) Vale la pena señalar que estoy midiendo la distancia DESDE una estación base en particular, no la distancia a algún objeto al que estoy apuntando el dispositivo y 2) estoy leyendo el sonido en un dispositivo móvil.
El sonido de un dispositivo móvil no puede captar el ultrasonido. El cuadrado inverso aún no dará buenos resultados. Todavía no puede conducir un transductor de ultrasonido con un transformador.
Probablemente debería hacer una consulta/respuesta. El móvil envía un sonido particular a la estación base, que responde con otro sonido particular. El tiempo aún le indica la distancia, aunque debe tener en cuenta el tiempo perdido en los dispositivos. Los resultados serían más confiables que usar la ley del cuadrado inverso en el volumen de la señal.
Obtuve el extremo inferior de la lectura de ultrasonido (20 khz-22 khz) en un puñado de dispositivos móviles en mi propio POC, y también hay proyectos que giran en torno a él: github.com/jamrader/XTAudioBeacons . La distancia en sí no necesita ser terriblemente precisa, ya que la estoy usando para un sistema frío-calor.
Sin embargo, la idea de la respuesta al ping es definitivamente muy interesante. La única razón por la que no funciona es porque no estoy seguro de poder esperar que los usuarios tengan el sonido activado o que los dispositivos móviles tengan un rango de transmisión lo suficientemente amplio.