今天,我將構(gòu)建一個基于RaspberryPiPico的數(shù)字鍵盤。我將構(gòu)建一個帶有20個開關(guān)的簡單正交數(shù)字鍵盤。然后我將介紹如何在其上安裝KMK固件。
KMK可以安裝在基于python的微控制器上。用于一些簡單的永固,從數(shù)字鍵盤一直到全鍵盤。
補給品
樹莓派Picox1
鑰匙開關(guān)x20
二極管x20
鍵帽x20
金屬絲
機箱和硬件
焊接
工具
3D打印機(案例)
剪線鉗
鉗
鑷子
砂紙(可選)
烙鐵
計算機
USB線
第1步:準備外殼
我在Ender3Pro上用PLA設(shè)計并打印了這個外殼。(點擊可下載)
外殼設(shè)計為最多使用6個M3螺釘,但對于數(shù)字鍵盤,我只會使用其中的4個。
邊緣有點粗糙,所以我將底座擰到頂部并濕磨邊緣以使其平滑。在短短幾分鐘內(nèi),我就可以擺脫顛簸,并給表殼帶來漂亮的啞光效果。
第2步:安裝硬件組件:
我將把所有硬件集中到一個步驟中。正如我在第1部分視頻中提到的,我在這里有一些建議,希望你能比我更輕松。
我已經(jīng)包含了上面的電路圖。
安裝開關(guān)
將所有開關(guān)放在同一方向。這樣可以更輕松地在下一步中安裝二極管。
彎曲二極管
彎曲二極管的一條腿,使其與二極管的其余部分成45度角。在引腳上設(shè)置這個角度,使二極管沿著開關(guān)的一側(cè)向下流動
將另一條腿彎曲90度。這可以用來連接到其余的二極管行
請查看此步驟中的另一個圖表,以更好地了解我的意思。
安裝二極管
將二極管放置到位,然后先將二極管焊接到開關(guān)上
將90度腿焊接到其余的二極管行
每次都仔細檢查二極管的方向,方向并不重要,重要的是它們都相同
修剪掉多余的引線
連接列
我使用了一根實芯線,每隔14毫米切割一次絕緣層,然后你可以滑動絕緣層,為開關(guān)上的另一個引腳留出小間隙。
我還從一端移除了大約1英寸(25毫米)的絕緣層,以騰出足夠的空間來移動絕緣層
將電線放置到位時,我在要連接的引腳之間曲折。這有助于在我焊接時將其固定到位
剪掉多余的電線
將行和列連接到Pico
我使用了一些長段絞合線連接到每一行和每一列
然后將它們連接到Pico。引腳號不是超級導入,只是跟蹤它們,以便以后在代碼中使用它們
第3步:什么是KMK?
“KMK是一款功能豐富且對初學者友好的固件,適用于在CircuitPython中編寫和配置的計算機鍵盤。”
這是他們的GitHub的鏈接,其中包含更多信息。
我使用它是因為我發(fā)現(xiàn)使用QMK(大多數(shù)鍵盤的標準)要容易得多。可以在任何計算機上以純文本形式完成。
第4步:在Pico上安裝軟件
有了所有硬件,我們需要在Pico上安裝一些軟件。這一切都可以在不安裝任何其他軟件的情況下完成。
我從KMKGitHub入門頁面了解了如何完成所有這些操作。如果您想要更多信息或功能,那里有大量有用的信息。
需要的第一個軟件是來自Adafruit的最新CircutPythonUF2。
只需下載文件
按住Pico上的啟動按鈕并將其插入計算機(如果它一直提示錯誤,請嘗試在不按住啟動按鈕的情況下將其插入)
Pico應(yīng)顯示為外部存儲設(shè)備
將下載的UF2文件拖到Pico。它本身應(yīng)該彈出,然后在幾分鐘后重新連接一個新名稱
接下來是KMK固件“安裝”。
從他們的GitHub獲取最新版本的KMK(從入門頁面獲取此鏈接)。
它將下載一個.zip文件。提取所有文件。
在文件夾中找到KMK文件夾和boot.py文件。
從文件夾中復(fù)制這些項目并將它們粘貼到Pico
第5步:添加Code.py
到目前為止,KMK的舞臺剛剛準備好,現(xiàn)在我需要告訴它實際要做什么。
這是使用code.py文件完成的。Pico上應(yīng)該有一個,如果不只是創(chuàng)建一個名為code.py的新文件。
幸運的是,大部分的辛勤工作已經(jīng)完成。我只需要從GitHub頁面復(fù)制示例代碼并將其粘貼到code.py文件中。我使用NotePad++編輯此文件,但這也可以在NotePad中完成
我需要給這個文件我的數(shù)字鍵盤的所有細節(jié)。
為此,我首先需要為代碼提供第11行和第12行中行和列的引腳號。
接下來我需要更改二極管方向,因為代碼需要知道一切是如何設(shè)置的。我將它從COL2ROW更改為ROW2COL。
現(xiàn)在大部分方法都完成了,我只需要添加鍵映射。或者什么鍵應(yīng)該在哪里。我參考了這個網(wǎng)頁來找到我可以使用的所有關(guān)鍵代碼。我不會詳細介紹這一點,但請看一下我使用的內(nèi)容并進行您想要的任何更改。
代碼:(可點擊下載)
print("Starting")
import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.matrix import DiodeOrientation
keyboard = KMKKeyboard()
keyboard.col_pins = (board.GP0,board.GP1, board.GP2, board.GP3) # try D5 on Feather, keeboar
keyboard.row_pins = (board.GP4, board.GP5, board.GP6, board.GP7, board.GP8) # try D6 on Feather, keeboar
keyboard.diode_orientation = DiodeOrientation.ROW2COL
keyboard.keymap = [
[KC.A, KC.LSHIFT, KC.TAB, KC.KP_PLUS,
KC.N7, KC.N8, KC.N9, KC.KP_ASTERISK,
KC.N4, KC.N5, KC.N6, KC.KP_MINUS,
KC.N1, KC.N2, KC.N3, KC.KP_SLASH,
KC.BSPC, KC.N0, KC.KP_DOT, KC.KP_ENTER,
]
]
if __name__ == '__main__':
-
鍵盤
+關(guān)注
關(guān)注
4文章
866瀏覽量
40605
發(fā)布評論請先 登錄
USB數(shù)字鍵盤的數(shù)據(jù)傳輸模式是什么?
單機數(shù)值輸入控件,彈出數(shù)字鍵盤,單擊數(shù)字輸入值
如何用虛擬數(shù)字鍵盤對多個輸入控件進行輸入?
LCD和數(shù)字鍵盤實現(xiàn)的人機交互式界面
如何制作一個小數(shù)字鍵盤
如何實現(xiàn)基于Arduino的HID數(shù)字鍵盤設(shè)計?
如何利用CH549開發(fā)一款觸摸的數(shù)字鍵盤?
如何切換筆記本小鍵盤
減少數(shù)字鍵盤所需的引腳數(shù)量開源

基于XIAO SAMD21開發(fā)板的數(shù)字鍵盤制作方案

評論