项目核心功能与设计思路
1.1 为什么要做这样一把键盘?
市面上的客制化键盘功能单一,自定义程度不够。例如很多键盘虽有旋钮但基本只能调音量,且布局不合理。SmartKB32_v2 旨在解决这些问题,打造既能当键盘用,又能控制智能设备,还能根据软件切换快捷键的全能型设备。
- 一机多用:既是一把全功能键盘,也是一个智能家居控制中心。
- 高度自定义:通过 SD 卡存储'映射表',可为上百款软件或游戏预存专属快捷键配置。
- 智能旋钮:将旋钮放在左手边,配合屏幕显示,直观控制软件参数或智能设备。
基于 ESP32-S3 芯片的 SmartKB32_v2 智能家居键盘设计方案。硬件采用主控加副控架构,集成 MPU6050 实现 FOC 力反馈旋钮,支持蓝牙与有线双模 HID 连接。软件层面通过 SD 卡存储映射表,内置 Web 服务器实现免刷机配置,支持自定义按键事件及智能家居控制。项目开源,适合嵌入式开发与创客复刻。
市面上的客制化键盘功能单一,自定义程度不够。例如很多键盘虽有旋钮但基本只能调音量,且布局不合理。SmartKB32_v2 旨在解决这些问题,打造既能当键盘用,又能控制智能设备,还能根据软件切换快捷键的全能型设备。
| 功能类别 | 具体实现 |
|---|---|
| 智能家居控制 | 控制智能台灯的开关、亮度、色温;控制桌面充电站的电源输出。 |
| 设计师工作流 | 通过 SD 卡预存不同设计软件的快捷键映射表,快速切换。 |
| 游戏宏定义 | 预存游戏连招、技能组合的映射表,支持单键循环输出或多键同时触发。 |
| 网页配置界面 | 键盘内置 Web 服务器,用浏览器实时修改按键功能,无需刷固件。 |
| 指纹识别 | (可选)接入指纹模块,实现指纹解锁电脑或一键登录系统。 |
| 媒体控制 | 控制电脑的音乐播放/暂停、切歌、音量调节。 |
| '摸鱼'模式 | 可自定义一个或多个按键为'摸鱼键',一键快速切换窗口或隐藏游戏。 |
整个键盘的硬件由'主控'和'副控'两大部分组成,核心是 ESP32-S3 芯片。
主控部分负责最核心的键盘 HID 功能、旋钮控制和音频处理。
键盘采用模块化设计,包括主 PCB、定位板、轴体、键帽、旋钮模块和外壳。
软件系统围绕'事件触发'和'配置管理'构建。
键盘的每个按键行为由'映射表'配置文件决定。
// 简化的映射表数据结构示例
typedef struct {
uint16_t key_id; // 物理按键的编号
action_t tap_action; // 单击时触发的动作
action_t hold_action; // 长按时触发的动作
action_t knob_action; // 配合旋钮时触发的动作
uint8_t target_layer; // 该按键所属的映射表(层)
} key_mapping_t;
// 动作类型枚举
typedef enum {
ACTION_NONE,
ACTION_KEYPRESS, // 发送键盘按键
ACTION_CONSUMER, // 发送多媒体键
ACTION_SWITCH_LAYER, // 切换映射表
ACTION_HOMEASSISTANT, // 控制智能家居
// ... 其他事件类型
} action_type_t;
创新点在于左侧特殊按键:长按执行普通功能,单击切换映射表。
192.168.4.1)。所有开发资源在开源平台仓库中,包含源代码、电路原理图、PCB 文件、3D 打印外壳文件及 BOM 表。
.bin 固件烧录到芯片 0x0 地址。data 目录下的 HTML/CSS/JS 文件。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online