本文讨论如何唤醒平板电脑等触控装置,无需接触设备,而是采用基本的手势识别及新颖的接近检测传感器。本文讨论了相关设计的物理布局、速度限制、检测门限、系统集成,以及人为因素的影响;给出了软件实时的例程。
厨房里的突发奇想
如果做饭时使用触控设备,您可能会注意到按照设备列出的食谱烹饪并非想象得那么简单。技术达人(例如鄙人)走进厨房时,喜欢看着平板电脑或智能手机上的菜谱做饭。您可能会说:“好吧,这有什么难度?”由于屏幕始终开启会消耗很大电量,通常手持装置在1、2分钟后没有操作时将自动进入休眠状态。那么,当您需要参照食谱时,设备已进入休眠状态。此事,您面临两个选择:要么强制屏幕保持永久开启;要么用沾满食物的手开启装置,而在屏幕上留下斑斑油渍。当然,您可以在每次查看时把手清洗干净,但不断重复洗手、擦干即繁琐,又费水。
我时常问自己:“怎样才能既不让屏幕始终开启,又不会弄脏装置?”实际上,有一种办法一举两得,即通过一个手势(不用接触屏幕)开启显示屏。听起来似乎很复杂,是吗?幸运的是,做起来可能比听起来容易一些。
接近检测传感器
许多触摸屏装置,尤其是智能手机,内部已经安装了红外(IR)接近检测传感器。这些传感器一般在通话期间自动打开/关闭屏幕,以避免意外操作手机的输入界面。这种传感器,加上精明的软件设计,就能实现利用一个手势唤醒装置的功能。
基本的设计思路是:设备进入休眠状态时,触摸屏关闭,应用处理器处于低功耗模式,依靠接近检测传感器“观察”背景的变化,当接收到的信号足够大时,做出适当反应。这与接近检测传感器在通话期间关闭屏幕的功能几乎完全相同。只是,我们的应用对数据有了不同的解释。
首先记录传感器在“正常”背景下的计数值,此时得到的数值可能为零,但实际设计中需要考虑系统失调(例如:散射或串扰)。然后将得到的数值设置为检测门限,当接收信号超过门限时触发中断或向应用处理器发送信号,以唤醒系统并打开屏幕。总体而言,这种方法非常简单、直观,可利用环境光检测器和IR接近检测传感器实现。
本文介绍的方案采用MAX44000,接近检测的数据读取时间间隔可以设置在1.56ms至100ms (与环境光检测传感器轮流读取数据)。假设最大检测距离为10cm,LED的辐射角为±15°,那么,可以覆盖的面积大约为22cm2或跨距大约为5.35cm,只有该区域内的移动目标才能捕捉到。由此,能够以最慢(即最低功耗)的采样速度可靠检测的最快手势动作大约为0.53mps。在此,我们还假设传感器只需要采集到一次高于门限的信号,即可识别经过覆盖区域的目标。
举手之劳...
理论上讲,该方案的实施非常简单。当装置进入休眠模式时,将接近检测传感器置为环境扫描模式,并在检测到目标时发出中断信号,指示捕捉到超过预设门限的信号。可通过I2C接口轮询传感器的状态。不幸的是,这种方式会消耗过大功率,超出了大多数用户的预期。
这也是接近检测传感器的设计重点,MAX44000传感器能够在许多方面摆脱应用处理器的干预,减轻处理器负荷(降低功耗)。 使能MAX44000的内部接近检测中断(寄存器0x01的第1位),可将唤醒门限写入内部寄存器(0x0B和0x0C)。当接近检测传感器的读数超过该门限时,触发中断标识置位,将MAX44000的/INT引脚置为低电平。当应用处理器检测到该引脚驱动为低电平时,可唤醒装置退出低功耗模式,并打开屏幕,或完成其它需要的动作。
...但不容忽视
实际应用往往不如理论那么容易,非接触唤醒的具体实施并非只是简单地检测高于门限的信号。实际上,具体的设计需要考虑诸多因素。
信号电平与电路布局
最关键的考虑应该是触发唤醒条件的信号电平,需要在系统响应灵敏度与误报概率之间进行权衡。如果门限过低,则很容易检测到输入(手势工作),但会增大瞬态噪声或突发条件产生误报的概率。反之,过高的检测门限能够把误报概率降至几乎为零,但却只能检测到非常接近的目标,甚至对任何输入(即使您疯狂晃动手臂)都反应迟钝。
解决这一问题的最佳方式是:首先降低系统噪声,可以通过光学方法或严谨的电路布局实现,降低的噪底有助于降低误报概率;其次,选择“平均”检测距离(例如:4cm至5cm)并利用参考目标测量信号,18%的灰板比较理想,但如果触摸屏上方安装了黑色玻璃,测量时也应该使用这样的玻璃,所测得的信号电平可以作为设置门限的最佳参考。通常可以遵循这样的原则:即将电平设置在满幅的8%至15%,即使电平发生变化。
可以按照上述经验数据设置MAX44000传感器的接近检测门限寄存器,图1所示为信号强度随距离变化的关系曲线,采用18%灰板,驱动电流为100mA,传感器上方没有玻璃罩。蓝线为可以选择的唤醒门限。
图1. MAX44000接近检测传感器信号强度随距离变化的关系曲线,采用18%灰板,100mA驱动电流,没有玻璃罩。