时隔四个多月,华为“天才少年”稚晖君,终于在7月24日发布了他的最新项目视频。这一视频还被华为官方转发,并直呼“太厉害!”华妹看完也忍不住连连称赞~

不满“客制化”键盘,选择自己动手
稚晖君表示,此次项目的想法源于几个月前的居家办公经历。程序员和游戏玩家对键盘的要求非常高。因此,市场上一部分玩家对于电脑外设的性能和外观的极致追求从而催生了一种叫做“客制化”的圈子。但接触下来,他发现很多“客制化”总是以“换壳为本”,其实还有很大的进步空间。
于是,稚晖君决定自己从零构思,设计一把真正的“客制化”键盘。为了保证能够有最大程度的开发度自由,于是选择自己从头设计电路硬件以及固件代码。

硬件设计三步走
从硬件来说,键盘的原理很简单,每个键轴就是一个独立的开关,按下导通为0,弹起断开为1,通过控制器芯片检测按键的高低电平就可以知道按键是否被按下。

虽然听起来很简单,真实的情况却有点复杂,稚晖君在设计中就遇到不少问题:
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
点击这里找小助理0元领取: 嵌入式物联网学习资料(头条)


✦✦
01
常规的键盘有100个左右的按键,如果每个按键都接一根导线到MCU的引脚,那么就需要MCU有100多个引脚,这显然是极其浪费且不太现实的,所以市面上的键盘基本都使用一种叫做矩阵键盘的形式来检测按键。

比如说对于4行×4列、共16个按键组成的矩阵,单独连接的话需要16个IO,而矩阵扫描只需要4+4=8个IO。
✦✦
02
如果采用矩阵扫描的方式设计电路,由于按键之间不再是独立连接,而是存在一定的耦合,就会出现没被按下的按键也会被触发的情况,也就是俗称的“鬼键”问题。

稚晖君设想在按键下面再添加一个二极管,可以有效防止误触发的问题。

✦✦
03
想要提升键盘的手感,PCB设计的时候就要做减震处理,因此需要在PCB键轴之间挖出很多长槽。那么矩阵键盘和一堆二极管的模式就会使PCB走线变得很麻烦。

稚晖君使用移位寄存器来实现按键扫描。他使用1×n的矩阵,把每个按键都看作寄存器的一位,这样每加载一个时钟信号都可以依次读出每个按键的状态。

基于这个方案,稚晖君的设计就有了以下优势:
✔ 极其节省IO。
✔ 扫描速度极快。
✔ 电路极其简单。
固件设计,性能拉满
目前市面上绝大多数的客制化键盘都是使用像QMK、ZMK这样的开源固件,它们为了适配大量的键盘型号,导致出现代码臃肿、性能优化不足、扩展性不太好等问题。因此,稚晖君自己开发了一套键盘固件,把全速HID设备的性能拉满,在固件中实现了HID设备枚举、1kHz的硬实时报文以及1ms的超低延迟。

超高刷新率的全按键独立RGB灯控制,支持NKRO也就是所谓的全键无冲;添加每个按键独立的滤波算法,支持Bootloader更新固件,支持多层键位映射配置。
不只炫酷,效率提升也不在话下
在结束电路硬件以及固件代码的设计后,项目来到了外观设计环节。稚晖君邀请好友@Xikii厂长帮忙设计加工。

看到稚晖君的作品,大家是不是心里已经蠢蠢欲动了!

华妹想说,对于技术类岗位来说,尤其程序员,项目经验是用来证明程序员的实际动手能力,以及对某个领域或者技能的掌握程度。
换句话来说,项目经验深度决定你的薪资高度。一般来说,有项目经验的程序员薪资比没有项目经验的至少高30%!!!
那如何获得更丰富的、可传递、可复制的项目实战经验呢?
为助力学生可以更高薪快速入职企业,华清远见结合企业级的项目课程和团队实战,课程紧跟企业需求,不断迭代更新,确保学生能够获取最前沿的技术知识,满足企业需求。

同时,华清远见课程中增加“大厂”级项目,4个月的学习让学生在实战项目中完整掌握技术,大大提升学员的就业竞争力!

除此之外,华清远见的课程内容对技术的底层原理进行深入剖析,即便是零基础的学生,也能拥有良好的程序设计能力和专业的软件开发素养,逐渐成为高素质技术人才!
戴志涛-北京邮电大学计算机学院计算机体系结构研究中心教授
如果你想提升专业技能,如果你想快速积累项目经验,如果你想让自己在面试时更具备竞争力,华妹建议你一定要来华清远见!围绕企业级真实工作场景,你可以快速掌握系统的全流程项目开发经验,点亮各项技能的同时,也能轻松拿高薪!
原文链接:https://mp.weixin.qq.com/s/HmwmIARoPAHR5GKzWe6_JA
转载自:华清远见
原文链接:“野生钢铁侠”稚晖君,带着新作“客制化”键盘回来了!
本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。