我准备用一两个月来回答这个问题。因为我准备着手自己做一个机械键盘。而且,真的是从0开始做,不同于一般的买配件组装。如果有什么不正确的地方,还请各位键圈的大佬多多指正。
首先呢,我们来看一下做一个机械键盘需要哪几样东西。
一个完整的机械键盘需要的配件和配料呢?
1)机械轴,欧美叫switch,日本叫“轴(じく)”,就是我们每个按键下面的小开关,这个部件我们是没有办法DIY的,一般我们直接购买,比如:樱桃轴(黑、红、绿、蓝、茶各取所需)、国产的佳达隆轴、凯华轴等,或者欧姆龙轴、Alps轴。但是,欧姆龙轴我不知道他的触角是不是和樱桃轴一样,我不熟悉,所以不敢用,而且,欧姆龙轴没有匹配的客制化键帽,除非你去买一些拆机量产键帽来用。alps轴,我知道的基本上都是拆老机器弄下来,一般不是真爱,很少有人敢尝试。这回我用类似樱桃轴的一种国产轴。
上图为ALPS轴外观,下图为国外某ALPS粉丝自制的60键盘
2)PCB。这个是一个键盘的灵魂,也是比较难弄的部分。如果没有一点电气知识和动手能力的话,一般人还搞不了。很多人基本是直接购买的,而且都是一些普通的配列,淘宝上可以买到GH60,或者一些客制化的60、68、75、87等配列的PCB来用。但是如果你要自己做一块的话,怕是不容易。这次我要做的是一款类人体工学布局(Ergonomics)的客制化键盘,在国内,还很少做这个吧。哈哈。幸好我有一个好朋友Astro,帮我搞定。我只要把配列告诉他就行。
3)定位板。定位板是将轴卡在板子上,作为轴体的支撑的部分,一般会用1.5mm后的碳纤维板、铝板、钢板、或者甚至铜板,每种材质的手感、声音都不同,给人带来的愉悦感也都不一样。当然,还可以不用定位板,直接把轴焊接在PCB上面的,而且有些量产键盘也会这样。一些粉丝认为这样手感很好(玄学吧可能)。这次我会自己画图,找外边加工。
4)外壳。这个部分是直接暴露在外部的机械键盘的盒子,也是我们判断一个键盘好不好看的很大的因素。一个好的客制化机械键盘由于外壳的造型、材质、颜色、质感的不同会给人带来不同的愉悦感。而且,外壳的形状,也是直接映射了作者的审美和对于自己键盘的理解。这次我会自己画图设计,委托外部加工。
5)键帽。这个部分可以因人而异,可以用拆机键帽,或者买一些便宜个客制化键帽。由于这次我的配列比较奇葩,所以准备使用美国SP生产的SA键帽,是一种复古的高球帽。
SA客制化高球帽SONG
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】生成粗略的定位板图。
Plate & Case Builder 界面
生成粗略的定位板的样子:
然后,保存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协议)。
TBC
Original url: Access
Created at: 2019-10-18 16:29:05
Category: default
Tags: 如何DIY
, 机械键盘
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论