本系统为测量人体感应电容的新式键盘设备。在电路中接入绘有铅笔轨迹的纸张,在触碰对应轨迹后,人体感应电容将会影响到整个电路,使用STM32F4微控制器采集并处理相应数据,将这种不利的影响转化为有用的触碰信号,同时,接入的物体不仅均为生活中常见的,而且廉价方便,进而制作出了更加轻薄便捷的新式无线键盘,同时衍生出多种趣味水果键盘。
视频:
http://v.youku.com/v_show/id_XNjE5MzA0NDc2.html
ARM-STM32校园创新大赛
视频观看地址: http://v.youku.com/v_show/id_XNjE5MzA0NDc2.html
人体感应式无线键盘 摘要 1. 引言 2. 系统方案 3. 系统硬件设计 4. 系统软件设计 5. 系统创新 6. 评测与结论 附录
本系统为测量人体感应电容的新式键盘设备。在电路中接入绘有铅笔轨迹的纸张,在触碰对应轨迹后,人体感应电容将会影响到整个电路,使用STM32F4微控制器采集并处理相应数据,将这种不利的影响转化为有用的触碰信号,同时,接入的物体不仅均为生活中常见的,而且廉价方便,进而制作出了更加轻薄便捷的新式无线键盘,同时衍生出多种趣味水果键盘。
随着各类电子设备的普及,人们对于键盘的需求日益增加。但目前的键盘种类仍较为有限,大体为机械键盘及电容式开关键盘,这些键盘普遍有着噪声大、不易携带等缺点,如今广为开发的红外投影键盘,也有造价高、受光干扰等弊端。因此,需要这样一种体积微小、可折叠放置、成本低、易于携带的新式键盘的研制。这样一种对人体感应电容的利用方式,也使得更多的趣味水果键盘能够被轻松的开发出来,这些水果键盘可作为多款游戏(例如节奏大师、劲乐团)的外设使用,大大增加了游戏乐趣。 2. 系统方案图 1 感应电容检测流程图 人体感应电容在正常情况下为几十pF,当人体接触到连接在电路上的导体后,将会改变电路中的分布电容。通过不断地对铅笔轨迹或其他导体(以水果为例)进行充放电,并使用STM32F4微控制器对充放电时间进行计数,间接地得到电容的改变量。对这个改变量进行监控并设置适当的阈值,进而得到按键状态。通过蓝牙芯片将处理后的数据以预定的蓝牙协议发送至上位机或移动设备上,实现无线键盘功能。 3. 系统硬件设计图 2 整体硬件框图
本系统以STM32 F4为核心控制器,通过检测电路、施密特触发器等电路,将微小的电容改变量转换成电信号,再通过蓝牙模块将数据发送给手机或者上位机。本系统硬件部分主要由3个部分组成:检测处理电路、控制器及蓝牙模块电路。 检测电路由电容积分电路和施密特触发器构成。当人体通过导电介质与电路联通时,改变了电路总电容,使得充放电时间发生改变。为减少外界干扰,选用施密特触发器代替普通比较器,使得检测更准确。 图 3 电容检测处理电路图 HC05蓝牙模块是一款高性能的主从一体的蓝牙串口模块,可以同各种带有蓝牙功能的设备配对。其波特率范围:4800~1382400,并兼容5V或3.3V单片机系统。 图 4 蓝牙模块电路图 本系统分为单线单点、单线多点、及多线多点检测方式。 在单线单点中,使用一个独立的导线,检测一个触电按键是否被触发,检测流程图如图二所示,这种方式识别准确率高,鲁棒性强,适用于多类导体连接,使用水果键盘来弹钢琴,便是用这种方式来实现的。但缺点是,当按键多时,需要很多的导线及单片机引脚导致构线繁杂,不易搭接与维护。 单线多点方式,可以在仅使用一个导线的情况下,正确识别出多个按键的触发状态,通过对输入信号进行滤波、分段,可明确地为每个按键分配出一个互相完全独立的数据区域,经多区域的阈值比较来判断出在同一条导线上的哪个按键被触发了。 多线多点方式,使用多条独立导线,来识别出更多的按键点。每条导线检测流程图同单线多点基本一致,但需要注意的是,因为导体放电需要一段时间,并且在多个导线共同工作的情况下,在为某根导线充电时,务必保证其他导线均为低电平及放电完毕状态,这样才不会互相影响。同时,因系统运行要保证良好的实时性,因此我们设计为,多路导线交替着循环充放电,在每个单线检测流程结束后,将此路引脚拉低,使其在整个循环周期内大部分时间都在放电,缩减充电前检测等待时间。
4. 系统软件设计图 5 单线单点按键检测流程图
因人体感应电容不稳定,因此采集到的数据将会频繁抖动,这里我们采用了均值滤波及保持滤波的方式。即在多次采样后,剔除极端数据后进行均值运算;而后在n次采样中保持输出前n次出现次数最多的采样值,从而减小数据抖动。 图 6 滤波前数据 图 7 滤波后数据 图 8 传至上位机的数据
随着所处环境的变化,必然影响电路中电容及人体感应电容值的大小,因此在系统开始运行前,需进行自动或手动初始化,以减小误识别。系统上电后,将自动采集n组(n足够大)数据,作为以后做比较的初始值。初始值采集后,所有数据均计算与初始值的差值,默认将设置一个较小的值作为差值阈值,但保证不会误触发。当环境发生较大改变时,可使用User按键进行系统矫正,矫正过程中将采集n组值,选取其中的最小值,并再降低30%~50%作为触发阈值。经过实际测试,此种策略基本可以保证该无线键盘的识别率。 当前比较流行的音乐节奏游戏(以节奏大师为例),在触控设备上均有良好的交互效果,但使用普通键盘玩,却十分生硬,没有很好的用户体验。而水果不仅经常出现在我们的生活中,也很适合拍打,且为导体,因此我们设计使用水果键盘来操作这类音乐节奏游戏,增加趣味性。水果键盘使用单线单点的检测方式,通过对水果不断充放电实现检测功能。将数据发送到上位机之后,借助COM组件实现对电脑键盘的控制,实现游戏功能。(如附录中图11) 在采集到按键数据后,STM32F4由串口与蓝牙芯片连接,使用指定的蓝牙协议将数据发送到上位机或移动设备。上位机程序使用C#编写,移动设备以WinPhone8设备作演示。(如附录中图12、图13) 在STM32单片机采集到按键数据后,根据按下的键的信息,使用单片机DAC以DMA方式控制输出音频数据发出不同音调声音,对于STM32F4-DISCOVERY开发板,也可使用I2S协议,控制音频DAC输出音频数据。从而实现了水果电子琴功能。(如附录中图10) 5. 系统创新- 将人体感应电容对电路的不利影响合理地利用起来,使用生活中随处可见的物品(如A4纸、水果等)代替传统按键,制作出廉价的便携的新式键盘。
- 使用施密特触发器结合stm32控制器中计数器实现对电容充放电时间的检测,进而实现对微小电容改变量的检测。
- 将衍生出的水果键盘应用到合适的游戏中(例如节奏大师),大大增加了游戏趣味性和可玩性。同时也衍生出了水果电子琴等独特游戏。
- 利用了铅笔轨迹的导电性及因轨迹长度导致的电容改变特性,实现了单路多触点的检测,大大减小了单片机I/O引脚的使用量。
6. 评测与结论按键响应时间:<50ms (8路多点检测) 按键误触发率:1% 按键未响应率:4% 20cm长铅笔轨迹可分触点:4~5个
在多路单点检测的情况下,按键准确率在99%以上。 在8条导线的情况下即可完成30键键盘的正确检测。
如下图为数据拟合后,充电时间t随触点与轨迹端点距离的大致变化趋势: 图 9 充电时间变化趋势图
本系统在硬件方面包括LM358运算放大器搭建的电压跟随器及施密特触发器,蓝牙芯片等,在软件方面包括在stm32上对人体感应电容的检测与数据预处理,上位机与stm32的蓝牙通信协议,上位机的键盘驱动、模拟钢琴发声程序,以及基于c#的图形化数据分析程序。整个设计过程包括人体电容检测原理电路图的设计,PCB板绘制及制作,焊接调试等,对硬件系统采集到的数据进行滤波以及分析处理等整个开发调试过程。
附录图 10 香蕉电子琴
图 11 “节奏大师”游戏外设
图 12 手机蓝牙键盘 图 13 电脑蓝牙键盘 图 14 轻薄环保键盘
下面是源码的目录:
全部设计资料下载(原理图 源码 文档 资料等等):
人体感应式无线键盘.7z
(7.02 MB, 下载次数: 178)
还顺便分享个一个是摄像头:
OV7670学习资料.zip
(1.38 MB, 下载次数: 87)
|