(教程)自制入门--二键键盘
回顾手机相册的时候,翻出一个还在读书时做的有趣东西,是这个小家伙--只有两个按键的键盘!
这个时候还没有外壳,测试功能阶段。甚至能看到裸露的不规则手工焊点^-^这玩意能用来干什么?将它通过usb连接到计算机,这两个按键能用来代替做任何键值输入,只要你的键盘能够打出来的。
学生的时候,经常要做一些知识的“搬运”工作,而我是一个懒人,windows操作系统下复制粘贴都需要两个按键,如果我把他们改成一个按键,效率不是提高了?复制粘贴简直行云流水,人称专业cv工程师。
当老板从你背后经过的时候,在小东西的作用下,必不可能发现我在摸鱼。因为我切屏的速度无余伦比,alt+tab也只能切换任务,任务栏还有摸鱼的程序停留,而我是桌面切换更加天依无缝。
桌面切换我们都知道要按ctrl+win+左右方向键三个键,我只用按一个键。或者有的时候,你嫌输入密码太麻烦了,可以用它一键输入。话说这功能描述不就是键盘宏定义么?两个键用来当试轴器也挺好,所以要支持轴座热拔插。还得加上光污染,可以不开但不能没有。
RGB炫彩呼吸灯灯效实话实说,我做它不是为了实用,只是为了好玩而已。
自制的过程挺有意思的,写这篇文章的目的就是分享这种快乐,大家可以结合教程实践,收获折腾的乐趣,也能大概体会到一款电子产品是怎么做出来的。前方预警,多图杀猫
我先说明,没电脑可折腾不了啊,还是需要点探究精神的
文末提供我的资源包,里面包含这个小工程里所有内容,有需要的可以直接参考
注意阅读图片说明!
自制二键键盘正文分以下几个部分
物料选购
电路设计
结构(外壳)设计
器件组装
程序烧写
物料选购
(购买的话根据关键词到电商平台去搜索就行,怎么买的别问辣,很久以前的事了,价格可能出入)
我们来罗列一下
电路板,嘉立创打板,这个是免费的,企业福利,0元
键帽,自己购买喜欢的键帽,两颗就够,我喜欢无刻的,5元四颗(PDD)
轴体,自己买喜欢的轴。
热插拔底座,这个东西很便宜的,一买就是一堆。和轴体合计16元
灯珠,要灯效的嘛,ws2812B,关键是要反贴的,不要买错了,7元
控制器,这个是大头,处理信号用的。这里使用arduino pro micro,35元
外壳,用亚克力堆叠,画好图纸找厂商打印,30元
固定螺丝,M3的螺丝,M3的螺母,因为我的设计就是这个大小,根据自己设计来。螺丝的长度需要通过自己要堆叠多少层亚克力板进行估计。比如我用3mm的亚克力板,堆叠6层,pcb 1.6mm,我买个20mm长度的螺丝就差不多。8元
贴片电阻,封装0603,240欧姆,3元100个
焊接工具。一只烙铁,找找9.9就能包邮,锡膏也就几块钱,有现成的锡丝也可以用,只是没有锡膏好用。焊接老手无所谓了。算它20元好了
折腾费用统计为0+5+16+7+35+30+8+3+20 = 124元。可以参考一下
电路设计
电路用嘉立创eda,这个eda面对非专业人士很友好,现成丰富的网络器件库可以直接拖,画一些简单的PCB很合适,快速方便,在线编辑,还能直接在商城下单。
百度搜索嘉立创eda,有WEB端的,不用下载,工具怎么用自己摸索一下,简易上手。不需要你精通,多琢磨琢磨就可以了,作为计科专业的学生,我也没有系统学习过,所以也是瞎折腾,要对自己有点信心。
电路设计主要是画原理图。键盘的本质就是把机械信号转换为物理信息,轴座就是一个开关,按下去的时候,这个开关就闭合,控制器收到一个高电平信号,然后输出对应的电脉冲走USB协议,向操作系统底层IO口发送数据。
我们使用立创eda绘制出这幅图,完成这幅图只用在元器件库里找到对应的元器件,然后拖到画布上,将对应的管脚用电路线连好,留意点到点的关系。
这就是原理图,很简单的这个开关一样的就是我们的热插拔底座,注意选择标准封装,因为我们是要加灯的,所以要有led管脚
底座封装(仅供参考),留意需要有led管脚两个贴片电阻无需多言,这里是下拉电阻,信号管脚在开关开漏的时候钳制电位低电平用的,还有防止短路。听不懂也没关系,只要知道这里需要加上我们两个很小的贴片电阻,大小为240欧姆,当然如果你有现成的其他阻值也行。
电阻,0603封装微控制器arduino pro micro,VCC是电源管脚,GND是接地管脚,信号管脚分别为2和7,线连到对的地方。想用其他的信号管脚也行,需要结合规格手册,编写软件的时候要注意替换引脚。
元件可能是由不同的人画的,原理图上有差异很正常arduino控制器封装(仅供参考)最后是灯珠,注意是反贴的ws2812,一个灯珠的DI串联另一个灯珠的DO。
关键还是点对点连好线反贴灯的封装是这样的(我这里报错是因为封装没有更新,引脚没有对齐)电路板上一共就这四个部分,还是那句话,管脚之间不要连错了,大胆细心就好。
原理图画完之后,使用原理图转PCB。
刚转换出来的原理图接下来就是把(1)这个紫色的轮廓修成我们想要的形状(我加了圆角,美学)(2)把元件摆放在合适的位置(3)连接电路,很简单的两层板(4)覆个铜
简单调整下就是这样了,这个得实操,图文一时半会讲不清楚的。然后直接在eda工具里给嘉立创下单,领取优惠券后,因为PCB大小是在10cm*10cm以内,是免费的哦。
等待几天后,PCB到手,看到自己画的PCB会有一股油然而生的成就感结构(外壳)设计
我对这种结构设计完完全全就是新手,CAD平时也不怎么使用,别谈更复杂的3D建模设计。所以我画的结构尽可能简单,横平竖直,一眼明了。
外壳制作基本原理就是画出平面图,然后按照图纸切割亚克力板,最后将一层层亚克力堆在一起。
这个图是网络上找的,还是能够形象的说明堆叠结构,当然我们这次的没有这么复杂在CAD图中作图的时候,要留意尺寸大小,把外壳和PCB画的一样大,这样就能把PCB夹在中间进行堆叠。
PCB和外壳一样大平面图中,一定要注意几个孔位,要和画PCB时候孔位的相对位置保持一致。
最终画出来是这样的,一共堆叠6层,至于为什么这么设计,可以往下看其实不一定要用CAD画,只是卖家切割亚克力的时候导入CAD图很方便,用手去画也是可以的,记得标明尺寸。不过用手画的话,因为要增加卖家人工成本,可能得加钱。
按照图纸切割出来的亚克力(注:我当时没有给USB预留开孔,所以那三个缺口是我自己手工切的,图纸里我重新画出来了)器件组装
准备好我们的器材准备组装,注意顺序
先把底座和灯安上
器件都是有正反的,不要放错位置。电路板也注意区分正反,底座那一面是反面,丝印那一面是正面再把贴片电阻焊上
焊接提示:贴片电阻很小,挤点锡膏用烙铁烫一下就好了安装微控制器(arduino),看到这个结构再去看外壳是怎么设计的,就会明白了。
注意控制器方向!不然引脚是对不上的。最上面的焊点可以只焊有连接的几个引脚装上外壳,用螺丝固定,注意堆叠顺序,空腔是留给arduino的。
加上PCB一共7层堆叠,亚克力3mm厚,用20mm的螺丝刚好因为是热插拔的,最后将我们的轴座插在底座上,大功就告成了。
软件烧写
为什么选择arduino?是因为对于非专业人士,arduino的入门成本是比价低的,有一系列成熟的API库,可以方便驱动ws2812、usb等,代码写起来简单,改起来简单,能够减少很多调试工作量。
和一般键盘通过配套软件修改键值不同,我们通过代码编写,直接赋予按键的输出。
电脑上首先要安装arduino IDE(可以去官网下载),连接arduino的micro usb和电脑的USB接口,打开我们的ino文件(如果直接打不开的话就用记事本打开,将内容拷贝到arduino IDE中),将我们的代码烧写进去。
烧写的时候,开发板型号选择arduino Leonardo,端口好选择新接入的COM,然后点击左上角对钩旁边的那个箭头,uploading如果想自定义键盘输出的话,修改红框框出来的部分
相关键值请参考官方定义https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers/代码其实非常简单,有点软件基础的朋友可以自己编写。基本上可以实现自定义任意值,还可以尝试一些比较有趣的操作,比如用两个键去打字,所有字都可以打,嘿嘿打摩斯电码打DUET之类的音游等等。
最后附上资源包链接
本教程为简易教程,多有错漏疏漏指出,还请斧正。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~