這是一個內部運行 Python 的開源鍵盤,可根據個人需求定制鍵盤映射。從此以后,「窮苦玩家」也能在 MOBA 游戲里一鍵放連招了,不知這樣算不算硬件外掛?「氪金玩家」請出門右轉購買宏編程鍵盤。
近日,一位中國開發者在 GitHub 上開源了一個帶有 USB 和藍牙的手工「焊」接 Python 鍵盤的代碼。該項目使用了 AdaFruit 的人員開發的 CircuitPython(衍生自 MicroPython)的特定實現,該實現可以在容納 256K 的代碼空間和 16K 的 RAM 的虛擬機上運行。
這一 Python 鍵盤可以讓用戶輕松地使用 Python 編寫控制板。 項目地址:https://github.com/makerdiary/python-keyboard 下面我們就來看下這個 Python 鍵盤的具體操作和實現細節。 操作步驟 在 GitHub 上,作者詳細描述了制作這個 Python 鍵盤的操作步驟,總結起來包括: 1. 手工「焊」接鍵盤 下面這些圖展示了作者對這些鍵盤內部結構的改造。
去掉鍵盤帽扣,作者用焊絲把關聯按鍵連接起來,達到下圖這樣的效果。
最后,作者把一個能夠運行 Python 的開源控制板連接到鍵盤上。最終圖示如下。
2. 編程 Pitaya Go 第二步是對上圖中紅色設備的編程。作者在 Github 中編寫了詳細的指南,對 Pitaya Go 進行編程并燒寫到 Flash CircuitPython 固件上。 3. 下載 CircuitPython 庫 接下來,下載兩個 CircuitPython 庫:adafruit-ble 和 adafruit-hid,并將它們放入名為 CIRCUITPY 的 USB 驅動器里的 lib 目錄中,如下圖所示。
4. 復制代碼 最后一步是將 Python 的代碼復制到 code.py。重新加載 code.py 后,我們就可以獲得一個帶有 USB 以及藍牙的鍵盤了。 完整代碼作者也開源到 Github 項目中。 生產力升級 60%(61 鍵)的鍵盤缺少 F1~F12、方向鍵、PgUp、PgDn 等鍵位。該項目加入了 tmk_keyboard 項目中的鍵位映射功能,同時參考了 Toward a more useful keyboard 項目對于鍵位設置上的優化理念,使得小鍵盤更具生產力「折騰才有樂趣,就是不買全鍵盤」!
tmk_keyboard 項目地址:https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/keymap.md
Toward a more useful keyboard 項目地址:https://github.com/jasonrudolph/keyboard
由于使用了 Python 編寫鍵位映射,我們可以很方便地對鍵位進行個性化定制「以后誰還需要宏編程鍵盤,大霧」。該項目自帶 Tap-key 功能,即按住一個鍵不放可激活替代功能模式,在 60% 鍵盤上擴展出更多鍵位。我們只需將 keyboard.py 與 keycodes.py 復制到 CIRCUITPY 目錄下,之后修改 code.py 導入新鍵盤,即可將按鍵 D 用作導航。
當僅想要輸出 D 時快速敲擊即可,而按住 D 不放則激活導航功能,變化后的鍵位如下圖所示。
此時 H、J、K、L 鍵分別被映射為上下左右方向鍵,而 U 與 N 則被映射為 PgUp 和 PgDn。
另外還支持同時按住兩個鍵(間隔小于 25 毫秒)激活替代功能模式,以及按住「;」鍵作為 Ctrl。 為什么要用 Python 寫? 這個項目在 hackernews 和 twitter 上都引來了不少人圍觀。多數人認為這是一個非常有創意的想法,之前沒見過這種操作。
但鑒于作者在項目中用的語言是 Python,大家不免擔心起速度問題。對此,作者回復稱,「確實有點慢,現在掃描一次矩陣需要 4 毫秒,但優化之后速度會有提升。」
既然用 Python 速度慢,那為什么不用 C 語言寫呢?也沒有多復雜啊。作者表示,「項目中的硬件包含一個 QSPI 閃存,它是一個 USB 存儲,用來保存 Python 源代碼,你可以直接改 Python 代碼。而且,使用 Python 為快速驗證硬件產品的創意提供了一個新的方式。」
除此之外,也有人幫作者補充了使用 Python 的好處。ta 指出,這個項目用到的 CircuitPython 實現使用一個非常不同的 VM 運行,雖然不能指望它接近 C 的性能,但相比 Cpython 要輕量化得多。整個開發過程也會簡單得多。
-
開源
+關注
關注
3文章
3381瀏覽量
42604 -
代碼
+關注
關注
30文章
4809瀏覽量
68819 -
python
+關注
關注
56文章
4801瀏覽量
84867
原文標題:自己「焊」鍵盤:使用Python編寫
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論