歡迎來到 [鍵入佳境] 自作鍵盤系列的入門文章,今天我們來介紹機械鍵盤的基本電路。
機械鍵盤
機械鍵盤是以機械元件的動作來判斷按鍵是否有壓下。以紅軸的機械動作為例,在紅軸的機械軸當中有兩片金屬,當按下軸的時候,壓到底,就會讓兩片金屬 “碰” 到一起,形成了所謂 “導通” 狀態。
機械鍵盤的電路
電路是電子元件的線路。每一個電子元件之間需要互向溝通,譬如我們要將字元 ‘A’ 從 CPU 傳遞到記憶體,就需要將 CPU 與記憶體透過電路的方式連接。
機械軸其實只是開關
機械鍵盤的軸,其實只是一個開關,原理就跟一般開關一樣,其實沒有什麼特別,就像你按下電視遙控器,電視會打開一樣。當你按下按鍵的時候,就是一個開關被觸發。
當你按下開關之後,就會變成一個導通的狀態,也就是連接,像一條導通的電路一樣。
VCC 就是電源,GND 是接地,當開關沒有被按下的時候,控制器會偵測 (偵測點 1) 到高電位,按下開關之後,偵測點 1 會直接呈現接地狀態,所以控制器會偵測到低電位,也就是當低電位時,代表按鍵被按下了 (此電路只是提供一個簡單的範例)。
鍵盤矩陣 (Keyboard Matrix)
控制器會需要一個 I/O 腳偵測每一個按鍵的開或關狀態,那如果我們有 104 顆按鍵,不就需要 104 個 I/O 嗎?多數的控制器都沒有這麼多 I/O 腳,所以我們利用鍵盤矩陣的方式,將電路分成行與列,利用交錯的方式來偵測按鍵是否有按下:
透過行與列的方式,所以我們只需要一個 5×5 的矩陣,就能控制 25 個按鍵,看你需要幾個按鍵,就設計矩陣的 I/O 腳位即可。
基本按鍵原理與鬼鍵 (Ghost Key)
基本按鍵原理
鍵盤矩陣的運作方式是透過掃描的方式逐一掃瞄行與列,利用改變行電位,然後偵測哪一個列的電位有改變,就知道哪一個鍵被按下。
掃描時,首先會設定 Column 1 變成高電位,我們用 VCC 來表示, 所以當按下 SW2 的時候,Row 1 就會收到高電位訊號,若是 SW2 是 ‘A’ 這個按鍵,控制器會送給電腦 “A” 按下,控制器會紀錄 SW2 是按下狀態。
接下來 Column 1 會回復成低電位,Column 2 會變成高電位,若是 SW3 被按下,Row 1 就會是高電位,若是 SW5 被按下,Row 2 會是高電位,一直如此到所有 Column 掃描過。
接者又重新來到 Column 1 變成高電位,若這時 SW2 放開了,Row 1 會是低電位,控制器因為先前紀錄 SW2 是按下狀態,現在低電位表示被放開了,控制器會送給電腦 “A” 放開,控制器又紀錄了 SW2 是釋放狀態。一直重複這個循環,所以當你按下按鍵時,其實電腦會收到按下與釋放的兩個狀態喔!
所有按鈕的 Column 與 Row 的狀態如下:
Column 1 HIGH + ROW 1 HIGH = SW2 被按下 Column 1 HIGH + ROW 2 HIGH = SW4 被按下 Column 2 HIGH + ROW 1 HIGH = SW3 被按下 Column 2 HIGH + ROW 2 HIGH = SW5 被按下
那什麼是鬼鍵呢? 如下狀況時,這兩個狀況都會造成控制器認為 SW5 被按下。
雖然有了鍵盤矩陣,但因為電流是會亂跑得,只要是導通的線路上,電流會充滿整個電路,於是就會發生所謂的鬼鍵!造成誤判 SW5 被按下。
機械鍵盤的基本電子零件
二極體
使用二極體就能防止鬼鍵!因為二極體會限制電流的方向,讓電流只能朝單獨的方向前進,就不會發生鬼鍵的問題。
二極體有多種樣式,在自作鍵盤的時候最常會用到的應該是插件式的元件,如圖:
鍵盤常用的二極體編號是 1N4148 ,分為插件式 (DIP) 與貼片式 (SMD),插件式地的一般表面可能會寫 T4 或是 T3 等字樣,會有一條線來區別級性,從左到右是二極體的電子元件圖、 插件式 (DIP) 與貼片元件 (SMD) 。插件式與貼片式都有明顯標示了一條線,就跟元件圖的方向一樣:
最後加上二極體後,就不會出現鬼鍵了:
控制器
控制器可以想像成鍵盤的 CPU,就是主要的心臟。我們會在控制器當中安裝 QMK 軟體,控制器就會開始偵測每一個按鍵的狀況,當按見被按下時,就會依照設定值送出訊號給電腦。
一般常見的控制器有 Arduino Pro Micro 與 Teensy 2.0 兩種。像是 ErgoDox 系列的經典鍵盤,左手使用的是一個 I/O 擴展 IC,MCP23018,透過右手的 Teensy 2.0 來發送訊號給左手 MCP23018 來掃描左手按鍵,再回傳電腦。
後期大家將左右手都改為 Arduino Pro Micro,方便購買與更加便宜。
外殼
自作鍵盤的外殼如果不是自己使用 3D 列印或是購買現成的話,一般來說都會使用壓克力來當作外殼。
壓克力外殼
壓克力一般會使用 3mm 到 5mm 的壓克,有兩種,一種是使用約 5 層的 3mm 壓克力,將整個 PCB (電路板) 包起來,整個鍵盤會很堅固,但是也會很重,像是 ErgoDox。另一種是只有底座跟一片定位版,中間透過銅柱的方式支撐,而 PCB 會藉由軸與定位版的方式固定,PCB 像是夾漢堡一樣,例如 ErgoDash。使用壓克力的好處是便宜,並且透光,你也可以選擇壓克力的顏色。
PCB 材質的外殼
還有一種比較高級的外殼,直接使用 PCB 當作定位版與底座,優點是材質特殊,看起來非常漂亮,但是缺點是若是你的鍵盤有底光或是背光,就看不到摟,Crone/crkbd 有 PCB 定位版與外殼。
結論
對自己做鍵盤有更深的認識了嗎?下次我們會來講一些基本工具,如果喜歡我們的文章,記得訂閱喔!有問題可以留言詢問!