经常玩键盘的伙伴应该都知道,现在的键盘市场可谓是百花齐放,已经不是之前的单一功能产品化时代。我们可以看到很多诸如:机械轴键盘、磁轴键盘、光轴键盘、电感轴键盘,以及可能会上市的光磁轴键盘,更有支持屏幕的、带旋钮的、带触摸按键甚至是触摸板的键盘,还有各种不同的键位配置,背光灯效,重量配置,以及各种回报率的键盘等等。在这些键盘里面,最近几天我关注最多的是 QMK 键盘,为此去搜集了些资料,分享给大家,仅供参考。
一、什么是 QMK
QMK (Quantum Mechanical Keyboard) 是一个以开发计算机输入设备为中心的开源社区。社区包含各种输入设备,如键盘、鼠标和 MIDI (Musical Instrument Digital Interface乐器数字接口)设备。有一个核心协作者组负责维护 QMK 固件,QMK 配置器,QMK 工具箱和 QMK 网站。 作为一个开源的键盘固件,可以用于许多不同类型的机械键盘。旨在为用户提供高度定制化的键盘功能。它支持多种键盘硬件,并允许用户通过修改配置文件自定义按键映射、宏、LED 灯光效果等,可以帮助用户自定义键盘布局和功能,支持多种操作系统和编程语言。
我们的键盘里面有一个处理器,就像我们的电脑里面的一样。该处理器运行的软件负责检测按键的按下,并在按键按下时通知计算机。QMK 固件充当软件的角色,检测按下的按键并将信息传递给主机。当我们构建自定义的键映射时,就是为我们的键盘创建一个可执行的程序。
"qmk_keyboards" 资源库提供了一站式的平台,以获取各种键盘的机器可读数据,包括配置文件、元数据、布局图、文档、示例代码、测试脚本和更新日志。QMK 的核心是它的模块化设计。它将键盘的各个部分------如扫描矩阵、USB 通信、键盘配置------作为独立的模块,方便开发者针对特定设备进行定制。
此外,QMK 提供了丰富的 API 和工具链,如 qmk_toolbox 和 qmk_configurator,让非开发人员也能轻松地调整键盘设置,允许用户在本地或通过在线服务快速构建固件。
二、QMK 的历史
QMK 最早由 Jack Humbert 在 2013 年发布。它是一个开源项目,得到了广泛的应用和认可。随着时间的推移,QMK不断得到改进和升级,逐渐成为一个高度灵活和可定制的键盘固件。
三、QMK 的特点
可定制性:QMK 允许用户自定义键盘布局和功能,可以满足各种使用需求。
跨平台:QMK 支持多种操作系统和编程语言,如 Windows、Linux、Mac OS、C 和 C++ 等。
易用性:QMK 提供了易于理解和使用的 API 接口,可以帮助开发人员快速上手。
高度灵活:QMK 支持多种映射方式和触发事件,可以定制各种复杂的键盘操作。
开放性:QMK 是一个开源项目,并且遵循 GPLv3 许可证。
四、QMK 的应用
自定义键盘:QMK 可以用于自定义机械键盘的功能和布局,满足各种用户需求。
游戏开发:QMK 可以用于游戏开发中的键盘响应和触发事件。
软件开发:QMK 可以用于软件开发中的快捷键和代码块等操作。
数据输入:QMK 可以用于数据输入软件的快捷键和输入模式等操作。
教育培训:QMK 可以用于编程教育中的键盘布局和快捷键等操作。
五、QMK 键盘的一般构建步骤
- 建立qmk开发环境
- 构建我们的第一个固件
- 刷写我们的键盘固件
- 刷写我们的固件
- 调试和运行
六、QMK 目前支持的 MCU
我们从下图可以看到,在社区网站上,我们可以找到目前支持我们进行 QMK 键盘创作的 MCU 平台。
七、QMK 固件功能定制的原理
键码映射 :每一个物理按键都能被映射到任意的键码上,支持各种自定义布局和功能。
层管理 :通过分层的方式管理不同功能的按键,实现单个按键在不同层中的不同功能。
宏编程 :可以编写宏,即一系列按键操作的集合,一键执行复杂的命令序列。
LED控制 :利用底层的LED控制功能,自定义键盘的背光效果。
功能扩展 :利用额外的插件和功能,比如音频音效、LCD 显示等。
最后,键盘很多人生活中都要用到的,如果我们都能按照自己的意愿使用键盘,我们的工作效率将大大提升。同时,QMK 是免费的,并且由于强大的社区支持而不断改进,因此大家可以去尝试制作一把属于自己独有键盘。