ATmega16L微控制器
ATmega16是Atmel公司生产的基于增强的AVR RISC结构的低功耗8位CMOS微控制器,本文选用ATmega 16L微控制器,可以满足系统要求,且存在比较大的扩展性。
无线收发器件
本文采用NorDIC半导体公司的nRF2401射频收发器来实现位移数据的无线传输。因为nRF2401的优异性能非常适合无线鼠标的设计,并且,其内置的多点通信控制可以为系统提供很大的扩展空间。nRF2401为2.4 GHz全球开放频段产品,采用0.18μm工艺设计。
系统和算法的Matlab模拟
AD公司给出了ADXL203微加速度传感器的Simulink模型(参见AD公司主页),本文以此为基础,构建了基于该微加速度传感器的无线鼠标系统模型,如图3所示。
图3 无线MEMS鼠标系统的Simulink模型
其中,方框内的子系统模型即是封装好的ADXL203微加速度传感器模型。模型最后将采样的加速度值存入文件中,然后,通过编程来模拟微控制器中运行的不同积分算法,用Matlab来图示各个算法的模拟结果,对于系统算法的比较和选择有很大帮助。
上文通过假设每一次加速度采样间隔内鼠标做匀加速度运动,提出了一种二次积分的近似算法,便于编程实现,可以利用鼠标系统的Simulink模型,结合编程模拟该算法,来考察它的精确性。
程序取采样周期为1ms,发送周期为25ms,最后,Matlab模拟的结果如图4和图5所示。
由图4和图5中可以看出:由于该二次近似积分算法作了很大的简化,再加上加速度传感器的噪声干扰和信号延迟、A/D转换的误差等多方面的因素,当鼠标位移较大时,存在一些误差。但当鼠标位移在12cm以内时,精确度是非常理想的,这足以满足鼠标的一般应用,更大的移动距离可以通过改变二次积分的算法来实现。
光电和滚轮式鼠标的分辨力通常用dots per inch (DPI)来表示,即每英寸(2.54cm)的点数,它表示鼠标在物理表面上每移动1英寸(约2.54cm),光学传感器所接收到的坐标点数。由于光学引擎中CMOS矩阵的像素密度和透镜的放大倍数限制,常见光电鼠标的分辨力一般在200~400DPI。对于MEMS鼠标,可以用鼠标每移动1英寸(2.54 cm)对加速度采样的次数来表示分辨力的大小。
MEMS鼠标中微控制器对加速度的最大采样速率可以达到15000次/秒,本文只需采用1000次/秒时,取鼠标1s移动的位移为10cm,则鼠标的分辨力便达到了1000×2.54/10=254DPI,已经达到了常见鼠标的分辨力,并且,更高的分辨力可以通过提高加速度的采样速率来实现,理论上,最大值可以达到15000/1000×254=3810DPI,远远高于一般光学鼠标的分辨力。
图4 X轴的鼠标实际位移与模拟位移对照图
图5 Y轴的鼠标实际位移与模拟位移对照图
结束语
本文详细讨论了基于微加速度传感器的MEMS无线鼠标的软件、硬件设计和系统构成,并给出了Matlab环境下系统的simulink模型和算法,模拟的结果证明:无线鼠标的设计是合理可行的,文中提出的二次积分近似算法是简捷有效的;文中讨论的二维鼠标的设计技术,能为进一步研究多维多功能的MEMS输入设备打下很好的基础。本文选择硬件时,充分考虑了系统向多维和多功能扩展的可能性,可以在此二维鼠标的基础上再添加一些器件,构成功能更多更完善的MEMS输入设备,例如:可以再添加一个微加速度传感器来感测Z轴的加速度,从而实现三维鼠标,可以实现对三维立体旋转等的控制;也可以利用nRF2401射频收发器内置的多点通信控制的特性,再多增加几个接收模块,可以同时控制多台主机,或多增加几个发射模块,用几个输入设备来控制同一台主机,以适应不同应用场合的需要。