自製像素燈實驗室

假設我們現在有一些媒體想在小型的LED屏幕播放。

讓我們先在Resolume 6裡設置,為我們的像素地圖創建一個自定義進階輸出。首要的事情,我們需要為我們的LED矩陣屏幕創建一堆自定義的燈俱。Resolume的燈俱編輯器讓你使用它創建出不同的燈俱設置。

燈具編緝器

在Resolume裡,點擊應用程序及選擇燈具編緝器:
燈具編緝器可分為三個板槐:

燈具

全部燈具的列表,你可以按你所想加入及移除燈具,重新命名等。

燈具參數

這個板塊容許你設置編緝中的燈具參數。像燈具中有什麼通道,燈具的寬度及高度,它的方向、色彩空間等。

像素

我們所創建的燈具的一個視覺與數字的代表。

我們的14 x 14矩陣總共有196個像素。如果你還記得早前的知識,一個DMX域有多少個通道,你就會發現這個矩陣不能僅使用一個DMX域去盛載。我們只能在一個DMX域裡盛載170 個像素,每個像素有512位元的紅藍綠資料! 

所以我們需要創建兩個燈具,以及把版面分為兩部分。為簡約起見,我們會創建兩個燈具,代表矩陣的左右兩部分。我們等下就會把這兩個燈具用於兩個DMX域中。驅動裝置的任務是在兩個DMX域中編製DMX資料並恰當地轉換成LED訊號。不用擔心,我們在後面會提及。
以上是我們14x14矩陣中所有像素點的實體排列。

我們會創建兩個燈具名字分別為"14x14_LEFT"及"14x14 _Right"。注意它們的分別只在於它們的「分佈」屬性。

自定義燈具

在燈具板面中點擊 "+"按鈕,創建一個新的燈具。在左板面往下拉到該燈具,雙擊其名字去重新把它命名。我把它命名為"14x14_LEFT"。

我們看看這個燈具的燈具參數。

寬度與高度

這裡讓我們設置燈具的寬度與高度。我們會它設成為7 個像素寬,14個像素高。

色彩空間

色彩空間屬性告訴Resolume如何組織每顆像素的顏色資料及每個顏色出現的次序。我們的像素燈裡的有紅綠藍燈珠但LED轉化接收數據的真正次序亦會因其型號而異。

為簡單起見,我會使用RGB像素燈及於後面會把驅動裝置的數據正式排列篩選。注意你也可以驅動紅藍綠白(白)或純白像素燈。有多種不同的像素燈設置讓你選擇。

伽傌值

我們可讓這個參數設定為2.5。

走向

可能是最重要的屬性,它告訴Resolume每顆像素燈的實體位置。我們的燈板的走向是由左下角的像素,數據向上流,轉右至下一行,下一行再轉右,再向上等等,就像我們選了的圖示一樣。

現在創建一個第二燈俱,你可以透過右擊當前 "14x14_LEFT" 燈俱及選擇覆製去快速創建。然後重新命名為"14x14_RIGHT"便可。

燈俱的參數是一樣的,但我們需要改變分佈圖,因為這部分燈板從頂部開始!

現在我們設定好自定義的燈俱了,點擊關閉去儲存它們!

像素地圖

下一步是把它們置入到Resolume的進階輸出系統,調整虛擬地圖及把它們放到實體媒體的位置上。

返回Resolume的主視窗,點擊輸出菜單及選擇進階。

點擊位於左上的預設菜單,點擊新建去得到一個一樣的空白板面。注意我在截圖中的顏色漸層是我選擇了的使用的媒體。它只是一個簡單的着色器,是Resolume裡自帶的,叫做「漸層」。

再下一步,我們需要加入一個新的"DMX Lumiverse"。Resolume 把Lumiverse 當作為一個擁有等定DMX域ID及子網絡ID的DMX域。每一個Lumiverse 可以有最多512條通道,就像一個正常的DMX域一樣。點擊在左上方的大"+"號圖標上及選擇 "DMX Lumiverse"。

接下來,我們需要從板面中移除「屏幕1」。我們只需設定一個只輸出DMX輸號的系統,而不是需要建立一個其他輸出的樣板。點擊「屏幕1」及點擊 「X」去把它從板面上移除。你就會剩下「Lumiverse 1」。 

透過右擊Lumiverse及選擇覆製去覆製它,我們現在必需確定我們每個Lumiverse擁有正確的燈俱。預設,當你創建一個新的Lumiverse時,它會把你最後工作的燈俱加入至裡面。如果它不是正確的,在左邊面板點選它,並從右下的下拉選單中選擇正確的使用。

我們的進階輸出板面會有2個Lumiverses。 Lumiverse 1 有 "14x14_LEFT" 燈俱,而Lumiverse 2 擁有"14x14_RIGHT"燈俱。

在正中央的面板中,你可以點擊任何燈俱及把它在屏幕上自由移動。上面的截圖有兩個分開的燈俱,所以你可以看到我在做什麼。我們需要做兩件事。把它們放在一起及重置大小以縮放。

讓我們來談談縮放。就上面所示,燈俱置入時是對等的正方形。但這組燈俱其實是矩形來的,因為它的寬是7像素,而高是14像素。讓我們點擊左邊的燈俱,並使用右邊的面板中的寬度及高度屬性參數來調整。

為簡便及能清楚看到,讓我們把1顆LED像素燈設定為電腦屏幕的50像素。所以左邊燈俱的寬度是7x50=350像素,而高度則是14x50=700像素點。
我們為右邊的燈俱設定同樣的參數及把它們并排放在一起。

我們為燈光面板創建一個虛擬像素地圖。現在你儲存你的排版。點擊左上的預設下拉選單及選擇另存為。重新命名為"14 x 14 Panel"。

返回DMX域IDS,我們現在為每個燈俱指定一個適用的DMX域,這樣驅動裝置就能決定哪個DMX域渲染的數據傳送至燈光板的哪個部份。

點擊"Lumiverse 1",在左邊你可以看到子網終及DMX域。就讓它為0:0。現在我們點擊"Lumiverse 2"及設置子網絡0 : DMX域 1。 

當單一影格被渲染時,Resolume會發送兩個板塊的數據至輸出。板塊1會擁有Lumiverse 1的所有數據,而板塊2會擁有Lumiverse 2的所有數據。你的驅動裝置會收到2個板塊的數據,它亦會識別什麼板塊的數據需要拷貝至哪一邊的燈光矩陣中。

手作自製像素驅動器

在這部份,我們會建立一個裝置讓你可透過WiFi 接收Art-Net數據及把數據推送至我們的14x14 LED 矩陣。

我已準備好一些簡單的編程,裡面包含了做到上述裝置的所有元素。如果你是從基建開始做這個工作,那麼明白編程的邏輯就至為重要,因為它被設計為模組,而且可以擴展及應用至大型的裝置中。

我們會用到以下所述的硬件及乾件。我會嘗試提供特定裝置的連結,因為這方便你跟著在家製作。手冊是為Windows PC環境而寫的。假設是你使用的是pc及連接到無線或有線網絡,而你的無絡網絡會連接到 ESP32 (後面會網絡設置會提到). 你會需要到 Wifi SSD 及 鑰匙。你的PC則需要與無線網絡無限制地溝通。

硬件

軟件

安裝Arduino IDE及設定ESP32 API

 arduino.cc 下載 Arduino IDE,然後安裝並順序執行以下步驟:

  1. 前往 Espressif GitHub 網站下載 ESP32 Arduino API 
  2. 在右上方,點擊"復製或下載" 及選擇下載ZIP,儲存到你的桌面
  3. 前往你本機電腦文件的資料夾及定位Arduino的文件夾路徑為 "C:\Users\USERNAME\Documents\Arduino"
  4. 如果本身沒有一個叫"Hardware"的資料夾,去創建一個資料夾及命名為"Hardware"
  5. 在 "Hardware"裡,創建一個資料夾叫"espressif"
  6. 在該資料夾內,解壓步驟2所述ZIP檔案的內容及重新名命該解壓資料夾為"esp32"
  7. 進入"esp32\tools"資料夾及定為執行檔"get.exe"。雙擊它及直至指令彈出及消失。這個動作會從Espressif的伺服器下載最新的API,因應你的網絡連線速度,它大概會花5-10分鐘不等。當指令彈出及消失,你可以到下一步
  8. 打開Arduino IDE,點擊工具菜單,選擇面板及向下滾動。如果你正確安裝所有上述的事情,你會看到一堆 ESP32 的板如下

下一步是從我的GitHub下載工程的源代碼,儲存在你的桌面,以及打開檔案文件 "ESP32ArtNetDriver.ino"。點擊工具菜單,選擇該電路板,然後你會發現"Node32S"電路 板,選擇它。

透過USB數據線連接ESP32至你的PC電腦,等待驅動的安裝。然後,在Arduino IDE裡,選擇工具,端口及選擇連接EPS32的端口。你現在已準備好編製及上傳代碼至你的微處理器,但請繼續閱讀此文,因為我們還需要作出一些放動。

在代碼的22及23行:

//Networking 

const char * ssid = "ArtNet"; 

const char * password = "megapixels";

改變SSID及Password至你現在無線網絡所使用的(SSID)名稱及無線網絡密碼。做完後點擊上傳按鈕,等待幾秒讓代碼編製及上傳至ESP32。這時,你的DevBoard已準備就緒!接著讓我們連結所有硬體吧!

關於這個實驗室的網絡注意事項

想達至最佳的硬件表現,最佳的選擇是把你的運行Resolume的電腦透過有線網絡端口連接至你的網絡中。你當然可以在Resolume透過WIFI串流Art-Net數據,但同時你會發現lag及因UDP協議的本質,出現大量封包遺失的情況。這裡是一個我們為這個實驗室推介的網絡設置例子:


我會使用相對便宜的消費者等級無線路由器,由TP-LINK製造。但你可以使用任可你想用的路由器,只要有可用及開啓的DHCP便可。

硬件接駁

把你的硬體跟據上圖連接起來。

我們使用SN74HCT245於電平轉換。SK9822像素燈的數據及時鐘線的假設電平為5V,當0v = 0 以及 5v = 1。ESP32的邏輯電平是3.3V,當0v = 0,而 3.3v = 1! 

當連接妥當,打開電源及已準備好使用,但⋯⋯沒東西看! 


在Resolume中開啓输出

在這個階段中,即便當你開啓Resolume,你也看不到任何在板面上的東西,因為我仍未從Resolume中輸出任何數據! 

打開Resolume及選擇進階輸出。在這個例子中,我們會使用"廣播"方法傳送數據至ESP32。 廣播UDP封包會面對一大堆挑戰,特別是透過無線網絡,在你未來的任何工作中,都不要嘗試這個方法除非你有一個小而可控的實驗室設置。

點選右邊的"Lumiverse 1" 及"TargetIP"屬性,選擇"廣播"。對 "Lumiverse 2”進行相同的操作,你應該就可看到你的輸出顯示在你的燈光矩陣上!

相關文章