我正在尝试制作一个力度敏感的键盘来播放音乐。
我必须测量每个键的位置才能知道声音应该有多响。
声音的音量是下降结束时琴键速度的函数。我知道可以通过积分从速度中恢复位置。
什么是最便宜,最简单但仍相当精确的方法呢?
我不完全了解上下文中的“合理精确”的含义。我必须测试一下。
最大位移的长度约为2厘米。
编辑:并非像某些答案所暗示的那样,响度不是按键平均速度的函数。
EDIT2:响度是锤击弦时锤速度的函数,但关键是直到锤的路径结束才推动锤。这真的就像是在墙上扔一个球:球在碰到墙之前一瞬间离开手。
我正在尝试制作一个力度敏感的键盘来播放音乐。
我必须测量每个键的位置才能知道声音应该有多响。
声音的音量是下降结束时琴键速度的函数。我知道可以通过积分从速度中恢复位置。
什么是最便宜,最简单但仍相当精确的方法呢?
我不完全了解上下文中的“合理精确”的含义。我必须测试一下。
最大位移的长度约为2厘米。
编辑:并非像某些答案所暗示的那样,响度不是按键平均速度的函数。
EDIT2:响度是锤击弦时锤速度的函数,但关键是直到锤的路径结束才推动锤。这真的就像是在墙上扔一个球:球在碰到墙之前一瞬间离开手。
Answers:
电容感应怎么样?用铝箔纸包住按键的底部,将键盘的底部接地,然后通过100k电阻测量上升时间。
只要您的处理器足够快以区分电容变化,就可以使这种方法几乎任意精确。
我没有很好地解释电路。您可以通过一个高阻值电阻将数字输出连接到按键,将其设置为低电平以释放任何杂散电荷,然后将其设置为高电平。您还可以将数字输入直接连接到按键。电容将通过电阻缓慢充电,您需要花费时间多长时间才能打开数字输入。该时间等于电路的RC时间常数。
analogRead在Arduino中调用一样容易。[1]:pjrc.com/teensy/teensyLC.html
大多数键盘在每个按键上仅使用两个触点,其配置使其在按键行程中的不同位置闭合(或打开)。他们从两个事件之间经过的时间估算速度。甚至是花式加权的“钢琴动作”键盘也使用这种基本的感应方法。
试图直接测量位置和/或速度听起来像是过大的杀伤力。
我必须测量每个键的位置才能知道声音应该有多响。
通常,通过测量常闭向上开关断开与常开向下开关闭合之间的时间来计算琴键速度。

模拟此电路 –使用CircuitLab创建的原理图
图1.先断后通键盘触点通常用于速度测量。
声音的音量不仅是下降结束时琴键速度的函数。...最大位移的长度约为2厘米。
在这种情况下,您需要机械地布置常闭触点,以使其在行程的最后几毫米处破裂。

图2.机械开关装置。
在我看来,最好的选择是修改一个现有的MIDI低音踏板以适合您的目的。
OP对Dave Tweed的评论:
我认为这种方法是不够的。原因是:如果我缓慢将琴键向下推到一半,然后快速将琴键向下推到尽头,则在真实的钢琴上声音会很大,这种方法会认为琴键被按下得很慢,因此会输出真的很安静。另外,如果我想重复一个音符,则必须让琴键完全回到其原始位置,这根本不是我在真正的钢琴上所能做的。
因此,我建议在行程的最后几毫米内激活转换开关。
您应该看看模拟键盘。看一下这个视频。这只是概念的一个例子。
编辑:另外,如果光学开关对您不起作用,请查看以下内容:
每个键帽下方都有一个PCB印刷线圈。当您按下按钮线圈时,将测量由键弹簧压缩和减压引起的电感变化,因此,您可以获得相当准确的开关位置读数。
一种选择是霍尔传感器,它可以感应磁场强度。用于数字和模拟感测的霍尔传感器有不同类型,您需要一种具有模拟功能的霍尔传感器。例如,SI7211的成本约为0.80美元。
您还需要在每个按键下方放置一个小磁铁。当磁体靠近传感器时,磁场会增加,从而增加传感器的输出电压。
您可能需要研究弹簧复位可变电阻器,弹簧复位电位计或线性位置传感器。这是一个示例:http : //ecatalog.beisensors.com/item/linear-position-sensors/linear-position-sensor-9600-series-compact-spri/9610r3-4kl2-0
另一种可能是使用小型旋转编码器(并将机械按键线性运动转换为旋转运动)。当轴旋转时,编码器将输出一组或多组脉冲。较高的脉冲频率表示较高的压力机速度。如果将脉冲组发送到其他数字逻辑,则可以直接跟踪编码器的位置。这是一个示例部分:https : //www.mouser.com/ProductDetail/Bourns/PEC16-4220F-S0024?qs=6FD5PBp7ZtQte%252Bg7b%2FiMUw%3D%3D&gclid=EAIaIQobChMIrKbIjOSa4QIVCEeNCh3JAAKuEAQ
如果您想以合理的价格获得超高精度,那么如何使用线性编码器,附加格雷码条带(您可以使用激光打印机在透明纸上进行打印,然后将其切割并附加到每个键上)-更多他们在旋转编码器是如何工作的细节在这里。这样,每个键需要两条(也许是3条,这样您才能准确地知道终点位置)数字线路。如果需要的话,这将使您能够非常准确地测量速度,甚至可以测量位置。这样做的好处是您可以将其改装为旧键盘(甚至是原声键盘)。
警告:我十几岁的时候(很久以前),我一直在想,是否可以比购买它们更便宜地制造出逼真的键盘。那时似乎不太可能,现在看来可能性很小。因此,具有成本效益的方法可能是“购买力度感应键盘并将其拆开”,这很无聊。