摘 要: 基于人眼視覺暫留特性及LED 的高速發光特性, 設計了一套LED 體三維顯示系統。首先利用Matlab 生成三維數據, 通過紅外模塊傳輸到顯示驅動電路; 其次快速旋轉LED 陣列, 由角度編碼器獲取旋轉角度值, 并根據角度值計算對應的二維截面圖形; 最后通過調制LED 的發光與消隱實現相應的顯示。該系統基于24×16 二維LED 陣列, 具有69120個體像素, 實現了空間尺寸為Φ9414 mm ×66.8 mm 的穩定柱體內三維顯示。 引 言 眾所周知, 視覺是人類感知世界的最重要的方式, 而現實生活中的所有物質形態都是以三維空間而客觀存在。三維顯示能真正地再現客觀世界的立體空間, 提供更符合人們觀察習慣的交流方式, 有助于人們在綜合運用各種深度暗示之后, 通過大腦的計算感知而獲得真實、豐富、可靠的視覺體驗, 對社會的發展以及在科技、經濟等方面的發展具有重要的作用。 目前, 三維顯示大致可以分為四類: 體視三維顯示、全息三維顯示、透視三維顯示和體三維顯示 ,其顯示的原理和特點如表1 所示。 表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.4 角度編碼器與電機模塊電路 本系統立體顯示是通過快速顯示旋轉空間中的一系列二維截面來實現的, 把LED 屏旋轉一周分成180 個截面, 即每轉2°要刷新一次顯示屏。為了準確刷新顯示屏, 本系統選用角度編碼器來識別顯示屏轉過的角度, 角度編碼器通過測試電機旋轉發出脈沖可識別電機的旋轉角度。本系統選用的角度編碼器型號為ZSP38062022G2360B25224E。此編碼器旋轉一周可輸出360 個脈沖信號。這樣電機每轉2°, 角度編碼器便可發出2 個脈沖信號,LED 顯示屏控制系統通過計數采集的角度編碼器輸出脈沖數來控制刷新LED 屏。 同時, 利用角度編碼器的輸出脈沖再通過單片機的處理可測出電機的旋轉速度, 并可送到數碼管顯示。此外, 單片機可對測得的電機速度進行判斷,判斷其是否超出一定的范圍, 如超出范圍可通知由單片機控制的報警電路報警。其電機模塊電路圖如圖3 所示。 ![]() 電路中所用的電機為無源電機, 所以需要電機的驅動電路, 考慮電機在加負載時速度會減慢, 設計電機的速度可調, 其調節范圍為0~ 4 200 r/m in。電路中電機與角度編碼器套在一起, 其轉速v ( r/s ) 與角度編碼器的輸出脈沖頻率f (Hz) 具有如下關系: v = f/360 (2) 通過此對應關系利用單片機可測出電機的旋轉速度并可送到數碼管顯示。同時利用設計的報警器可達到對電機旋轉速度的監控。1.5 LED 尋址驅動電路 LED 尋址驅動控制電路主要是利用FPGA 芯片EP1C3 來控制LED的專門驅動芯片BHL2000, 并且EP1C3 根據采集的角度編碼器的輸出脈沖數按時讀取存儲器中的三維圖像數據, 然后傳送給BHL 2000, 從而來驅動LED 屏的列顯示。同時, FP2GA 又將行掃描信號輸出經后級放大來驅動L ED 屏的行顯示, 其具體的原理框圖如圖4 所示。 ![]() 由于LED屏在旋轉的過程中會造成亮度損失,所以FPGA 的行掃描信號輸出需經過74HC245和UDN2981 的放大, 這樣行信號輸出最大電流可達到500 mA。此外,BHL 2000 屬于灌電流型器件且每個數據輸出端電流可達到80 mA , 可直接驅動L ED 顯示。驅動電路中的存儲器選擇STC62WV 5128, 其容量為512 k×8 b it, 而本系統一幅三維圖像的數據量為6715 k×8 b it, 所以選擇STC62WV 5128 是足夠的。 值得說明的是, EP1C3 對BHL 2000 的寫數據是在BHL 2000 寫入時鐘WR 的驅動下, 數據從D in02D in7 輸入, 在內部移位寄存器中串行移位16 次后,由級聯口SHO02SHO7移出。同時BHL 2000 行、場控制信號HS、VS確定數據在存儲器中的存儲位置, 最多可存8×16×32 個字節。此外,BHL 2000 的輸出行、場控制信號HCL K 和CLR 確定取數位置, 在讀出時鐘CLK控制下進行灰度調制, 輸出脈寬信號O02O15, 從而驅動LED顯示屏。 2 軟件設計 設計的主要原理是在逐行掃描信號的驅動下,在每次行掃描信號來臨時, 送出8 位的列數據, 電機每旋轉2°的時間內, FPGA 一直掃描同一幅切面圖像數據, 然后每旋轉兩度后就刷新掃描另一幅切面圖像數據, 值得注意的是, 每一行掃描信號后面要加一個消隱信號, 即再顯示下一行數據時要把前一行L ED 燈關掉, 否則會產生串擾, 圖5 所示即為加消隱信號后的16 個行掃描信號。 ![]() 3 分析與討論 本文根據人眼所具有的視覺暫留特性及L ED高速發光特性實現了一套基于旋轉24×16 二維LED 屏, 具有69120個體像素, 空間尺寸為Φ9414mm ×6618 mm 的體三維顯示系統。從對此系統中的三維數據獲取、數據的無線傳輸、電機旋轉角度值的獲取以及L ED 屏的尋址驅動電路等模塊的分析和討論來看, 本系統具有可行性高、技術實現容易、系統簡單便于控制等特點。圖6 所示為根據本系統顯示的“茶壺”, 從圖中可以看出顯示的三維效果。 ![]() 當然, 從圖中也可以看出本系統的LED 陣列尺寸還比較小,LED 燈排列還不夠密, 其橫向和縱向間距為412 mm。此外, 本系統也存在數據傳輸速度限制、不能實時顯示以及亮度均勻性控制等問題, 但這同時也為以后實現更高質量的三維顯示提供了努力的方向。體三維顯示也將在包括科學可視化、虛擬現實、數字娛樂、空中交通控制、核磁共振成像、三維流體分析在內的很多領域有著廣泛的應用前景。 來源:電子工程網 |