请教如何自己动手制作机械键盘?
16 个回答
我准备用一两个月来回答这个问题。因为我准备着手自己做一个机械键盘。而且,真的是从0开始做,不同于一般的买配件组装。如果有什么不正确的地方,还请各位键圈的大佬多多指正。
首先呢,我们来看一下做一个机械键盘需要哪几样东西。
一个完整的机械键盘需要的配件和配料呢?
1)机械轴,欧美叫switch,日本叫“轴(じく)”,就是我们每个按键下面的小开关,这个部件我们是没有办法DIY的,一般我们直接购买,比如:樱桃轴(黑、红、绿、蓝、茶各取所需)、国产的佳达隆轴、凯华轴等,或者欧姆龙轴、Alps轴。但是,欧姆龙轴我不知道他的触角是不是和樱桃轴一样,我不熟悉,所以不敢用,而且,欧姆龙轴没有匹配的客制化键帽,除非你去买一些拆机量产键帽来用。alps轴,我知道的基本上都是拆老机器弄下来,一般不是真爱,很少有人敢尝试。这回我用类似樱桃轴的一种国产轴。
2)PCB。这个是一个键盘的灵魂,也是比较难弄的部分。如果没有一点电气知识和动手能力的话,一般人还搞不了。很多人基本是直接购买的,而且都是一些普通的配列,淘宝上可以买到GH60,或者一些客制化的60、68、75、87等配列的PCB来用。但是如果你要自己做一块的话,怕是不容易。这次我要做的是一款类人体工学布局(Ergonomics)的客制化键盘,在国内,还很少做这个吧。哈哈。幸好我有一个好朋友Astro,帮我搞定。我只要把配列告诉他就行。
3)定位板。定位板是将轴卡在板子上,作为轴体的支撑的部分,一般会用1.5mm后的碳纤维板、铝板、钢板、或者甚至铜板,每种材质的手感、声音都不同,给人带来的愉悦感也都不一样。当然,还可以不用定位板,直接把轴焊接在PCB上面的,而且有些量产键盘也会这样。一些粉丝认为这样手感很好(玄学吧可能)。这次我会自己画图,找外边加工。
4)外壳。这个部分是直接暴露在外部的机械键盘的盒子,也是我们判断一个键盘好不好看的很大的因素。一个好的客制化机械键盘由于外壳的造型、材质、颜色、质感的不同会给人带来不同的愉悦感。而且,外壳的形状,也是直接映射了作者的审美和对于自己键盘的理解。这次我会自己画图设计,委托外部加工。
5)键帽。这个部分可以因人而异,可以用拆机键帽,或者买一些便宜个客制化键帽。由于这次我的配列比较奇葩,所以准备使用美国SP生产的SA键帽,是一种复古的高球帽。
6)其他辅材。包含螺丝(外壳、定位板用)、大键用的卫星轴(或者平衡杆)、组键盘用到的各种辅材(焊材、轴间纸、润滑油等)
7)软件。由于各个作者的习惯不同,用的软件不同,可能需求也不一样。我只说一下我需要用到的软件。
i) http://www.keyboard-layout-editor.com,键盘布局设计网站。这个网站真的是很好用,提别是像我这样的小白们的福音。
ii) http://builder.swillkb.com/,这个网站是用来自动生成定位板数据的网站。也是一个神器啊。我一直觉得基础软件老外真的很给力,而且很多都是出于Contributor的姿态,都是免费分享的,很敬佩。
iii) Adobe Illustrader,这个用来编辑定位板平面图;铭牌、配重等平面矢量图的制作。
iv)CAD看图软件,我不用CAD来画图,但是由于中间环节的切换和给别人分享图,需要这个来确认一下文件的正确性。
v)Solidworks,这个用来画外壳、定位板立体图、键盘上的一些装饰用的配件(比如配重、铭牌什么的),设置可以组装各个配件到一起,包含键帽模型安装上去的整体外观确认。甚至可以渲染,如果你要更完美一点的话。
vi)PCB设计软件:http://kicad-pcb.org/,emmm,这个我也不懂是哪个,全部委托朋友来做。
好了,以上就是大概需要的材料原料以及一些软硬件。
2019年6月9日(周日)
其实呢,这个项目已经准备了很久了,只是我一直比较懒,没有怎么推进。键盘键位的布局早在我日常间隙就设计好了。现在就把它变为现实。
首先,我们在KLE网站上,设计好的键盘配列,如下。
大家可以看到,这个键盘是比较奇葩的人体工学键盘的样子,左右手的键分隔开,并且将必备的几个重要功能键保留,尽量做到精简高效。这个布局数据68键盘的变形,同时我参考了国外EM7,Alice等客制化键盘,以及Leopold的FC660右侧的布局。
决定了配列后,将Raw data全部拷贝,打开http://builder.swillkb.com/网站,粘贴进【Plate Layout】框内。在【Switch Type】选择第二项或者第三项。其他选项适当勾选,因为一句话难以介绍,还是大家自己摸索一下的好。然后点击最下边的【Draw My CAD】生成粗略的定位板图。
生成粗略的定位板的样子:
然后,保存SVG格式到本地。我们现在并不是在做最终版的定位板,这次生成的定位板主要是为了要每个轴的位置矢量图。
拿illustrador打开SVG文件,编辑轴孔的外形,以及大致的定位板边框。然后导出成DWG文件。
导出后的样子。
做这个的目的是为了做一张定位板,用来确认每个键的位置和间隙是不是有问题。因为键位数据细小的差距就会导致定位板、PCB、外壳无法完美匹配,我必须小心。 我刚刚把图发个一个做定位板的供应商,希望两三天后能拿到。如果定位板空隙没有问题的话。我就会把键位的数据发给我的朋友做PCB,同时,我开始左手画外壳,定位板的设计图。
2019年6月12日
今天拿到了淘宝定制的简易定位板。材质是1.5mm厚度的碳纤维板,由于是激光切割,厂家基本上当天就做好,完后发出了货。
下面确认一下每个键的位置对不对。拿出我的茶轴,安在轴孔上,然后将事先准备好的键帽安在轴上。
确认一下没个键的空隙是不是和当初设计的间隙一样。确认之后感觉还不错。“计划通!”
然后,准备制作PCB。上次忘记提醒大家,在KLE编辑好你的键盘布局之后,需要保存一下的。你需要注册一个kle的账号,编辑好你的键盘布局之后,点击右上角的【save】就可以保存好配列。然后需要用的时候,点击最右上角的账户名称,出来下拉菜单【My Layouts】就可以从新载入你上次保存的键盘配列。切记,一旦保存好之后,就不要乱动配置了。
再次载入我上次的配列。然后拷贝【Raw Data】给我的朋友Astro,他就可以通过配列的数据,通过软件制作一张PCB,当然,PCB的外轮廓尺寸大小, 还需要我最后画好外壳之后,在Solidworks里面确认是否匹配,因为外壳,PCB,定位板,轴体,键帽之间一定要完美镶嵌,不然,就是组装不起来了。确认OK后,才会下订单找PCB厂家做。
我呢,接下来就要画外壳了。
点击KLE页面右侧的【download】,下载SVG文件。会得到一个包含键帽轮廓尺寸的矢量图,注意,这回导出的不是定位板图,这次导出的是键帽轮廓图。拿到这个图之后,就可以根据这个图来画金属外壳了。
用AI打开的样子,
但是,实际上这个颜色信息并不完全需要,我们只需要键帽外轮廓的矢量图。编辑一下如下:
然后导出为DWG文件,稍后Solidworks中使用,根据这个来画键盘的上盖。
2019年6月25日:
关于PCB的制作方法,可能不太适合一点基础都没有的朋友。这是我朋友Astro写的,不过也能大概看个梗概吧。
1. 设计原理图:对于键盘来说,重要的部分就是主控模块(现在客制化PCB一般采用ATMEGA32U4,主要是软件支持比较好,而且可以使用各种Arduino的库,方便折腾),以及按键矩阵了。主控模块的电路基本是按Atmel的参考设计来做,按键矩阵就根据自己的需求改咯。如下就是一个60键盘的按键矩阵:
2. 生成PCB并完成布线:
完成原理图后,设置各种器件封装后就可以生成网表以供PCB布线软件使用。PCB布线是最主要就是要精确的摆放各个按键封装的位置。这时候可以导入前面生成的定位板文件来辅助定位:
3. 生产:原理图,pcb都校验过后就可以发工厂打样啦。现在x宝快速打样厂的选择也很多,基本上下单到收货也就3天左右。而且有些打样厂还可以负责SMT贴片,这样板子到手基本上焊上按键,刷入固件就可以使用了。
4. 键盘固件:键盘电路版收到后,需要对主控刷入键盘固件,这样才能被操作系统识别为一个键盘,目前比较主流的固件有tmk, qmk。这些固件的功能都非常强大,而且可以很方便的定制。基本上按照他们的教程,半天时间就能做出一个功能全面的键盘固件,而且可以按照自己的需求进行定制。固件生成完毕后,可以使用QMK toolbox刷入主控:
基本上到这,一块板子就完工了。
其中使用的EDA软件是KiCAD(开源,免费);
键盘固件QMK(https://github.com/qmk/qmk.git,开源,GPL协议)。
2020年6月18日。接着继续去年的内容更新。
蓦然回首,发现正好要一整年了。哈哈。看我这个懒人。
去年做好的键盘布局,由于疏忽,github的账号里保存的配列都搞丢了。害得我,又去找帮我做pcb的朋友把配列图找回来,谁知道他保存的也是旧版的,得,有重新编辑了一下,确保和去年的基本一致。然后重新在x宝打样了一块临时定位板,按照之前的流程确认了键位。话不多说,就开始给外壳画图。
由于外壳是全铝合金的,需要CNC加工,所以在别人的推荐下,还是使用我的老朋友Solidworks。说道客制化键盘的外壳。根据作者的喜好可以随意配置。最简单的60键盘的外壳,可以只需要一个底壳,加上一个定位板。这种外壳设计容易,加工简单高效,通用性强,在x宝上可以找到很多,比如搜“GH60”,就能找到很多可以适配GH60 PCB的外壳和定位板。
有些客制化的作者,为了满足更高端客户的喜好呢。会设计更复杂的键位配列,和外壳。比如我的一个朋友设计的CA66:键盘外壳分上、下两个部分,同时为了装饰好看,还配有纯铜的铭牌(铭牌可以找老板专门雕刻喜欢的图案),以及在键盘下部会有凹刻的装饰性文字。
当然还有更为复杂的设计,怎么好看怎么来。
那么我怎么办呢。我还是走简单容易的道路吧,键盘主要为上壳、下壳、铭牌。基本上就简简单单的配置。
折腾了好几天,主要部件如下:
基本的外形决定了。之后还需要确认几个关键的尺寸。比如PCB的大小,要保证PCB的尺寸不会和外壳干涉,还有type-C接口的高低位置也必须和外壳配合好。等pcb的外形拿到后,我再拟合到模型中看看有没有问题。如果solidworks软件中没有问题,那么做出来的安全性就会很高。
TBC
键盘作为电脑录入设备,现在几乎是人手一把 ,人手几把了。常打字的人一定知道机械键盘的好处,力道均匀,触电稳定。市面上也有很多种常卖的机械键盘了,比如全键盘,缩小键盘,有线,无线,蓝牙,等等。
机械键盘的轴、键位布局和连接方式,是选取一款合适的机械键盘的最重要的三点了。
作为程序员,一个红轴的,缩小布局的,带蓝牙的机械键盘,是干活时候最理想的不过的好帮手了。市面上满足以上几点的不少见,然而,同时满足以上几点的也不多见,让我们来看看。
1. filco minila air(之前叫错名字了,不应该叫圣手一代。。。)
这款应该是很优秀的一款了,他有67个按键,方向全键盘,樱桃轴,两个FN键(不得不说,非常方便) ,milia短空格,蓝牙连接,用户编程,,啧啧啧,简直完美。
但事实上呢,打开某东你会发现,全球购的标价要1059元,好贵啊,并且它Del的位置也太六了吧,常用的home,end也只能组合键,电池竟然是干!电!池!!!
2.tada68pro
这款价格看上去就舒服多了只要不到500块,就能得到方向全键盘,樱桃轴,蓝牙连接,用户编程,,啧啧啧。
然而呢,del还是太别扭了吧(右上角的下面一个位置),右上角是一个很重要的盲位,居然给了波浪线(黑人问号.),独立home,end也是依然么有哇,再者键位已经紧张,长长的空格占地面积显得就。。。
3.其他不带独立方向键,del的键盘,排版直接抄袭标准104键主键区,用过都知道,那简直再碰都不想碰啊;;;
所以:我们的需求是
- 缩小的键盘排版,方便携带。
- 无线的蓝牙设计,方便连接。
- 电池要充电的锂电池,方便使用。
- DEL位置要好一点,有独立的home end,独立的方向键,空格短一些多放一些功能按键。
- 樱桃轴,红。
- 价格合理,尽量便宜。
在DIY之后,我们将做出的贡献是
- 缩小的键盘排版,72键。
- 蓝牙。
- 锂聚合物充电电池。
- DEL右上角,下面紧接独立的home end,独立方向键、必须的,milia3x空格,左右两个fn(非常方便了就),APP键、完全可编程(固件级别的可编程)。
- 樱桃轴、必须的,PCB三脚樱桃轴原理图库,电路原理图,钢板设计图。
- 成本价格300人民币!!!!!!!
真实设计:
效果图:
下面来详细说一下制作过程喽:
================================
寒假到了快考试了,忙。
未完待续。。
qsy
===============================续:2018年1月18日 :
下面来详细说一下制作过程喽:
1.矩阵键盘
行列扫描,可以使用少量端口去检测大量 输入。按键个数 = 输出端口数 * 输入端口数。
每次只让一行输出高,输入端口读到高电平的位置,表示 这个 位置的按键被按下了。因为此时其他行都是低电平,所以即使按下了,也不会影响此行的读入数据值。
然后再置高下一行,重复。
2.蓝牙模块
使用了xm-04-hid-k蓝牙键盘模块。某宝有售。
每次给模块 的数据是键盘 的状态,一共可以给六个键盘数据,也就是同时 可以处理六个按键 。若无 按键按下,则不输出,若 按下 了一个键,输出这个键;若始终只有一个键保持按下 ,则不输出;若这个键弹起则,输出0.
所以 ,代码要能检测到键盘的变化,并且要记录上次检测的结果,若与上次检测结果相同则不给模块发数据,检测到哪个键盘离开,改 相应 位置上 的 键值为0.
同时 ,还有抖动 过滤。
也就实现以下几个函数:
3.PCB,钢板
为更好的固定键帽位置,以及提高按键手感 ,我们需要在键盘上增加一层金属限位板。PCB布局要和钢板完全一致不然装不上,经过测量 与测算,我们做出了以上的按键layout,只要将轴的形状测量好,并把卫星轴的 位置掏出来,应该可以完成钢板的设计:
万能 的某宝:
原理图里面还加了一些开关,充电 电路等跟PCB一起画出来:
4.组装调试
我们会陆续将其开源到qiaosiyi/key-board 上面。
有希望一起动手制作的小朋友 [勾引]。
============================
未完待续
2018年1月18日
qsy
============================续:2018年1月19日
minila的卫星轴刚到,所以才把中间的凹凸键换下来,才能焊接轴,不知道有没有发现之前打字有很多多出来的空格,,,那是因为没装卫星轴,不能焊接轴脚,空格是虚挂上去的,会打多出来空格符。而且上面用了一个白shift右键,其长度也是不够3x的所以缝隙就显得大了。装好轴和键帽的样子:[装配结束]
再上传一段,打这段字时,录制的视频:
再上传一段,打这段字时,录制的视频,再打一遍:
https://www.zhihu.com/video/937494958173900800====================
未完待续。
2018年1月19日01:28:05
qsy