4x4宏垫套件

2020-10-07 14:55:27

上周末,我做了一个4x4键盘套件。在这一点上,许多人已经熟悉了不断增长的(也是直言不讳的)机械键盘爱好者社区。然而,这个工具包有点独特。这不是一个完整的键盘。相反,它是一个4x4;宏键盘,用于发送键盘快捷键序列,如将麦克风静音、将音频静音、调高音量、降低音量等。此外,通过一些额外的软件(如AutoHotKey),只需按一下按钮就可以触发非常复杂的程序。

总体而言,构建宏PAD是一个简单而直接的过程。该工具包的构建指南提供了一套很好的说明和图片来解释事情。然而,与许多(一些?)。在键盘套件中,Sweet 16套件需要焊接一些较小的部件,如二极管和微控制器接头。此外,成套件需要焊接一个表面贴装组件,即复位开关。

为了编写我的自定义键图(包括多个按键宏),我使用了QMK固件,这是最流行的键盘固件项目。

使用QMK,可以创建自定义按键代码,当按下这些代码时,会触发一系列输入。因此,只需按下宏键盘(或键盘)上的一个按钮,固件就会提交整个按键序列。

接下来,我定义了一个键映射数组。阵列中的每个位置对应于4x4宏键盘上的单个按钮:

Const uint16_t PROGMEM密钥映射[][矩阵_行][矩阵_COLS]={[0]=布局_正交_4x4(/*BASE*/MICMUTE,KC_MUTE,KC_VOLD,KC_VOLU,XXXXXXX,MACRO1,MACRO2,MACRO3,MACRO4,MACRO5,MACRO6,MACRO7,MACRO8),};

最后,我实现了PROCESS_RECORD_USER函数来定义按下每个自定义键码时应该发生的事情:

Bool PROCESS_RECORD_USER(uint16_t Keycode,keyRecord_t*Record){switch(Keycode){case MICMUTE:IF(记录->事件。按下){SEND_STRING(SS_LCTL(SS_LALT(SS_LSFT(SS_TAP(X_F10);}Break;案例MACRO1:IF(记录->事件。按下){SEND_STRING(SS_LCTL(SS_LALT(SS_LSFT(SS_TAP(X_F1);}中断;/**...。Etc*/}返回true}

如您所见,我已经将MICMUTE按钮配置为发送整个序列CTRL+ALT+SHIFT+F10。然而,在实践中,可以为任何按钮发送任意序列。而且,这才刚刚开始触及QMK固件功能的表面。

对于这个DIY&34;套件,我觉得设计我自己的图标很重要。我不是平面设计师,但这很有趣。为了做到这一点,我使用了可重复传说的键帽,键帽可以与清晰的顶部搭接在一起。然后,我把图标印在普通白纸上,把它们剪下来,然后把每个图标夹在键帽里。这是我努力的一张照片:

这是一个相当快的项目,但我觉得它仍然值得写一写。作为焊接方面的相对初学者,这个工具包是一种极好的方式来提高我的技能和能力,超越了大多数键盘工具包所要求的绝对初学者水平。而且,最终产品具有很强的实用性和可扩展性。除了作为一个简单的宏键盘的特殊用途之外,这种硬件本质上是一个连接到一组按钮的微控制器。有许多可能的应用。黑客入侵的时机已经成熟。这个设备可以变成MIDI控制器,家庭自动化遥控器,或者我想象中的任何其他东西。下次见。