ESP-KeyBoard:基于 ESP32-S3 的三模客制化机械键盘

概述

在这个充满挑战与机遇的数字化时代,键盘已经成为我们日常学习、工作、娱乐生活必不可少的设备。而在众多键盘中,机械键盘,以其独特的触感、清脆的敲击音和经久耐用的特性,已经成为众多游戏玩家和电子工程师的首选。本文将为您介绍 ESP-KeyBoard,一款基于 ESP32-S3 系列模组开发的高性能、高性价比的机械键盘,并对其特性、功能以及软硬件设计进行深入讲解。

项目介绍

ESP-KeyBoard 是一款基于 ESP32-S3 系列模组开发的高性能、高性价比的三模客制化机械键盘。它支持 USB低功耗蓝牙 (BLE)2.4GHz 无线输出 三种工作模式。采用 75 配列键盘 (即 75% 的键盘布局),总共 82 个按键,支持 全键无冲热插拔 。每个按键都配备了一个独立的 RGB LED ,支持 40+ 种的本地灯效控制,以及支持 WINDOWS11 神光同步 功能。除此之外,ESP-KeyBoard 配备了 4000mA 的锂电池,并支持多种低功耗的工作模式,可在无线工作模式下,大幅延长电池的使用时间。

如下图所示,从外观上来看,ESP-KeyBoard 在保持整体结构简洁的同时,处处包含着对细节的把控。下面本文将逐步讲解如何轻松地定制一款属于你的 ESP-KeyBoard。


视频展示:

ESP32-S3 三模机械键盘 1.1 升级版

供电方式

  • USB 工作模式下,通过 USB 接口进行供电;
  • 低功耗蓝牙 (BLE)2.4GHz 无线输出 模式下,通过 4000mA 锂电池进行供电。

功能演示与方案优势:

1. 个性化的键盘组装

ESP-KeyBoard 以其创新的键轴设计,提供了前所未有的个性化体验。键盘的键轴支持热插拔功能,意味着开发者无需关闭电源或拆卸键盘,就能在带电模式下轻松更换键轴或键帽,让键盘瞬间焕发新活力。这种设计还极大地方便了日常维护和个性化定制,无论客户追求具有独特手感的机械轴,还是偏好安静免打扰的静音轴,都能根据个人喜好随时调整 ESP-KeyBoard 的键盘配置,享受定制化键盘的乐趣。

2. 低延迟的输出速率

ESP-KeyBoard 使用矩阵键盘扫描方式,支持高达 20KHz 的软件扫描速率,同时可以做到全键无冲,对所有按键进行精准识别,即使是远距离打字也可以做到低延迟的稳定输出。

  • 在 USB 和 2.4GHz 无线输出工作模式下可达 1KHz 的回报率,低至 1ms 的延时。
  • 在 BLE 工作模式下可达 125Hz 回报率

3. 自定义的键盘灯效

当前市场上各品牌 RGB 外设普遍配备了专属的灯效控制软件,这导致了不同外设间 RGB 灯效难以实现统一。而 ESP-KeyBoard 不仅内置了超过 40 种本地灯效控制选项,还兼容 Windows 11 的神光同步技术,实现了与各类外设的灯效同步功能。

  • 本地灯效控制

  • Windows11 动态等效控制

4. 多种低功耗工作模式

在硬件设计上,ESP-KeyBoard 优化了 LED 灯组的电源管理电路,增加了 WS2812 LED 组的总功率控制,允许在使用锂电池供电时完全断开 WS2812 灯带的电源,降低待机电流约 40mA,实现了更低的能耗和更长的电池续航。

ESP-KeyBoard 采用高效的矩阵键盘扫描技术,仅在按键操作时进行全键盘扫描,而在键盘处于空闲状态时自动保持 浅睡眠模式(Light-Sleep),并支持通过任意按键瞬间唤醒键盘,确保在维持低能耗的同时,能够迅速响应用户的输入,以支持无线输出模式下的低功耗运行。

除此之外,ESP-KeyBoard 在硬件上增加了 32.768KHz 的外部晶振,这一精准时钟源专为低功耗蓝牙 (BLE) 工作模式而设计,显著提升了锂电池的续航时间。该设计允许键盘在保持 BLE 连接的同时,进入浅睡眠模式 (Light-Sleep) ,将待机电流降至 2mA,从而实现更高的能效。

5. 高度自定义

ESP-KeyBoard 采用分体式硬件设计,主控板与键盘 PCB 之间通过连接器相连,可方便用户自由更换主控板。

  • 如果想在键盘上配备额外的扩展副屏,只需升级到性能更强的主控 MCU。这不仅能够满足附加显示功能的需求,还能在此基础上进一步自定义更丰富的外观主题;
  • 若追求更优的能效比,可以选择升级至功耗更低的 ESP32-H 系列芯片,以满足不同的使用需求。

这种设计不仅提升了键盘的使用灵活性,还有效降低未来更新迭代的成本,可以轻松实现高度自定义的客制化键盘。

6. 舒适的敲击体验

ESP-KeyBoard 键盘无空仓,以其坚实的内部结构有效减少振动和噪音,而 PCB 板的悬浮减震设计则减轻了按键触底时的冲击。键盘整体结构采用四周固定、中间悬空的方式,使得触底感更为柔和且富有弹性,提供舒适的敲击体验,有效减轻长时间使用中的手部疲劳。


硬件设计

ESP-KeyBoard 采用分体式硬件设计,主控板与键盘 PCB 之间通过连接器相连,方便用户自由更换主控板,轻松实现高度自定义的同时降低了键盘更新迭代成本。ESP-KeyBoard 的硬件系统由以下部分组成:

ESP-KeyBoard 主板硬件设计

  • 主控 MCU : ESP32-S3- WROOM-1- N4 模组

  • 32KHz 晶振 :基于 ESP32-S3 主控芯片增加了外部 32.768KHz 晶振,以支持 ESP-KeyBoard 在使用 BLE (低功耗蓝牙)工作模式下进入浅睡眠(Light Sleep)模式来降低待机功耗,此时待机电流约 2mA

  • TYPE-C(USB Type-C) :采用 USBC200 芯片与 ESP32-S3 芯片的 USB (GPIO19GPIO20)接口直连,为 ESP-KeyBoard 产品提供一个 USB Type-C 端口,支持 ESP-KeyBoard 通过 USB Type-C 线连接到电脑,并为 ESP-KeyBoard 供电。

  • KEY(按钮) :使用一个简单的物理按钮电路,连接到 ESP32-S3 芯片的 GPIO0CHIP_PU(EN)管脚,用于ESP-KeyBoard 产品硬件复位和手动切换 ESP32-S3 的启动模式 (SPI Flash BootDownload Boot)。如果是量产产品,可以省去按键电路。

  • BAT CHG (电池充电) : 基于 ME4054BM5 芯片,使用 BAT 引脚连接到电池正极,用于控制电池的充放电,并具有充电状态指示灯来提醒实时电量情况,以确保为锂电池提供安全稳定的充电功能。

  • VBAT->3V3(电源管理) :使用 TPS61033 电池管理芯片将电池电压 VBAT(通常在3.0V~4.2V 之间变化)转换为稳定的 3.3V 电压,给电路提供稳定的电压环境。同时使用 ESP32-S3 的 GPIO2 来检测电池电量,并支持使用灯光效果来提醒实时电量情况。

  • CONNECTOR(外部连接器):使用一个 30 针的外部链接器用于主板与子板建立连接,以实现主控板与键盘 PCB 的硬件分体设计。

ESP-KeyBoard 子板硬件设计

ESP-KeyBoard 使用 75 配列键盘 (即 75% 的键盘布局),总共 82 个按键。并为每个按键都串联一个二极管,可以确保按下按键时电流只朝一个方向流动,以防止"重影 "并更好地支持 N 键翻转。同时使用成本更低的矩阵键盘扫描方式(行输出列输入),最大可达 20KHz 扫描频率。通过使能按键中断,可以实时的检测按键是否按下,从而决定键盘是否工作,以支持极低的待机功耗。

另外,使用 ESP32-S3 的 六个 RTC GPIO (GPIO38、GPIO39、GPIO40、GPIO45 、GPIO47、GPIO48) 作为唤醒源,分别连接到矩阵键盘的 ROW0~ROW5 ,以此实现通过任意按键唤醒 ESP-KeyBoard 的待机模式,确保键盘仅在按键按下时工作,从而降低功耗。

除此之外,ESP-KeyBorad 为每个按键配备了一个独立的 WS2812 RGB LED,支持通过单个数据引脚控制每个 LED 的颜色和亮度。这允许用户自定义键盘的整体背光效果,并支持在使用锂电池供电时完全断开 WS2812 电源,将待机电流降低约 40mA

ESP-KeyBoard 完整的硬件开源资料可在【嘉立创-乐鑫小铁匠】ESP-KeyBoard 获取,更多 ESP 硬件设计说明请参考 《ESP 硬件设计指南》

软件设计

ESP-KeyBoard 使用了 ESP32-S3 的 USB 特性、BLE 特性、RMT 外设接口以及多个通用 GPIO 来实现全功能。完整应用代码可参考 "esp-iot-solution/examples/keyboard"示例,此示例支持多种组合模式:

连接模式 本地灯效 WIN11 灯效 全键无冲 回报率
USB 1 KHz
BLE × 125 Hz
2.4 GHz (暂未开源代码) × 1 KHz

【技术解析】

  • Windwos11 神光同步:在 Windwos11 上支持基于标准 HID 的灯效控制,设备只需在固件中增加 HID 动态灯效的功能,即可以直接在 Windows 系统内直接控制 ESP-KeyBoard 灯光效果,也可以与其他外设进行灯效同步。在此技术上 ESP32-S3 通过 BLE HID Device 和 USB HID Device 特性来实现。

  • 多种键盘热键 :软件设计参考了 QMK( qmk/qmk_firmware ) 代码逻辑,可以方便修改键盘映射,并支持多种键盘热键,如音量加、音量减等。ESP-KeyBoard 支持如下快捷键:

组合键 功能
FN + F1 USB 工作模式
FN + F2 BLE 工作模式
FN + F10 静音
FN + F11 音量+
FN + F12 音量 -
FN + Home 切换本地灯光颜色
FN + PgUP 正向本地灯光效果
FN + PgDN 反向本地灯光效果
FN + END 切换 WIN11动态灯光效果
FN + Blank 切换本地灯光
FN + ↑ 增加本地灯光亮度
FN + ↓ 降低本地灯光亮度
FN + ← 降低本地灯光变化速度
FN + → 增加本地灯光变化速度
  • WS2812 LED 控制 :在 WS2812 灯组控制应用上, 使用了 ESP32-S3 的 RTM 外设接口,借助 espressif /led_strip 组件来驱动 WS2812 LED 灯带,以实现 ESP-KeyBoard 灯光调控的功能。应用例程可参考 esp-idf/examples/peripherals/rmt/led_strip,软件编程指南参见:红外遥控 (RMT)

  • 低功耗模式 : 在低能耗方面使用了乐鑫提供的 Auto Light Sleep 解决方案来自动进入休眠状态,这里借助了六个 RTC GPIOGPIO38、GPIO39、GPIO40、GPIO45 、GPIO47、GPIO48 )作为唤醒源,分别连接到矩阵键盘的 ROW0~ROW5 ,以此实现通过任意按键唤醒 ESP-KeyBoard 的待机模式。文档说明参见:低功耗模式使用指南 。 对应的 Auto Light Sleep 代码 如下:

    c 复制代码
            esp_pm_config_t pm_config = {
                .max_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ,
                .min_freq_mhz = 160,
    #if CONFIG_FREERTOS_USE_TICKLESS_IDLE
                .light_sleep_enable = true
    #endif
            };
            ESP_ERROR_CHECK(esp_pm_configure(&pm_config));

总结

无论是长时间的编程工作,还是激烈的游戏竞技,一款性能出色的机械键盘都是我们可靠的助手。ESP-KeyBoard 不仅提升了工作效率,更为用户的学习和娱乐生活带来了定制化的乐趣。欢迎开发者们利用 ESP32-S3 定制属于自己的 ESP-KeyBoard。

相关推荐
晋人在秦 老K20 小时前
鼠标连点效率低?MouseClickTool 2.0三步配置,自动化操作提速80% 重复点击太耗时?Windows鼠标连点器实操教程,开发测试效率翻倍
windows·自动化·计算机外设·鼠标连点器·gui模拟点击·自动化点击解决方案
jbk331120 小时前
监听指定事件然后触发鼠标点击操作等,智能文本识别按键工具的使用教程
计算机外设
TDengine (老段)2 天前
连接 TDengine 遇到报错 “failed to connect to server, reason: Connection refused” 怎么办?
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
安卓开发者2 天前
鸿蒙NEXT鼠标光标开发完全指南
华为·计算机外设·harmonyos
雨中风华2 天前
Windows 平台 HOOK DWM 桌面管理程序,实现输出变形的桌面图像到显示器
windows·计算机外设
Jwest20212 天前
工业显示器在微铣削机床中的应用
计算机外设
TDengine (老段)2 天前
TDengine 数学函数 DEGRESS 用户手册
大数据·数据库·sql·物联网·时序数据库·iot·tdengine
TDengine (老段)2 天前
TDengine 数学函数 GREATEST 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
得单片机的运3 天前
STM32的以太网的搭建
stm32·单片机·嵌入式硬件·物联网·以太网·iot·w5500
qq_546937273 天前
KeepMouseSpeedOK:专业鼠标速度调节工具
计算机外设