【開源】電容軸實現(xiàn)wooting快速觸發(fā)鍵盤,一個4k鍵盤小樣例
????Wooting 鍵盤是什么,可以看這個視頻介紹:https://www.bilibili.com/video/BV1kG4y1U7Xm
????簡單來說就是在機(jī)械軸體里塞了磁鐵,把普通機(jī)械鍵盤變成了霍爾鍵盤,這樣可以拿到每個按鍵的行程數(shù)據(jù)。
????這樣最容易想到的應(yīng)用就是鍵盤可以改變觸發(fā)行程了。但能否做更多的事情呢?Wooting給廣大音游玩家上了一課,它直接改掉了按鍵觸發(fā)邏輯。
????正常鍵盤是超過行程時觸發(fā)按鍵,低于行程時斷開,wooting改成了向下按的時候觸發(fā),向上松的時候斷開。直觀來看這樣操作省掉了達(dá)到觸發(fā)行程需要的時間,看起來輸入延遲就大幅降低了。當(dāng)然手指也更好抖出高bpm了。

????理論上任何模擬輸入的軸體(目前主要是磁軸光軸電容軸)都可以做到這個事情,但顯然磁軸精度最高,可惜國內(nèi)磁軸不太好搞到,本文用阿米洛電容軸(櫻花粉 45g)做了一個4k的小音游鍵盤,大概能實現(xiàn)7成的wooting鍵盤效果。
????原理:samd21 系列單片機(jī)有片上電容觸摸引腳(10bit adc),可以直接讀到軸體電容值,實測信噪比還可以,但和磁軸動輒14bit+要差遠(yuǎn)了。注意本方案也兼容普通機(jī)械軸體,但是不能實現(xiàn)快速觸發(fā)效果。
????目前的觸發(fā)算法:用一個ringbuffer維護(hù)近期的電容值,求差分后根據(jù)上升或下降的次數(shù)判定觸發(fā)。同時為避免極端情況,設(shè)置上下死區(qū),死區(qū)內(nèi)必定觸發(fā)或釋放。初始的死區(qū)電容值請自行測試得到,不同的環(huán)境差異還是比較大的。
必須的材料:
電路板x1(厚度1.2mm到1.6mm都行)
定位板x1(定位板也是fr4電路板做的,注意厚度選1.2mm)
m3 10mm螺絲x4
m3 螺母x8
m3 1mm高墊片x8 (兩個墊片+1個螺母剛好夠定位板到電路板的空隙)
電容軸體和鍵帽x4(我在閑魚弄到的拆機(jī)軸)
seeeduino xiao 單片機(jī)
軸座x4
可選材料:
at24cxx 存儲(用于存儲自定義配置,二次開發(fā)可用)
ws2812b 3528反貼燈 x4(用于燈效)
6x6輕觸按鍵(用于其他功能按鍵)
4.7k 0805電阻x3(用于i2c上拉和功能鍵上拉,沒有用到不需要)
4.7k 0805電阻x4(用于接普通機(jī)械軸體時的下拉電阻,只用電容軸的話可以一坨錫蓋上)
最丐的版本只需要焊接單片機(jī)+軸座+4個跳線共26個焊點。
代碼:https://github.com/MaticsL/cap4k
硬件:https://oshwhub.com/o1ppbb/cap4k
視頻演示:
https://www.bilibili.com/video/BV1Cs4y1s758/