您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机基于AVR单片机的自由立体显示背光控制系统 正文
基于AVR单片机的自由立体显示背光控制系统

基于AVR单片机的自由立体显示背光控制系统

点击数:7300 次   录入时间:03-04 12:01:37   整理:http://www.55dianzi.com   AVR单片机

  内容摘要:为实现立体显示,设计并实现了基于单片机的LED背光控制系统。该系统采用单片机ATmega128为控制处理器,加以外围电路,利用RS 232接口实现与PC机人眼跟踪模块的实时通信。同时,充分利用下位机资源,在单片机上实现Kalman滤波,提高人眼定位精度,并利用Kalman预测,将跟踪速率提高一倍,有效减轻了显示器的闪烁现象。

  关键词:自由立体显示;LED;ATmega128;RS 232;Kalman滤波

  引言

  人眼视觉是立体的,立体的视觉带给人类的不仅仅是可以判断观看对象的空间状态,它和颜色一起,使这个世界更加丰富多彩、变化万千。2010年伊始,随着立体电影《阿凡达》的热映,在世界各地掀起了一股3D的热潮,3D技术成为各界关注的焦点。三菱、索尼、LG、三星等各大显示器厂商相继推出自己的立体电视,并寄希望于立体电视市场的开发。

  立体显示技术经历了多年的发展,无论在显示质量,还是实现方法上都有了很大的进步,自由立体显示由于不需要佩戴任何辅助工具,因此正在成为立体显示发展的方向。其中,以LCD为基础,基于视差的立体显示技术由于技术成熟且实现工艺不复杂,成为最有可能实现商业化的热门技术之一。基于AVR单片机的自由立体显示系统正是在这一技术的基础上,利用特殊的光学部件和LED照明阵列实现的。

  Kalman滤波是一种线性最小方差估计,算法采用递推形式在时域内滤波,数据存储量小,预测精度高,适用于对多维随机过程进行估计,这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测)。常用于从一组有限的,包含噪声的,对物体位置的观察序列中得到关于物体位置的好的估计。在自由立体显示系统中,单片机在进行电路控制的同时还对人眼位置信息进行Kalman滤波和预测。

  1 系统的工作原理及总体方案设计

  1.1 立体显示的实现原理

  视差立体的实现原理是将一对立体图像分别送入人的左右眼睛,经过大脑融合后就可以产生立体效果。根据这一原理,设计了一款立体显示器,17寸LCD的奇数行和偶数行分别显示左右立体图像,光学部分利用菲涅尔透镜控制光路的走向,垂直分光装置使位于不同垂直位置的两组LED背光源只能分别照亮LCD屏幕的奇数行或偶数行,如图1所示。同时,两组光源的水平位置也有差别,这样就为左右眼分别提供了只能看到奇数行或偶数行的可视区域,如图2所示。当观察者在屏幕前自由移动的时候,通过摄像头探测到人眼的位置信息,用单片机控制LED照明阵列在适当的地方点亮,保证始终提供正确的可视区域,实现自由立体显示。

a.jpg



www.55dianzi.com


1.2 基于单片机的Kalman滤波的预测实现
    Kalman信号模型包括状态方程和测量方程。状态方程描述了系统当前状态和前一状态的状态转移关系。如下所示:
b.jpg
    平稳条件下,Q,R是恒定的。Kalman滤波的过程就是根据观测值和信号模型恢复出原始信号的过程。
    滤波器的输出由式(4)给出:
    c.jpg
    式中:d.jpg称为测量过程的革新或残余,它代表了预期的测量值和实际测量值之间的误差;K是增益因子,用于最小化后验均方误差,在滤波过程中会动态发生改变,如果测量更准确K将越大,模型估计越准确K越小。K的值和模型估计误差P相关联,K和P由下面式子迭代算出。
    e.jpg
    f.jpg
    式(5),式(6)为Kalman滤波的预测阶段,使用上一状态的估计,做出对当前状态的估计。式(7)~(9)为Kalman滤波的更新阶段,利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的滤波值。
    Kalman滤波预测跟踪有一个启动过程,经过若干次迭代后。Kalman滤波才会趋于稳定。在该系统中,采用匀速直线运动模型,状态方程为:
    g.jpg
    式中:x(n)代表眼睛(左眼或右眼)位置的水平坐标;v(n)代表眼睛运动的速度;t代表时间间隔;wk-1代表这两个变量的模型误差,它的协方差阵定义为:
h.jpg



www.55dianzi.com


    对于模型参数Q11,Q22和R,由PC机辅助计算得到。给定一组测量位置和实际位置,在Q11,Q22,R三维空间按等量的方法选取格点,分别训练不同参数下的Kalman滤波器对检测数据进行滤波,如果滤波后的位置与真实值越接近,就说明这组滤波器参数越优秀。得到了最优参数后,就可以按照前面的介绍,进行不断“预测一修正”的Kalman滤波,获得精度更高的人眼位置(式(8)),并利用式(5)预测t/2时间后的人眼位置,此时增益矩阵:
    i.jpg
1.3 系统的总体方案设计
    自由立体显示系统由计算机、RS 232通信电路、单片机控制电路、驱动电路和LED照明阵列电路组成,结构框图如图3所示。

+66556

  上位机完成人眼检测算法,并且把人眼位置信息通过RS 232送给单片机。单片机选择AVR系列中功能最强的ATmega128,主要完成对人眼位置数据的处理,然后按照一定的时序发送给驱动芯片。控制电路更新LED照明阵列时,按地址逐个发送数据“1”或“0”,控制每一列LED的点亮与否。

  2 硬件设计

  2.1 驱动电路

  根据背光源亮度恒定的要求,LED阵列的驱动采用聚积科技生成的16位恒流LED驱动芯片MBI5026,其内建的CMOS移位缓存器与栓锁功能,可以将串行输入的数据转换成并行输出的格式,电流的输出值可以通过一个外接电阻进行调整,高达25 MHz的时钟频率可以满足大量数据传输的要求。

  2.2 控制电路

  ATmega128是ATMEL公司推出的一款8位RISC结构高速低功耗单片机,在16 MHz时钟频率时系统性能可达16 MIPS,内带128 KB的FLASHRO M,4 KB的E2PROM、4 KB系统SRAM;可扩展64 KB外部存储器;两个8位定时器/计数器,两个16位定时器/计数器;两路UART通信口,可工作在异步或同步方式。在与上位机通信的过程中,需要采用MAX232电平转换芯片将PC机串口输出的RS 232电平转换成单片机能接受的TTL电平。

  3 软件设计

  软件设计的总体思路是PC机检测到人眼的位置信息,给出左眼的位置数据和右眼的位置数据,单片机在得到这两个数据后,启动TC1开始t/2时间的定时,同时开始Kalman滤波,使用由式(8)得到的滤波值刷新LED照明阵列。定时器中断服务处理程序主要包括清零TCCR1B以停止定时器,按照t/2时刻人眼位置的预测值刷新LED照明阵列。这样,在人眼检测速率为每秒25帧的情况下,可以将LED的刷新速率提升到每秒50次,有效减轻了可视区域随观察者位置变化而带来的跳跃感。

  程序实现对系统的初始化,包括I/O端口的初始化、TC1的初始化、中断设置、串行口工作方式选择、各种变量的初值装入。波特率设置为115 200 b/s,数据格式采用8位数据位,1位起始位,1位停止位。初始化完成后,程序进入等待状态,若上位机发送数据,则进入相应的串行口中断服务处理程序,如图4所示。44

[1] [2]  下一页


本文关键字:单片机  控制系统  AVR单片机单片机-工控设备 - AVR单片机