基于FPGA的LED体三维显示设计方案
时间:11-10
来源:互联网
点击:
摘 要: 基于人眼视觉暂留特性及LED 的高速发光特性, 设计了一套LED 体三维显示系统。首先利用Matlab 生成三维数据, 通过红外模块传输到显示驱动电路; 其次快速旋转LED 阵列, 由角度编码器获取旋转角度值, 并根据角度值计算对应的二维截面图形; 最后通过调制LED 的发光与消隐实现相应的显示。该系统基于24×16 二维LED 阵列, 具有69120个体像素, 实现了空间尺寸为Φ9414 mm ×66.8 mm 的稳定柱体内三维显示。
引 言
众所周知, 视觉是人类感知世界的最重要的方式, 而现实生活中的所有物质形态都是以三维空间而客观存在。三维显示能真正地再现客观世界的立体空间, 提供更符合人们观察习惯的交流方式, 有助于人们在综合运用各种深度暗示之后, 通过大脑的计算感知而获得真实、丰富、可靠的视觉体验, 对社会的发展以及在科技、经济等方面的发展具有重要的作用。
目前, 三维显示大致可以分为四类: 体视三维显示、全息三维显示、透视三维显示和体三维显示 ,其显示的原理和特点如表1 所示。
1 LED 体三维显示系统设计
1.1 整体方案
由于人眼具有视觉暂留的特性, 即人类视觉对亮度改变的跟踪会由于意识处理延迟而滞后。基于此特性, 利用电机驱动置于对称转轴两侧的发光二极管阵列, 使之高速旋转, 周期性地扫出一个柱体空间。同时, 寻址驱动控制电路根据需要调制不同时刻LED阵列的发光状态, 这样通过快速显示一幅幅二维图像截面序列来实现三维显示。由于人眼视觉暂留时间约为50~100ms, 当电机转速超过10r/s时, 人便不会有闪烁的感觉, 而是看到三维的立体图像。根据此原理可设计如图1 所示的LED体三维显示系统。
利用计算机生成三维数据再通过数据传输电路把数据传输到旋转驱动板上面的存储器中, 并且由角度编码器来测试电机的旋转角度并把信号送给FPGA , 然后由FPGA 根据采集的角度编码器输出信号驱动LED 屏显示并按时刷新LED 显示屏。同时, 整个旋转驱动板在电机的驱动下快速的旋转, 快速显示一幅幅二维截面图像来实现三维显示。
1.2 三维数据生成
利用Matlab 软件的强大功能, 首先可以通过im read ()、im f info ()、m eshgrid ()、m eshc () 和su rf ()等语句来实现具有灰度值的三维图像, 假设获得的三维图像角坐标为P (X0, Y0, Z0)。
令LED阵列旋转所得的圆柱空间中LED 灯的柱坐标为F ( r, H, z ) , 根据柱坐标与直角坐标的转换关系, 求得空间LED灯的三维直角坐标E (X 1, Y 1,Z 1) 可表示如下:
最后, 令D(X2, Y2, Z2) = P(X0, Y0, Z0) ∩E (X1, Y1, Z1 ) 求出该显示的L ED 灯的三维直角坐标, 以此作为三维数据的信息源。
从Matlab 610 版本开始,Mathworks 公司在软件中增加了设备控制箱( Instrument controltoolbox ) , 提供对RS2232/RS2485 通信标准的串口通信的正式支持。因此本系统使用该工具箱的serial 类及fopen、fw rite 等函数, 通过RS2232 串口并利用数据传输电路把获得的三维图像数据传输到LED 驱动电路板上。
1.3 数据传输电路
三维图像数据利用设备控制箱通过RS2232 串口后, 再利用红外编解码技术把数据传到旋转的LED驱动板上, 其整个数据传输的通讯结构图如图2 所示。
数据传输电路中的红外接收解调模块选择Vishay 公司的TSOP1738, 其内部电路功能已包括把接收到的载波频率为38 kHz 的脉冲调制红外光信号转化为电信号, 并由前放大器和自动增益控制电路进行放大处理。然后, 通过带通滤波器进行滤波, 滤波后的信号由解调电路进行解调。最后, 由输出级电路进行反向放大输出。
所以, 选用此红外接收模块只要把其数据输出直接送到FPGA 处理即可。经实验测定, 利用此红外传输电路传输数据, 速率最高可达1 kB/ s。
引 言
众所周知, 视觉是人类感知世界的最重要的方式, 而现实生活中的所有物质形态都是以三维空间而客观存在。三维显示能真正地再现客观世界的立体空间, 提供更符合人们观察习惯的交流方式, 有助于人们在综合运用各种深度暗示之后, 通过大脑的计算感知而获得真实、丰富、可靠的视觉体验, 对社会的发展以及在科技、经济等方面的发展具有重要的作用。
目前, 三维显示大致可以分为四类: 体视三维显示、全息三维显示、透视三维显示和体三维显示 ,其显示的原理和特点如表1 所示。
表1 各类三维显示原理及特点
本文通过旋转24×16 二维LED 阵列实现了具有69120个体像素, 空间尺寸为Φ9414 mm ×6618mm 柱体内的三维显示, 文中论述了系统的整体结构、显示原理及其各组成部分的实现方法。最后并以显示“茶壶”为例, 对此体三维显示系统进行了分析和讨论。
1 LED 体三维显示系统设计
1.1 整体方案
由于人眼具有视觉暂留的特性, 即人类视觉对亮度改变的跟踪会由于意识处理延迟而滞后。基于此特性, 利用电机驱动置于对称转轴两侧的发光二极管阵列, 使之高速旋转, 周期性地扫出一个柱体空间。同时, 寻址驱动控制电路根据需要调制不同时刻LED阵列的发光状态, 这样通过快速显示一幅幅二维图像截面序列来实现三维显示。由于人眼视觉暂留时间约为50~100ms, 当电机转速超过10r/s时, 人便不会有闪烁的感觉, 而是看到三维的立体图像。根据此原理可设计如图1 所示的LED体三维显示系统。
利用计算机生成三维数据再通过数据传输电路把数据传输到旋转驱动板上面的存储器中, 并且由角度编码器来测试电机的旋转角度并把信号送给FPGA , 然后由FPGA 根据采集的角度编码器输出信号驱动LED 屏显示并按时刷新LED 显示屏。同时, 整个旋转驱动板在电机的驱动下快速的旋转, 快速显示一幅幅二维截面图像来实现三维显示。
1.2 三维数据生成
利用Matlab 软件的强大功能, 首先可以通过im read ()、im f info ()、m eshgrid ()、m eshc () 和su rf ()等语句来实现具有灰度值的三维图像, 假设获得的三维图像角坐标为P (X0, Y0, Z0)。
令LED阵列旋转所得的圆柱空间中LED 灯的柱坐标为F ( r, H, z ) , 根据柱坐标与直角坐标的转换关系, 求得空间LED灯的三维直角坐标E (X 1, Y 1,Z 1) 可表示如下:
其中r, H, z 均为整数, 且有: - 12< r≤12, 0< H≤360, 0< z ≤16。
最后, 令D(X2, Y2, Z2) = P(X0, Y0, Z0) ∩E (X1, Y1, Z1 ) 求出该显示的L ED 灯的三维直角坐标, 以此作为三维数据的信息源。
从Matlab 610 版本开始,Mathworks 公司在软件中增加了设备控制箱( Instrument controltoolbox ) , 提供对RS2232/RS2485 通信标准的串口通信的正式支持。因此本系统使用该工具箱的serial 类及fopen、fw rite 等函数, 通过RS2232 串口并利用数据传输电路把获得的三维图像数据传输到LED 驱动电路板上。
1.3 数据传输电路
三维图像数据利用设备控制箱通过RS2232 串口后, 再利用红外编解码技术把数据传到旋转的LED驱动板上, 其整个数据传输的通讯结构图如图2 所示。
在单片机串口模块中选用电平转换芯片MAX232 芯片实现TTL 电平与RS2232 电平的双向转换, 从而把三维图像数据传送到单片机的串行接收端口RXD 上, 然后单片机再通过其发送端口TXD把数据送出。图中的调制与红外发射模块通过由N E555 芯片构成的多谐振荡电路调制成38 kHz 的载波信号, 最后利用红外发射管TSAL6238 以光脉冲的形式向外发送。为了保证红外接收数据的准确性,N E555 产生的振荡频率要尽可能接近38 kHz,所以在选择电阻电容时要选用精密的元件并保证电源电压的稳定性。
数据传输电路中的红外接收解调模块选择Vishay 公司的TSOP1738, 其内部电路功能已包括把接收到的载波频率为38 kHz 的脉冲调制红外光信号转化为电信号, 并由前放大器和自动增益控制电路进行放大处理。然后, 通过带通滤波器进行滤波, 滤波后的信号由解调电路进行解调。最后, 由输出级电路进行反向放大输出。
所以, 选用此红外接收模块只要把其数据输出直接送到FPGA 处理即可。经实验测定, 利用此红外传输电路传输数据, 速率最高可达1 kB/ s。
LED 红外 电路 编码器 二极管 FPGA Mathworks 单片机 555 电阻 电容 电压 Vishay 放大器 滤波器 电路图 电流 电子 相关文章:
- 我的FPGA学习历程(05-23)
- 适用于消费性市场的nano FPGA技术(09-27)
- Actel数模结合FPGA的远程控制器设计(05-13)
- 专用键盘接口芯片一种CPLD实现方案(06-29)
- CPLD为控制核心16位高精度数字电压表设计(06-25)
- 基于FPGA的发电机组频率测量计的实现(07-22)