Wooting 键盘是什么,可以看这个视频介绍:[https://www.bilibili.com/video/BV1kG4y1U7Xm](https://www.bilibili.com/video/BV1kG4y1U7Xm)
简单来说就是在机械轴体里塞了磁铁,把普通机械键盘变成了霍尔键盘,这样可以拿到每个按键的行程数据。
这样最容易想到的应用就是键盘可以改变触发行程了。但能否做更多的事情呢?Wooting给广大音游玩家上了一课,它直接改掉了按键触发逻辑。
正常键盘是超过行程时触发按键,低于行程时断开,wooting改成了向下按的时候触发,向上松的时候断开。直观来看这样操作省掉了达到触发行程需要的时间,看起来输入延迟就大幅降低了。当然手指也更好抖出高bpm了。
![bili_v_1678626765768.gif]
理论上任何模拟输入的轴体(目前主要是磁轴光轴电容轴)都可以做到这个事情,但显然磁轴精度最高,可惜国内磁轴不太好搞到,本文用阿米洛电容轴(樱花粉 45g)做了一个4k的小音游键盘,大概能实现7成的wooting键盘效果。
原理:samd21 系列单片机有片上电容触摸引脚(10bit adc),可以直接读到轴体电容值,实测信噪比还可以,但和磁轴动辄14bit+要差远了。注意本方案也兼容普通机械轴体,但是不能实现快速触发效果。
目前的触发算法:用一个ringbuffer维护近期的电容值,求差分后根据上升或下降的次数判定触发。同时为避免极端情况,设置上下死区,死区内必定触发或释放。初始的死区电容值请自行测试得到,不同的环境差异还是比较大的。
必须的材料:
电路板x1(厚度1.2mm到1.6mm都行)
定位板x1(定位板也是fr4电路板做的,注意厚度选1.2mm)
m3 10mm螺丝x4
m3 螺母x8
m3 1mm高垫片x8 (两个垫片+1个螺母刚好够定位板到电路板的空隙)
电容轴体和键帽x4(我在闲鱼弄到的拆机轴)
seeeduino xiao 单片机
轴座x4
可选材料:
at24cxx 存储(用于存储自定义配置,二次开发可用)
ws2812b 3528反贴灯 x4(用于灯效)
6x6轻触按键(用于其他功能按键)
4.7k 0805电阻x3(用于i2c上拉和功能键上拉,没有用到不需要)
4.7k 0805电阻x4(用于接普通机械轴体时的
下拉电阻,只用电容轴的话可以一坨锡盖上)
最丐的版本只需要焊接单片机+轴座+4个
跳线共26个焊点。
代码:https://github.com/MaticsL/cap4k
视频演示:
[https://www.bilibili.com/video/BV1Cs4y1s758/](https://www.bilibili.com/video/BV1Cs4y1s758/)