Estou tentando criar um teclado sensível à velocidade para tocar música.
Preciso medir a posição de cada tecla para saber quão alto o som deve ser.
O volume do som é uma função da velocidade das teclas no final da descida. Eu sei que a posição pode ser recuperada da velocidade integrando-a.
Qual seria a maneira mais barata e fácil, mas ainda razoavelmente precisa, de fazer isso?
Não sei exatamente o que "razoavelmente preciso" significaria no contexto. Vou ter que testar.
O comprimento do deslocamento máximo é de cerca de 2 cm.
EDIT: não como algumas respostas parecem sugerir, o volume NÃO é função da velocidade média da tecla.
EDIT2: O volume é função da velocidade do martelo no momento em que atinge a corda, mas a chave não está pressionando o martelo até o final de seu caminho. É realmente como jogar uma bola na parede: a bola sai da mão em um momento, antes de bater na parede.
Respostas:
E quanto à detecção capacitiva? Prenda um pouco de papel alumínio na parte inferior da tecla, aterre a parte inferior do teclado e meça o tempo de subida através de um resistor de 100k.
Esse método pode ser feito quase arbitrariamente preciso, desde que o seu processador seja rápido o suficiente para discriminar a alteração na capacitância.
Não expliquei muito bem o circuito. Você conecta uma saída digital à chave por meio de um resistor de alto valor, configura-o baixo para descarregar qualquer carga dispersa e, em seguida, configura-o alto. Você também conecta uma entrada digital diretamente à tecla. A capacitância será carregada lentamente através do resistor e você tempo quanto tempo leva para a entrada digital ser ligada. Este tempo é igual à constante de tempo RC do circuito.
fonte
analogRead
no Arduino. [1]: pjrc.com/teensy/teensyLC.htmlA maioria dos teclados simplesmente usa dois contatos por tecla, configurados para fechar (ou abrir) em diferentes posições no percurso da tecla. Eles estimam a velocidade a partir do tempo decorrido entre os dois eventos. Até os teclados sofisticados de "ação de piano" usam esse método básico de detecção.
Tentar medir a posição e / ou a velocidade diretamente soa como um exagero maciço.
fonte
Normalmente, a velocidade da chave é calculada medindo o tempo entre a interrupção do interruptor ascendente normalmente fechada e a fabricação do interruptor descendente normalmente aberto.
simular este circuito - esquemático criado usando o CircuitLab
Figura 1. Um contato do teclado break-before-make é normalmente usado para medição de velocidade.
Nesse caso, é necessário organizar mecanicamente o contato normalmente fechado para que ele quebre nos últimos mm de curso.
simule este circuito
Figura 2. O arranjo de comutação mecânica.
Parece-me que sua melhor aposta seria modificar uma pedaleira de baixo MIDI existente para se adequar aos seus propósitos.
Comentário do OP a Dave Tweed:
Foi por isso que propus ativar a chave de comutação nos últimos mm de curso.
fonte
Você deve dar uma olhada nos teclados analógicos. Dê uma olhada neste vídeo . Este é apenas um exemplo de conceito.
Edit: Além disso, se os switches ópticos não estiverem funcionando para você, dê uma olhada no seguinte:
Há uma bobina impressa em PCB sob cada tampa de chave. À medida que você pressiona a bobina do botão, mede a alteração da indutância causada pela compressão e descompressão da mola de chave, portanto, você pode obter uma leitura bastante precisa da posição do interruptor.
Fonte:
Reddit
Imgur
fonte
Se a variável importante é o impacto de um "martelo" que você está tentando imitar, considere sensores piezoelétricos que permitem medir isso diretamente. Eles produzem um pulso cuja amplitude depende do impulso do impacto.
fonte
Uma opção poderia ser os sensores Hall, que detectam a força de um campo magnético. Existem diferentes tipos de sensores Hall para detecção digital e analógica, você precisa de um que possua analógico. Por exemplo, o SI7211 custa cerca de 0,80 USD.
Você também precisa de um pequeno ímã embaixo de cada tecla. Quando o ímã se aproxima do sensor, o campo magnético aumenta, o que aumenta a tensão de saída do sensor.
fonte
Você pode tratá-lo como um instrumento digital / analógico híbrido, colocando microfones [1] dentro do teclado, sintonizados ao som do toque nas teclas. Os sinais dos microfones aumentam a entrada tradicional baseada em comutador, de modo que o comutador informa qual tecla foi pressionada e os microfones informam quão alto foi o pressionamento de tecla mais recente.
Dois ou mais microfones ao longo do comprimento do teclado permitiriam decodificar um acorde com notas altas / baixas e notas suaves / altas e vice-versa.
[1]: Eu continuo dizendo "microfone", mas quero dizer "dispositivo genérico de detecção de vibração".
fonte
Você pode pesquisar resistores variáveis de retorno de mola, potenciômetros de retorno de mola ou sensores de posição lineares. Aqui está um exemplo: http://ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0
Outra possibilidade pode ser o uso de um pequeno codificador rotativo (e converter mecanicamente o movimento de pressionar a tecla linear em movimento rotativo). O codificador emitirá um ou mais conjuntos de pulsos à medida que o eixo gira. Uma taxa de pulso mais alta indicaria uma pressão de velocidade mais alta. A posição do codificador pode ser rastreada diretamente se os grupos de pulsos forem enviados para uma lógica digital adicional. Aqui está uma parte de exemplo: https://www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSEA4AWE_YAWY
fonte
Se você deseja superprecisão a um preço razoável, que tal usar um codificador linear , anexar uma fita codificada em cinza (que você imprime usando uma impressora a laser em uma folha transparente, cortar e anexar uma a cada tecla) - mais detalhes de como eles funcionam em codificadores rotativos aqui . Dessa forma, você precisa de duas linhas digitais (talvez 3 para obter uma indicação precisa da posição final) por tecla. Isso permitirá que você meça a velocidade com muito boa precisão e posição uniforme, se isso for relevante. A vantagem disso é que você pode adaptá-lo a um teclado antigo (mesmo um teclado acústico).
Cuidado: quando eu era adolescente (há muito tempo), eu me perguntava há séculos se conseguiria fazer um teclado realista mais barato do que comprá-lo. Parecia improvável na época e parece ainda menos provável agora. O método econômico é, portanto, provavelmente "compre um teclado sensível à velocidade e desmonte-o", o que não é divertido.
fonte