基于DMX512协议的泛光照明控制系统
2022-12-02殷文龙田由甲
殷文龙, 田由甲
[上海电器科学研究所(集团)有限公司, 上海 200063]
0 引 言
随着城市化的不断发展,城市夜景逐渐丰富多彩,而伴随着LED照明应用的快速发展,LED照明控制技术也急需提高。DMX512协议因为其标准化、稳定性[1-4],单只灯具故障不影响其他节点灯具等优点,在室外泛光亮化照明领域占据着重要的地位[5-6],因此,一个智能化、直观、可视化的泛光照明控制系统平台,对城市夜晚能够呈现出丰富多彩的夜景,体现出不同城市的文化氛围,不断提高人们的生活品质起着至关重要的作用。
通过设计一种能够自动根据灯具的排布,可将任意的动态和静态的播放素材,在线模拟实际播放效果,并将播放素材转换成DMX512协议格式,下发至控制器控制不同种类的LED灯的泛光照明控制系统。
1 泛光照明控制系统
基于DMX512协议设计的泛光照明控制平台主要有1 024个带RGB功能的LED点光源,由LED供电电源、控制器和上位机等几个部分组成。1 024个RGB LED点光源由每列32个,共32列组成了32×32的方形LED矩阵,上位机平台基于pyqt+opencv开发,软件平台能够将任意动态和静态图像进行格式转换、根据实际的布灯顺序和数量转换播放文件格式,能够在线测试在实际LED灯具上的播放效果等,该平台软件在实际使用过程中,可以在线连接平台实时播放,也可以将播放内容下发给控制器脱机播放。试验室泛光照明控制平台模型测试系统如图1所示。
2 系统设计
设计的泛光照明系统软件平台由泛光照明控制器软件和上位机平台软件组成,其中泛光控制器软件主要对实际的布灯方式和数量进行数据编排和模型建设,并将上位机根据播放素材转换的矩阵数据进行解析封装进行编程,上位机平台软件主要实现泛光播放素材的压缩处理、解析识别、转换成RGB数据矩阵和在线实际灯具情况模拟效果的编程[7-9]。
2.1 泛光控制器软件设计
(1) 假定gif动画尺寸为h×w(h为图片高度,w为图片宽度)。任意gif动画可以看作n幅静态图案所组成的序列。其中每一幅静态图案可看作由h行、w列个像素组成一个矩阵,矩阵中每个像素点包含一个长度为3的一维数组(r,g,b),表征该像素点的颜色值。
通过python opencv库加载原始gif动画文件后,得到一个n×h×w×3的多维数组Source Array。gif动画解析数组图如图2所示。
(2) 从Source Array中单独取出一帧,忽略(r,g,b)值,可将其看作一个h行w列数组。已知LED灯光矩阵为32×32点阵,为了将h×w矩阵向32×32矩阵转换,需要对h×w矩阵进行区域框选,以及矩阵分割(默认h>32,w>32)。
32×32框选区域为蒙板矩阵,设原始图像左上角坐标为(0,0),假定蒙板矩阵的左上角顶点在原始像素矩阵中的坐标值为(y,x),即蒙板矩阵距离原始图像左上角垂直距离为y像素,水平距离为x像素。设蒙板矩阵单个元素长度占3像素,则进行矩阵分割后,蒙板矩阵的(0,0)元素为一个3×3像素的矩阵[10-12]。像素矩阵坐标图如图3所示。由图可知矩阵中每个元素与原始像素矩阵的位置对应关系以及对于蒙板矩阵中的任一点(n,m),其与原始像素矩阵中的点位的坐标换算关系。
由此可知,可以根据蒙板矩阵点坐标(n,m)及蒙板矩阵左上角顶点像素坐标(y,x),计算出蒙板矩阵中每个像素点在原始像素矩阵中的坐标值,从而获取蒙板矩阵中每个像素点的RGB值。
(3) 遍历蒙板矩阵中所有元素,对每个元素(3×3矩阵)逐一执行RGB平均值计算,获取一个新的32×32矩阵。
(4) 遍历原始图像矩阵序列,循环执行步骤(2)~步骤(3)共计n次(gif动画一共有n帧)。则最终获取到一个n×32×32×3的多维数组DMX Array。这个数组就是后续输出DMX512灯光控制信号的数据源。将该数组保存至matrix.npy文件中,并备份至DMX512控制器中。
2.2 泛光动画效果的播放原理
典型DMX512信号数据包格式如图4所示。
对于DMX512控制器,其主要工作内容为解析matrix.npy中保存的蒙板矩阵中每一幅静态图像(matrix.npy保存了一个n×32×32×3的数组,即matrix.npy保存了n幅32×32的静态图像)的像素点的RGB值,并以该像素点所对应LED灯串接的顺序,以(r,g,b)三帧数据为一组,逐一拼接组包成DMX512数据包。
组包完成后,以固定的时间间隔下发这些数据包,控制LED灯改变颜色,就能形成灯光动画效果。设播放帧率为f,则LED灯光的变化控制时间间隔t=1/f。
由于LED灯的总数为32×32=1 024个,而单个DMX512数据包最多表达(512-2)/3=170个LED灯,不足以表达所有1 024个LED灯的颜色信息。由此可知,一幅静态图像,至少需要1 024/[(512-2)/3]=6个DMX512数据包来表达。因此,在实际应用中,以6个DMX512数据包为一组(代表一幅完整的静态图像),以固定时间间隔(播放频率)进行下发。
单个DMX512数据包的信号传输速度约为44 μs,从第1个DMX512数据包到第6个DMX512数据包之间的时延约为44×(6-1)=220 μs,极小的时延误差人类肉眼是无法分辨出来的。因此对于每一帧静态图像,人眼看上去1 024个灯都是同步变化的。播放素材协议解析图如图5所示。
2.3 上位机平台软件设计
上位机软件采用pyqt+opencv开发,利用opencv库导入并解析原始gif动画素材。逐帧获取蒙板上各像素点的RGB值,最终生成矩阵文件matrix.npy[13-16]。播放素材在线模拟图如图6所示。
2.4 LED灯具排布
为能更好地展示控制系统的实际效果,在试验室搭建了1 024个RGB功能的LED灯,共32列,每列32个LED,组成了一个方形LED矩阵,本次LED供电电压是DC 5 V,由于LED数量较多,直接供电压降较大,所以采用分组供电,用分压器分成4组对1 024个LED供电。1 024个LED灯排布情况如图7所示。LED接线采用首位串联,中间设置分组加压供电。
3 系统测试
泛光照明控制系统设计完成后,需要对整个系统的软硬件以及系统实际效果进行测试,确保系统能正常稳定运行,实现设计的功能。
3.1 网络调试
泛光照明控制系统在实际项目使用过程中,将有多台主控制器与监控平台进行通信,因此需要给每一台主控制器进行IP的分配,并且在系统运行之前需要对每一台控制器进行网络调试,搭建的控制系统只设置一台主控制器,分配的IP为192.168.3.200,子网为255.255.255.0,设置完成后将主控制器通过交换机和监控平台PC进行通信测试。
3.2 在线播放素材转换调试
主控制器网络通信测试通过后,开始测试上位机平台,在线将不同播放素材转换为RGB矩阵数组,并根据实际布灯情况模拟素材在LED灯上的实际播放效果,素材转换的点数是按照试验室搭建的32×32共计1 024个方形LED矩阵进行格式转换,在测试时任意选取不同素材文件进行转换,并测试模拟效果。播放素材协议转换效果图如图8所示。
3.3 实际播放效果调试
根据上位机在线模拟不同素材转换格式并测试播放效果之后,将上位机转成不同素材的RGB数组矩阵下发给泛光控制器,并通过播放器去控制1 024个LED灯测试实际播放的效果。不同素材在LED灯上效果如图9所示。
4 结 语
基于DMX512协议的智能泛光控制系统可极大提高了泛光照明、景观亮化控制的智能化水平,能在本套监控软件平台上直观、形象地展示任意素材在不同布灯样式下的实际播放效果,并能够直接将播放素材转换成DMX512协议格式的RGB矩阵数据,下发给控制器控制LED灯,通过在试验室搭建的1 024个LED灯实际验证了本系统的稳定性和可靠性。