拓冰建站拓冰建站
首页 / 资讯中心 / 正文

QMK 固件中的 AKB Vero 矩阵图全解析:5×15 矩阵坐标与 HHKB 配列实现

QMK 固件中的 AKB Vero 矩阵图全解析5×15 矩阵坐标与 HHKB 配列实现【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmwareAKB Vero 是一款采用 HHKB 经典配列思路设计的 60% 机械键盘以 6U 空格和不对称 blocker 还原 HHKB 的经典手感。本篇指南以 matrix_diagram.md 为核心逐格讲解 Vero 的矩阵图Matrix Diagram坐标系统、各行列坐标与物理按键的对应关系并结合 keyboard.json 与仓库内 5 份默认键位映射源码说明 QMK 固件如何通过矩阵坐标驱动 ANSI、ISO、6U 空格、分裂空格等多种配列。读完本文你将能独立读懂任何 QMK 键盘的矩阵图并理解从矩阵坐标到实际键位配置的完整链路。矩阵图原图AKB Vero 的完整布线matrix_diagram.md的核心内容即下图——它用 ASCII 字符绘制了 Vero PCB 的 5 行 × 15 列矩阵与物理按键的对应关系。图中的004E是矩阵坐标第一位数字表示行Row第二位表示列Col采用十六进制计数09、AE。┌───────┐ 2u Backspace │0D │ └───────┘ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ ISO Enter └────┴┬──┴┬──┴──┬┴───┴───┴──┬┴───┴───┴──┬┴───┴┬──┴┬─────┴───┘ │41 │42 │45 │47 │4A │4B │ └───┴─────┴───────────┴───────────┴─────┴───┘ ┌────────┐ ┌──────────┐ │30 │ 2.25u LShift 2.75u RShift │3C │ └────────┘ └──────────┘ ┌───┬─────┬───────────────────────┬─────┬───┐ │41 │42 │47 │4A │4B │ 6u Space └───┴─────┴───────────────────────┴─────┴───┘从图中可以直接读出 Vero 的矩阵规模5 行Row 04× 15 列Col 0E最大容量 75 个矩阵交叉点实际布线覆盖约 64 键的 60% 布局外加若干可切换配列的多余触点。矩阵坐标系统行号与列号的编码规则在 QMK 中矩阵坐标写作[row, col]或如本图所示的两位十六进制串。以 Vero 为例第一位数字 行号04对应matrix_pins.rows数组中的下标第二位数字/字母 列号09、AE十进制 1014对应matrix_pins.cols数组中的下标0D表示第 0 行、第 13 列4B表示第 4 行、第 11 列依此类推。这一坐标与 keyboard.json 中layouts每个键位条目的matrix: [row, col]字段一一对应。例如数字行第一个键定义为{label: Esc, matrix: [0, 0]}即矩阵坐标00右下角的 Fn 键定义为{label: Fn, matrix: [3, 13]}即坐标3D。行坐标分布一览行覆盖区域典型按键Row 0数字行15 键全占00Esc 0ERow 1QWERTY 字母首行 退格10Tab 1DBackspaceRow 2主键区中间行20Ctrl 2DEnter或2C/2D组合 ISO EnterRow 3字母末行 修饰键30Shift 3DFnRow 4空格行41Alt 4B右 Alt物理键位与矩阵坐标的映射数字行与退格键Row 0Row 0 是唯一整行 15 列全部使用的行00Esc、010A数字10、0B-、0C、0D\、0E。矩阵图右上角特别标注了2u Backspace位于0D。对照 keyboard.json 的LAYOUT_all0D在默认布局中映射为\反斜杠而LAYOUT_60_true_hhkb系列中0D才是 Backspace——这正是 HHKB 配列“退格键右移一位、顶行多出一个反引号键”的标志性差异读者可以对比矩阵图顶行与两个布局定义的label字段确认。主键区ANSI 与 ISO 的切换点Row 12Row 110Tab1.5u→111C字母与符号 →1DBackspace1.5uRow 220Ctrl1.75u→212B字母与符号 →2C#非美式符号键→2DEnterANSI 1.25u。矩阵图左下角单独画出了ISO Enter 结构2C与2D两个触点共同组成 ISO 回车键高度 2u、宽度 1.25u。对应地LAYOUT_60_true_hhkb_iso中 Enter 定义为matrix: [2, 13], w: 1.25, h: 2即横跨2C/2D两个矩阵点同时 ISO 配列会在31位置安放\KC_NUBS这从 default_true_hhkb_iso/keymap.c 第 2024 行可以清楚看到。空格行6U 空格与分裂空格Row 4Row 4 是配列差异最集中的一行。矩阵图底部用两段示意分别展示了两种状态6u 空格41Alt、42GUI1.5u、476u 空格、4AGUI1.5u、4BAlt对应LAYOUT_60_true_hhkb中Space的w: 6定义分裂空格Split Space47位置被拆为45与47两个 3u 空格对应LAYOUT_60_true_hhkb_split_space与LAYOUT_all中两个Space各 3u 的定义默认键位在 default_true_hhkb_split_space/keymap.c 中写为两个KC_SPC。此外矩阵图还标注了2.25u LShift30与 2.75u RShift3C的不对称设计30只占 1 个矩阵点但物理宽度 2.25u3C同理宽度 2.75u这正是 6U 空格配列下左右 Shift 宽度不对称的物理来源。硬件层面的矩阵实现引脚与二极管方向矩阵图描述的是逻辑布线而其硬件落实在 keyboard.json 的matrix_pins字段matrix_pins: { cols: [A13, B3, A15, A14, B0, A7, A6, A5, A4, A3, A2, A1, B7, B6, B5], rows: [B15, B4, A0, B13, B14] }, diode_direction: COL2ROWrows数组含 5 个元素恰好对应矩阵图的 5 行B15Row 0 B14Row 4cols数组含 15 个元素对应列0EA13Col 0 B5Col Ediode_direction为COL2ROW表示每个按键二极管正极接列、负极接行QMK 扫描时逐行拉低、逐列读入与矩阵图的行列编号严格对应。因此矩阵图中任意坐标如3D都能反查出物理连接Row 3 引脚B13Col D 引脚B6。QMK 的 Bootmagic 键默认00即 Esc也是基于同样的坐标系统定位的——readme.md 中说明“按住矩阵 (0,0) 处按键通常是左上角 Esc再插入 USB 即可进入刷写模式”。五种布局变体与默认键位映射仓库中为 Vero 提供了 5 个默认键位映射正好对应矩阵图覆盖的全部配列组合键位目录布局宏空格回车顶行退格keymaps/defaultLAYOUT_all分裂3u3uANSI\keymaps/default_true_hhkbLAYOUT_60_true_hhkb6uANSIBackspacekeymaps/default_true_hhkb_split_spaceLAYOUT_60_true_hhkb_split_space分裂ANSIBackspacekeymaps/default_true_hhkb_isoLAYOUT_60_true_hhkb_iso6uISOBackspacekeymaps/default_true_hhkb_iso_split_spaceLAYOUT_60_true_hhkb_iso_split_space分裂ISOBackspace以最接近矩阵图 6u 主形态的 default_true_hhkb/keymap.c 为例第 1925 行用LAYOUT_60_true_hhkb宏按矩阵坐标逐格填键[0] LAYOUT_60_true_hhkb( KC_ESC, KC_1, KC_2, ..., KC_GRV, // Row 0: 00~0E KC_TAB, KC_Q, ..., KC_BSPC, // Row 1: 10~1D KC_LCTL, KC_A, ..., KC_ENT, // Row 2: 20~2D KC_LSFT, KC_Z, ..., MO(1), // Row 3: 30~3D KC_LALT, KC_LGUI, KC_SPC, // Row 4: 41~4B KC_RGUI, KC_RALT ),调用宏时实参的书写顺序必须与布局宏在 keyboard.json 中layout数组的条目顺序一致先 Row 0 从左到右再 Row 1……最后 Row 4任何一个参数的错位都会导致“按键错乱”这也是矩阵图对键位开发者最有价值的校对工具。第 2 层[1]由MO(1)触发则将00映射为KC_PWR、010C映射为KC_F1KC_F12并集中放置媒体与导航键。从矩阵图到固件构建确认矩阵与布局无误后即可按 readme.md 提供的方式构建与刷写。Vero 使用 STM32F411 主控与stm32-dfu引导程序# 编译默认键位对应 LAYOUT_all 分裂空格 ANSI make antipode/vero:default # 编译 6U 空格 HHKB 键位 make antipode/vero:default_true_hhkb # 编译并直接刷写三选一ISO / 分裂空格 / ISO分裂空格同理 make antipode/vero:default_true_hhkb:flash需要注意该板载 16MHz 晶振的时钟配置位于 board.hSTM32_HSECLK 16000000U与 mcuconf.hSTM32_PLLM_VALUE 8属于硬件级配置不涉及矩阵图坐标但在自行移植布局时无需改动。三种进入引导程序的方式——Bootmagic 复位、PCB 背面物理复位按钮、以及键位中的RESET键——详见 readme.md 的 Bootloader 一节。小结AKB Vero 的矩阵图直观呈现了一个 5×15 矩阵如何同时支撑 ANSI、ISO、6U 空格与分裂空格四类关键配列0D在顶行兼作\/2u Backspace2C2D组合出 ISO 回车45/47切换 6U 与分裂空格30/3C落实不对称 Shift。理解这张图就等于同时掌握了 QMK 矩阵坐标编码、keyboard.json 布局宏定义与各 默认键位 之间的映射关系无论是校对现有键位还是基于 Vero 定制个人配列都可以从矩阵坐标出发快速定位到对应代码。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门