ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

QMK 键盘 Aplx6 rev2 固件指南:编码器旋钮、OLED 分层显示与媒体宏键配置

QMK 键盘 Aplx6 rev2 固件指南:编码器旋钮、OLED 分层显示与媒体宏键配置 QMK 键盘 Aplx6 rev2 固件指南编码器旋钮、OLED 分层显示与媒体宏键配置【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmwareAplx6 rev2 是 Aplyard 推出的 2×3 六键 MediaPad 的升级版本文以其在 QMK 固件仓库中的官方文档 keyboards/aplyard/aplx6/rev2/readme.md 为主线结合仓库内真实存在的 keyboard.json 与 默认键位 keymap.c 源码完整讲解该键盘的硬件结构、固件编译方法、三层键位设计与编码器/OLED 的自定义开发方式。读完本文你将能够自行编译刷写 Aplx6 rev2 固件并按需修改旋钮功能、层切换逻辑与 OLED 显示内容。一、硬件概览从 2×3 媒体板到带旋钮的升级版Aplx6 rev2 是一块 2 行 × 3 列的六键小键盘核心定位是音乐、浏览器与文档快捷键控制。与原版 Aplx6rev1见 rev1/readme.md相比rev2 是更新了编码器的版本新增旋转编码器附带按压开关按压用于循环切换层cycling layers新增 OLED 显示屏用于显示一些装饰性 Logo更多层More layers默认固件内置了三层功能层。整机采用三明治sandwich装配结构PCB 与空白底板之间通过 M2.5 螺丝和铜柱spacers固定轴体支持MX 或 Alps 兼容轴二选一二极管使用1N4148属于典型的低成本手焊开源项目。硬件支持清单来自文档项目内容键盘维护者MaintainerAplyard支持的硬件Aplx6 PCB Pro MicroATmega32U4固件入口keyboards/aplyard/aplx6/rev2/默认键位keyboards/aplyard/aplx6/rev2/keymaps/default/二、固件编译一条 make 命令搞定编译该键盘的默认键位命令与 rev1 相同但路径带rev2make aplyard/aplx6/rev2:default前置条件是按 QMK 官方流程搭建好编译环境。若你是 QMK 新手仓库内提供了完整的入门资料构建环境搭建、make 编译说明 以及 全新入门指南Complete Newbs Guide。硬件配置与引脚定义固件采用>#define KC_COPY LCTL(KC_C) // Mac 系统请改为 LGUI(KC_C) #define KC_CUT LCTL(KC_X) // Mac 系统请改为 LGUI(KC_X) #define KC_PASTE LCTL(KC_V) // Mac 系统请改为 LGUI(KC_V) //#define KC_MY_COMPUTER LGUI(KC_SPC) // 取消注释可让该键在 Mac 上触发 Spotlight 搜索从源码注释可见默认按 Windows/Linux 的CtrlC/X/V实现复制剪切粘贴若在 macOS 上使用需将三处LCTL替换为LGUI若希望我的电脑键在 Mac 上变成 Spotlight 搜索可取消最后一行的注释。这是一个很好的、面向跨平台使用者的定制示例。四、旋转编码器按层执行不同动作Aplx6 rev2 的核心卖点是编码器。在 QMK 中用户只需在键位文件中实现弱函数encoder_update_user即可接管旋钮行为。该回调由量子层 quantum/encoder.c 在编码器事件发生时自动调用其声明位于 quantum/encoder.h。默认键位中的实现如下节选关键逻辑bool encoder_update_user(uint8_t index, bool clockwise) { if (index 0) { switch (get_highest_layer(layer_state)) { case 1: // _DOC 层左右翻页/移动光标 clockwise ? tap_code(KC_RIGHT) : tap_code(KC_LEFT); break; case 2: // _POWER 层调节屏幕亮度 clockwise ? tap_code(KC_BRIU) : tap_code(KC_BRID); break; default: // _MEDIA 层调节系统音量 clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD); } } return true; }这套设计很有参考价值旋钮功能与当前所在层联动——媒体层调音量、文档层左右移动光标、效率层调亮度源码中每一处都留有//edit here your ... encoder keycode注释方便你改成KC_MEDIA_NEXT_TRACK、KC_PGDN等任意键码。由于键盘只有一个旋钮index 0的判断也展示了多旋钮设备下的标准分支写法。编码器的物理配置在 rev2/keyboard.json 中声明encoder: { rotary: [ {pin_a: F5, pin_b: F4} ] }层状态读取使用get_highest_layer(layer_state)与 OLED 的 Logo 切换逻辑见下节保持一致确保屏幕显示的 Logo与旋钮触发的动作始终对应同一层。五、OLED 显示随层切换的位图 Logo文档提到 rev2 新增了 OLED 用于显示一些好看的 Logosome fancy logos。默认键位在#if defined(OLED_ENABLE)条件编译块内实现了完整的渲染逻辑render_logo()中内置三张 128×32 像素级位图数组logo1 / logo2 / logo3以PROGMEM存放节省 RAM分别对应_MEDIA、_DOC、_POWER三个层通过switch (get_highest_layer(layer_state))判断当前层用oled_write_raw_P()将对应位图直接写入显示缓冲用户回调oled_task_user()每帧调用render_logo()并返回false表示完全接管屏幕、不再绘制默认文本。switch (get_highest_layer(layer_state)) { case 1: oled_write_raw_P(logo2, sizeof(logo2)); break; case 2: oled_write_raw_P(logo3, sizeof(logo3)); break; default: oled_write_raw_P(logo1, sizeof(logo1)); }这套层 → 位图的映射模式可直接复用比如为自定义层新增一张位图只需仿照logo1的结构再声明一个数组并在switch中增加case分支。位图数据来源于真实按键图案属于开源硬件社区常用的像素画转数组工作流。六、与 rev1 的对比升级了什么结合仓库中 rev1 与 rev2 的源码可以精确归纳两版差异维度Aplx6 rev1Aplx6 rev2矩阵引脚colsF7/B6/F4rowsE6/B3colsC6/D7/E6rowsB4/B5编码器无有F5/F4含按压键OLED无有三层位图 Logo层数2 层MO(1)临时层3 层TO(n)循环切换功能开关无 encoder/oled增加encoder、oled新增tap_keycode_delay升级的核心思路是rev1 靠 Fn 临时层做媒体系统快捷键rev2 则用旋钮按压 → 切层 → 旋钮旋转 → 执行层内动作的交互闭环替代按键切层配合 OLED 视觉反馈交互效率更高。七、二次开发建议与资料索引如果你打算基于 Aplx6 rev2 做自己的键位可按以下路径修改仓库为只读请先克隆到本地再进行开发改键位复制keymaps/default/为自定义目录编辑keymap.c中三个LAYOUT(...)块参考 keymap.md 与 feature_layers.md改旋钮动作在encoder_update_user中替换tap_code()的键码键码全集见 keycodes.md改 OLED在render_logo()中新增/替换位图数组位图绘制 API 详见 feature_oled_driver.md改硬件配置如需调整引脚或功能开关编辑keyboard.json可对照 reference_info_json.md 的 schema 说明编译刷写重新执行make aplyard/aplx6/rev2:你的键位名刷写步骤见 newbs_flashing.md。本项目设计阶段使用的工具链也记录在 rev2 文档中PCB 用 [KiCad] 设计元件封装库包括 MX_Alps_Hybrid同时兼容 MX 与 Alps 轴体、keebs.pretty、keyboard_parts.pretty 与 ProMicro KiCad辅助设计可借助 QMK Online Configurator 在线配置、Keyboard Layout Editor 编辑配列、Keyboard Plate Case Builder 生成定位板与外壳。这些工具均为键盘 DIY 社区的标准流程与本文讲解的固件配置相辅相成。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表