Esipode 0 : 起源 ~ The origin of the mind.
某一日,我正在逛数*之家。忽然,我看见了一个DIY机械键盘的帖子,型号是GH60。我去!简直就是放毒!我很久之前就想做or买一个机械键盘,但苦于没有Money or太麻烦,于是就暂时把这个计划搁置了。现在出现了一个这样的DIY的键盘,不是正适合我么?然而,理想很丰满,现实很骨感,我还是没有钱去DIY……于是乎,我转向了小键盘。
Esipode 1 : 探寻 ~ Explode the solution.
决定了要DIY一个小键盘后,我转向度娘,寻求解决方案。然而,度娘就是个坑货,百度到的东西没有一个是有用的,基本都是按键贴纸+按键映射,这不是我想要的。奈何鼓哥不好上,于是我转向bing.必应果然不同,我先找到了这样一个帖子:
这个帖子告诉了我,确实有人DIY过,但是用的是现成的键盘主控。这并不符合我的要求,我希望要有一个可编程的小键盘。于是我继续放狗搜索,找到了这个玩意:
Teensy?这是个什么玩意?淘宝一下似乎很贵的样子……人很穷的我继续搜寻,发现Teensy用的主控是ATmega32U4。等会……这个主控似乎在哪里见过的样子……是的,这个就是GH60的主控。于是我转向淘宝,发现使用这个主控的模块除了Teensy之外,还有一个,那就是Arduino Pro Micro。
选好了硬件,接下来选软件。为什么我要使用ATMega32U4?因为他有相应的开源固件,那就是TMK:
TMK是个好东西,它有以下特性:
- 多层键盘布局
- 鼠标键
- 系统控制键
- 媒体控制键
- USB下的NKRO – 支持120键同时按下
- 支持PS/2鼠标
- 支持其他老旧键盘协议
- 自定义功能
- 按键宏
- Debug控制台
- EEPROM存储
- 呼吸灯
- 背光控制
- …
就决定是你了!Pro Micro + TMK!
Esipode 2 : 硬件部分 ~ The hardware.
淘宝淘来一个机械小键盘和一个Pro Micro
请不要在意键盘上面的数码管。
将键盘的原有电路破坏后,将其连接为4×5的矩阵,这样可以节省IO口。
我将纵向四个IO连接到PB1、PB3、PB2、PB6上,把横向5个IO连到PC6、PD7、PE6、PB4、PB5口,这样,基本电路就制作完成了。
Esipode 3 : 软件修改 ~ The nightmare .
从Github把TMK clone下来后,我找到一个键盘配置文件作为蓝本,进行修改。首先我选择的是LightPad。我们需要修改matrix.c、LED.c、Config.h以适应我们的硬件配置,修改keymap.c与keymap.h以改变键位。
修改完成之后,使用make生成烧录所需的hex文件,接下来就可以烧录了。
然而,这就是噩梦的开始。
一开始是32U4的DFU驱动死活装不上去,后来不知道怎么的就解决了。
接下来是tkg-toolkit无法正常识别我的硬件,就算短接两次Reset也不行,只好换软件烧录。然而,无论是OpenJumper Serial Assistant、FLip还是avrdudeGUI都不行,而Arduino却可以,我只好用任务管理器找到执行的命令行,手工用avrdude刷。
烧录hex后,发现电脑无法正常识别这个坑爹东西,提示什么未及时响应。我很无语,刷入以及编译好的GHPAD的hex后发现正常了,于是判断Lightpad可能不兼容。
于是乎,找到国人的tmk_custom,找出ghpad,以ghpad为蓝本修改。修改后编译,简直holy shit,提示某个函数缺失。原来是custom的内核与键盘分开了,我用的是原版内核,所以无法编译通过。换过内核后继续编译,继续提示背光错误,于是我只好禁用背光,单独编译。这次终于编译好了。
烧录上去,一切正常。简直不能再开心。
Esipode 4 : 完成 ~ the good ending .
完成了这个计划,请允许我放一首红楼来舒缓一下心情。啊!今天也是平和的一天呢!
顺便说一句,这个键盘是可以拿来玩东方+OSU!的。按键配列:
http://www.keyboard-layout-editor.com/#/gists/f3bf297feb60fe42f2ec
["Num Lock","/","*","-"], ["7\nHome","8\n↑","9\nPgUp","bs"], ["4\n←","5","6\n→","+"], ["1\nEnd","2\n↓","3\nPgDn","Enter"], ["Fn","0\nIns",".\nDel","Enter"] ["Fn1","Fn2","Fn3","Fn5"], ["7\nHome","8\n↑","9\nPgUp","Fn6"], ["4\n←","5","6\n→","Fn7"], ["1\nEnd","2\n↓","3\nPgDn","Fn8"], ["Fn","0\nIns",".\nDel","Fn9"] ["Num Lock","","",""], ["Esc","↑","R",""], ["←","↓","→",""], ["","","",""], ["Fn","","",""] ["Num Lock","","",""], ["Esc","F1","F2","R"], ["","","wheel up","wheel down"], ["Z","X","C","V"], ["Fn","","",""] ["!\n1","@\n2","#\n3","$\n4"], ["Q","W","E","R"], ["A","S","D","F"], ["Tab","Esc","C","B"], ["Fn","LCtrl","LAlt","P"]
1 条评论
雪客 · 2020 年 6 月 5 日 上午 9:40
哎,我也想自己做一把键盘,音乐律动+音游岂不美哉