我做了一个带3D打印开关的巨型键盘

2020-07-06 23:39:26

3D打印键盘开关项目的最新进展:我已经设计出了一种我认为可能足够可靠的开关设计,我把其中的3个组合在一起,形成了一个宏键盘,只是为了在我承诺使用全键盘之前看看它们是如何结合在一起的。我没有开关按压次数的数字,只知道试验机上的马达在开关工作之前停止工作(大约在按下25万次之后)。我不知道开关按了多少次才能按下,只是说试验机上的马达在开关工作之前就停止了工作(大约在按了25万次之后)。

80%和60%的键盘布局非常流行,它们是完整键盘布局的相应简化版本。我喜欢把这个小键盘看作是一个键盘,只要您只想键入就可以了。

它是由Arduino Pro Micro控制的。由于热胶很难从照片中辨别出来,但开关从电路板的另一边连到了引脚2、3和4。

在软件方面,我使用了Arduino键盘库,使用了这个又快又脏的Arduino代码,几乎所有的代码都与去抖逻辑有关。

开关是用一些通用的、没有名字的透明PETG打印的。外壳和键帽是用普鲁塞特银河黑色PLA打印的。我是这个灯丝的超级粉丝。闪烁效果意味着层线几乎完全消失。它基本上和你用碳纤维填充尼龙打印时得到的效果一样,但没有碳纤维填充尼龙打印的任何困难。

所有这些部件,包括开关,都是在我的新普鲁萨迷你打印机上打印的,这台打印机是上周到货的,到目前为止我对它非常满意。

上次开关设计的问题是铜带分裂,使其无法全长导通。我最初以为我已经通过涂上第二层铜带解决了这个问题,但事实证明这不是一个可行的解决方案。我对50%和75%的激活位置以及1到2层铜带的不同组合进行了一系列测试,发现这两个变量和开关持续时间之间没有显著的相关性。在故障之前,开关持续时间在225到33万次之间。7个失败是由于铜带分裂,2个失败是由于PETG螺旋弹簧断裂(都是在超过200,000次冲床后),1个似乎没有任何损坏的部件,它只是不再可靠地工作。

钢板弹簧在弯曲处有有趣的形状,所以它可以很容易地倾斜,这确保了它与两根接触线都能可靠地接触,而不仅仅是它碰巧接触的第一根线。

下面是一个慢动作视频,展示了它的工作原理(稍早一点的迭代,但概念相同):

另外,为了好玩,我在螺旋弹簧设计上做了一些有限元分析,它的表现就像真正的版本一样:

红色区域显示的是应力最高的区域,实际上弹簧往往会在螺旋中心附近断裂。

我认为这是一个发布的候选版本,而不是完成的设计,因为它还有一些工作要做(特别是,我想把它做得稍微低一点)。但是如果你想要的话你可以拥有它。

PETG长丝。你可以试试其他材料。PLA有效,但会带来更重的手感和更快的破损。

直径1.0 mm的铜线,每个交换机90 mm的长度应该足够了。

下载STL文件并将它们排列在构建板上,如下所示(您可能需要旋转螺旋弹簧):

我建议打印1个以上的钢板弹簧部件,因为它是一个很小的部件,很可能在打印中有缺陷。请确保重新打印的质量级别足够高,以包含所有功能。特别要确保弹簧上的螺旋线(两个)都连接在一起,钢板弹簧也要连接在一起。我使用PrusaSlicer中的";0.15 mm质量设置。您应该不需要任何支持材料。您可能需要启用“检测薄壁”功能。

您可能需要添加最多-0.3 mm的X/Y尺寸补偿。我发现在Prusa Mini上打印时,3.0 mm的柱塞在3.0 mm的孔内时获得最佳间隙。在我以前拥有的打印机上,这个甚至不能放在一起。我不确定发生了什么,但很明显,我将其建模为在我的机器上打印,所以您可能需要在您的计算机上应用X/Y补偿。

步骤2:从PETG中清除表壳内的所有线条。我用打火机把最坏的部分烧掉,然后用斯坦利刀把剩下的部分修剪掉。

第三步:检查螺旋弹簧并确保其运动自如。您可能需要用刀切割螺旋之间的任何线条,或者使用不同的X/Y补偿重新打印,这取决于它是几个小的紧缩点还是一路间隙不好。

第四步:将螺旋弹簧滑入箱体顶部的架子中。方向并不重要,我倾向于用最平滑的侧面与表壳对着滑进去,只是为了让我自己的生活更轻松。

第五步:推动柱塞穿过箱体的顶孔,穿过螺旋弹簧的孔,再穿过箱体的中孔。检查它是否可以自由上下移动,以及弹簧是否可靠地将其返回顶部。如果没有,就把它拿出来,用刀把紧绷的地方修剪一下。

第六步:剪下大约13毫米长的铜线。把它滑进片簧上的洞里。如果你不能把它穿过去,你可能需要用大头针或某种锋利的工具把洞加宽。尽你所能。

第七步:轻轻按下柱塞,露出开关下腔内的连接端。使用小钳子或镊子,将片簧的连接部分推到柱塞的末端。一定要把它推回家。在箱子底部的大洞里看,你应该看到钢板弹簧大致居中。当您松开柱塞时,螺旋弹簧仍应稍微伸展。这是所需的,如果没有此预载,开关将以0力开始移动。

第八步:剪下2倍大约35毫米长的铜线。用一把钳子,从一端开始弯曲约5毫米。通过1个导线孔插入未弯曲的一端,并从另一侧向外插入。将电线向下弯曲到另一边,然后向任何你想让你的触点指向的方向。对第二根电线重复上述步骤。

应该就是这样了!手动按下开关几次,目测确认中间铜线似乎与其他两条线接触良好,然后您就可以将其组装成电路了!如果你想把它机械地连接到PCB上,你可以留下一条更长的导线从第一面出来,然后你就有了4个焊接点。否则,将其安装在一个14 mm的正方形孔内。你可能需要角落里的切口来容纳伸出的电线,就像这样:

如果你做了一个(或多个!)。我真的很想听听您对什么可以设计得更好的意见,并想看看您的成果图片。给我发电子邮件:[email protected]

我们就快能组装出一个完整的键盘了。我还有以下事情要做:

获得开关可以承受的压力机数量的精确值将是很好的。我认为目前很大的可变性来自于开关相对于测试仪的位置高度。如果它距离完整的冲程短0.1毫米,开关的持续时间很可能比它比完整冲程长0.1毫米的锤击持续的时间要长得多。这很难配置,因为我只能粗略地控制高度。

我观看了樱桃MX工厂和欧姆龙工厂的莱纳斯技术提示之旅。它们既有趣又值得一看。我在欧姆龙视频中截取了这台测试机的屏幕截图:

在那里,我们有一台马达,一次按压10个开关,上下升降一个平台。平台在一对线性导轨上滑动,压力的准确垂直位置通过每个开关的单独螺钉进行微调。动平台的两端还有弹簧,我不太清楚为什么,我想只是为了减轻它的重量,减轻电机的负荷。

但这是比我目前的方式更好的集体测试开关的方式,我目前的方式需要为每个开关连接一个单独的马达,而且很快就会变得杂乱无章:

我已经过了更多测试至关重要的阶段(我知道,这是著名的最后一句话),但不管怎样,这样做都是好的,所以我想复制一台欧姆龙测试机的小规模副本。

该开关安装在一个14 mm的方孔中(不包括突出的电线),与Cherry MX开关大小相同,但从开关底部到键帽顶部的总高度几乎是前者的两倍,约为45 mm比25 mm:

这将直接转化为增加键盘高度,因此尽可能降低键盘高度将是一件好事。我应该能够从开关底部的金属丝支架上减掉2毫米,在钢板弹簧附件的高度上再减去1到2毫米,但它绝对不可能变得像樱桃MX一样薄。

我想找一种方法在柱塞的运动中增加一个触觉碰撞(理想情况下是发出卡嗒声)。我确实试过简单地在外壳的一侧增加一个凸块,以抓住叶片弹簧,但它工作不是很可靠。

目前,我的键帽是基于我在myCAD Dojo项目中设计的键帽。这是次优的,原因有几个:

在FreeCAD中添加文本非常耗时,除非将其删除并重新创建,否则无法对其进行编辑(也就是说,要为整个键盘制作键帽需要花费大量精力)。

应该有一些形状和大小不同的键帽(制表符、大写锁定、Shift、回车、空格、退格键等)。

My Filco Majestouch 2 Tenkeyless的这张图片显示了每行不同的键帽配置文件:

我可能想编写一些OpenSCAD代码来生成键帽,而不是使用FreeCAD。

我发现了一个项目KeyV2,它是一个parametrickeycap库,尽管我发现很难弄清楚如何添加对自定义开关的支持。我还没有想好是让KeyV2做我想做的事更容易,还是应该从头开始。

我可能还需要添加一些稳定器,至少要加到空格键上,也可能要加到Enter键、Backspace键和右Shift键上。稳定器是键帽下面的一个机械装置,当键帽被按在一侧而不是中间时,它可以保持键帽垂直上下移动,而不是在开关上方摇晃。它的工作方式通常与汽车悬架上的防侧倾杆完全相同:当一侧向下移动时,防滚杆从另一端旋转。旋转力传递到杆的另一端,杆也旋转,并将另一端向下拉。

最后,我可能会考虑降低键帽顶部表面的层高度,以减少轮廓线的效果: