恩。。。。之前那篇文章确实是烂尾了,过了几年重新回来看,方案已经过时了。比如现在玩家已经很少会玩樱桃轴了,热拔插轴座成了标配,之前我本来比较抗拒带电池的东西,但是我自己开始用蓝牙键盘以后发现这种每天用的东西好像不带线带来的便利要远远大于偶尔充电的麻烦,因为经常用电池也不会坏。所以。。。。我重开了一片文章。。。。
过了几年,我的技能也有了些提升,争取这次不要挖坑吧。。。。
功能列表:
先列下我目前计划想实现的功能
- 配列还是基本上继承之前的「剑盘」的配列,不过会有些微调
- 分体式蓝牙「真无线」键盘,采用ESP32用蓝牙和主机连接,两块键盘之间也没有连线,类似「真无线」耳机,不过因为有可能按组合键的时候同时按下两个键盘上的若干键,而蓝牙HID又没有类似蓝牙音频的方案(或许有但是我估计我不太能搞出来。。。),所以采用一主一从的方式,从机发送数据到主机,主机发送所有的数据到电脑。
- RGB灯光集成,然后采集环境灯光,自动的动态调节亮度来省电。
- 因为采用无线蓝牙,所以用电池供电,集成充电功能,并且要做低功耗的设计。
- 凯华热拔插轴座集成。
- 我在考虑要不要加屏幕,因为我总觉得键盘上加个屏幕有点奇怪,但是显示内容确实方便很多,还没想好。。。
- 是在一个板子上画出所有元件还是用一个esp32的模块贴在底板上我很纠结,前者的问题是可能比较难左右手做一块板子,并且还要做天线的阻抗匹配。。。后者的问题是看起来不够硬核。。。
大概先这样吧。。。后面如果有新的再说。。。
PINOUT
ESP32的引脚我主要是看的这篇文章,那些引脚能干什么什么的。
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
比如,因为我们要用按键唤醒键盘,所以引脚只能用RTC_GPIO,所以里面的这个图,就发现只能用RTC_*的这些引脚

引脚使用
我的每个分体键盘有大概5*8的矩阵用来链接键盘,因为想要做睡眠唤醒,所以必须要用RTC_GPIO,其中GPIO 34、35、36、39只能用作输入并且没有内部上拉下拉电阻,所以需要设计额外的上拉电路。
打样电路引脚图
IO编号 | 复用 | 功能 | 备注 |
---|---|---|---|
GPIO0 | MATRIX_COL0 | 键盘输出 | 默认上拉,因为每个按键都有二极管,所以输入引脚的外部上拉不会影响 |
GPIO2 | MATRIX_COL1 | 键盘输出 | 默认下拉,因为每个按键都有二极管,所以输入引脚的外部上拉不会影响 |
GPIO12 | TOUCH 5 | 触摸引脚 | 触摸slider引脚1 |
GPIO13 | TOUCH 4 | 触摸引脚 | 触摸slider引脚1 |
GPIO14 | TOUCH 6 | 触摸引脚 | 触摸slider引脚1 |
GPIO15 | MATRIX_COL2 | 键盘输出 | 默认上拉,因为每个按键都有二极管,所以输入引脚的外部上拉不会影响 |
GPIO16 | LED_CTR | WS2812控制引脚 | |
GPIO17 | LED1 | LED引脚 | |
GPIO18 | CHG_STU1 | 充电芯片引脚 | |
GPIO19 | CHG_STU2 | 充电芯片引脚 | |
GPIO21 | I2C_SDA | I2C总线 | 光感传感器 |
GPIO22 | I2C_SCL | I2C总线 | 光感传感器 |
GPIO33 | MATRIX_COL3 | 键盘输出 | |
GPIO34 | MATRIX_ROW0 | 键盘输入 | 只能输入,需外部上拉 |
GPIO36 | MATRIX_ROW1 | 键盘输入 | 只能输入,需外部上拉 |
GPIO39 | MATRIX_ROW2 | 键盘输入 | 只能输入,需外部上拉 |
网友评论