因为所要测量的加速度值和重力加速度值在一个量级,所以要考虑重力加速度的影响。让传感器平面平行于显示器件平面(如图4中的ABC平面为显示器平面,平面为水平面),初始位置时传感器各轴所测得的加速度分量aX0、aY0、aZ0反映了显示器相对水平面的倾角(图4中的θ1、θ2)。如果显示器只在当前平面内做平动,aX0、aY0、aZ0就是X、Y、Z的加速度的常值分量;如果显示器还在当前平面内有转动,只有aZ0是Z轴加速度的常值分量,aX0、aY0是随转角θ1、θ2而变的变量;如果显示器Z轴与铅垂线夹角还有变化,aZ0也是随转角θ1而变的变量。第一种情形的处理比较简单,直接将aX0、aY0、aZ0作为初始位置静止的初值,是积分不变量,进行二次积分即可得到位置;第二、三种情形处理较为复杂,要将aX0、aY0、aZ0作为初始位置运动的初值,也看作积分不变量,但是进行二次积分时要知道初始位置的运动参数,这要选择振动加速度的极值点(此时速度为零)作为运动的起始点开始积分,当然这种算法会稍微复杂。
还要考虑加速度的噪声会因为积分而被放大,使积分结果不准。加速度噪声的来源有:传感器本身的噪声、周边电路的电磁串扰、电源的波动、负载的波动(OLED的功耗与被点亮的点数成比例)。MMA7260QT传感器内部集成信号电路输出纹波较小(nRMS=4.7mVrms),为了滤去由于电磁干扰等引起的高频噪声,给系统加一个通频带在50Hz内的RC低通滤波器。由于模拟滤波器难以调整,系统的软件还加入了简单而且快速的数字惯性滤波器,能很好地消除周期性干扰和较宽频率的随机干扰信号。
实时输出具有相反方向偏移量的动态图像
上文已述及处理器的运算速度和显示器件的响应速度是两个关键。本系统显示器件选择OLED器件即有机发光二极管(Organic Light-Emitting Diode,OLED)该显示器件具有轻薄、易携、全彩、高亮度、省电、视角宽广及高应答速度等优点,为未来人机互动的接口开启了新的纪元,如今采用OLED作为显示器件的电子产品几乎已经普及。
本系统所采用的OLED显示材料的响应时间在μs量级,OLED器件的驱动芯片SSD1303的并行总线写入时间仅为300ns,因此总的响应时间(包括驱动芯片的延迟和OLED材料的延迟)仍然是μs,只要MCU速度足够快,是完全能实现图像的动态显示的。另外SSD1303支持垂直偏移指令和水平滚动指令,因此只需将GDDRAM一次写满,图像需要平动时仅需要写一条偏移或滚动指令,而不是刷新整个GDDRAM。
本系统所采用的微控制器MC9S08QG8工作频率高达20MHz,有8kBytes的FLASH存储器,512Bytes的RAM。如果处理器仅用来完成图像数据的变换和GDDRAM的刷新是没有问题的,但是处理器还要进行数字滤波等处理,难以完成所有的工作,因此系统采用偏移或滚动指令来实现平动。
显示模块与信源的通讯
为了方便与信源接口,本系统采用MC9S08QG8自带的SPI控制器,提供SPI接口作为信号输入通道。考虑到显示模块可能工作在比较恶劣的场合,通讯线缆连接固定的信源和振动的显示模块,会因为长期的弯曲而疲劳破坏,本系统特意设计集成了单片射频收发芯片,可以进行短距离无线数据传输。单片射频收发芯片采用挪威Nordic VLSI公司推出的单片射频收发芯片nRF905,它能简单地实现200m范围内的传输速率在100kb/s内的数据传输。
硬件描述
本系统的硬件框图如图5所示。整个硬件系统由微控制器电路、加速度传感器电路、滤波器电路、OLED电路、射频收发电路和稳压电路组成。
本系统所设计的微控制器电路如图6所示,MC9S08QG8包含上电复位电路(POR)和内部时钟源(ICS),这会简化微控制器电路且减少外部时钟电路造成的高频干扰。MC9S08QG8具有单线的背景调试接口(BDM),能够进行实时总线捕捉,系统采用BDM进行系统调试并附加LED作为工作指示。
OLED电路