我一直致力于制作电子竖琴曼陀林(以前,以前,以前)。我把它全部连接起来,但不幸的是我遇到了非常严重的干扰,需要重新设计它。
回顾一下,我设计了一个用于测试的电路并将其安装在面包板上。它工作得很好,我写了一堆代码来解释拔除信号。 [1] 这是面包板版本的视频,显示了速度灵敏度和方向检测:
我做了一些焊接并连接了完整版本:
不幸的是我受到了很大的干扰。这里是所有 18 个引脚,但只有 13 个连接了压电:
如果我的手靠近,情况会更糟,如果我触摸其中一颗牙齿,那就更糟糕了:
注意比例的变化:
这看起来像电力线干扰,正弦波频率约为 60Hz。然后,即使我不碰它或做任何事情,我也会看到尖峰,我认为这可能是其他无线电干扰?
我尝试用软件来解决这个问题,但没有什么超级复杂的。一种选择是计算电源干扰对所有引脚的影响相同并且接近同步,因此我们只需从每个引脚中减去所有引脚的平均值即可。这工作得很好,除了我们仍然看到那些尖峰:
我猜它们击中不同线的方式不同,具体取决于每条线穿过我的线球的路径?
一个不同的想法是计算每对引脚之间的相关性,并使用两个最相似的引脚对每个引脚进行降噪(不能只使用一个引脚,因为那样你就无法分辨哪个引脚被拔除)。这对于某些引脚比其他引脚效果更好,并且没有解决尖峰问题:
也许我可以做某种低通滤波来消除这些尖峰,但我猜这最好在硬件中修复?
我认为关键问题是,为什么我在面包板原型上获得了良好的结果,但在完整版本上却没有?我可以想到我改变了一些事情:
-
我现在已经连接了 13 颗牙齿,而不是一两颗。
-
所有 13 个牙齿均在黑色一侧进行电气连接,其中包括其中 11 个牙齿的金属(其中 2 个压电陶瓷的黄铜最终通过一整层环氧树脂与牙齿绝缘)。
-
所有的牙齿都共用一根黑线连接到板上,所以我需要连接更少的东西,但也许打破这里的对称性是一个坏主意。
-
压电线又细又短,我焊接了延长线,使它们更容易使用,但这些较长的电缆应该能更好地吸收干扰。
所有这些听起来都不理想,但我不知道足够的电气工程知识来弄清楚要优先考虑什么,或者要测试什么。经过一番阅读后,我认为我应该做的是:
-
将每个压电元件切换为屏蔽电缆,而不是裸露的信号线和共享的黑线。
-
将电路板放入金属盒中(或测试时用锡纸包裹的纸板盒)。
-
重新设计电路板,使压电接地成为真正的接地,并使用运算放大器向上偏置输出。
-
可能:重新制作牙齿,使压电接地与牙齿的金属电隔离。
-
可能会重新设计电路板以使用星形拓扑进行接地,其中 pizeo 接地仅在一个点上聚集在一起,从而避免接地环路。
我想我可能会从前两个开始,因为这不需要重做电路板。但我认为这可能还不够,因为我无法将电缆屏蔽层接地:当前设计的电压为+1.65v。
其他建议?
[1] 让它变得棘手的主要原因是我想要向下和向上拨动不同的音符(“bisonoric”)。以下是部分波形的形状,取自面包板版本:
一些观察结果:
-
当我轻轻拨动时,会出现一个尖锐的峰值,上拨为负值,下拨为正值。
-
当我更用力地拨弦时,尖锐的峰就会出现相反方向的更宽的峰。
-
尖峰的幅度通常大于宽峰。
我最初编写了一个分类器,它做了可能有效的最简单的事情:等待输入超过阈值,然后取您在接下来的 N 个样本中看到的最极端值。如果是负数,则将其分类为上行;如果是正数,则将其分类为下行。
就其简单性而言,它的效果非常好:95% 以上的拨弦都是正确的。但这对于乐器来说还不够好。如果我要弹错音符,我希望这是因为我做了错误的动作,而不是因为我运气不好。
这个周末我飞往加利福尼亚州参加一个周末舞会,这对于飞机来说似乎是一个有趣的问题,因为我有一个符合人体工程学的堆叠式笔记本电脑显示器。我保存了一堆上下拨弦的例子,并尝试编写一个分类器。
在我看来,有两种情况:要么只有尖峰,要么尖峰后面有宽峰。如果存在宽峰,那么它就是一个完全可靠的方向指示器。因此,我可以在之前的算法中添加“宽峰值检测”,如果它说找到了一个,我可以用它来决定方向,如果不能,则回落到简单的幅度。
宽峰检测器非常简单:计算信号在不低于门的情况下经过的样本数量,这就是峰的宽度。如果宽度超过阈值,您就会看到宽峰。这非常有效!