基于ATmega32U4的新型客制化键盘设计

2023-03-10 05:11杨宸畅王钰
机电信息 2023年4期
关键词:键位针脚固件

杨宸畅 王钰

(南京师范大学泰州学院,江苏泰州 225300)

0 引言

19世纪诞生了打字机,这便是现代电脑键盘的雏形,受此影响,现代键盘的字符排序也是和打字机一样的QWERTY 排序。对于不同的键盘来说,最大的区别便是键盘的配列。键盘配列指的是键盘的字符排列布局,即键盘的按键数量个数和所提供的功能数。不同人群需要的按键数及功能是不同的,近几年来,键盘市场迎来了客制化的热潮,并有了取代传统高端键盘的趋势。客制化键盘即从用户角度出发,根据用户的需求进行独特的个性化定制,对标准化工业产品进行功能增减、材质或结构更换,设计适配个人使用习惯的机械键盘。

1 软件设计

使用Keyboard Firmware Builder(KFB)、Keyboard Layout Editor(KLE)等开源软件可以生成满足人们需求的配列。键盘配列一般用百分数表示,104键位为全尺寸(即100%)键盘,百分数代表了按键数量和功能占比。大部分办公键盘都是104 键(或108 键)的100%(或105%)尺寸的键盘,而对于一些特殊的行业或键盘爱好者来说会选择80%(84键或87键)配列的键盘,或者是60%、65% 配列的键盘,前者去掉了小键盘,后者去掉了小键盘以及功能区。还有一些更加追求便携性的用户会去选择40% 的键盘,键盘上仅有字母区和基本的几个功能键。40% 键盘多见于国外用户,国内并不常见;而60% 键盘则在国内外都有着很大的用户数量,这一区别主要是因为中文输入必须要求数字键的配合;50% 键盘则同时兼顾了数字与便携性。虽然这三款配列都可以通过修改键位和设置组合键来输出字符,但是越精简的键盘配列所需要设置的额外组合键位就越多,这无疑增加了使用键盘前的学习成本。

图1的调查问卷显示,64.3% 的人群更多是使用左手大拇指来输入空格,7.1% 是右手,而14.3% 的人群是双手交替使用。可以看出使用左手的人占了大多数,所以设计时将长空格分裂成两个短空格,左空格保持了原有的空格功能,而右空格可以根据不同使用情况设置为切层键或宏或是其他功能键。此键盘根据需要可设置1~2个FN 功能键,也可与字母区键位组合设置为其他功能键或录制为宏,用来实现个性化功能。应用此功能,可以使键盘“一键多用”,在节省空间的同时也增加了新功能[1]。

图1 空格使用习惯统计柱形图

以40% 与60% 配列键盘为基础对两者优缺点进行了对比与取舍,设计出了全新的50% 配列,一共有53个键位,其键盘配列图如图2所示,包括了常用功能键、字母区、数字键,并且支持组合键功能。利用配列代码可以在KLE与KFB 开源软件上编译生成并根据实际情况修改键盘的固件,使用EDA 软件绘制键盘PCB 原理图。利用KFB 的键盘固件可以将某一键改成任何基础键、组合键,但在实际使用中需要使用qmk-toolbox将重新修改后编译完成的固件配列文件再次烧录进芯片,以新文件覆盖旧文件的方式实现键盘原键值配置的修改,操作不够便利,且对于一般用户来说有一定的门槛。

图2 机械键盘配列图

而VIA 软件可以省略这一过程,只需要将键盘连接电脑,打开软件就可以实现修改键位、录制宏等功能,可以用更少更简单的步骤实现同样的功能。因此,为了良好的用户体验,此键盘提供了适配VIA 软件的键盘固件文件,VIA 软件在识别到键盘后会显示键盘的基础信息,如名称、矩阵信息、配列设置以及修改功能,如图3所示。

图3 机械键盘VIA 基础设置图

2 硬件构成

本方案使用的芯片为A Tmega32U 4-AU。A Tmega32作为高性能、低功耗的8位CMOS微控制器,内嵌了系统内可编程Flash、8路10位ADC 和26个可编程的I/O 口,每个可编程的I/O 口上都有可单独设置为输入、输出的上拉电阻等,为方便后期焊接选用了针脚外露的AU款。主控电路及针脚分配如图4所示。

图4 主控电路图

系统采用的是16 MHz的5032无源晶振,两端分别连接在XTAL1、XTAL2,在晶振X1旁边连接两个22 pF的电容,接地[2]。在RESET针脚上连接开关作为键盘键值的重置键,便于后期重新烧录固件文件调整键盘键位。

绘制主控电容、type-c接口及其他所需电路后,用x连接在未使用针脚尾部,避免系统报错。

3 PCB 设计

根据键盘矩阵图排列轴座,共5行12列。在键盘矩阵行列电路的交叉点上设置键盘按键,设计时采用矩阵扫描键盘的方案,轴座选用国产无灯凯华轴座。

键盘PCB 原理图如图5所示,选用I/O 接口中的部分端口作为行扫描输入与列扫描输出,令端口的输入和输出扫描关系在使用过程中不发生改变[3]。键盘扫描程序按顺序使列扫描输出端口输出低电平,从行扫描输入端口读取按键状态来确定被按下按键位置[4]。

图5 机械键盘PCB原理图

键盘扫描程序如下:

(1)令PB 4输出低电平后,再从其他行扫描输入端口读取按键状态,确定按下键位是否在第一列;

(2)如未识别到按下键位,则令PB 5输出低电平的同时以与步骤(1)相同的操作确定按下键位是否在第二列,以此类推,最终确定被按下的键位[5]。

在扫描过程中,一旦识别到有键盘按键被按下,便可返回键值同时退出扫描程序。所有键盘按键处设置的键盘轴开关列输出位置均使用二极管与单片机内的针脚电路相连串接,达到限制电流信号的流向的目的,额外设置的二极管可以使按下某个按键时,与该按键相接的I/O 口呈现高电平的同时不影响其他按键电路,即与该按键按键电路不相接的I/O 口仍然是低电平,防止产生某一个按键被按下时所有I/O 口都呈现高电平,导致主控读取错误信息[6]。

4 外观设计

该键盘配列较为新颖,在常见的键盘结构中,综合成本与便携性考虑,选用了亚克力堆叠的三明治结构,如图6所示。该结构利用上盖和底壳将定位板夹在中间,并使用螺丝进行固定。外壳材质采用亚克力既能节约成本又可以适配多种个性化配列,设计简单,材质轻便,易于携带。

图6 亚克力堆叠键盘结构示意图

5 结语

本设计对个人习惯、所需功能、实际使用情况等需求进行调查分析与测试,从实际出发,对比了多款不同特色配列的传统键盘优缺点,并以此为基础,取长补短,以满足各种需求,最终设计出了一款全新的50% 配列机械键盘。同时,对键盘各项参数进行了实际测试,使用手感符合预期,适配软件运行正常,外壳结实牢固,可靠性强。

猜你喜欢
键位针脚固件
吉利帝豪EV汽车手自一体式灯光系统电路检修*
如何快速提高生产力软件的效率?
非触勿动 秒治键盘误触
基于SHA1的SCADA系统PLC固件完整性验证方法
诗句如针脚,绣遍倾城旧事
浅谈提高小学中年级学生中文录入速度的策略和研究
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证
一种继电器单元的设计与应用
主机游戏全拿下 无线游戏手柄导购