ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

QMK 固件实战:AMJ Pad 数字小键盘套件的构建、键位配置与烧录指南

QMK 固件实战:AMJ Pad 数字小键盘套件的构建、键位配置与烧录指南 QMK 固件实战AMJ Pad 数字小键盘套件的构建、键位配置与烧录指南【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware导读AMJ Pad 是 AMJ 出品的一款 4×6 DIY 数字小键盘套件在本仓库中由 QMK Community 维护支持标准数字键盘Numpad与正交Ortholinear两种布局并集成了背光、RGB 底灯、NumLock 指示灯等硬件功能。本文以 keyboards/amjkeyboard/amjpad/readme.md 为骨架结合仓库中的keyboard.json与三套官方 keymap 源码系统讲解 AMJ Pad 的硬件参数、构建与烧录命令、布局定义原理以及层切换Layer等键位配置技巧读者读完可以独立完成 AMJ Pad 的固件编译、刷写与个性化键位定制。一、AMJ Pad 是什么AMJ Pad 是一块 DIY 键帽套装A DIY Keypad Kit本质上是 4 行 × 6 列的数字小键盘 PCB。与成品键盘不同它需要玩家自行组装焊接轴体、安装键帽、刷写固件因此被称为 DIY 套件。在仓库中的基本信息如下Keyboard MaintainerQMK CommunityHardware SupportedAMJ PadHardware Availability该项目最初发布在 geekhack 论坛的套件讨论帖中见 readme.md属于社区开团/团购性质的硬件注意AMJ Pad 在 AMJ 键盘家族中的定位与 AMJ40紧凑 40% 键盘、AMJ9696 键全功能键盘不同它是一块独立的数字小键盘适合作为主键盘的补充输入设备例如记账、Excel 数据录入或游戏快捷键。二、硬件规格从 keyboard.json 读取真实参数QMK 采用数据驱动的配置方式AMJ Pad 的全部硬件信息集中定义在 keyboards/amjkeyboard/amjpad/keyboard.json 中。这份 JSON 是理解该键盘硬件能力的第一手资料关键字段如下配置项值说明keyboard_namePAD键盘在 QMK 系统中的内部名称manufacturerAMJ厂商名processoratmega32u4主控 MCUAVR 架构内置 USB 控制器bootloaderatmel-dfu使用 Atmel DFU 引导程序刷写方式与按键复位方式相关usb.vid0x00D8USB 厂商 IDusb.pid0x6060USB 产品 IDusb.device_version0.0.3设备版本号matrix_pins.colsF1, F0, E6, C74 个列引脚matrix_pins.rowsF7, F6, F5, F4, D5, D06 个行引脚diode_directionCOL2ROW二极管方向列接行扫即矩阵扫描时列为输出、行为输入backlight.pinB6背光驱动引脚backlight.levels4背光共 4 级亮度可调ws2812.pinE2RGB 底灯WS2812 灯带数据引脚rgblight.led_count8共 8 颗 RGB 灯珠indicators.num_lockD6NumLock 指示灯引脚indicators.on_state0指示灯低电平点亮从特性开关features还可以看出出厂固件的功能取舍开启backlight背光、command命令模式、console控制台调试、extrakey多媒体键、nkroN 键无冲关闭bootmagic不启用 Bootmagic 复位/配置功能、mousekey未启用鼠标键模拟此外qmk.locking开启了 Caps Lock/Num Lock 等锁定键的同步resync: true保证锁定状态在 USB 主机与键盘之间一致同步。RGB 动画支持keyboard.json的rgblight.animations段声明了这颗小键盘支持的动画效果包括breathing呼吸rainbow_mood彩虹心情rainbow_swirl彩虹旋转snake贪吃蛇knight骑士扫描christmas圣诞闪烁static_gradient静态渐变rgb_testRGB 测试alternating交替闪烁twinkle星光闪烁对应到固件源码这些开关最终会展开为RGBLIGHT_ANIMATIONS宏见 quantum/rgblight 相关源码并编译进固件。若想裁剪体积可在自定义配置中只保留需要的动画。三、两种布局Numpad 布局与正交布局AMJ Pad 的核心亮点是同一块 PCB 支持两种键位布局这是通过keyboard.json中的layouts段与community_layouts声明的community_layouts: [numpad_6x4, ortho_6x4]1. LAYOUT_numpad_6x4标准数字键盘布局模拟传统数字小键盘的错位布局keyboard.json数字区 3×47/8/9、4/5/6、1/2/3第 3 行第 4 列的键纵向跨越 2 个单元h: 2第 4 行第 4 列的Enter键纵向跨越 2 个单元h: 2最底部0键横向跨越 2 个单元w: 2随后是./FN 键与Enter这正是 readme 中默认固件的键位结构。2. LAYOUT_ortho_6x4正交布局标准的 6 行 × 4 列正交网格keyboard.json所有按键等距排列没有错位、没有大键合并单元适合纯网格配列爱好者或自定义为单手键盘/游戏键盘使用。community_layouts的声明意味着其他键盘若使用相同的numpad_6x4/ortho_6x4布局名称可以直接复用 AMJ Pad 的键位定义详见 docs/feature_layouts.md。四、官方键位源码解读仓库为 AMJ Pad 提供了三套官方 keymap分别演示了不同的配列思路。1. default标准数字键盘 层切换复位默认键位位于 keymaps/default/keymap.c定义了两个层#define _BL 0 // Base Layer默认层 #define _FL 1 // Function Layer功能层基础层_BL完整的小键盘功能——Esc、Tab、Backspace、、NumLock、/、*、-、7/8/9、4/5/6、1/2/3、0、.、Enter等全部使用KC_P*系列小键盘键码如KC_P7、KC_PEQL。功能层_FL在基础层基础上把右上角的键替换为QK_BOOT进入刷机模式其余键保持_______透明继承下一层定义。这样玩家无需拆壳按复位键直接在键盘上就能进入 DFU 刷写模式。最底行的.键使用了Layer-TapLT组合键LT(_FL, KC_PDOT)即点按输出.长按切换至功能层_FL。这是 QMK 中非常典型的一键两用手法具体原理可参考 docs/mod_tap.md 与 docs/feature_layers.md。2. ortho_left / ortho_right正交单手键盘这两套 keymap 将 AMJ Pad 当作左手/右手单手键盘使用配列均为LAYOUT_ortho_6x4ortho_left/keymap.c左手侧键位字母区从Q/A/Z到T/G/B右列为拇指区空格、MO(1)层切换、Win、Alt、Ctrl功能层提供F1~F11、数字1~5、反引号与Del。ortho_right/keymap.c右手侧键位字母区从Y/U/I/O/P到N/M/J/K左列为拇指区空格、Enter、Bspc等功能层提供F6/F12、数字6~0与符号键-、、[、]、\。两套键位均使用了MO(1)按住时临时切入功能层与_______透明键的组合构成经典的两层正交单手键盘布局非常适合把两块 AMJ Pad 拼成双手键盘使用。五、构建与烧录从源码到固件readme 给出的构建命令需要先搭建好 QMK 构建环境详见 docs/newbs_building_firmware.mdmake amjkeyboard/amjpad:default这条命令会编译默认 keymap 并生成可烧录的固件文件.hex对应 AVR 架构的 atmega32u4 主控。amjkeyboard/amjpad是键盘目录路径default是 keymap 名称规则可参考 docs/getting_started_make_guide.md。编译其他官方键位同理例如make amjkeyboard/amjpad:ortho_left make amjkeyboard/amjpad:ortho_right烧录固件与 AMJ 家族其他型号参见 AMJ40 readme 中的烧录示例一致烧录命令为make amjkeyboard/amjpad:default:flash由于 bootloader 为atmel-dfu刷写前需要将键盘置于 DFU 引导模式。结合默认 keymap 的设计最便捷的复位方式是按住功能层中的QK_BOOT键键位置或者在连接 USB 时触发 DFU 复位。具体 DFU 刷写工具与驱动安装流程见 docs/flashing.md。关于qmkCLI除 Make 命令外也可以使用 QMK CLI 完成同样的工作命令行工具本身定义在本仓库 lib/python/qmk 中构建入口为 Makefile。CLI 的安装与使用说明见 docs/cli.mdqmk compile -kb amjkeyboard/amjpad -km default qmk flash -kb amjkeyboard/amjpad -km default六、定制自己的 AMJ Pad 键位想给 AMJ Pad 写一套自己的键位推荐以keymaps/default为模板复制目录例如创建keymaps/mykeymap然后修改keymap.c。需要掌握的 QMK 基础知识层Layer用#define _XX n定义层号用MO(n)临时切层、LT(n, kc)点按/长按二合一、_______透明继承。参见 docs/feature_layers.md。小键盘键码KC_P0~KC_P9、KC_PDOT、KC_PENT、KC_PSLS等完整清单见 docs/keycodes.md。配列选择键位数组必须与布局宏一一对应。使用 Numpad 布局时写LAYOUT_numpad_6x4(...)正交布局时写LAYOUT_ortho_6x4(...)参数个数需严格匹配keyboard.json中该布局的键位数前者 24 个后者 24 个。编译验证改完后用qmk compile -kb amjkeyboard/amjpad -km mykeymap或make amjkeyboard/amjpad:mykeymap验证语法与配列是否正确。七、AMJ 家族速览与排障提示AMJ Pad 并非孤立型号仓库keyboards/amjkeyboard下还有同门的兄弟产品可以互相参考构建命令风格型号配列构建命令备注amj40紧凑 40%make amjkeyboard/amj40:default复位需按住左上角键再插 USB会清除持久设置amj6060%make amjkeyboard/amj60:default经典 60% 配列amj6666 键make amjkeyboard/amj66:defaultrules.mk中声明不支持 RGB 与音频amj8484 键make amjkeyboard/amj84:default附 matrix_diagram.mdamj9696 键make amjkeyboard/amj96:default使用自定义矩阵 matrix.crules.mk中CUSTOM_MATRIX yes常见排障提示无法进入刷机模式优先使用默认 keymap 功能层的QK_BOOT键位置该键位源码见 default/keymap.c。编译报错 Layout does not match通常是LAYOUT_numpad_6x4/LAYOUT_ortho_6x4的参数个数或顺序与 keyboard.json 中的矩阵坐标不一致逐一对齐即可。RGB 底灯不亮确认固件已启用rgblight默认开启并检查 WS2812 灯带连接是否完好数据线对应E2引脚。NumLock 指示灯异常指示灯为低电平点亮on_state: 0若方向接反可在配置中调整。结语AMJ Pad 是一块体积小巧但可玩性极高的 DIY 数字小键盘Numpad 与 Ortho 两种配列让它可以胜任标准小键盘、单手打字键盘或游戏副键盘等不同角色数据驱动的keyboard.json让硬件配置一目了然三套官方 keymap 则分别示范了默认小键盘、左手与右手正交布局的完整写法。掌握本文的构建、烧录与层配置方法后你完全可以按自己的习惯定制出一套专属的 AMJ Pad 固件。【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表