后记

后记

目录

  • 为什么要做一把蓝牙机械键盘
  • 用到的东西
  • 制作左手
  • 设置左右手蓝牙BLE
  • 制作右手
  • 轴体焊接及供电模块
  • 后记

一些想法

  • 我觉得外壳的分层的设计挺好的, 可以单独对某些层做特别的定制, 除了成本方面的考虑之外, 比如对右手有装摇杆需求的, 就可以仅向右手上面两层做一些修改, 使得摇杆能够放下. 那么可以更进一步, 除了PCB板和定位板是焊死的 (这块拆起来比较麻烦, 需要用吸锡器清理38个焊点), 在现在的设计里, 所有的连线都没有焊死, 用的是杜邦线进行连接, 意味着如果你想用其他的充电模块, 你可以把对应充电模块的那一层, 包括芯片模组和外壳整体替换掉, 而其他层保持不变, 这为以后维护升级提供了许多便利.
  • 一开始我想着, 可以让左右手互相通信, 但是后来放弃了这个想法, 沿用了类似于HM-10的主从模式, 因为如果左右手需要通信才可以完成一些事件, 意味着单独右手不能成为一个独立的键盘, 需要和某个左手绑定, 这我认为是没有必要的, 并且如果遵守蓝牙BLE的协议, 左手其实可以是其他的设备, 并不一定要是键盘, 可以玩出更多花样.
  • Bluetooth HID模组本来想用RN42的, 但是成本太高了, 裸片都要100多块(我焊不上去, 放弃), 带上底板了直接上300多块钱了, 而淘宝上用HC-03刷RN42固件的, 加上运费也只需要30多, 两者价格相差10倍, 试错成本太高了, 导致放弃了这个方案.
  • Bluetooth HID模组后来还尝试过ESP-32, 这块芯片集成了蓝牙和无线, 通过阅读了蓝牙HID协议, 把github上用ESP-32分别操作键盘和鼠标的合在一起, 但是ESP-32太娇贵了(一块50多, 官方淘宝店运费23), 我在续航测试中, 测到没电, 再供电时, 蓝牙就无法连接了, 再加上其他问题(体积太大, 续航等), 导致我也放弃了这个方案. 所以Bluetooth HID这块, 用的现在的方案. 这个方案不能对代码进行一些定制, 导致有些功能, 比如鼠标滚轮左右滚, 如同罗技K380那样, 一键切换多台设备, 不能实现.
  • 代码方面, 固件QMK比TMK功能更强大, 并且也更流行一些, 但是刷QMK的固件更麻烦一些, 需要额外的知识, 而用Arduino IDE对小白来说更友好, 在界面上点一下"上传"就搞定了(其实这个过程有把代码输出成HEX格式的文件, 再烧录到芯片里), 并且在网上找到了将TMK移植到Arduino上的项目(即arduino_tmk_keyboard), 所以最终采用了TMK, 因为arduino_tmk_keyboard里使用的TMK版本有点老, 有挺多bug, 所以最后折腾了一阵, 升级到当前最新版的TMK, 除了升级, 适配新的硬件, 还在主程序里增加了一些hook的接口, 我是用hook的接口还实现led的控制.
  • 现在并没有休眠功能, 因为正常用下来, 右手一个月左右充一次电, 左手时间更长, 对我来说, 是能接受的.

踩过的坑

  • 淘宝上有许多HM10, 最好去官网的淘宝店买, 因为需要配置主从模式, 其他淘宝店上的命令和官网有点不一样, 有时候弄不成功, 淘宝客服找了技术支持, 把我自己的linux系统装了windows系统, 买了USB转TTL的线从windows上连接, 折腾好一阵, 还是不行, 所以找官网的淘宝店买最好, 不过官网的淘宝店运费真的贵.
  • HM-10左右手虽然连接上了, 但是左手给右手发的数据老是接不到, 后来把右手的HM-10上的TX和RX与Arduino Pro Micro的RX和TX连接, 才能收到数据. 其他引脚是用的模拟串口通信, Arduini Pro Micro上的TX和RX引脚是硬件支持串口通信的. 后来并没有用官方淘宝店的HM-10做实验, 也不知道是哪里的问题.
  • 用过ESP32-DevKitC作为蓝牙HID , 我做续航测试的时候, 电池电量消耗完之后, ESP32的蓝牙功能就出问题了, 然后因为ESP32上面的软件也是我写的, 虽然是蓝牙4.0, 不过没有休眠之类的功能, 导致续航比较低(只有50个小时), 然后ESP32-DevKitC也比较大, 之前从非官网的淘宝店买, 还出现过, 引脚标错的情况, 折腾了许久.
  • 用过黑莓的轨迹球去控制鼠标, 这个模组很小, 不过不能同时识别两个方向, 所以往右上移动, 只能先往右移动, 再往上移动, 所以体验不是很好, 虽然我用软件尝试去解决, 但是效果也不好.
  • 单独找了淘宝店做阳极铝的定位板, 但是在开关位置, 精度有点问题, 用的开关宽是12.7MM, 长是13.2(不包括拨动的那一部分), 图纸里标了宽12.77MM, 长度是13.4MM, 但是楞是卡不进去, 最后使用把定位板对应的位置刮了刮, 把开关的脚剪掉一部分, 才能用力锤进去的, 原来亚克力的版本就能顺利卡进去.
  • 用阳极铝定位板, 如果PCB上的二极管的焊点太突出了, 会导致电流走到定位板上, 导致一些奇怪的现象, 所以这时候要用黑胶布把焊点盖一下.

我在B站上上传了一个之前0.1版本的制作过程的视频, https://www.bilibili.com/video/BV1qv411y7vA, 不知道会有多少人看到这里, 如果你看到了这里, 可以去给这个视频点个赞或者投个币, 一起看看结果.

参考资料

B站:

  • 10天学会51单片机—郭天祥
  • CAD2018新手快速入门精品课

文档书籍:

  • 从零开始学单片机技术
  • Arduino基础入门
  • 普及版ErgoDox——ErgoDone二狗蛋人体工学
  • 正式版Ergodone二狗蛋教程(群友分享)
  • datasheet of ESP32
  • datasheet of MCP23017
  • datasheet of HM10

github:

  • bgould/arduino_tmk_keyboard
  • tmk/tmk_keyboard
  • LSChyi/BlueErgo_Protype
  • T-vK/ESP32-BLE-Keyboard
  • T-vK/ESP32-BLE-Mouse
  • ktec-hq/ErgoDone
  • LSChyi/blackberry-mini-trackball

你可能感兴趣的:(后记)