Estoy tratando de hacer un teclado sensible a la velocidad para reproducir música.
Tengo que medir la posición de cada tecla para saber qué tan fuerte debe ser el sonido.
El volumen del sonido es una función de la velocidad de las teclas al final del descenso. Sé que la posición se puede recuperar de la velocidad al integrarla.
¿Cuál sería la forma más barata y fácil, pero aún razonablemente precisa de hacerlo?
No sé exactamente qué significaría "razonablemente preciso" en el contexto. Tendré que probarlo.
La longitud del desplazamiento máximo es de aproximadamente 2 cm.
EDITAR: no como algunas respuestas parecen sugerir, el volumen NO es función de la velocidad media de la tecla.
EDIT2: El volumen es función de la velocidad del martillo en el momento en que toca la cuerda, pero la tecla no empuja el martillo hasta el final de su trayectoria. Es realmente como lanzar una pelota contra la pared: la pelota deja la mano en un momento, antes de que golpee la pared.
Respuestas:
¿Qué hay de la detección capacitiva? Pegue un poco de papel de aluminio en la parte inferior de la tecla, conecte a tierra la parte inferior del teclado y mida el tiempo de subida a través de una resistencia de 100k.
Este método puede hacerse casi arbitrariamente preciso, siempre que su procesador sea lo suficientemente rápido como para discriminar el cambio en la capacitancia.
No expliqué el circuito muy bien. Conecta una salida digital a la tecla a través de una resistencia de alto valor, la configura en baja para descargar cualquier carga perdida y luego la configura en alta. También conecta una entrada digital directamente a la tecla. La capacitancia se cargará lentamente a través de la resistencia, y usted mide el tiempo que tarda antes de que se encienda la entrada digital. Este tiempo es igual a la constante de tiempo RC del circuito.
fuente
analogRead
a Arduino. [1]: pjrc.com/teensy/teensyLC.htmlLa mayoría de los teclados simplemente usan dos contactos por tecla, configurados para que se cierren (o abran) en diferentes posiciones en el recorrido de la tecla. Estiman la velocidad a partir del tiempo que transcurre entre los dos eventos. Incluso los elegantes teclados ponderados de "acción de piano" utilizan este método de detección básico.
Intentar medir la posición y / o velocidad directamente suena como una exageración masiva.
fuente
Normalmente, la velocidad clave se calcula midiendo el tiempo entre la interrupción del interruptor ascendente normalmente cerrado y la fabricación del interruptor descendente normalmente abierto.
simular este circuito : esquema creado con CircuitLab
Figura 1. Un contacto de teclado break-before-make se usa generalmente para medir la velocidad.
En este caso, debe organizar mecánicamente el contacto normalmente cerrado para que se rompa en los últimos mm de recorrido.
simular este circuito
Figura 2. La disposición de conmutación mecánica.
Me parece que su mejor opción sería modificar una pedalera MIDI existente para adaptarla a sus propósitos.
Comentario de OP a Dave Tweed:
Es por eso que propuse activar el interruptor de cambio en los últimos mm de recorrido.
fuente
Deberías echar un vistazo a los teclados analógicos. Echa un vistazo a este video . Esto es solo un ejemplo de concepto.
Editar: Además, si los interruptores ópticos no funcionan para usted, eche un vistazo a esto:
Hay una bobina impresa en PCB debajo de cada tapa de tecla. Al presionar el botón, la bobina mide el cambio de inductancia causado por la compresión y descompresión del resorte de la llave, por lo tanto, puede obtener una lectura bastante precisa de la posición del interruptor.
Fuente:
Reddit
Imgur
fuente
Si la variable importante es el impacto de un "martillo" que está tratando de emular, considere los sensores piezoeléctricos que le permiten medir esto directamente. Producen un pulso cuya amplitud depende del impulso de impacto.
fuente
Una opción podría ser sensores Hall, que detectan la fuerza de un campo magnético. Existen diferentes tipos de sensores Hall para detección digital y analógica, necesita uno que tenga analógico. Por ejemplo, SI7211 cuesta alrededor de 0,80 USD.
También necesita un pequeño imán debajo de cada tecla. Cuando el imán se acerca al sensor, el campo magnético aumenta, lo que aumenta el voltaje de salida del sensor.
fuente
Puede tratar esto como un instrumento híbrido digital / analógico colocando micrófonos [1] dentro del teclado, sintonizados con el sonido de tocar las teclas. Las señales de los micrófonos aumentan la entrada tradicional basada en el interruptor, por lo que el interruptor le indica qué tecla se presionó, y los micrófonos le dicen qué tan fuerte fue la pulsación de tecla más reciente.
2 o más micrófonos a lo largo de la longitud del teclado permitirían decodificar un acorde con notas altas / bajas y notas suaves / altas y viceversa.
[1]: Sigo diciendo "micrófono", pero me refiero a "dispositivo genérico de detección de vibraciones".
fuente
Es posible que desee investigar resistencias variables de retorno por resorte, potenciómetros de retorno por resorte o sensores de posición lineal. Aquí hay un ejemplo: http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0
Otra posibilidad puede ser utilizar un pequeño codificador rotatorio (y convertir mecánicamente el movimiento lineal de la pulsación de tecla en movimiento rotativo). El codificador generaría uno o más conjuntos de pulsos a medida que el eje gira. Una frecuencia de pulso más alta indicaría una prensa de mayor velocidad. La posición del codificador podría rastrearse directamente si los grupos de pulsos se envían a una lógica digital adicional. Aquí hay una parte de ejemplo: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEsECM3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ
fuente
Si desea una súper precisión a un precio razonable, ¿qué tal si utiliza un codificador lineal , adjuntar una tira codificada en gris (que imprime usted mismo con una impresora láser en una hoja transparente, luego cortar y adjuntar una a cada tecla)? Más detalles de cómo funcionan bajo codificadores rotativos aquí . De esta forma, necesita dos líneas digitales (tal vez 3 para obtener una indicación precisa de la posición final) por tecla. Esto le permitirá medir la velocidad con muy buena precisión e incluso la posición si eso es relevante. La ventaja de esto es que puede adaptarlo a un teclado antiguo (incluso un teclado acústico).
Precaución: cuando era un adolescente (hace mucho tiempo) me pregunté durante años si podría hacer un teclado realista más barato que comprarlo. Parecía improbable entonces y parece aún menos probable ahora. Por lo tanto, el método rentable es probablemente "comprar un teclado sensible a la velocidad y desarmarlo", lo cual no es divertido.
fuente