DIY 篇一:从零开始,做一个单键炫彩多功能小键盘

2020-01-31 10:46:28 21点赞 63收藏 37评论

项目由来

玩电脑还算是比较早的,最早接触是在初中,486、586+Win95、Win98那个年代,那个时候已经不流行机械键盘了,基本都是薄膜键盘,但是外观和现在的机械键盘差不多。后来机械键盘以天价回归了,可我对它却并没什么感觉,尤其是在我看来虚飘的价格,近两年国产轴开始多了,机械键盘的价格也回落了。

做的第一把机械键盘做的第一把机械键盘

前段时间在 github上看到一个机械键盘的项目,做了第一把机械键盘,剩了一堆材料,于是就有了这个项目,一个单键键盘。

准备材料

键盘必须要用到的材料:

  • CHERRY MX机械键盘轴体或兼容轴体,颜色根据个人喜好(优先3脚,5脚需要处理下)

  • Digispark kickstarter ATTINY85 微型 usb 开发板

需要用到的工具(工具并不都是必要的,自己合理使用):

  • 电烙铁

  • 漆包线

  • 精细手锯

  • 螺丝刀

  • 电钻

  • 锉刀

键盘不必须用的材料:

  • Sk6812 mini 3535(全彩LED,可以用WS2812代替,但是5050的尺寸稍大)

  • 凯华 kailh热插拔轴底座(如果不需要更换轴体,这个可以不用)

  • 3D打印的外壳(外壳可以根据自己喜欢自己做,我同事直接用热熔胶箍上了)。

下面挨个介绍下原材料

国产轴体,兼容CHERRY MX国产轴体,兼容CHERRY MX

三脚轴体,如果是5脚轴,需要处理掉另外两个定位轴三脚轴体,如果是5脚轴,需要处理掉另外两个定位轴

Digispark 开发板,不一定非要选这个样子的,但是如果你零基础,最好选一样的,防止出现各种问题。Digispark 开发板,不一定非要选这个样子的,但是如果你零基础,最好选一样的,防止出现各种问题。

Digispark开发板背面Digispark开发板背面

Sk6812 mini 3535,体积要比5050小。Sk6812 mini 3535,体积要比5050小。

kailh热插拔轴底座正面kailh热插拔轴底座正面

kailh热插拔轴底座背面kailh热插拔轴底座背面

硬件部分

介绍完用到的材料后,再简单介绍下这个项目,其实这个项目很简单,就是用 Digispark模拟 HID设备,DigiSpark最出名的应该是用它制作 Bad-USB,Bad-USB同样是用它模拟 HID设备进行攻击或其他操作。

简单介绍完项目后,我们开始制作键盘。如果你想做一个和我一样的键盘的话,就需要对开发板进行简单的处理,需要对电路板做个小手术,把用不到的地方切掉(注意:如果你对开发板下载程序不熟,最好先跳到软件部分,把默认程序下载到开发板中,以免切割后,万一切坏,不知道问题出在哪里)。

电路板切完之后的大小,注意不要伤到芯片的引脚,引脚离边缘大概1mm就可以。电路板切完之后的大小,注意不要伤到芯片的引脚,引脚离边缘大概1mm就可以。

背面参考位置,以正面为准背面参考位置,以正面为准

切掉多余的部分后,主板的体积就会缩小很多,下一步就是焊接轴座(这里默认使用轴座,如果你不使用轴座,后面可以直接焊到轴上)、LED。轴座很简单,只要一端接 GND,一端接到芯片的 Pin2。

从零开始,做一个单键炫彩多功能小键盘

焊接 LED稍微麻烦点,先看下 LED的引脚图。

从零开始,做一个单键炫彩多功能小键盘

LED背面是四个引脚,因为只有一个灯,所以只用到其中三个引脚 VDD、GND、DIN,下面是对应关系):

  • VDD → 5V

  • GND → GND

  • DIN → Pin1

对应关系弄清后,就可以焊接了,漆包线可以去废旧耳机中找,如果你的焊接技术不太熟练的话,可以在加热过程中,用针把1、2脚挑起来,这样方便焊线,防止1、2脚短路,漆包线需要先上锡,LED最好也先上一层锡(注意:由于 LED非常小,焊接时间不能过长,如果你的电烙铁可调温的话,温度最好在270-280这样,不然高温可能会废掉你的 LED)。

从零开始,做一个单键炫彩多功能小键盘

从零开始,做一个单键炫彩多功能小键盘

从零开始,做一个单键炫彩多功能小键盘

到这里,键盘的硬件部分就已经完成了,只需要把轴体插到轴座上就可以。

软件部分

开发化境

硬件准备完了,下面开始软件部分,写这篇文章之前,我就得这篇文章会非常短,因为确实很简单,代码也很简单,但是当我写到这,想起了从零开始,就不能有坑,那么就得配置 Digispark的编译环境。英文好的同学可以直接参考 Digispark的英文 Wiki,非常简单。

1、首先安装Arduino IDE,这个就不介绍了,实在不会,网上搜一下把,非常简单。

2、打开 IDE,依次 文件 → 首选项

从零开始,做一个单键炫彩多功能小键盘

打开“首选项”页面后,在附加开发板管理器网址处填入“http://digistump.com/package_digistump_index.json”,如果你此处已经填有其他网址,就按后面的按钮,在弹出页面中,另起一行,填入这个网址。

填入网址后,选择下面的 "好",保存退出。

3、依次 工具 → 开发板 → 开发板管理器。

从零开始,做一个单键炫彩多功能小键盘

打开“开发板管理器”页面后,选择 "Digistump AVR Boards" 安装,安装过程中会出现驱动安装界面,全是“下一步”就行。

从零开始,做一个单键炫彩多功能小键盘

安装完成后,再次选择 工具 → 开发板 → 选择 "Digispark (Default - 16.5mhz)"。到这开发环境就搭建完成。

开发境搭建完成后,就可以打开我附带的源文件了,然后选择“上传”(注意:这个时候开发板不能插在电脑上),当程序编译通过后,出现 "Please plug in the device..."时,插入开发板,程序上传成功后,会有提示。

程序解释

#include "DigiKeyboard.h"

#include <Adafruit_NeoPixel.h>


const int ledPin = 1; // RGB LED 引脚

const int keyPin = 2; // 按键引脚


int backlightR = 0; // 红色值(0-255)

int backlightG = 255; // 绿色值(0-255)

int backlightB = 255; // 蓝色值(0-255)

int backlightBrightness = 100; // 亮度值(0-255)


Adafruit_NeoPixel led = Adafruit_NeoPixel(1, ledPin, NEO_GRB + NEO_KHZ800);


void setup() {

pinMode(keyPin, INPUT_PULLUP);

led.begin();

led.show();

led.setBrightness(backlightBrightness);

led.setPixelColor(0, backlightR, backlightG, backlightB);

led.show();

}


void loop() {

DigiKeyboard.sendKeyStroke(0);

if(digitalRead(keyPin)==LOW){

DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); //这个是按键功能,这里是 WIN+D,更多键值,直接在 DigiKeyboard.h 中寻找

}

DigiKeyboard.delay(100); // 防抖延时

}

可以修改的参数,我已经加了注释,B站有个转载自 Youtube的视频,里面有键值用法更详细的说明,这种转载,要是有引用网址就更好了。

外壳安装

如果你方便3D打印的话,可以打印外壳,安装也很方便,或者使用任何你喜欢的方式做一个外壳。

乐高键帽外壳

底座上面正视底座上面正视

底座底面正视底座底面正视

底盖底盖

键帽键帽

安装轴座和LED,需要用热熔胶固定下,一定少用,防止板子放不进去。安装轴座和LED,需要用热熔胶固定下,一定少用,防止板子放不进去。

安装好轴座和LED后的正视安装好轴座和LED后的正视

安装完底壳后,就可以插入轴体,安上键帽,键帽上可以放置乐高人仔或者积木。如果你用的打印材料比较透光,可以在轴体外壳部分做隔光处理。

空头箱外壳

从零开始,做一个单键炫彩多功能小键盘

空头箱键帽空头箱键帽

从零开始,做一个单键炫彩多功能小键盘

主体外壳主体外壳

从零开始,做一个单键炫彩多功能小键盘

底座盖板底座盖板

安装轴之后的高度安装轴之后的高度

安上键帽后,按键谈起时的高度安上键帽后,按键谈起时的高度

按上键帽后,按键按下后的高度按上键帽后,按键按下后的高度

这个外壳我比较喜欢,唯一遗憾是少几个绑上面那个蓝色“布”的绳子。网上下的 STL文件,重新画图建模,用这个外壳,需要对线的 Micro USB插头处理下,不然可能不太容易插上。

项目地址

展开 收起

Readson 马里奥 PBT 热升华 OEM高度 键帽 61键

Readson 马里奥 PBT 热升华 OEM高度 键帽 61键

27.7元起

AULA 狼蛛 PBT侧刻透光键帽键盘侧面字母适配hi75hi8/F57/F87/F99键位

AULA 狼蛛 PBT侧刻透光键帽键盘侧面字母适配hi75hi8/F57/F87/F99键位

68.99元起

AULA 狼蛛 机械键盘PBT侧刻透光键帽适配hi75hi8/F57/F87/F99键位热升华

AULA 狼蛛 机械键盘PBT侧刻透光键帽适配hi75hi8/F57/F87/F99键位热升华

69元起

AULA 狼蛛 中国风青花瓷键帽原厂高度PBT五面热升华适配F75F87F99键盘

AULA 狼蛛 中国风青花瓷键帽原厂高度PBT五面热升华适配F75F87F99键盘

89元起

AULA 狼蛛 侧刻键帽机械键盘侧透光原厂高度PBT材质130键个性小全套透光

AULA 狼蛛 侧刻键帽机械键盘侧透光原厂高度PBT材质130键个性小全套透光

79元起

LEOBOG 莱奥伯格 灰木轴V4 70颗

LEOBOG 莱奥伯格 灰木轴V4 70颗

45.5元起

AULA 狼蛛 可爱软萌键帽猫爪键帽 2个

AULA 狼蛛 可爱软萌键帽猫爪键帽 2个

13.8元起

AULA 狼蛛 龙年键帽10颗喜庆主题PBT热升华原厂高度全套个性新年氛围

AULA 狼蛛 龙年键帽10颗喜庆主题PBT热升华原厂高度全套个性新年氛围

26.9元起

ZOMO PLUS F5 钛合金 阳极氧化 原厂高度 键帽 银色 1键

ZOMO PLUS F5 钛合金 阳极氧化 原厂高度 键帽 银色 1键

136元起

AULA 狼蛛 Hi75铝坨坨/K81热升华PBT键帽专属个性81颗渐变原厂高度

AULA 狼蛛 Hi75铝坨坨/K81热升华PBT键帽专属个性81颗渐变原厂高度

78.21元起

Hyeku 黑峡谷 PBT OEM高度 键帽 牛奶绵绵冰118键

Hyeku 黑峡谷 PBT OEM高度 键帽 牛奶绵绵冰118键

69元起

AULA 狼蛛 龙年原创主题键帽 10颗

AULA 狼蛛 龙年原创主题键帽 10颗

17.9元起

AULA 狼蛛 双皮奶紫色布丁键帽PBT透光108键OEM高度闭口两色适配F87F75

AULA 狼蛛 双皮奶紫色布丁键帽PBT透光108键OEM高度闭口两色适配F87F75

29元起

VARMILO 阿米洛 弗里达键帽套装热升华PBT迷你洛键盘姬秋丽适配75%

VARMILO 阿米洛 弗里达键帽套装热升华PBT迷你洛键盘姬秋丽适配75%

197.13元起

密探 雾蓝键帽正刻侧刻透光OEM高度渐变色蓝色二色浸染PBT61 87 98

密探 雾蓝键帽正刻侧刻透光OEM高度渐变色蓝色二色浸染PBT61 87 98

60.41元起

狼蛛侧刻键帽渐变透光PBT原厂高度68/75/87/98/104/通用侧面字母

狼蛛侧刻键帽渐变透光PBT原厂高度68/75/87/98/104/通用侧面字母

59元起
37评论

  • 精彩
  • 最新
  • 空投箱么?

    校验提示文案

    提交
    嗯,空投箱外壳。

    校验提示文案

    提交
    收起所有回复
  • 这有啥用?

    校验提示文案

    提交
    可以设定组合键,一键多命令,你可以看下B 站那个视频,我现在是用来一键显示桌面。

    校验提示文案

    提交
    收起所有回复
  • 还是没看明白怎么做到的 事不是我弱爆了

    校验提示文案

    提交
    哪里没看明白?我自己不知道哪里有坑,可以再详细点。

    校验提示文案

    提交
    我看到了第二张图 [喜极而泣] [喜极而泣] [喜极而泣]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 就是只有一个按键的键盘,适合法师打副本。

    校验提示文案

    提交
    我同事就是用来玩游戏,连击,一下50个"Q"键。

    校验提示文案

    提交
    收起所有回复
  • B站看了好多做键盘的视频,好简单,自己买了一堆配件,买了电烙铁,买了二手轴板,发现连他妈一个轴都拆不下来。

    校验提示文案

    提交
    拆轴对于新手 不是太友好 你可以吸锡,或者堆锡,焊接容易。

    校验提示文案

    提交
    空心针会拆起来容易一点,但是吸锡器是必须要学上手,慢慢适应的。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 生命在于折腾 [邪恶]

    校验提示文案

    提交
    这个键盘 用好了 其实可以方便很多 颜值也不低。

    校验提示文案

    提交
    这个还行 有点实用价值

    校验提示文案

    提交
    收起所有回复
  • 有没有只有上下左右回车esc的无线键盘?

    校验提示文案

    提交
    要是那样的话 这个主控不行 得用Leonardo

    校验提示文案

    提交
    收起所有回复
  • 想要第一个图双手键盘地址,或者再写一篇啊

    校验提示文案

    提交
    英文水平咋样?爬英文能爬吗?

    校验提示文案

    提交
    放个地址把

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 没有3D打印机可咋弄勒

    校验提示文案

    提交
    x宝,万能的。

    校验提示文案

    提交
    收起所有回复
  • github怎么找项目啊

    校验提示文案

    提交
    搜关键词啊 一搜就找到了

    校验提示文案

    提交
    收起所有回复
  • 轴连接芯片pin2时,是要把原来连接剪断吗

    校验提示文案

    提交
    断不断都行,只要链接到上就行,没连接的时候是悬空,没影响。

    校验提示文案

    提交
    收起所有回复
  • 前辈您好。按照您的资料自制了一枚小键盘用于绘画时常用的ctrl+Z键。我想再请教一下,ATTINY85这种板子能判断长按和点按吗?现在的情况是:长按会持续loop定义的功能键。但我如果希望长按不松时只触发一次,怎样做到呢?望请指教,辛苦了~

    校验提示文案

    提交
    很高兴这个小键盘对你的工作带来便利。网上有很多Arduino按键长按短按的代码,修改下就行,触发不同的减值。

    校验提示文案

    提交
    我尝试按照您的指点去查找相关资料。但发现网上检测长按的代码逻辑是“通过计时,判断为长按时,执行某个程序,或键值”。就是像长按弹出菜单类似的结果。而我希望的是,“按下时立刻执行键值,并不延迟,并在抬起按钮前,永远不执行第二次,无论按多久。”这个应该有办法解决吗?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 请问楼主 jorne这个是不是有无线版本的 我看闲鱼有人出。要是无线,为什么不左右各一个主控呢?中间有个线别扭

    校验提示文案

    提交
  • 还想请问下这个jorne,是通过qmk命令行修改键值的吗?可以加个联系方式么,关于这个键盘想请教一下

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
63
扫一下,分享更方便,购买更轻松