- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-08-22來源:左手歲月瀏覽數:725次
如果參考智能手機的定義,智能鍵盤應該有各種傳感器,能夠隨時安裝各種APP,不斷獲取新能力。基于“模塊化”的思路,他給鍵盤加上了不止一塊屏幕。鍵盤由三部分組成,除了本體之外,還有一個帶USB-HUB功能的底座,以及一個可以替換成各種場景的智能交互模塊。智能交互模塊可以安裝各種APP,首先模塊搭載了一塊電子墨水屏幕,可以自定義顯示各種內容,比如喜歡的圖片、天氣預報、電腦狀態,或者任何其它想要顯示的信息。
時隔四個多月,打破拖更記錄的華為“天才少年”,有著“野生鋼鐵俠”之稱的稚暉君,終于在不久前發布了他的最新項目視頻。在本次視頻中,稚暉君打造了一把模塊化機械鍵盤,并稱其為“很實用的生產力工具”。稚暉君將這把理想鍵盤命名為“瀚文”,由自己從頭設計,并加入了智能交互模塊,不僅可以安裝各種APP,還可以實現指紋解鎖等功能。隨后,這一視頻還被華為官方轉發,并評論“太厲害了!” 
01 不滿“客制化”鍵盤,稚暉君選擇自己做
稚暉君表示,此次項目的想法源于幾個月前的居家辦公經歷。對于程序員和打游戲的這一類群體,往往對鍵盤的要求非常高,甚至可以稱為“吃飯的家伙”。正因如此,市場上一部分玩家對于電腦外設的性能和外觀的極致追求,也就催生了一種叫做“客制化”的圈子。但接觸下來,他發現很多“客制化”總是以“換殼為本”,還有很大的進步空間。于是,稚暉君決定自己從零構思,設計一把真正的“客制化”鍵盤。稚暉君認為,無論想做什么樣的新概念鍵盤,首先要保證它打字作用的基本屬性,所以他的第一步是把鍵盤本身的性能做到極致。相較于“客制化”的圈子里一般以工業設計為大頭,軟硬件方面都是采用現成的參考設計和開源固件,稚暉君為了保證能夠有最大程度的開發度自由,于是選擇自己從頭設計電路硬件以及固件代碼。
02?硬件設計三步走
首先從硬件來說,鍵盤的原理其實很簡單,每個鍵軸就是一個獨立的開關,按下導通為0,彈起斷開為1,通過控制器芯片檢測按鍵的高低電平就可以知道按鍵是否被按下。
雖然聽起來很簡單,然而稚暉君表示,真實的情況卻有點復雜,他在設計中就遇到不少問題:
1. 常規的鍵盤有100個左右的按鍵,如果每個按鍵都接一根導線到MCU的引腳,那么就需要MCU有100多個引腳,這顯然是極其浪費且不太現實的。正因如此,所以市面上的鍵盤基本都使用一種叫做矩陣鍵盤的形式來檢測按鍵。
比如說對于4行×4列、共16個按鍵組成的矩陣,單獨連接的話需要16個IO,而矩陣掃描只需要4+4=8個IO。?
2. 如果采用矩陣掃描的方式設計電路,那么由于按鍵之間不再是獨立連接,而是存在一定的耦合,就會出現沒被按下的按鍵也會被觸發的情況,也就是俗稱的“鬼鍵”問題。
為了解決這個問題,稚暉君設想在按鍵下面再添加一個二極管,可以有效防止誤觸發的問題。
3. 想要提升鍵盤的手感,PCB設計的時候就要做減震處理,因此需要在PCB鍵軸之間挖出很多長槽。那么矩陣鍵盤和一堆二極管的模式就會使PCB走線變得很麻煩。
所以為了從硬件根本上重構鍵盤掃描電路,稚暉君設計了一個相當完美的方案,那就是使用移位寄存器來實現按鍵掃描。他使用1×n的矩陣,即基于移位寄存器的并行輸入轉串行輸出功能,把每個按鍵都看作寄存器的一位,這樣每加載一個時鐘信號都可以依次讀出每個按鍵的狀態。
基于這個方案,稚暉君的設計就有了以下優勢: 極其節省IO。不管掃描多少按鍵都只需要一根數據線、一根時鐘線以及一根鎖存線、3個IO。
掃描速度極快。74HC165系列芯片的最高時鐘速度超過50MHz,也就是理論上每秒能掃描5千萬個按鍵。由于用不了那么高,稚暉君在實際使用中通過硬件SPI接口模擬時序,掃描頻率為4MHz。
電路極其簡單。減去了所有二極管。
? 03 固件設計,性能拉滿
鍵盤硬件問題解決了,下面就來到了固件。目前市面上絕大多數的客制化鍵盤都是使用像QMK、ZMK這樣的開源固件,但它們往往為了適配大量的鍵盤型號,導致存在代碼臃腫、性能優化不足、擴展性不太好等問題。因此,基于高性能的ARM主控,稚暉君自己開發了一套鍵盤固件,基本上把全速HID設備的性能都拉到了頂。他在固件中實現了HID設備枚舉、1kHz的硬實時報文以及1ms的超低延遲。
超高刷新率的全按鍵獨立RGB燈控制,支持NKRO也就是所謂的全鍵無沖;添加每個按鍵獨立的濾波算法,支持Bootloader更新固件,支持多層鍵位映射配置。此外,設計中還有很多的時間細節,稚暉君表示稍晚會將固件代碼開源,感興趣的小伙伴可以前去倉庫閱讀源碼。地址:https://github.com/peng-zhihui
04 不止炫酷,效率提升也不在話下
在結束電路硬件以及固件代碼的設計后,鍵盤本體的硬核部分基本就搞定了,項目也終于來到了外觀設計環節。稚暉君請了好友@Xikii廠長幫忙設計加工(此前自動駕駛自行車、機械臂等外殼零件就出自他手)。
組裝完成后,稚暉君提到了在構思這個項目時的思考——什么才是智能鍵盤?稚暉君表示,如果參考智能手機的定義,智能鍵盤應該有各種傳感器,能夠隨時安裝各種APP,不斷獲取新能力。基于“模塊化”的思路,他給鍵盤加上了不止一塊屏幕。鍵盤由三部分組成,除了本體之外,還有一個帶USB-HUB功能的底座,以及一個可以替換成各種場景的智能交互模塊。智能交互模塊可以安裝各種APP,首先模塊搭載了一塊電子墨水屏幕,可以自定義顯示各種內容,比如喜歡的圖片、天氣預報、電腦狀態,或者任何其它想要顯示的信息。
稚暉君表示會把這個模塊二次開發,所需要的通信協議和驅動都封裝成SDK,方便大家基于SDK開發各種交互應用。在電子墨水屏幕上還有一個小屏幕,一塊OLED以及一個電機。此外,稚暉君還加入了一個智能滾輪,結合旁邊的OLED屏幕,可以把它模擬成彈性開關來當做自定義的按鍵,向上推打開任務視圖,向下推顯示桌面,它還能成為一個動態儀表,實時顯示電腦的CPU占用的信息等。
稚暉君認為作為生產力工具,他理想中的鍵盤不應該只有炫酷的功能,還應該實際解決一些效率提升的問題,于是他給鍵盤添加了指紋識別模塊;還在空格鍵的下方添加了一個電容式的觸摸按鍵條,其功能可以自定義,比如用它快速切換桌面、標簽、音樂以及復制/粘貼等。
05 不同場景擴展模塊,玩轉“瀚文”鍵盤
稚暉君將這次嘗試模塊化鍵盤DIY的作品命名為“瀚文”,英文名是“Hello Word”。他表示這個項目純粹是為了滿足個人對理想鍵盤的幻想,接下來會把“瀚文”作為之后的主力設備。本次項目的軟硬件都將開源,歡迎大家在此基礎上繼續開發。另外,稚暉君還表示,由于開發時間有限,項目還有很多可以完善的地方。他還為大家提供了一些額外的思路,構思了一些用于“瀚文”的其他場景模塊,比如用于直播場景的擴展模塊:
3D建模場景的擴展模塊:
用于視頻剪輯場景的模塊:
用于音樂制作的模塊: