自己动手「焊」键盘,使用Python编写,一键放连招不在话下


机器之心报道
机器之心编辑部
这是一个内部运行 Python 的开源键盘 , 可根据个人需求定制键盘映射 。 从此以后 , 「穷苦玩家」也能在 MOBA 游戏里一键放连招了 , 不知这样算不算硬件外挂?「氪金玩家」请出门右转购买宏编程键盘 。
自己动手「焊」键盘,使用Python编写,一键放连招不在话下
本文插图

近日 , 一位中国开发者在 GitHub 上开源了一个带有 USB 和蓝牙的手工「焊」接 Python 键盘的代码 。 该项目使用了 AdaFruit 的人员开发的 CircuitPython(衍生自 MicroPython)的特定实现 , 该实现可以在容纳 256K 的代码空间和 16K 的 RAM 的虚拟机上运行 。
这一 Python 键盘可以让用户轻松地使用 Python 编写控制板 。
项目地址:https://github.com/makerdiary/python-keyboard
下面我们就来看下这个 Python 键盘的具体操作和实现细节 。
操作步骤
在 GitHub 上 , 作者详细描述了制作这个 Python 键盘的操作步骤 , 总结起来包括:
1. 手工「焊」接键盘
下面这些图展示了作者对这些键盘内部结构的改造 。
自己动手「焊」键盘,使用Python编写,一键放连招不在话下
本文插图

【自己动手「焊」键盘,使用Python编写,一键放连招不在话下】去掉键盘帽扣 , 作者用焊丝把关联按键连接起来 , 达到下图这样的效果 。
自己动手「焊」键盘,使用Python编写,一键放连招不在话下
本文插图

最后 , 作者把一个能够运行 Python 的开源控制板连接到键盘上 。 最终图示如下 。
自己动手「焊」键盘,使用Python编写,一键放连招不在话下
本文插图

2. 编程 Pitaya Go
第二步是对上图中红色设备的编程 。 作者在 Github 中编写了详细的指南 , 对 Pitaya Go 进行编程并烧写到 Flash CircuitPython 固件上 。
3. 下载 CircuitPython 库
接下来 , 下载两个 CircuitPython 库:adafruit-ble 和 adafruit-hid , 并将它们放入名为 CIRCUITPY 的 USB 驱动器里的 lib 目录中 , 如下图所示 。
自己动手「焊」键盘,使用Python编写,一键放连招不在话下
本文插图

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 用作导航 。
自己动手「焊」键盘,使用Python编写,一键放连招不在话下
本文插图

当仅想要输出 D 时快速敲击即可 , 而按住 D 不放则激活导航功能 , 变化后的键位如下图所示 。


推荐阅读