DIY 篇一:从零开始,做一个单键炫彩多功能小键盘
项目由来
玩电脑还算是比较早的,最早接触是在初中,486、586+Win95、Win98那个年代,那个时候已经不流行机械键盘了,基本都是薄膜键盘,但是外观和现在的机械键盘差不多。后来机械键盘以天价回归了,可我对它却并没什么感觉,尤其是在我看来虚飘的价格,近两年国产轴开始多了,机械键盘的价格也回落了。
前段时间在 github上看到一个机械键盘的项目,做了第一把机械键盘,剩了一堆材料,于是就有了这个项目,一个单键键盘。
准备材料
键盘必须要用到的材料:
CHERRY MX机械键盘轴体或兼容轴体,颜色根据个人喜好(优先3脚,5脚需要处理下)
Digispark kickstarter ATTINY85 微型 usb 开发板
需要用到的工具(工具并不都是必要的,自己合理使用):
电烙铁
漆包线
精细手锯
螺丝刀
电钻
锉刀
键盘不必须用的材料:
Sk6812 mini 3535(全彩LED,可以用WS2812代替,但是5050的尺寸稍大)
凯华 kailh热插拔轴底座(如果不需要更换轴体,这个可以不用)
3D打印的外壳(外壳可以根据自己喜欢自己做,我同事直接用热熔胶箍上了)。
下面挨个介绍下原材料
Digispark 开发板,不一定非要选这个样子的,但是如果你零基础,最好选一样的,防止出现各种问题。
硬件部分
介绍完用到的材料后,再简单介绍下这个项目,其实这个项目很简单,就是用 Digispark模拟 HID设备,DigiSpark最出名的应该是用它制作 Bad-USB,Bad-USB同样是用它模拟 HID设备进行攻击或其他操作。
简单介绍完项目后,我们开始制作键盘。如果你想做一个和我一样的键盘的话,就需要对开发板进行简单的处理,需要对电路板做个小手术,把用不到的地方切掉(注意:如果你对开发板下载程序不熟,最好先跳到软件部分,把默认程序下载到开发板中,以免切割后,万一切坏,不知道问题出在哪里)。
电路板切完之后的大小,注意不要伤到芯片的引脚,引脚离边缘大概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,需要用热熔胶固定下,一定少用,防止板子放不进去。
安装完底壳后,就可以插入轴体,安上键帽,键帽上可以放置乐高人仔或者积木。如果你用的打印材料比较透光,可以在轴体外壳部分做隔光处理。
空头箱外壳
这个外壳我比较喜欢,唯一遗憾是少几个绑上面那个蓝色“布”的绳子。网上下的 STL文件,重新画图建模,用这个外壳,需要对线的 Micro USB插头处理下,不然可能不太容易插上。
loc1024
校验提示文案
FreakGeek
校验提示文案
yoyo添
校验提示文案
神探下了课
校验提示文案
lm0472
校验提示文案
宇大叔
校验提示文案
越宅越胖
校验提示文案
爱折腾一下
校验提示文案
大鱼海
校验提示文案
四桶爸
校验提示文案
undermarine小鲸鱼
校验提示文案
嫣兰飞雪
校验提示文案
Minimalist
校验提示文案
Minimalist
校验提示文案
嫣兰飞雪
校验提示文案
Minimalist
校验提示文案
Minimalist
校验提示文案
undermarine小鲸鱼
校验提示文案
四桶爸
校验提示文案
大鱼海
校验提示文案
爱折腾一下
校验提示文案
越宅越胖
校验提示文案
宇大叔
校验提示文案
lm0472
校验提示文案
神探下了课
校验提示文案
FreakGeek
校验提示文案
yoyo添
校验提示文案
loc1024
校验提示文案