基于AVR单片机的自由立体显示背光控制系统
理,然后按照一定的时序发送给驱动芯片。控制电路更新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所示。
4 实验
在实验中采用NASA的航拍视差图像对,观看距离490~550 mm,观看视角±30°以内。实际得到的图像如图5所示,其中图5(a)是观察者左眼看到的图像。图5(b)是观察者右眼看到的图像,由于这两幅图像存在视差,最终就会在大脑中融合成一幅具有立体感的图像。
Kalman预测使得LED背光的刷新频率由25 Hz提高到50 Hz,跳动感有所减弱。此外,为了验证Kalman滤波算法的效果,手工标记了1 500帧图片中左右两眼的精确位置,单片机通过串口将滤波值以及1/2帧处的预测值回发给上位机。定义:
式中:△反映了与真实值的偏移程度。Kalman平衡滤波前,△1=25.56;滤波后,△2=20.45,检测偏差改善了19.99%,由图6可以直观地看出平衡Kalman滤波改善了定位的效果。
本文介绍的自由立体显示系统只需要一对立体图片,就可以获得很好的立体效果。采用价格合理、性能优越的单片机控制系统,保证了性能与成本的兼顾。基于匀速运动模型的Kalman滤波器成功改善了系统的性能。
显示 背光 控制系统 立体 自由 AVR 单片机 基于 相关文章:
- 蓄电池化成控制系统中显示功能的实现(11-05)
- 基于DSP实现的LCD液晶屏显示技术(06-04)
- 军事指挥系统中VxWorks下汉字显示技术(07-16)
- DSP在LED显示中的应用(08-21)
- 基于Android系统的影音播放器开发(03-25)
- 基于MC9S12XS128的单片机开发板的设计(08-13)