殷文龍, 田由甲
[上海電器科學(xué)研究所(集團(tuán))有限公司, 上海 200063]
隨著城市化的不斷發(fā)展,城市夜景逐漸豐富多彩,而伴隨著LED照明應(yīng)用的快速發(fā)展,LED照明控制技術(shù)也急需提高。DMX512協(xié)議因?yàn)槠錁?biāo)準(zhǔn)化、穩(wěn)定性[1-4],單只燈具故障不影響其他節(jié)點(diǎn)燈具等優(yōu)點(diǎn),在室外泛光亮化照明領(lǐng)域占據(jù)著重要的地位[5-6],因此,一個(gè)智能化、直觀、可視化的泛光照明控制系統(tǒng)平臺(tái),對(duì)城市夜晚能夠呈現(xiàn)出豐富多彩的夜景,體現(xiàn)出不同城市的文化氛圍,不斷提高人們的生活品質(zhì)起著至關(guān)重要的作用。
通過設(shè)計(jì)一種能夠自動(dòng)根據(jù)燈具的排布,可將任意的動(dòng)態(tài)和靜態(tài)的播放素材,在線模擬實(shí)際播放效果,并將播放素材轉(zhuǎn)換成DMX512協(xié)議格式,下發(fā)至控制器控制不同種類的LED燈的泛光照明控制系統(tǒng)。
基于DMX512協(xié)議設(shè)計(jì)的泛光照明控制平臺(tái)主要有1 024個(gè)帶RGB功能的LED點(diǎn)光源,由LED供電電源、控制器和上位機(jī)等幾個(gè)部分組成。1 024個(gè)RGB LED點(diǎn)光源由每列32個(gè),共32列組成了32×32的方形LED矩陣,上位機(jī)平臺(tái)基于pyqt+opencv開發(fā),軟件平臺(tái)能夠?qū)⑷我鈩?dòng)態(tài)和靜態(tài)圖像進(jìn)行格式轉(zhuǎn)換、根據(jù)實(shí)際的布燈順序和數(shù)量轉(zhuǎn)換播放文件格式,能夠在線測(cè)試在實(shí)際LED燈具上的播放效果等,該平臺(tái)軟件在實(shí)際使用過程中,可以在線連接平臺(tái)實(shí)時(shí)播放,也可以將播放內(nèi)容下發(fā)給控制器脫機(jī)播放。試驗(yàn)室泛光照明控制平臺(tái)模型測(cè)試系統(tǒng)如圖1所示。
設(shè)計(jì)的泛光照明系統(tǒng)軟件平臺(tái)由泛光照明控制器軟件和上位機(jī)平臺(tái)軟件組成,其中泛光控制器軟件主要對(duì)實(shí)際的布燈方式和數(shù)量進(jìn)行數(shù)據(jù)編排和模型建設(shè),并將上位機(jī)根據(jù)播放素材轉(zhuǎn)換的矩陣數(shù)據(jù)進(jìn)行解析封裝進(jìn)行編程,上位機(jī)平臺(tái)軟件主要實(shí)現(xiàn)泛光播放素材的壓縮處理、解析識(shí)別、轉(zhuǎn)換成RGB數(shù)據(jù)矩陣和在線實(shí)際燈具情況模擬效果的編程[7-9]。
(1) 假定gif動(dòng)畫尺寸為h×w(h為圖片高度,w為圖片寬度)。任意gif動(dòng)畫可以看作n幅靜態(tài)圖案所組成的序列。其中每一幅靜態(tài)圖案可看作由h行、w列個(gè)像素組成一個(gè)矩陣,矩陣中每個(gè)像素點(diǎn)包含一個(gè)長(zhǎng)度為3的一維數(shù)組(r,g,b),表征該像素點(diǎn)的顏色值。
通過python opencv庫(kù)加載原始gif動(dòng)畫文件后,得到一個(gè)n×h×w×3的多維數(shù)組Source Array。gif動(dòng)畫解析數(shù)組圖如圖2所示。
(2) 從Source Array中單獨(dú)取出一幀,忽略(r,g,b)值,可將其看作一個(gè)h行w列數(shù)組。已知LED燈光矩陣為32×32點(diǎn)陣,為了將h×w矩陣向32×32矩陣轉(zhuǎn)換,需要對(duì)h×w矩陣進(jìn)行區(qū)域框選,以及矩陣分割(默認(rèn)h>32,w>32)。
32×32框選區(qū)域?yàn)槊砂寰仃?設(shè)原始圖像左上角坐標(biāo)為(0,0),假定蒙板矩陣的左上角頂點(diǎn)在原始像素矩陣中的坐標(biāo)值為(y,x),即蒙板矩陣距離原始圖像左上角垂直距離為y像素,水平距離為x像素。設(shè)蒙板矩陣單個(gè)元素長(zhǎng)度占3像素,則進(jìn)行矩陣分割后,蒙板矩陣的(0,0)元素為一個(gè)3×3像素的矩陣[10-12]。像素矩陣坐標(biāo)圖如圖3所示。由圖可知矩陣中每個(gè)元素與原始像素矩陣的位置對(duì)應(yīng)關(guān)系以及對(duì)于蒙板矩陣中的任一點(diǎn)(n,m),其與原始像素矩陣中的點(diǎn)位的坐標(biāo)換算關(guān)系。
由此可知,可以根據(jù)蒙板矩陣點(diǎn)坐標(biāo)(n,m)及蒙板矩陣左上角頂點(diǎn)像素坐標(biāo)(y,x),計(jì)算出蒙板矩陣中每個(gè)像素點(diǎn)在原始像素矩陣中的坐標(biāo)值,從而獲取蒙板矩陣中每個(gè)像素點(diǎn)的RGB值。
(3) 遍歷蒙板矩陣中所有元素,對(duì)每個(gè)元素(3×3矩陣)逐一執(zhí)行RGB平均值計(jì)算,獲取一個(gè)新的32×32矩陣。
(4) 遍歷原始圖像矩陣序列,循環(huán)執(zhí)行步驟(2)~步驟(3)共計(jì)n次(gif動(dòng)畫一共有n幀)。則最終獲取到一個(gè)n×32×32×3的多維數(shù)組DMX Array。這個(gè)數(shù)組就是后續(xù)輸出DMX512燈光控制信號(hào)的數(shù)據(jù)源。將該數(shù)組保存至matrix.npy文件中,并備份至DMX512控制器中。
典型DMX512信號(hào)數(shù)據(jù)包格式如圖4所示。
對(duì)于DMX512控制器,其主要工作內(nèi)容為解析matrix.npy中保存的蒙板矩陣中每一幅靜態(tài)圖像(matrix.npy保存了一個(gè)n×32×32×3的數(shù)組,即matrix.npy保存了n幅32×32的靜態(tài)圖像)的像素點(diǎn)的RGB值,并以該像素點(diǎn)所對(duì)應(yīng)LED燈串接的順序,以(r,g,b)三幀數(shù)據(jù)為一組,逐一拼接組包成DMX512數(shù)據(jù)包。
組包完成后,以固定的時(shí)間間隔下發(fā)這些數(shù)據(jù)包,控制LED燈改變顏色,就能形成燈光動(dòng)畫效果。設(shè)播放幀率為f,則LED燈光的變化控制時(shí)間間隔t=1/f。
由于LED燈的總數(shù)為32×32=1 024個(gè),而單個(gè)DMX512數(shù)據(jù)包最多表達(dá)(512-2)/3=170個(gè)LED燈,不足以表達(dá)所有1 024個(gè)LED燈的顏色信息。由此可知,一幅靜態(tài)圖像,至少需要1 024/[(512-2)/3]=6個(gè)DMX512數(shù)據(jù)包來表達(dá)。因此,在實(shí)際應(yīng)用中,以6個(gè)DMX512數(shù)據(jù)包為一組(代表一幅完整的靜態(tài)圖像),以固定時(shí)間間隔(播放頻率)進(jìn)行下發(fā)。
單個(gè)DMX512數(shù)據(jù)包的信號(hào)傳輸速度約為44 μs,從第1個(gè)DMX512數(shù)據(jù)包到第6個(gè)DMX512數(shù)據(jù)包之間的時(shí)延約為44×(6-1)=220 μs,極小的時(shí)延誤差人類肉眼是無法分辨出來的。因此對(duì)于每一幀靜態(tài)圖像,人眼看上去1 024個(gè)燈都是同步變化的。播放素材協(xié)議解析圖如圖5所示。
上位機(jī)軟件采用pyqt+opencv開發(fā),利用opencv庫(kù)導(dǎo)入并解析原始gif動(dòng)畫素材。逐幀獲取蒙板上各像素點(diǎn)的RGB值,最終生成矩陣文件matrix.npy[13-16]。播放素材在線模擬圖如圖6所示。
為能更好地展示控制系統(tǒng)的實(shí)際效果,在試驗(yàn)室搭建了1 024個(gè)RGB功能的LED燈,共32列,每列32個(gè)LED,組成了一個(gè)方形LED矩陣,本次LED供電電壓是DC 5 V,由于LED數(shù)量較多,直接供電壓降較大,所以采用分組供電,用分壓器分成4組對(duì)1 024個(gè)LED供電。1 024個(gè)LED燈排布情況如圖7所示。LED接線采用首位串聯(lián),中間設(shè)置分組加壓供電。
泛光照明控制系統(tǒng)設(shè)計(jì)完成后,需要對(duì)整個(gè)系統(tǒng)的軟硬件以及系統(tǒng)實(shí)際效果進(jìn)行測(cè)試,確保系統(tǒng)能正常穩(wěn)定運(yùn)行,實(shí)現(xiàn)設(shè)計(jì)的功能。
泛光照明控制系統(tǒng)在實(shí)際項(xiàng)目使用過程中,將有多臺(tái)主控制器與監(jiān)控平臺(tái)進(jìn)行通信,因此需要給每一臺(tái)主控制器進(jìn)行IP的分配,并且在系統(tǒng)運(yùn)行之前需要對(duì)每一臺(tái)控制器進(jìn)行網(wǎng)絡(luò)調(diào)試,搭建的控制系統(tǒng)只設(shè)置一臺(tái)主控制器,分配的IP為192.168.3.200,子網(wǎng)為255.255.255.0,設(shè)置完成后將主控制器通過交換機(jī)和監(jiān)控平臺(tái)PC進(jìn)行通信測(cè)試。
主控制器網(wǎng)絡(luò)通信測(cè)試通過后,開始測(cè)試上位機(jī)平臺(tái),在線將不同播放素材轉(zhuǎn)換為RGB矩陣數(shù)組,并根據(jù)實(shí)際布燈情況模擬素材在LED燈上的實(shí)際播放效果,素材轉(zhuǎn)換的點(diǎn)數(shù)是按照試驗(yàn)室搭建的32×32共計(jì)1 024個(gè)方形LED矩陣進(jìn)行格式轉(zhuǎn)換,在測(cè)試時(shí)任意選取不同素材文件進(jìn)行轉(zhuǎn)換,并測(cè)試模擬效果。播放素材協(xié)議轉(zhuǎn)換效果圖如圖8所示。
根據(jù)上位機(jī)在線模擬不同素材轉(zhuǎn)換格式并測(cè)試播放效果之后,將上位機(jī)轉(zhuǎn)成不同素材的RGB數(shù)組矩陣下發(fā)給泛光控制器,并通過播放器去控制1 024個(gè)LED燈測(cè)試實(shí)際播放的效果。不同素材在LED燈上效果如圖9所示。
基于DMX512協(xié)議的智能泛光控制系統(tǒng)可極大提高了泛光照明、景觀亮化控制的智能化水平,能在本套監(jiān)控軟件平臺(tái)上直觀、形象地展示任意素材在不同布燈樣式下的實(shí)際播放效果,并能夠直接將播放素材轉(zhuǎn)換成DMX512協(xié)議格式的RGB矩陣數(shù)據(jù),下發(fā)給控制器控制LED燈,通過在試驗(yàn)室搭建的1 024個(gè)LED燈實(shí)際驗(yàn)證了本系統(tǒng)的穩(wěn)定性和可靠性。