之前一直想拥有一把热插拔机械键盘,换不同的键盘轴玩玩,我喜欢段落轴按起来很解压,不过我平时不怎么用机械键盘,所以也没入客制化键盘的坑,最近想玩玩一些DIY项目,想起来干脆做一把小键盘,当个解压玩具也行
键盘设计
设计工具
设计键盘一般会用到一下工具:
键盘布局设计:https://www.keyboard-layout-editor.com/
定位板设计:http://builder.swillkb.com/
本来准备做一个完整的数字小键盘的,不过太大就超过嘉立创免费打样的大小了。。。所以就做个2*4矩阵吧,另外再加个旋转编码器,刚好之前做无刷电机风扇多一个
主控选择
刚好最近在玩ESP32,准备直接把我之前买的开发版查到背后作为主控板,而且ESP32-S3自带蓝牙,可以直接做无线键盘太方便啦!
机械键盘必须带灯啊,而且是RGB灯,没见过哪个机械键盘不带灯的,也不知道为什么
PCB设计
原理图:

非常简单,就几个器件:8个热插拔底座、8个ws2812灯、1个旋转编码器、一个oled屏幕、两排插针底座用来插ESP32-S3开发板
PCB布局:

我这里比较偷懒直接用了自动布线,又不是不能用,不过犯了两个错误:
- oled屏幕的底座画反了,导致屏幕只能倒过来接
- ESP32开发板有个5V的引脚,我以为跟stm32一样这个5V在接usb时可以输出,结果实际测得接usb时没有电压输出
等打样的PCB到手后才发现,最后屏幕我就倒着插了,反正软件上可以翻转过来,rgb灯的供电我就直接从3.3v飞线过来供电了,懒得改了,又不是不能用。。。
软件设计
设计个球啊,什么年代了还古法编程,直接把我的硬件设计、需求描述信息灌给AI,让他来吧,不过大体要封装哪些驱动出来我还是要控制下,以后也方便自己改,自从DeepSeek涨价后,全让AI来已经搞不起了
大概封装了蓝牙HID、USB HID、键盘驱动、led驱动、旋转编码器驱动、显示屏驱动,找到对应的官方案例给AI,然后让他基于官方案例和我的需求开发会比较稳一些
代码放github上了
https://github.com/chengpei/esp32-keyboard.git
图片文字取模
因为我用到了0.96寸oled屏幕,想在屏幕上显示一些信息,中文图片什么的,所以需要取模,我这里放到另一片博客专门介绍下吧
评论区