我做了一个带3D打印开关的机械键盘

2020-08-09 11:57:13

键盘已经完成了!这基本上是我在过去两个月里一直在努力的结果,包括3次测试机器迭代,100多个打印开关,现在终于有了可以打字的键盘。不幸的是,这不是一个非常好的键盘,但你不可能赢得所有的键盘。

(在视频中,它有点摇晃,因为背部被支撑起来,以减轻暴露在外面的电线上的压力。我随后打印了几条小腿来抬起键盘背面,现在它的摇晃要小得多,但它仍然可以用一些柔软的脚)。

我对键盘的外观非常满意,也很高兴我首先成功地使用3D打印开关制造出了一个工作正常的键盘。我相信这可能是世界上第一次。

这就是说,我开始使用jesboard来写这篇博客文章,打字太烦人了,所以我回到了Filco。花一些时间在我自制的开关上打字,让我对Cherry MX开关有多好有了新的认识。我不确定是什么原因让打字板如此不舒服,只是一种笼统的含糊不清使打字变得令人沮丧。向上和向下按一个键感觉基本正常,这就是为什么我在开发开关时没有注意到这个问题。但试图把它当做真正的键盘,以合理的速度打字,感觉真的很糟糕。这确实是我用过的最差的键盘。因此,这是令人失望的。

我认为,为了改进这一点,你可能想要降低激活力(这很容易,只需使弹簧更薄),并增加一些触觉反馈,这样就更容易判断开关何时被实际按下。除此之外,我不确定。

如果你想了解更多关于开关的信息,我会建议你看看我的其他一些标签为键盘的帖子,但简而言之:按压顶部的杆子会压缩螺旋弹簧(我抄袭了Riskable 3D Prting的弹簧设计,他也在开发可3D打印的键盘开关,但使用的是磁铁传感器,而不是自己制作机械开关)。一旦阀杆压得足够深,底部的两个触点之间就会有一根接触线连接起来,从而启动开关。当开关被进一步按下时,钢板弹簧受到压缩,允许阀杆进一步向下移动,同时允许接触线保持在原位。最后,螺旋弹簧靠在外壳上触底,然后阀杆运动停止。释放钥匙后,螺旋弹簧会将所有东西推回顶部。

钢板弹簧的弯曲部分在另一个轴上很窄,使其可以方便地侧向倾斜,以确保与两根接触线的良好接触。

我没有一张最新开关设计的好照片,但我有一张早期版本的照片:

开关以PETG格式打印。如果你想看他们的实际操作,你可能会喜欢我操作开关测试仪的视频。开关设计的最终化身在所有情况下都持续了超过350K的压力机,有些实例在500K的压力机上仍然没有失败。这比商业交换机可能预期的数千万英镑要低得多,但与第一次迭代失败的13907英镑相比,这是一个巨大的进步,而第一次迭代是在一台极其温和的机器上进行的。

我说我将试验将激活点降低到柱塞行程的75%,以减少钢板弹簧上的压力。我在新机器上测试了这一点,5个旧设计和5个新设计并排使用,新设计的使用时间几乎是新设计的两倍,所以这是一个很好的改进。

我在eBay上买的镀金珠宝线最终运行良好,焊接也很好(所以我得出结论,它没有上漆),4米(花费4 GB)刚好够做整个键盘。

外壳被分成两半,然后粘合在一起,这样它就可以放在3D打印机的床上了。在每一半的顶部和底部都有一个很大的长方形的孔,里面有一个很长的塑料小孔将它们连接在一起,以增加连接的强度。有没有太多的情况下设计真的,它只是一个形状,以适应开关,与顶部的凸起,以容纳微控制器,一个出口孔的电缆,稳定器安装,和一个看起来很酷的标志。我在FreeCAD中制作了外壳的一般形状,然后将生成的STL导入到OpenSCAD中,以切割开关的孔,因为我发现使用代码更容易获得正确的布局。

我让打印机停下来,等待我使用M600 G-CODE命令在颜色改变的层高度更换灯丝,从而用不同的颜色打印了徽标。PrusaSlicer有一个很好的GUI来设置它,所以我甚至不需要手动编辑G代码。

如果我再做一个键盘,我会通过减少安装开关的实心部分的厚度来给自己更多的空间来操作下面的键盘。我发现实际上没有足够的空间来运行二极管和电线。我还会增加一些螺丝的规定,以连接一个底盖,以保护内部的电线。

表壳和键帽都是用普鲁士银河黑色PLA印刷的,我认为这真的是一种很好的完成。

键帽是使用KeyV2设计的,KeyV2是OpenSCAD的免费参数化键帽库。如果要设计一些键帽,则应检出KeyV2。它的创建者鲍勃很友好,给了我有用的建议和帮助。

在KeyV2中有几种不同的方法可以设置ISO(英国风格)Enter键,但我找不到任何可以让我拥有圆角、斜顶和碟形顶部的设置组合,所以我最终在FreeCAD中手动设置了Enter键。

我最初打算在键帽上使用开始图例,就像我在宏小键盘上使用的一样。但我在KeyV2资源中读到了这条评论,这改变了我的想法,所以我改用了插图图例:

//将图例设置为开始,而不是插入//由于谁想要开始图例,所以中断了对工匠的支持?$STARTENT_LEGEDS=FALSE;

但打印了所有的键帽后,我不确定我是否认为插页图例真的更好。根据光线的不同,它们从非常精细的到几乎看不见的不等。我认为一开始的图例更容易读懂。

开关采用15x5键盘矩阵手动布线,二极管只允许电流单向通过。如果你比我想得多一点,14x5就足够了,但15x5也可以。

最初我计划使用Arduino作为微控制器,它只有16个IO引脚。这将允许8x8矩阵,但当我开始布局布线时,我想出了这个,其中列是列,绿色是行:

显然,这在现实生活中太复杂了,特别是在我的案例底部提供的少量空间中。您可能还注意到,在GIMP中布局对我来说太复杂了,因为我没有将句号和撇号键连接到任何行。出于这些原因,我决定改用Teensy 2.0,它允许我使用更合理的矩阵布局:

布线的另一部分是USB电缆必须到达微控制器。我在盒子的侧面留了一个4毫米的洞,让电缆穿过,但是这个洞对末端的连接器来说太小了。我原本打算切断连接器,把电线直接焊接到微控制器板上的USB焊盘上,但它们太小了,而且很烦人,无法接触到,所以我只是把迷你USB的一端重新焊接起来,然后把它插上。它很合身,但它能胜任这项工作。

事后看来,我不确定自己是否后悔手动接线键盘。我玩弄着制作一块PCB的想法,这样我就可以直接把我的开关焊接到上面。当然,把键盘组装在一起会更容易,但我认为外包PCB的制造会让你自己制造开关变得更有优势。

这个想法是,当你在一侧按下时,你会使杆旋转,然后在开关的另一边向下拉,迫使键平行向下移动(而不是摇动),并正确地激活开关。棒材由1.75毫米不锈钢丝弯曲成合适的形状。粗大的不锈钢丝很难剪断,但用一把大一点的钳子就可以了。

当我试图装上空格键的稳定器时,我设法把固定在箱子上的支架弄断了。这是个坏消息,因为每半个盒子都要打印10个小时左右,除此之外,我已经把所有的开关都焊好了。要重新打印一半的表壳,需要撤消所有的焊接工作,然后打印20个小时,然后重新进行所有的焊接。

我不感兴趣重做所有的工作,所以作为最后的手段,我钻了一个洞的情况下,在每个稳定器安装的位置,并打印了2个新的稳定器安装,足够长,以固定的洞。我把坐骑印在PETG里,这样它们就不太可能坏了。

这真的很有效,避免了灾难!架子在钻孔里很紧,所以我甚至不需要用任何胶水。

我使用QMK作为键盘固件,运行在微不足道的2.0上。我发现很难开始使用我的自定义键盘,因为几乎所有的文档都是针对使用QMK中已经定义的现成键盘的情况。我需要知道的关键点是,您可以使用脚本";./util/new_keyboard.sh";创建一个新键盘,我发现QMK文档的AVR Processor页面非常有用。该过程类似于:

编辑./keyboards/your-keyboard-name/keymaps/default/keymap.c并配置您的键映射表。这是最难但也是最有趣的部分。我看了一下其他60%键盘的一些按键,看看你打算怎么做。

将第一个刷新到最小:-w#34;意味着它将等待直到重新设置,所以一旦你进入,按下第一个按钮,然后等待几秒钟,你就完成了!。

除了键盘很难打字这一事实外,我想说这个项目基本上是成功的。我喜欢开发交换机的过程,但是虽然显然还有更多的工作要做,我想我已经受够了。我想我的错误在于优化了可靠性,而不是手感。如果你想在3D打印的开关上工作,我建议你主要关注开关的手感,只有当你有感觉良好的开关时,才能优化可靠性。

如果您喜欢我的博客,请考虑订阅RSS订阅源或邮件列表: