耿烽淇 高琪琪 王振 馬睿 劉飄
摘要:伴隨著新時代和全面小康社會的到來,電腦已經(jīng)成為很多家庭必備的家用電器之一,而鍵盤作為電腦一個重要的外設設備也備受人們的關注。鑒于此,基于自主設計的原理圖,設計了一種客制化鍵盤,硬件上由內(nèi)核為ATmega32U4的Arduino的微型專業(yè)開發(fā)板、觸發(fā)壓力較輕的cherry茶軸和PCB板組成;軟件設計上,主要是在kbfirmware開源軟件上設計鍵盤的排列方式、符號按鍵以及一些特殊的鍵位,之后導出源文件再燒錄到鍵盤的主控板上即可;而鍵盤的殼體設計是在123D_Design軟件上設計出鍵盤的底蓋和上蓋,并將其用3D打印機打印出來。
關鍵詞:Arduino pro micro;客制化鍵盤;機械鍵盤
0? ? 引言
隨著社會的快速發(fā)展,電腦已經(jīng)成為人們獲取信息、完成工作的一個重要工具。尤其是對于學生和上班族來說,電腦更是他們學習和工作中必不可少的工具。而鍵盤作為電腦重要的外設輸入設備,其性能顯然非常重要,因為若是鍵盤的手感較重或噪聲過大會對自己或者身邊的人造成不好的影響,所以一個鍵盤的觸感、外觀、做工、鍵位布局、噪聲、鍵位沖突等問題都是需要我們考慮的。在選購鍵盤的時候,要結(jié)合自己所處的環(huán)境以及自己的打字習慣選擇一個適合自己的鍵盤。一個合適的鍵盤除了能不給別人造成困擾外,也方便了自己,提高了效率。因此,我們動手制作了一種適合自己的鍵盤,來滿足我們的需求。
1? ? 硬件構(gòu)成
本項目用的是內(nèi)核為ATmega32U4的Arduino的微型專業(yè)主控板(Arduino pro micro),選擇這個板子主要有以下幾個原因:(1)引腳相對較多,有14個數(shù)字輸入/輸出端口、8個模擬輸入端口和4個10位的ADC引腳等等,便于開發(fā)者使用;(2)價格實惠,性價比較高;(3)體積較小,而且主控板上有一個PTC保險絲和二極管可以起到保護電源電路和糾正RX、TX電路的作用;(4)采用ATmega32U4的單片機可用于模擬HID設備,可以配合其他傳感器模塊做鍵盤輸入;(5)使用開發(fā)板微型USB接口編程,支持USB串口下載。
Arduino pro micro引腳如圖1所示。
2? ? 電路設計
設計時選擇了矩陣掃描鍵盤的方案,主要是因為使用的Arduino pro micro主控板引腳雖然不少,但是畢竟有限,如果要使用具備更多引腳的微處理器,花費將會增加,功耗也會更大。
機械鍵盤原理圖如圖2所示,從圖中可以看出:當按鍵未被按下時,電路中沒有電流通過,按鍵兩邊的電壓為高電平;當按鍵被按下后,主控板給按鍵兩邊線路通入低電平,電流通過電路后鍵盤就能識別到是哪一個按鍵被按下。但是現(xiàn)實中我們使用的鍵盤都是多行的,如果僅僅只是這樣設計可能會擾亂主控板的讀取,導致主控板讀取到錯誤的信息。所以,給每一個按鍵開關都配置了一個二極管來限制電流的流向,也就是陰極應該面向輸出(列),陽極應該對著輸入(行)。這樣設計就可以使按鍵按下時不出現(xiàn)主控板被擾亂的情況;同時,一系列的二極管也可以起到防止電路短路的作用。
3? ? Cherry軸體的選擇
眾所周知,機械鍵盤有不同的軸體。對于喜愛機械鍵盤的人來說,采用cherry家用的軸體做的鍵盤都是很值得信賴的。軸體最廣義的分類大概包括紅軸、黑軸、青軸和茶軸。
(1)紅軸:它的觸發(fā)壓力較小,使得它在按壓的時候不彈手也不費力氣。
(2)黑軸:雖然比較靜音,但是觸發(fā)壓力大,手感較重,長時間使用會產(chǎn)生一定的疲憊感。
(3)青軸:觸發(fā)建程較長,有強烈的段落感,會發(fā)出清脆的“咯啪”的聲音,造成很大噪聲。
(4)茶軸:它是最接近薄膜鍵盤的軸體,同時觸發(fā)壓力也較輕,屬于萬能軸。
綜上所述,最后選擇了茶軸,因為它兼顧了青軸的段落感和紅軸的安靜,并且還具有薄膜鍵盤的特性。無論是打字還是玩游戲都會比較舒服,是一種游戲和辦公結(jié)合的軸體。
4? ? 殼體方案
因為我們做出來的鍵盤和市面上一般的鍵盤區(qū)別較大,所以用3D建模軟件123D_Design來設計鍵盤的上蓋和底蓋,如圖3、圖4所示。
5? ? 軟件設計
kbfirmware開源軟件—qmk固件方案設計流程:
(1)根據(jù)TEX Kodachi的鍵列,在keyboard-layout-editor上設計好布局圖。
(2)將keyboard-layout-editor生成的RAW數(shù)據(jù)復制到kbfirmware中,點擊Import。
(3)kbfirmware上自動生成一個一個鍵盤矩陣,接著進行固件的自定義設置。
(4)在設置繞線的時候,因為機械鍵盤都有防沖二極管,所以要區(qū)分感知引腳和驅(qū)動引腳,紅色線的Rows代表驅(qū)動引腳,灰色線的Columns代表感知引腳。
(5)設計頁面上的Specify the diode direction指的是二極管方向,引進原理圖后可以看出機械鍵盤的二極管負極接驅(qū)動引腳,正極接感知引腳。
(6)因為kbfirmware中線與線的連接都是點對點的連線,會造成線與線的相交,最好在Excel中建立表格,確定每一個按鍵的驅(qū)動引腳和感知引腳的數(shù)字,再填到kbfirmware中去。
(7)設計KEYMAP鍵列時,kbfirmware支持全鍵盤自定義。鍵盤可以自定義多個層并進行切換,點擊需要修改的按鍵,就能顯示其鍵值。
(8)接下來就按照自己的喜好去設置鍵盤的PRIMARY主鍵位、SECONDARY輔助鍵位、KEYPAD數(shù)字鍵盤、FN功能鍵和其他一些手動輸入的鍵等等。
(9)Settings設置:在這里可以自定義鍵盤的名字,Windows系統(tǒng)能夠識別出這個名字,并且還可以查看固件的大小以及相關主板的名字。
(10)所有的設置完成后,要保存配置JSON文件到電腦中,方便下次編輯。
6? ? 特殊鍵位設計
設計的時候為了方便使用和節(jié)省材料,在鍵盤上設置了兩個Fn功能鍵,一個是在空格鍵的左邊,按下按鍵后鍵盤第一行的字母鍵會變成數(shù)字的功能鍵,可以充當0~9來使用。另一個是在空格鍵的右邊,當按下這個Fn鍵時,鍵盤第一行的字母鍵會變成Fn功能鍵,用來實現(xiàn)改變電腦音量、屏幕亮度以及刷新等一些功能。通過這樣的設置,就能將鍵盤上的按鍵盡可能地利用起來,以節(jié)省材料,降低成本。除此之外,還設計了一些常用的組合鍵,例如:Ctrl+A為關閉當前網(wǎng)頁。這一系列組合鍵都是根據(jù)我們?nèi)粘S面I盤的習慣設置的。
7? ? 結(jié)語
通過設計一個客制化的機械鍵盤,可以滿足我們對于機械鍵盤的各種需求。因為無論是軸體還是鍵帽,或者是鍵盤上的一些特殊功能鍵,我們都可以憑著自己的喜好去選擇和設置。這樣設計出來的鍵盤才完完全全適合自己,能夠最大程度上方便自己日常的學習和工作。
[參考文獻]
[1] 陳呂洲.Arduino程序設計基礎[M].2版.北京:北京航空航天大學出版社,2015.
[2] MARGOLIS M.Arduino權威指南[M].2版.楊昆云,譯.北京:人民郵電出版社,2015.
[3] BANZI M.愛上Arduino[M].于欣龍,郭浩赟,譯.北京:人民郵電出版社,2011.
[4] 翟新彥.電腦鍵盤上的功能鍵[J].農(nóng)村電工,2009(4):37.
[5] 承建.電腦該用鍵盤還是觸摸屏[J].個人電腦,2016(9):60.
收稿日期:2020-09-07
作者簡介:耿烽淇(1999—),女,河南南陽人,研究方向:物聯(lián)網(wǎng)技術應用。