稚晖君最为人称道的是软件硬件机械一通到底,亲手落地实操过多个高人气项目。他的历史投稿“造了一台钢铁侠的手臂”、“把自行车做成了自动驾驶”、“做了个能动的电脑配件”等均吸引了大量极客,每次整新活都能 get 数十万次“一键三连”。
而这次稚晖君带来的新项目则是:一把完全客制化、带屏幕模块的机械键盘!
既然是客制化,稚晖君想要最大限度发挥自己的设计自由度,于是,他从头设计了键盘电路硬件以及固件代码。没错,不只是换壳,是真的完全客制化!
基于移位寄存器的电路
先从电路硬件说起,怎么检测某个按键是否被按下了呢?
很简单,中学物理告诉我们,每个建轴是一个独立的开关,按下和弹起会分别导通 0 和 1,控制器芯片就可以检测按键的高低电平。但是......现实没有这么简单。
一个键盘有大约 100 个按键,要是给每个按键都接一根导线到 MCU 的引脚,就需要 100 多个引脚,这也太浪费了。有解决办法吗?有,用矩阵键盘形式来检测按键就可以了嘛。
但这样一来,按键之间就存在耦合,所以会出现“鬼键”现象。有解决办法吗?当然还是有,我们可以在每个按键下面添加一个二极管来防止误触发。
然而,问题又来了。我们在设计 PCB 的时候,一般都要做减震处理,在 PCB 建轴之间挖出很多长槽。但矩阵键盘和一堆二极管的模式会导致 PCB 的走线变得非常麻烦。
有解决办法吗?稚晖君说有,而且是一个完美方案:使用移位寄存器来实现按键扫描。
具体来说,基于移位寄存器的并行输入、转串行输出功能,把每个按键都看作是寄存器的一位,那么每加载一个时钟信号就可以依次读出每个按键的状态。
这种方案不仅非常节省 IO,而且扫描速度极快,理论上每秒能扫描 5 千万个按键。再来,褪下二极管,电路也变得极其简单。网友直呼:碾压行业!
全新固件
将客制化进行到底,稚晖君还自己开发了一套键盘固件!
目前市面上绝大多数客制化键盘都是使用 QMK、ZMK 这样的开源固件,为了适配更多的键盘型号,它们的代码通常都很臃肿。
而稚晖君开发的这套固件,基本上把全速HID设备的性能都拉到顶了。
1KHz 的回报率,1 毫秒的超低延迟,超高刷新率的全按键独立 RGB 灯控制,支持 Bootloader 更新固件等等,简直梦中情键了。稚晖君表示,这套固件的代码会开源给大家~
说了这么多,这键盘到底长啥样呢?
稚晖君的老粉都知道,在之前的自行车、机械臂项目中,外壳零件都是 up 主 @Xikii厂长帮助加工的,而这次的客制化键盘恰巧就是 Xikii 的老本行。稚晖君这款键盘的工业设计便是基于之前 Xikii 发布的 S98 键盘修改而成。
全貌长这样:
实用就罢了,还这么好看,坐等量产~
但是,你以为到这里就结束了?NO! 看一看键盘左边这个玩意:竟然是一块屏幕!还真是“万物皆可加屏幕”?
稚晖君表示:接下来,正片开始!
稚晖君表示,具备科技革命意义的智能机与传统手机的区别就在于:智能机有各种传感器,能够随时安装各类 APP,且能不断获取新能力。
而他设计的这块键盘,也想要体现出“客制化”的意义和智能。
因此这块键盘不仅仅是在传统键盘本体的基础上硬核了亿点,而是升级成为模块化的存在:同时拥有一个带 USB-HUB 功能的底座,以及一块可DIY显示内容的智能交互模块。
智能交互模块
所谓的智能交互模块,其实就是左下角的长方体模块。它搭载了一块电子墨水屏幕,可以自定义显示各种内容。
这小小一隅,可以是你喜欢的图片、天气预报、Github贡献墙、电脑剩余电量等状态显示等等……
稚晖君表示,他会把这个模块二次开发的通信协议和驱动都封装成SDK,客制化发烧友们便可以基于SDK开发各种交互应用。
而对于科技小白来说,稚晖君也贴心地配备了配套傻瓜软件工具,只需要鼠标将电脑屏幕上的图片“瀚安”拖入工具中,“瀚安”几乎一眨眼便出现在了墨水屏幕上,比更换手机壁纸还要简单。
滚轮旋钮
当然,如果只是多了一块屏幕,也不见得智能了多少。
因此稚晖君又添加了第二块屏幕,即下图中蓝色的OLED,以及旁边一个长得很像电机的电机。
稚晖君曾经发布过一个视频,展示如何通过FOC控制把一个无刷电机模拟成各种物理效果的旋钮。融合了该设计,这个滚轮旋钮便可以模拟出任意力反馈效果,如0摩擦力滚动、多档开关、弹簧、阻尼等。再结合一旁的OLED屏幕,许多有意思的应用蓄势待发:
比如向上推旋钮打开任务视图、向下推显示桌面;
或者把它模拟成带阻尼的旋钮来调节音量;
抑或是模拟成无摩擦的惯性旋钮来滚动页面,由于无摩擦的原因,页面滚动极致丝滑……
更炫酷的是,这个旋钮还可以主动旋转,结合OLED屏幕可以显示CPU占用等信息。
通过这些匠心独具的设计,稚晖君将一块键盘的操作性和可玩性大大提升。
不过,非比寻常的设计必然带来非常规的工程难点:
例如,键盘一般使用的USB2.0只有5V/500mA 的电源功率,远达不到无刷电机所需的功率,所以稚晖君借用了航母(!)上电磁弹射的设计思路:先蓄电再放电。
USB HUB
如果说以上模块都是为了酷炫而设计,那么USB HUB处的设计,才体现了稚晖君“真正想做点什么”。
在手机可以使用人脸识别、指纹识别的当下,台式机仍然要采用传统的输入密码解锁。稚晖君便想在这部分做做文章,于是在USB HUB的位置插入了一个指纹识别模块,亲测效果极佳。
如果电脑已经装好了其他生物识别设备,这个设计也不会浪费,可以替换插入鼠标接受器,游戏手柄接收器等实用模块。
独创电容式触摸按键条
完成了以上设计后,稚晖君式奇思又钻了出来:平时在打字时,两个大拇指好像没什么事做?一起按一个空格键,是不是有些浪费?
于是乎,他给键盘侧面贴上了一个电容式触摸按键条。
通过设置,这个触控条可以用来实现切换显示窗口、切换音乐、复制粘贴等等操作,大大提高了大拇指在键盘上的参与度!
从键盘的“精魂”电路、“骨架”模块化再到外观,稚晖君确实在键盘功能上加入了自己的思考,并进行了有效设计,而不仅仅是在外壳上大动干戈。
因此,这款键盘虽然也有缺点(如不能无线),却着实在极客发烧友中引起了一次小型地震,稚晖君“一人顶一个团队”的声名逐渐广为人知。
也有不少玩客制化的网友表示,稚晖君不是赢在多么天才的构想上,而是作为一名电子工程师对于技术的极致追求(以及对于广大客制化爱好者智商的尊重),这才实现了从“壳制化”迈向“客制化”的重要一步。
参考链接:
https://www.zhihu.com/question/545024674