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

发布者:bemaii最新更新时间:2012-03-17 来源: 现代电子技术 关键字:自由立体显示  LED  ATmega128  RS232 手机看文章 扫描二维码
随时随地手机看文章
0 引言
    人眼视觉是立体的,立体的视觉带给人类的不仅仅是可以判断观看对象的空间状态,它和颜色一起,使这个世界更加丰富多彩、变化万千。2010年伊始,随着立体电影《阿凡达》的热映,在世界各地掀起了一股3D的热潮,3D技术成为各界关注的焦点。三菱、索尼、LG、三星等各大显示器厂商相继推出自己的立体电视,并寄希望于立体电视市场的开发。
    立体显示技术经历了多年的发展,无论在显示质量,还是实现方法上都有了很大的进步,自由立体显示由于不需要佩戴任何辅助工具,因此正在成为立体显示发展的方向。其中,以LCD为基础,基于视差的立体显示技术由于技术成熟且实现工艺不复杂,成为最有可能实现商业化的热门技术之一。基于AVR单片机的自由立体显示系统正是在这一技术的基础上,利用特殊的光学部件和LED照明阵列实现的。
    Kalman滤波是一种线性最小方差估计,算法采用递推形式在时域内滤波,数据存储量小,预测精度高,适用于对多维随机过程进行估计,这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测)。常用于从一组有限的,包含噪声的,对物体位置的观察序列中得到关于物体位置的好的估计。在自由立体显示系统中,单片机在进行电路控制的同时还对人眼位置信息进行Kalman滤波和预测。

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

a.jpg[page]

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

[page]

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

j.jpg


    上位机完成人眼检测算法,并且把人眼位置信息通过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所示。

k.jpg

[page]

4 实验
    在实验中采用NASA的航拍视差图像对,观看距离490~550 mm,观看视角±30°以内。实际得到的图像如图5所示,其中图5(a)是观察者左眼看到的图像。图5(b)是观察者右眼看到的图像,由于这两幅图像存在视差,最终就会在大脑中融合成一幅具有立体感的图像。

l.jpg


    Kalman预测使得LED背光的刷新频率由25 Hz提高到50 Hz,跳动感有所减弱。此外,为了验证Kalman滤波算法的效果,手工标记了1 500帧图片中左右两眼的精确位置,单片机通过串口将滤波值以及1/2帧处的预测值回发给上位机。定义:
    m.jpg
    式中:△反映了与真实值的偏移程度。Kalman平衡滤波前,△1=25.56;滤波后,△2=20.45,检测偏差改善了19.99%,由图6可以直观地看出平衡Kalman滤波改善了定位的效果。

n.jpg



5 结语
    本文介绍的自由立体显示系统只需要一对立体图片,就可以获得很好的立体效果。采用价格合理、性能优越的单片机控制系统,保证了性能与成本的兼顾。基于匀速运动模型的Kalman滤波器成功改善了系统的性能。

关键字:自由立体显示  LED  ATmega128  RS232 引用地址:基于AVR单片机的自由立体显示背光控制系统

上一篇:AVR单片机定点运算及数制转换子程序
下一篇:基于AVR单片机的实用车载空调控制器电路

推荐阅读最新更新时间:2024-03-16 12:55

PPTC器件保护高亮度LED照明系统
随着照明技术从极为耗电的白炽灯转为冷阴极荧光灯(CCFL),再发展到现在的发光二极管(LED)灯,可以很清楚地看到在最终用户愿意为更绿色的照明支付更高成本的同时,他们也有一个内在的期望即寿命更长和更高的可靠性,这才将是他们投资的净效益。 在满足这些期望时,LED设计工程师们必须考虑到影响产品性能和寿命的各种不同的变化因素。从电源管理到功率密度,再到过压和过温保护,LED技术的独特性带来了较陈旧的与技术不相干的各种新挑战。 凭借改善的芯片设计和材料,LED技术已经快速向前发展,促使其向更亮、更高效节能、寿命更持久的光源快速发展,并能够在一个更大的范围内应用。尽管技术日益普及,但仍然有一个事实,即过多的热量和不恰当的
[电源管理]
PPTC器件保护高亮度<font color='red'>LED</font>照明系统
关于led灯检测的质量问题分析
生活中除了衣食住行之外,LED灯光也是我们常见且应用广泛的物品,随着社会的进步,人们对于人造光的应用变得更加的依赖,常见有家用LED节能灯、LED植物生长灯等,今天我们就来聊聊LED节能灯的质量检测问题。LED灯由LED模块、灯头、内置驱动、散热及灯罩等组成,固需要从LED灯的安全性能和电磁兼容(EMC)等方面进行检测评估。华通威是权威的灯具检测机构,以下介绍LED灯的安全性能检测模块。 LED灯安全性能模块:常见的自镇流LED灯是指灯头符合IEC 60061-1,内含LED光源和保持稳定燃点所必需的元件并使之为一体的灯光设备。这种灯一般适用于家庭等类似场所,供照明使用,其在不损坏其结构时是不可拆卸的。它的功率需要保持在60
[嵌入式]
STM32之定时器中断控制LED闪烁
上篇博客我们是用延时函数实现了LED的闪烁,今天我们使用STM32的定时器来使LED闪烁。 关于32的定时器的种类,今天我在这先不做过多的说明,有时间我会再另写一篇博客来专门介绍32的定时器。今天我们使用32的定时器3来产生中断,以实现LED的闪烁。 今天我们需要配置的有LED和定时器,首先来配置LED,我们还是使用正点原子精英版开发板上的DS0来进行实验 配置LED的过程还是和上篇博客中点亮LED的方法一样,我就不再过多的说明,只贴下代码 led.c文件如下 #include led.h void led_init(void) { GPIO_InitTypeDef GPIO_InitStructure
[单片机]
STM32之定时器中断控制<font color='red'>LED</font>闪烁
RS232,RS422,RS485的由来
一、RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-4
[嵌入式]
LED成战略新兴产业 产业链仍需加强
     由中国照明学会与深圳市众明半导体照明有限公司共同主办的“首届LED普通照明产品与技术研讨会”今日在京召开。来自国家相关部委、中国照明学会、照明领域的专家和学者百余人出席会议。     据中国照明学会负责人介绍,此次研讨会旨在配合国家“节能减排”政策的实施,加快推广高效照明产品工作的发展。     半导体照明(LED)作为一种新型光源,由于具有低温、省电、长寿命、无二次污染等特点,在低碳、节能、环保等一连串绿色概念盛行的今天,LED成为全球争相竞逐的一个新兴产业“制高点”. LED灯素有“绿色照明能源”之称,产品不含汞、铅等国际限制的六种有害物质,在同样亮度下,耗电仅为普通白炽灯的1/10,其寿命可以延长50倍,已
[电源管理]
直流驱动电源LED调光技术介绍
用调正向电流的方法来调亮度要改变LED的亮度,是很容易实现的。首先想到的是改变它的驱动电流,因为LED的亮度是几乎和它的驱动电流直接成正比关系。   调节正向电流的方法   调节LED的电流最简单的方法就是改变和LED负载串联的电流检测电阻,几乎所有DC-DC恒流芯片都有一个检测电流的接口,是检测到的电压和芯片内部的参考电压比较,来控制电流的恒定。但是这个检测电阻的值通常很小,只有零点几欧,如果要在墙上装一个零点几欧的电位器来调节电流是不大可能的,因为引线电阻也会有零点几欧了。所以有些芯片提供一个控制电压接口,改变输入的控制电压就可以改变其输出恒流值。    调正向电流会使色谱偏移   然而用调正向电流的方法来调亮度会产生一
[电源管理]
LED测试技术基本知识
【正向电压】 通过发光二极管的正向电流为确定值时,在两极间产生的电压降。    【反向电流】 加在发光二极管两端的反向电压为确定值时,流过发光二极管的电流。    【峰值波长】 光谱辐射功率最大的波长。    【半强度角】 在发光(或辐射)强度分布中,发光(或辐射)发光强度大于等于最大强度一半构成的角度。    【 主波长 】 任何一个颜色都可以看作为用某一个光谱色按一定比例与一个参照光源(如CIE标准光源A、B、C等,等能光源E,标准照明体D65 等)相混合而匹配出来的颜色,这个光谱色就是颜色的主波长。颜色的主波长相当于人眼观测到的颜色的色调(心理量)。若已获得被测led器件的色度坐标,就可以采用等能白光E
[电源管理]
使用STM32寄存器点亮LED
事先声明哦,我也是最近才开始学32的,不过我会尽可能详细的讲解这些小知识点 我们口中常说的LED灯其实是指LED发光二极管,关于这一点涉及到的知识点,我已经在51单片机教程中提及(同点亮LED灯),故而不再详述。 刚开始接触STM32的时候,觉得他的操作明显区别于51,比如我们点亮一个LED灯,直接控制相应的IO口即可;但32不一样,我们需要先设置时钟控制寄存器 RCC_APB2ENR|=1 4; //一共32位 然后设置它的工作方式,输出速度。 GPIOC_CRL&=~(0x0f (4*i)); //控制第i+1个led GPIOC_CRL|=(3 (4*i)); //3可以表示为0011,然后在它的前面补零,凑
[单片机]
使用STM32寄存器点亮<font color='red'>LED</font>灯
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved