基于ATmega32U4的新型客制化鍵盤設(shè)計(jì)
引言
19世紀(jì)誕生了打字機(jī),這便是現(xiàn)代電腦鍵盤的雛形,受此影響,現(xiàn)代鍵盤的字符排序也是和打字機(jī)一樣的owERTY排序。對(duì)于不同的鍵盤來(lái)說(shuō),最大的區(qū)別便是鍵盤的配列。鍵盤配列指的是鍵盤的字符排列布局,即鍵盤的按鍵數(shù)量個(gè)數(shù)和所提供的功能數(shù)。不同人群需要的按鍵數(shù)及功能是不同的,近幾年來(lái),鍵盤市場(chǎng)迎來(lái)了客制化的熱潮,并有了取代傳統(tǒng)高端鍵盤的趨勢(shì)。客制化鍵盤即從用戶角度出發(fā),根據(jù)用戶的需求進(jìn)行獨(dú)特的個(gè)性化定制,對(duì)標(biāo)準(zhǔn)化工業(yè)產(chǎn)品進(jìn)行功能增減、材質(zhì)或結(jié)構(gòu)更換,設(shè)計(jì)適配個(gè)人使用習(xí)慣的機(jī)械鍵盤。
1軟件設(shè)計(jì)
使用KeyboardFirmwareBui1der(KFB)、KeyboardLayoutEditor(KLE)等開源軟件可以生成滿足人們需求的配列。鍵盤配列一般用百分?jǐn)?shù)表示,104鍵位為全尺寸(即100%)鍵盤,百分?jǐn)?shù)代表了按鍵數(shù)量和功能占比。大部分辦公鍵盤都是104鍵(或108鍵)的100%(或105%)尺寸的鍵盤,而對(duì)于一些特殊的行業(yè)或鍵盤愛好者來(lái)說(shuō)會(huì)選擇80%(84鍵或87鍵)配列的鍵盤,或者是60%、65%配列的鍵盤,前者去掉了小鍵盤,后者去掉了小鍵盤以及功能區(qū)。還有一些更加追求便攜性的用戶會(huì)去選擇40%的鍵盤,鍵盤上僅有字母區(qū)和基本的幾個(gè)功能鍵。40%鍵盤多見于國(guó)外用戶,國(guó)內(nèi)并不常見:而60%鍵盤則在國(guó)內(nèi)外都有著很大的用戶數(shù)量,這一區(qū)別主要是因?yàn)橹形妮斎氡仨氁髷?shù)字鍵的配合:50%鍵盤則同時(shí)兼顧了數(shù)字與便攜性。雖然這三款配列都可以通過修改鍵位和設(shè)置組合鍵來(lái)輸出字符,但是越精簡(jiǎn)的鍵盤配列所需要設(shè)置的額外組合鍵位就越多,這無(wú)疑增加了使用鍵盤前的學(xué)習(xí)成本。
圖1的調(diào)查問卷顯示,64.3%的人群更多是使用左手大拇指來(lái)輸入空格,7.1%是右手,而14.3%的人群是雙手交替使用??梢钥闯鍪褂米笫值娜苏剂舜蠖鄶?shù),所以設(shè)計(jì)時(shí)將長(zhǎng)空格分裂成兩個(gè)短空格,左空格保持了原有的空格功能,而右空格可以根據(jù)不同使用情況設(shè)置為切層鍵或宏或是其他功能鍵。此鍵盤根據(jù)需要可設(shè)置1~2個(gè)FN功能鍵,也可與字母區(qū)鍵位組合設(shè)置為其他功能鍵或錄制為宏,用來(lái)實(shí)現(xiàn)個(gè)性化功能。應(yīng)用此功能,可以使鍵盤"一鍵多用",在節(jié)省空間的同時(shí)也增加了新功能。
以40%與60%配列鍵盤為基礎(chǔ)對(duì)兩者優(yōu)缺點(diǎn)進(jìn)行了對(duì)比與取舍,設(shè)計(jì)出了全新的50%配列,一共有53個(gè)鍵位,其鍵盤配列圖如圖2所示,包括了常用功能鍵、字母區(qū)、數(shù)字鍵,并且支持組合鍵功能。利用配列代碼可以在KLE與KFB開源軟件上編譯生成并根據(jù)實(shí)際情況修改鍵盤的固件,使用EDA軟件繪制鍵盤PCB原理圖。利用KFB的鍵盤固件可以將某一鍵改成任何基礎(chǔ)鍵、組合鍵,但在實(shí)際使用中需要使用qmk-toolbox將重新修改后編譯完成的固件配列文件再次燒錄進(jìn)芯片,以新文件覆蓋舊文件的方式實(shí)現(xiàn)鍵盤原鍵值配置的修改,操作不夠便利,且對(duì)于一般用戶來(lái)說(shuō)有一定的門檻。
圖2機(jī)械鍵盤配列圖
而VIA軟件可以省略這一過程,只需要將鍵盤連接電腦,打開軟件就可以實(shí)現(xiàn)修改鍵位、錄制宏等功能,可以用更少更簡(jiǎn)單的步驟實(shí)現(xiàn)同樣的功能。因此,為了良好的用戶體驗(yàn),此鍵盤提供了適配VIA軟件的鍵盤固件文件 ,VIA軟件在識(shí)別到鍵盤后會(huì)顯示鍵盤的基礎(chǔ)信息,如名稱、矩陣信息、配列設(shè)置以及修改功能,如圖3所示。
2硬件構(gòu)成
本方案使用的芯片為ATmega32U4-AU。ATmega32作為高性能、低功耗的8位CMos微控制器,內(nèi)嵌了系統(tǒng)內(nèi)可編程Flash、8路10位ADC和26個(gè)可編程的I/O口,每個(gè)可編程的I/O口上都有可單獨(dú)設(shè)置為輸入、輸出的上拉電阻等,為方便后期焊接選用了針腳外露的AU款。主控電路及針腳分配如圖4所示
系統(tǒng)采用的是16MHz的5032無(wú)源晶振,兩端分別連接在xTAL1、xTAL2,在晶振x1旁邊連接兩個(gè)22pF的電容,接地。在REsET針腳上連接開關(guān)作為鍵盤鍵值的重置鍵,便于后期重新燒錄固件文件調(diào)整鍵盤鍵位。
繪制主控電容、type-c接口及其他所需電路后,用x連接在未使用針腳尾部,避免系統(tǒng)報(bào)錯(cuò)。
3PCB設(shè)計(jì)
根據(jù)鍵盤矩陣圖排列軸座,共5行12列。在鍵盤矩陣行列電路的交叉點(diǎn)上設(shè)置鍵盤按鍵,設(shè)計(jì)時(shí)采用矩陣掃描鍵盤的方案,軸座選用國(guó)產(chǎn)無(wú)燈凱華軸座。
鍵盤PCB原理圖如圖5所示,選用I/O接口中的部分端口作為行掃描輸入與列掃描輸出,令端口的輸入和輸出掃描關(guān)系在使用過程中不發(fā)生改變。鍵盤掃描程序按順序使列掃描輸出端口輸出低電平,從行掃描輸入端口讀取按鍵狀態(tài)來(lái)確定被按下按鍵位置。
鍵盤掃描程序如下:
(1)令PB4輸出低電平后,再?gòu)钠渌袙呙栎斎攵丝谧x取按鍵狀態(tài),確定按下鍵位是否在第一列:
(2)如未識(shí)別到按下鍵位,則令PB5輸出低電平的同時(shí)以與步驟(1)相同的操作確定按下鍵位是否在第二列,以此類推,最終確定被按下的鍵位。
在掃描過程中,一旦識(shí)別到有鍵盤按鍵被按下,便可返回鍵值同時(shí)退出掃描程序。所有鍵盤按鍵處設(shè)置的鍵盤軸開關(guān)列輸出位置均使用二極管與單片機(jī)內(nèi)的針腳電路相連串接,達(dá)到限制電流信號(hào)的流向的目的,額外設(shè)置的二極管可以使按下某個(gè)按鍵時(shí),與該按鍵相接的I/O口呈現(xiàn)高電平的同時(shí)不影響其他按鍵電路,即與該按鍵按鍵電路不相接的I/O口仍然是低電平,防止產(chǎn)生某一個(gè)按鍵被按下時(shí)所有I/O口都呈現(xiàn)高電平,導(dǎo)致主控讀取錯(cuò)誤信息。
4外觀設(shè)計(jì)
該鍵盤配列較為新穎,在常見的鍵盤結(jié)構(gòu)中,綜合成本與便攜性考慮,選用了亞克力堆疊的三明治結(jié)構(gòu),如圖6所示。該結(jié)構(gòu)利用上蓋和底殼將定位板夾在中間,并使用螺絲進(jìn)行固定。外殼材質(zhì)采用亞克力既能節(jié)約成本又可以適配多種個(gè)性化配列,設(shè)計(jì)簡(jiǎn)單,材質(zhì)輕便,易于攜帶。
圖6 亞克力堆疊鍵盤結(jié)構(gòu)示意圖
5結(jié)語(yǔ)
本設(shè)計(jì)對(duì)個(gè)人習(xí)慣、所需功能、實(shí)際使用情況等需求進(jìn)行調(diào)查分析與測(cè)試,從實(shí)際出發(fā),對(duì)比了多款不同特色配列的傳統(tǒng)鍵盤優(yōu)缺點(diǎn),并以此為基礎(chǔ),取長(zhǎng)補(bǔ)短,以滿足各種需求,最終設(shè)計(jì)出了一款全新的50%配列機(jī)械鍵盤。同時(shí),對(duì)鍵盤各項(xiàng)參數(shù)進(jìn)行了實(shí)際測(cè)試,使用手感符合預(yù)期,適配軟件運(yùn)行正常,外殼結(jié)實(shí)牢固,可靠性強(qiáng)。