有时候智能手机看起来显得很笨。比如下面这个例子:办公室里坐了很多员工,每位都在专心地做他或她自己的工作。此时此刻,一首突然响起的流行音乐——刚好离开办公室去外面就餐的同事的手机铃音打破了这里的宁静。手机就放在桌子上,拼命地振动,慢慢地滑向桌子边缘,迫使旁边的同事跳起来把手机移到安全的位置。
这种情况对办公室人员来是非常恼火的,很容易让他们分心。
乍看起来,一部智能手机如此的不聪明似乎有些奇怪——毕竟智能手机通常都非常了解自己所处的周围环境。
事实上,我们还需要增加一些元件,并对各种传感器的输出进行仔细的组合,才能让一台移动设备自动执行合适的通知功能。本文概述了一个可以提供这种能力的软硬件框架,它充分利用了许多移动设备中已有的功能。
智能手机中丰富的传感器阵列
智能手机中已经配备有许多传感器。有些传感器可以直接支持智能通知:
·嵌入在显示屏中的接近传感器可以检测到手机是否靠近用户的耳朵。当靠近用户耳朵时,它可以通知手机关闭显示屏及其触摸敏感性。
·环境光线传感器可以帮助系统根据环境光线的强度调整显示屏的亮度。先进的环境光线传感器将数字颜色检测和接近检测结合在一起,可以实现更加复杂的显示管理。
·加速度计可以判定屏幕的方向,以便屏幕上显示的内容作出合适的旋转以配合横屏或竖屏模式。
·麦克风可以检测环境噪声的大小。
就目前的配置而言,每个传感器都被分配一个主要的功能,一般不用于其它功能。加速度计是其中一个例外,它也被用于游戏应用中,用于支持玩家的用户界面。
对环境的部分感知
目前智能手机中的传感器阵列具有部分的智能事件通知能力,比如来电、短信和电子邮件。举例来说,智能手机中的环境光线传感器和加速度计可以检测手机是否处于静止状态和明亮的环境中(是太阳光还是人造光源)。这意味着智能手机不在用户身上(如果手机在口袋里,显示屏上应该不会照射到环境光线)。这也意味着可以自动取消振动功能。
但用户通知可以做得比这智能得多,而且只需增加少量元器件即可。
举例来说,当手机面朝下放在桌子上时,环境光线传感器将无法正常工作。为了让智能手机能同时看到两个方向,需要安装两个环境光线传感器,一个在手机前面,一个在手机背面。这样不管手机处于什么位置都能使用环境光线信息。
同样对接近检测也可以这么处理:在手机背面增加第二个接近传感器。传感器模块可以将接近和环境光线检测功能结合在一起,因此在手机背面只需增加一个器件。如果使用颜色传感器/接近传感器模块,那么这个器件就能真实地测量环境光线的色温,进而分辨出是人造光(表明手机在室内)还是太阳光(表明手机在室外)。
智能通知还需要有关环境噪声大小的信息。这要求来自麦克风的检测输入,再加上数字信号处理来判断手机附近的声音大小。将麦克风的输出幅度转换为噪声音量测量值可以在专门的传感器接口中实现,避免使用手机的主应用处理器的运算资源。
智能通知系统中需要的最后一个硬件是环境温度传感器。对温度敏感的元件(比如PT100电阻)加上信号处理就能帮助移动设备确定周围空气的温度。应谨慎选取它在电路板上的位置,尽量减小手机本身发热对它的影响。测量的绝对精度不是很重要:它的功能只是指示手机是否靠近用户身体。
现在就可以把这些不同的输入组合起来,产生手机必须向用户提供通知那一刻所处环境的统一视图(见图1)。换句话说,各种测量值必须都馈送给一个统一的算法,从而从大量可能的环境(每种环境都有自己的一组特征量)中做出正确的选择。
图1:可以根据各种类型的传感器输入信息搭建出当前的环境。