基于FPGA的LED體三維顯示設(shè)計方案
引 言
本文引用地址:http://m.butianyuan.cn/article/190972.htm眾所周知, 視覺是人類感知世界的最重要的方式, 而現(xiàn)實生活中的所有物質(zhì)形態(tài)都是以三維空間而客觀存在。三維顯示能真正地再現(xiàn)客觀世界的立體空間, 提供更符合人們觀察習(xí)慣的交流方式, 有助于人們在綜合運用各種深度暗示之后, 通過大腦的計算感知而獲得真實、豐富、可靠的視覺體驗, 對社會的發(fā)展以及在科技、經(jīng)濟等方面的發(fā)展具有重要的作用。
目前, 三維顯示大致可以分為四類: 體視三維顯示、全息三維顯示、透視三維顯示和體三維顯示 ,其顯示的原理和特點如表1 所示。
表1 各類三維顯示原理及特點
本文通過旋轉(zhuǎn)24×16 二維LED陣列實現(xiàn)了具有69120個體像素, 空間尺寸為Φ9414 mm ×6618mm 柱體內(nèi)的三維顯示, 文中論述了系統(tǒng)的整體結(jié)構(gòu)、顯示原理及其各組成部分的實現(xiàn)方法。最后并以顯示“茶壺”為例, 對此體三維顯示系統(tǒng)進行了分析和討論。
1.1 整體方案
由于人眼具有視覺暫留的特性, 即人類視覺對亮度改變的跟蹤會由于意識處理延遲而滯后。基于此特性, 利用電機驅(qū)動置于對稱轉(zhuǎn)軸兩側(cè)的發(fā)光二極管陣列, 使之高速旋轉(zhuǎn), 周期性地掃出一個柱體空間。同時, 尋址驅(qū)動控制電路根據(jù)需要調(diào)制不同時刻LED陣列的發(fā)光狀態(tài), 這樣通過快速顯示一幅幅二維圖像截面序列來實現(xiàn)三維顯示。由于人眼視覺暫留時間約為50~100ms, 當(dāng)電機轉(zhuǎn)速超過10r/s時, 人便不會有閃爍的感覺, 而是看到三維的立體圖像。根據(jù)此原理可設(shè)計如圖1 所示的LED體三維顯示系統(tǒng)。
利用計算機生成三維數(shù)據(jù)再通過數(shù)據(jù)傳輸電路把數(shù)據(jù)傳輸?shù)叫D(zhuǎn)驅(qū)動板上面的存儲器中, 并且由角度編碼器來測試電機的旋轉(zhuǎn)角度并把信號送給FPGA , 然后由FPGA 根據(jù)采集的角度編碼器輸出信號驅(qū)動LED 屏顯示并按時刷新LED 顯示屏。同時, 整個旋轉(zhuǎn)驅(qū)動板在電機的驅(qū)動下快速的旋轉(zhuǎn), 快速顯示一幅幅二維截面圖像來實現(xiàn)三維顯示。
1.2 三維數(shù)據(jù)生成
利用Matlab 軟件的強大功能, 首先可以通過im read ()、im f info ()、m eshgrid ()、m eshc () 和su rf ()等語句來實現(xiàn)具有灰度值的三維圖像, 假設(shè)獲得的三維圖像角坐標(biāo)為P (X0, Y0, Z0)。
令LED陣列旋轉(zhuǎn)所得的圓柱空間中LED 燈的柱坐標(biāo)為F ( r, H, z ) , 根據(jù)柱坐標(biāo)與直角坐標(biāo)的轉(zhuǎn)換關(guān)系, 求得空間LED燈的三維直角坐標(biāo)E (X 1, Y 1,Z 1) 可表示如下:
其中r, H, z 均為整數(shù), 且有: - 12 r≤12, 0 H≤360, 0 z ≤16。
最后, 令D(X2, Y2, Z2) = P(X0, Y0, Z0) ∩E (X1, Y1, Z1 ) 求出該顯示的L ED 燈的三維直角坐標(biāo), 以此作為三維數(shù)據(jù)的信息源。
從Matlab 610 版本開始,Mathworks 公司在軟件中增加了設(shè)備控制箱( Instrument controltoolbox ) , 提供對RS2232/RS2485 通信標(biāo)準(zhǔn)的串口通信的正式支持。因此本系統(tǒng)使用該工具箱的serial 類及fopen、fw rite 等函數(shù), 通過RS2232 串口并利用數(shù)據(jù)傳輸電路把獲得的三維圖像數(shù)據(jù)傳輸?shù)絃ED 驅(qū)動電路板上。
1.3 數(shù)據(jù)傳輸電路
三維圖像數(shù)據(jù)利用設(shè)備控制箱通過RS2232 串口后, 再利用紅外編解碼技術(shù)把數(shù)據(jù)傳到旋轉(zhuǎn)的LED驅(qū)動板上, 其整個數(shù)據(jù)傳輸?shù)耐ㄓ嵔Y(jié)構(gòu)圖如圖2 所示。
在單片機串口模塊中選用電平轉(zhuǎn)換芯片MAX232 芯片實現(xiàn)TTL 電平與RS2232 電平的雙向轉(zhuǎn)換, 從而把三維圖像數(shù)據(jù)傳送到單片機的串行接收端口RXD 上, 然后單片機再通過其發(fā)送端口TXD把數(shù)據(jù)送出。圖中的調(diào)制與紅外發(fā)射模塊通過由N E555 芯片構(gòu)成的多諧振蕩電路調(diào)制成38 kHz 的載波信號, 最后利用紅外發(fā)射管TSAL6238 以光脈沖的形式向外發(fā)送。為了保證紅外接收數(shù)據(jù)的準(zhǔn)確性,N E555 產(chǎn)生的振蕩頻率要盡可能接近38 kHz,所以在選擇電阻電容時要選用精密的元件并保證電源電壓的穩(wěn)定性。
數(shù)據(jù)傳輸電路中的紅外接收解調(diào)模塊選擇Vishay 公司的TSOP1738, 其內(nèi)部電路功能已包括把接收到的載波頻率為38 kHz 的脈沖調(diào)制紅外光信號轉(zhuǎn)化為電信號, 并由前放大器和自動增益控制電路進行放大處理。然后, 通過帶通濾波器進行濾波, 濾波后的信號由解調(diào)電路進行解調(diào)。最后, 由輸出級電路進行反向放大輸出。
所以, 選用此紅外接收模塊只要把其數(shù)據(jù)輸出直接送到FPGA 處理即可。經(jīng)實驗測定, 利用此紅外傳輸電路傳輸數(shù)據(jù), 速率最高可達1 kB/ s。
1.4 角度編碼器與電機模塊電路
本系統(tǒng)立體顯示是通過快速顯示旋轉(zhuǎn)空間中的一系列二維截面來實現(xiàn)的, 把LED 屏旋轉(zhuǎn)一周分成180 個截面, 即每轉(zhuǎn)2°要刷新一次顯示屏。為了準(zhǔn)確刷新顯示屏, 本系統(tǒng)選用角度編碼器來識別顯示屏轉(zhuǎn)過的角度, 角度編碼器通過測試電機旋轉(zhuǎn)發(fā)出脈沖可識別電機的旋轉(zhuǎn)角度。本系統(tǒng)選用的角度編碼器型號為ZSP38062022G2360B25224E。此編碼器旋轉(zhuǎn)一周可輸出360 個脈沖信號。這樣電機每轉(zhuǎn)2°, 角度編碼器便可發(fā)出2 個脈沖信號,LED 顯示屏控制系統(tǒng)通過計數(shù)采集的角度編碼器輸出脈沖數(shù)來控制刷新LED 屏。
同時, 利用角度編碼器的輸出脈沖再通過單片機的處理可測出電機的旋轉(zhuǎn)速度, 并可送到數(shù)碼管顯示。此外, 單片機可對測得的電機速度進行判斷,判斷其是否超出一定的范圍, 如超出范圍可通知由單片機控制的報警電路報警。其電機模塊電路圖如圖3 所示。
電路中所用的電機為無源電機, 所以需要電機的驅(qū)動電路, 考慮電機在加負載時速度會減慢, 設(shè)計電機的速度可調(diào), 其調(diào)節(jié)范圍為0~ 4 200 r/m in。電路中電機與角度編碼器套在一起, 其轉(zhuǎn)速v ( r/s ) 與角度編碼器的輸出脈沖頻率f (Hz) 具有如下關(guān)系:
v = f/360 (2)
通過此對應(yīng)關(guān)系利用單片機可測出電機的旋轉(zhuǎn)速度并可送到數(shù)碼管顯示。同時利用設(shè)計的報警器可達到對電機旋轉(zhuǎn)速度的監(jiān)控。
1.5 LED 尋址驅(qū)動電路
LED 尋址驅(qū)動控制電路主要是利用FPGA 芯片EP1C3 來控制LED的專門驅(qū)動芯片BHL2000, 并且EP1C3 根據(jù)采集的角度編碼器的輸出脈沖數(shù)按時讀取存儲器中的三維圖像數(shù)據(jù), 然后傳送給BHL 2000, 從而來驅(qū)動LED 屏的列顯示。同時, FP2GA 又將行掃描信號輸出經(jīng)后級放大來驅(qū)動L ED 屏的行顯示, 其具體的原理框圖如圖4 所示。
由于LED屏在旋轉(zhuǎn)的過程中會造成亮度損失,所以FPGA 的行掃描信號輸出需經(jīng)過74HC245和UDN2981 的放大, 這樣行信號輸出最大電流可達到500 mA。此外,BHL 2000 屬于灌電流型器件且每個數(shù)據(jù)輸出端電流可達到80 mA , 可直接驅(qū)動L ED 顯示。驅(qū)動電路中的存儲器選擇STC62WV 5128, 其容量為512 k×8 b it, 而本系統(tǒng)一幅三維圖像的數(shù)據(jù)量為6715 k×8 b it, 所以選擇STC62WV 5128 是足夠的。
值得說明的是, EP1C3 對BHL 2000 的寫數(shù)據(jù)是在BHL 2000 寫入時鐘WR 的驅(qū)動下, 數(shù)據(jù)從D in02D in7 輸入, 在內(nèi)部移位寄存器中串行移位16 次后,由級聯(lián)口SHO02SHO7移出。同時BHL 2000 行、場控制信號HS、VS確定數(shù)據(jù)在存儲器中的存儲位置, 最多可存8×16×32 個字節(jié)。此外,BHL 2000 的輸出行、場控制信號HCL K 和CLR 確定取數(shù)位置, 在讀出時鐘CLK控制下進行灰度調(diào)制, 輸出脈寬信號O02O15, 從而驅(qū)動LED顯示屏。
2 軟件設(shè)計
設(shè)計的主要原理是在逐行掃描信號的驅(qū)動下,在每次行掃描信號來臨時, 送出8 位的列數(shù)據(jù), 電機每旋轉(zhuǎn)2°的時間內(nèi), FPGA 一直掃描同一幅切面圖像數(shù)據(jù), 然后每旋轉(zhuǎn)兩度后就刷新掃描另一幅切面圖像數(shù)據(jù), 值得注意的是, 每一行掃描信號后面要加一個消隱信號, 即再顯示下一行數(shù)據(jù)時要把前一行L ED 燈關(guān)掉, 否則會產(chǎn)生串?dāng)_, 圖5 所示即為加消隱信號后的16 個行掃描信號。
3 分析與討論
本文根據(jù)人眼所具有的視覺暫留特性及L ED高速發(fā)光特性實現(xiàn)了一套基于旋轉(zhuǎn)24×16 二維LED 屏, 具有69120個體像素, 空間尺寸為Φ9414mm ×6618 mm 的體三維顯示系統(tǒng)。從對此系統(tǒng)中的三維數(shù)據(jù)獲取、數(shù)據(jù)的無線傳輸、電機旋轉(zhuǎn)角度值的獲取以及L ED 屏的尋址驅(qū)動電路等模塊的分析和討論來看, 本系統(tǒng)具有可行性高、技術(shù)實現(xiàn)容易、系統(tǒng)簡單和便于控制等特點。圖6 所示為根據(jù)本系統(tǒng)顯示的“茶壺”, 從圖中可以看出顯示的三維效果。
當(dāng)然, 從圖中也可以看出本系統(tǒng)的LED 陣列尺寸還比較小,LED 燈排列還不夠密, 其橫向和縱向間距為412 mm。此外, 本系統(tǒng)也存在數(shù)據(jù)傳輸速度限制、不能實時顯示以及亮度均勻性控制等問題, 但這同時也為以后實現(xiàn)更高質(zhì)量的三維顯示提供了努力的方向。體三維顯示也將在包括科學(xué)可視化、虛擬現(xiàn)實、數(shù)字娛樂、空中交通控制、核磁共振成像、三維流體分析在內(nèi)的很多領(lǐng)域有著廣泛的應(yīng)用前景。
評論