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

評論