最丐61+3键机械键盘(外观)
简介
键盘有了,缺个壳,正巧打算用玻纤板做,反正上面没电路,不如······(逮虾户~)
简介:键盘有了,缺个壳,正巧打算用玻纤板做,反正上面没电路,不如······(逮虾户~)开源协议
:GPL 3.0
描述
程序讲解
先来看看人家的讲解:
https://www.bilibili.com/read/cv7465854/
看得云里雾里就对了,你只要知道经过这个代码的升级,我的项目某方面能和里面提到的键盘差不多甚至更好就够了。
按键消抖
按照我的理解旧代码就已经是首字符先发码,(“&”逻辑滤波)
下面上图:

“&”,“|”逻辑滤波
红色线为经过“&”逻辑滤波后的识别情况。
具体实现思路是将当前数据与前面10ms内的数据进行与运算,有零出零,这样就做到前沿从抖动开始就识别为按下。
后延要到抖动结束后10ms才识别为松开。
蓝色线为经过“|”逻辑滤波后的识别情况。
同理,只是刚好相反,按下延时动作,松开从第一个抖动开始即时动作。
那能不能结合两个的长处?其实也不难,至于写出来能不能感知到我就不清楚了,欢迎讨论。
而且1000Hz回报率对电脑配置也有点要求,前面有人反馈电脑带不动,所以这里继续取500Hz。

绿线是要做到的目标,下面贴代码
uchar code move_code[2][8]={
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
};
void keybord_trembling()
{
uchar i,j,k=0;
static idata uchar temp[64]={0};
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(key_temp[i]&move_code[0][j])//如果按下
{
if(temp[k]==0)
temp[k]=30;
else if(temp[k]<40)
temp[k]++;
}
else//如果松开
{
if(temp[k]==40)
temp[k]=10;
else if(temp[k]>0)
temp[k]--;
}
if(temp[k]>20)
key_temp[i]|=move_code[0][j];
else
key_temp[i]&=move_code[1][j];
k++;
}
}
}
下面附件的代码就是采用这种快速激进,容易双击的算法,如果出现双击,建议回刷普通版的代码
本想导入漫画的,结果不够清晰,表情包走起
嘉立创的丝印总是有瑕疵

焊接铜螺母,总共8个(焊完有点氧化变红了)

装上键盘

定位板(这是黑油喷锡的,效果还行)

pcb合照

正面(带底板的图片晚点补,螺丝在路上)

侧面特写


开源平台logo特写

其他用户制作的成品:





设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。









