全球首发,DIY了史上第一把可编程无线优联40%机械键盘(更新) - 电脑硬件 - Chiphell - 分享与交流用户体验

本帖最后由 yangdigi 于 2016-5-19 13:43 编辑

001.jpg (90.49 KB, 下载次数: 5)

2016-1-5 15:22 上传

Part 3 修改按键布局部分,2016.2.2作一下更新,全面简化步骤。
2016.3.13更新一下USB to USB keyboard converter的三个尺寸对比,我手上3个都有了。
2016.4.8更新,新贴可见:优联40%迷你无线机械键盘——YD40_Wireless诞生记

[  前言  ]
随着电竞方面政策的开放,机械键盘这些年在国内也火起来了,同时国内的机械键盘客制化玩家也变得多起来。入坑客制化几个月,国内的客制化模式还比较单一,主要就是PCB、外壳、键帽再加上灯,有创新的也不是没有但比较少(比如BLE6,这个全球惟一BLE客制化60 PCB)。自己想要的键盘买不到,或者说太贵,那么,我只能自己动手了。
所有操作都没什么难度,所用到的东西都是现成的,我只是把这些东西按我的用法来实现了我想要的结果。重在想法,在我之前没人这么用过,也希望本文能给大家一些启发和帮助。

加载中...

复制视频网址

复制当前时间视频网址

复制调试信息

详细统计信息

版本号: 0.5.24

静音

×

undefined undefined

广告还有0秒

跳过广告

欣赏广告

了解详情

点击按住视频可拖动

播 放

由于您的浏览器设置,视频无法自动播放。
调整设置项后视频方可正常播放。查看设置向导

×

00:00 / 00:22

倍速 播放速度不满意?试试这里

国语

default

标清

标清

高清

选集

跳过片头片尾

连续播放

优酷视频

复制视频网址

复制当前时间视频网址

复制调试信息

详细统计信息

版本号: 0.5.24

出了点小状况,小酷正在为您搬运视频...

很抱歉出现播放错误,错误代码:10000

刷新

抱歉,您访问的视频无法播放,您可以尝试以下方式

换个浏览器试试

推荐chrome浏览器

下载优酷PC客户端)观看

减免广告

用手机扫二维码观看

您还可以通过发送错误日志)或在线反馈)来帮助我们定位问题

错误日志发送成功

错误日志发送成功

该视频被设为私密,观看请联系上传者

节目出错啦,请稍后重试

尊敬的用户您好,该视频需要

密码

观看

确定

联系作者

很抱歉,由于您的浏览器版本太低

暂时无法观看

您可以选择一下任意方式继续观看

  • 换个浏览器试试(建议使用chrome浏览器)
  • 2、下载优酷PC客户端)继续观看
  • 3、使用手机扫码观看

sorry~~ 小酷被挤爆了,请稍后再来试试看吧~

秒后重新连接...

重试;)

错误代码:10000

因版权原因,请使用优酷APP扫码至手机/Pad观看 给您带来不便非常抱歉

精彩内容,一扫即得

50%

75%

100%

[  Part 1.准备工作与原理阐述  ]
准备工作主要指需要的材料,所有物品淘宝及闲鱼购得。这算是我的第一个无线40%机械键盘的尝试,所以成本控制得较低。这个完成之后的下一步就是做一个更窄边框更轻薄的无线40%机械键盘,40%这个尺寸在tmk固件的配合下我日用起来是毫无压力的。

名称

数量

价格

亚克力夹心外壳(闲鱼)

1

33元

MKC金属脚垫(淘宝)

2

20元

樱桃轴(39颗茶轴、1颗青轴)

40

80元

卫星轴6.25x(淘宝)

1

10元

罗技K230无线键盘(京东)

1

89元

ARDUINO USB Host Shield (淘宝)

1

44元

Arduino Leonardo R3(淘宝)

1

24元

松下2032电池(天猫)

5

11元

除开键帽后花费大致如上再加上邮费若干,外壳算是福利价来的,其他列出的都是正常价。上面价格并没有包含键帽,键帽的价格不具有参考性,因为它可以下到几十上到过千。

然后说说,为什么选择使用优联呢?原因之一是我不是搞开发的,做蓝牙键盘我根本不会,先前的BLE60其实在编程功能以及续航上(日常使用两到三周)都比较满意了,但是我做不出那样的产品。另外,优联相比蓝牙也还是有几个好处的:
1是搞干扰能力强于蓝牙;
2是续航超强,两节AAA电池用一到两年;
3是键盘唤醒速度比蓝牙快,从节能休眠状态中唤醒几乎感觉不到明显延迟。

关于优联飞线,网上搜索“优联 飞线”能找到不少的帖子和教程,都得飞成下面这样,而且一边飞还要注意时不时测试有没有线接错了。(以下图片来自网络)

101.jpg (140.77 KB, 下载次数: 1)

2016-1-5 15:22 上传

102.jpg (151.27 KB, 下载次数: 1)

2016-1-5 15:22 上传

然而有了DIY有线机械键盘的经验,直接连接标准矩阵的话,是这样的,看上去简洁多了。有兴趣的可以看看国外这个教程(地址直通)。

103.jpg (117.63 KB, 下载次数: 5)

2016-1-5 15:22 上传

因为40键盘,如果不支持按键编程,是根本没办法正常用的,那还怎么让人输数字,怎么让人输符号了。然而,罗技的优联主控,并不能进行全键盘按键编程,虽然用按键增强软件能实现部分功能(比如ahk),但那并不是我想到的。因此介绍一个重要物品——USB to USB Keyboard Converter(github地址geekhack地址)。
简单来说,这个转换器的原理就是获取usb键盘输入它的按键值,再输出新的值到PC上,因此用它可以实现tmk固件的各种高级功能。geekhac上有作者销售的成品,也有自己制作的方法。我这个是先前做的,制作最简单,就是Arduino Leonardo R3和ARDUINO USB Host Shield 叠起来就行了。

104.jpg (140.16 KB, 下载次数: 0)

2016-1-5 15:22 上传

上面这个体积是比较大了一点,还有一个比较小的组合方式,用Pro Micro或者Teensy加上mini host shield,体积就会减小到如下图所示。

105.jpg (96.29 KB, 下载次数: 0)

2016-1-5 15:22 上传

当然买作者hasu的成品会更小,只是价格较贵,50刀,邮费8刀。

106.jpg (98.92 KB, 下载次数: 0)

2016-1-5 15:22 上传

2016.3.13添加,我手上三个尺寸的USB to USB keyboard converter都有了。上一张图。

DSC03675.jpg (171.02 KB, 下载次数: 1)

2016-3-13 13:11 上传

简单介绍完USB to USB keyboard converter后,接着继续,这次用的是罗技k230的主控,对于要使用的主控,最先应该测出该主控的按键矩阵,k230和k270网上都有现成的,k230的如下(感谢Luckybird929)。

107.jpg (93.22 KB, 下载次数: 14)

2016-1-5 15:22 上传

我将其整理成表格的形式如下,方便用我自己的方式飞线,及其他用途。

QQ截图20160519134251.png (54.42 KB, 下载次数: 13)

2016-5-19 13:43 上传

然后这次使用的是jd40的布局,总共40个键,四排的按键数依次为12 11 11 6。此处的作法就是我所用方法的关键了,我只保证每个按键都触发而不用管它是否对应。因此,我从k230的矩阵中选择了四列,如下图所示,蓝字为k230优联主控的接口以及对应按键,红色为之后要重映射第0层大致的按键。

109.png (81.18 KB, 下载次数: 0)

2016-1-5 15:22 上传

**讲到这里大概理解我做了什么吧。
小结一下:
1.简化优联飞线。
2.使用USB to USB keyboard converter从usb接收端进行按键编程。**

[  Part 2.焊接键盘  ]
在焊接前第一步,我先把外壳的边框给打磨了,亚克力外壳的边框切割痕迹比较明显,我是略微有点不能接受的。下图是打磨前的。

201.jpg (74.67 KB, 下载次数: 0)

2016-1-5 15:22 上传

然后是打磨后的。

202.jpg (60.03 KB, 下载次数: 0)

2016-1-5 15:22 上传

因为没有使用PCB,所以将轴直接固定在上壳同时也是定位板上,这次使用的是茶轴,空格为青轴,啪啪啪的青轴用在空格上,用来保持打字时的节奏。

203.jpg (140.1 KB, 下载次数: 0)

2016-1-5 15:22 上传

背面每个轴再用热熔胶固定一下,因为这个定位板是可开轴盖的设计,所以热熔胶固定时只固定了上下两个位置。不用担心不牢固,我已经插拔多次键帽,没有把轴拔出来过。飞线的连接方式可以参考Part 1里给出的国外玩家写的教程,这时需要注意的是二极管的方向,连接前测试好,对于k230的主控,二极管黑色端接1、2、3、4这边,红色接10、11、12、13这些。接二极管主要是为了防止按键冲突,这样做到了全键盘任意6键无冲。

204.jpg (155.64 KB, 下载次数: 2)

2016-1-5 15:22 上传

空格键需要一组6.25x的卫星轴,我是拿一个废键盘的PCB切下一小部分,再打孔固定卫星轴的。如果是自己做外壳,还是建议使用定位板卫星轴或平衡杆。前面行线上已经二极管连好,现在接好列线,我用的OK单芯飞线,别用网线,太硬了超难用。

205.jpg (149.75 KB, 下载次数: 1)

2016-1-5 15:23 上传

接下来,按Part 1里给出的图,将行线和列线都连接到K230的优联主控上对应的针脚,同时电池要用的线也接好。这个外壳比较薄,所以使用CR2032电池来供电,根据另外一个飞线优联小伙伴的使用情况(他是104键盘盘丝洞式飞线),几毛钱一颗的杂牌2032也坚持了2个月。这里故意将线留长了一些,万一以后哪个轴有问题时有足够的空间将主控提起来,然后换轴。

206.jpg (156.73 KB, 下载次数: 0)

2016-1-5 15:23 上传

底部贴上防滑脚垫,前方用了两个mkc金属脚垫来让键盘使用时有一定的斜度。

207.jpg (72.4 KB, 下载次数: 0)

2016-1-5 15:23 上传

还有底壳上开了一个小孔,正好对应在优联主控开关的位置。

208.jpg (63.86 KB, 下载次数: 0)

2016-1-5 15:23 上传

这下键盘就组装完了,把接收器直接插电脑上试试,所有按键都是触发的,当然并没有和键盘上按键位置对应上,按键会在Part 3里再解决。

209.png (172.2 KB, 下载次数: 0)

2016-1-5 15:23 上传

最终再装上键帽后,效果图如下。

210.jpg (92.74 KB, 下载次数: 1)

2016-1-5 15:23 上传

211.jpg (58.4 KB, 下载次数: 0)

2016-1-5 15:23 上传

212.jpg (59.08 KB, 下载次数: 0)

2016-1-5 15:23 上传

213.jpg (83.09 KB, 下载次数: 0)

2016-1-5 15:23 上传

214.jpg (99.93 KB, 下载次数: 1)

2016-1-5 15:23 上传

215.jpg (126.04 KB, 下载次数: 0)

2016-1-5 15:23 上传

[  Part 3.编译固件&修改布局  ]
2016.2.2更新:修改按键布局使用TKG(TMK Keymap Generator),和其他大部分国内版GH60使用方法一样。因为有小伙伴按照我的教程也自制了无线优联40键盘,同时也为了今后的使用方便,我决定为USB to USB keyboard converter添加TKG支持。现在要改布局,需要刷一个我已经编译好的支持tkg的固件,然后使用tkg进行修改,然后下载eep文件刷入USB to USB keyboard converter,完成。如何使用tkg在本节内容后半部分有写到。▼

QQ截图20160202104015.png (283.09 KB, 下载次数: 0)

2016-2-2 10:52 上传

目前支持了下面几个键盘布局,和gh60一样,使用tkg时会自动识别的。▼

QQ截图20160202105025.png (128.4 KB, 下载次数: 0)

2016-2-2 10:52 上传

-----------人工分割线,分割线以下内容历史记录,分割线以上为2016.2.2日更新--------
对于软件或硬件开发,我的经验是0,所以下面的过程只是按我的理解与方法来的,有不正规的还请程序猿大大包涵,有错误的也请指正。不会编程的照做也可以,本身并不需要多少编程知识,后面的改布局,依葫芦画瓢改就是了。

首先是搭建编译环境,我的操作系统是win10,不想安装Linux,因此在windows下首先安装cygwin。
1.安装时选择了安装Devel和Shell下的所有组件,其他基本是默认。
2.安装dfu-programmer,安装方法是按照github上给的Linux下安装的方法进行编译与安装。地址直达:https://github.com/dfu-programmer/dfu-programmer
3.安装avr8-gnu-toolchain-installer-3.5.0.84-win32.any.x86,这是从官方下载的,下载完解压后,复制到cygwin文件夹里。
4.尝试编译USB to USB keyboard converter使用的固件,这个在Part 1里给出的github以及geekhack的网址里都有介绍,如下:
Build firmware
--------------
    $ git clone git://github.com/tmk/tmk_keyboard.git
    $ cd tmk_keyboard
    $ git submodule init
    $ git submodule update
    $ cd converter/usb_usb
    $ make
如果编译不成功,根据错误提示补全cygwin的组件。
5.将生成的hex刷入,win下使用的arduloader来刷的,这个win下刷hex的工具足够的傻瓜和简单。

301.jpg (73.2 KB, 下载次数: 0)

2016-1-5 15:23 上传

以上步骤完成,测试USB to USB keyboard converter是正常使用的,那就ok。下面才开始编译适用于本贴DIY的无线40用的固件。
用记事本打开tmk_keyboard\converter\usb_usb\keymap_common.h看看,会看到如下:

302.png (328.21 KB, 下载次数: 0)

2016-1-5 15:23 上传

这个排列看上去挺眼熟的,对吧。它就是一个标准104键的按键布局,为了后面更加方便进行修改,把这个布局改成40了。根据上面图片提供的按键值,40的话就应该如下图所示。

303.png (165.74 KB, 下载次数: 0)

2016-1-5 15:23 上传

再依照上图修改keymap_common.h文件,得到如下结果。

304.png (275.89 KB, 下载次数: 0)

2016-1-5 15:23 上传

接下来就是利用kle(Keyboard Layout Editor)和tkg来生成按键布局的源码了,这方面可以看看我写过的一个教程:PDF的百度网盘地址
我用的是三层布局,按键如下:

305.png (311.48 KB, 下载次数: 0)

2016-1-5 15:23 上传

因为是jd40布局,而amj40也是这个布局,所以tkg里直接选amj40。然后将raw data复制过去,再设置好各个fn的功能。之后点击“下载.c文件“。

306.png (311.94 KB, 下载次数: 0)

2016-1-5 15:23 上传

将下载回来的.c文件重命名一下,比如我改为了keymap_yang.c,再移到tmk_keyboard\converter\usb_usb\目录。这个文件目前是不能直接使用的,还需要做一些修改。对照一个该目录下的其他几个keymap*.c就会知道怎么改了。大致如下,红框内的内容删除,蓝框内的稍微修改一下。

307.png (335.91 KB, 下载次数: 0)

2016-1-5 15:23 上传

最终的结果就是下图这样的。

308.png (400.95 KB, 下载次数: 0)

2016-1-5 15:23 上传

现在可以开始编译了,因为我先前重命名了为keymap_yang.c,所以编译的时候使用命令为
make KEYMAP=yang
编译成功后得到usb_usb.hex,刷入USB to USB keyboard converter,一切工作正常。
上面通过kle及tkg来完成,当然也可以直接编辑keymap*.c这个文件,多对照看看就知道它是怎么样的格式以及各个按键的写法了,只是我觉得kle看起来更直观一些。

小结:可以说USB to USB keyboard converter是本文的关键,只要自己会搭建环境编译固件了,那么就不存在难度了。

[  Part 4.总结  ]
本来只是想分享一下这次制作的无线优联40键盘的,结果写得较多就干脆写成教程了。
USB to USB keyboard converter是个好东西,事实上除了用来飞线40外,像60键盘也可以通过此方法来飞线成无线键盘,并且支持编程。甚至是想给普通的无线键盘或者usb键盘使用tmk固件功能,也可以通过它来实现。
虽然说自己没有能力去开发一个无线键盘主控,但是,利用本文的方法还是制作出了自己想要的键盘,我还是很满意的。而且,这个键盘非常非常好用,毕竟优联本身已经是一个相当优秀的无线方案了。
最终成果是,一把日用主力40%无线机械键盘,重量270g,轻于Surface Pro 3的超薄原装键盘套(约300g)。
下一把的打算是:外壳也自己订做,上下两层改用碳纤维,中间夹心夹还是亚克力,但是键盘四周的边框会收窄到几近无边程度。同时,厚度会再稍微缩减一点,布局会修改一下,采用双空格。

000.jpg (90.71 KB, 下载次数: 0)

2016-1-5 15:22 上传


Original url: Access
Created at: 2020-06-23 11:27:42
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论