怎样去设计一种基于ATmega32U4的新型客制化键盘?

描述

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]。

CMOS射频

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

CMOS射频

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

CMOS射频

   

2  硬件构成

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

CMOS射频

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

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

3  PCB设计

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

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

CMOS射频

键盘扫描程序如下:

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

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

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

4  外观设计

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

5  结语

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





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分