步驟1:材料
基本上,該項目包括兩個部分:部件:MIDI接收電路和LED結構;還有一個微控制器來鏈接這些部分,并將來自DAW的MIDI信號“轉換”到LED燈帶。這是每個部分所需材料的列表。
MIDI接收電路:
1 x 6N138光電耦合器
1 x 1N914二極管
1 x 5針Din插孔(MIDI插孔)
2 x 220歐姆電阻
1 x 4.7K歐姆電阻
1個USB/MIDI插孔
LED結構:
我使用了基于WS2812B LED的RGB LED燈條,這些燈條只能通過1個數字端口進行控制。如果計劃使用大量LED,則可能需要考慮所需的最大電流(1個LED最多可消耗60mA電流)。如果微控制器無法處理該最大值,則將需要另一個可以提供足夠電流的5V電源。我使用了帶有專用輸出適配器和開關的5V-8A AC/DC適配器。
注意:似乎您可以使用計算機電源,因為它們能夠提供一個非常大的電流,但是您必須確保它能夠提供穩定的5V DC電壓,可能是通過在地面(黑色)和5V輸出(紅色)之間使用36歐姆5瓦功率電阻來確保有足夠的電流
最后,我使用了一個帶螺絲屏蔽的簡單Arduino Uno在MIDI信號和LED燈條之間建立鏈接。
第2步:構建MIDI輸入電路
如果您對MIDI協議及其工作原理感興趣,我強烈建議您查看Notes and Volts YouTube頻道,那里有許多有趣且創新的教程和MIDI Arduino項目。
在這一部分中,我將僅關注MIDI輸入電路。最好在原型板上構建原型,并在焊接組件之前檢查微控制器是否很好地接收到來自DAW的MIDI信號。
以下兩個視頻介紹了如何構建和測試電路:
構建電路
測試電路
最后,檢查此視頻以了解CC消息以及微控制器如何解釋自動剪輯以控制LED亮度也是一個好主意。
步驟3:配置FL Studio(可選)
使用FL Studio感到很舒服,我將說明如何正確配置其MIDI接口,但是我很確定如果您使用其他的數字音頻工作站,則此過程不會有太大不同。
首先只需將USB/MIDI插孔插入計算機即可。通常,此類設備帶有嵌入式固件,即使它們不受干擾也可以識別為MIDI設備。然后打開“設置”窗口(按F10鍵)。如果一切正常,您會在輸出部分注意到一些輸出MIDI設備。選擇您的設備并確保其已打開。
然后,您必須定義端口號并記住它(例如0)。只需關閉此窗口(參數將自動保存),然后添加一個新通道:MIDI Out。
然后,您要做的最后一件事就是定義該新通道的端口:確保選擇與您在“設置”部分中定義的端口號相同 :通過這樣做,來自您的通道的MIDI信息現在已鏈接到MIDI輸出。
現在,當通過MIDI Out通道播放音符時,將通過MIDI接口發送“ NoteOn”消息。以同樣的方式,釋放音符時將發送“ NoteOff”消息。
MIDI輸出通道附帶的另一個有趣的功能是可以用電位計控制不同的參數。右鍵單擊它們之一,然后選擇“配置。..”,可以使它們發送CCMessages(值從0到127),該消息將用于控制LED的亮度:選擇CC,然后接受。
通常,FL Studio現在可以將數據發送到MIDI接口了!接下來是編寫代碼以在Arduino中閃存并使其適應您的LED結構。
步驟4:連接LED
連接LED燈條非常簡單,因為它們僅需要+ 5V,GND和數據。但是,當我計劃連接20多個時,我決定使用幾個Arduino PWM引腳并聲明Adafruit_NeoPixel的幾個實例(在coe中),以避免任何意外的延遲。
所附圖像還打算說明電子設備的工作原理:
LED燈條直接由電源供電。
使用電源開關為Arduino供電
打開開關時,Arduino會為MIDI輸入電路供電
第5步:設計3D結構
到目前為止,這部分是最長的部分我對3D打印(和建模)完全陌生。我想設計一個看起來像是爆炸半截二十面體的結構(是的,我花了一些時間來找到形狀的確切名稱)。
當然,您可以自由設計自己的模型想要的形狀!我不會詳細介紹建模過程,但是如果您要設計這種結構,您會找到STL文件。
組裝不同零件需要花費一些時間,因為我必須在每個面上分別放置一個LED,并且通過在內核中焊接大量目前非常混亂的導線來連接所有引腳!
注意:如果要設計這樣的結構,則需要10個六角形零件(每次使用大約3個小時)一臺PP3DP UP微型打印機)和6個五邊形部件(2小時)。
一旦每個部件中只有一個LED,則必須將每個5V和GND端子連接在一起,并對多個輸入和輸出端子進行接線每個LED的連接方式。
最后,我使用LED擴散丙烯酸材料覆蓋每個表面,并使它們始終如一地發光。
在此之后剩下的就是代碼,它顯示的并不是那么復雜!/p》
第6步:代碼
正如我在上一部分中提到的那樣,代碼顯示非常簡單!
實際上,它僅包含一個MIDI實例和幾個Adafruit_NeoPixel實例(以及不同的條帶)。
基本上,一旦聲明,MIDI類就可以使用“中斷”:NoteOn,NoteOff和CCMessage。當MIDI輸入小節將這些特定信號之一發送給Arduino時,將調用關聯子例程。然后,代碼要做的就是打開NoteOn信號上的特定LED,關閉相關的NoteOff信號,并更新CCMessage上條帶的亮度。
我還定義了一個簡單的該功能可通過讀取NoteOn信號隨附的速度來選擇LED的顏色,然后根據速度值的不同,每個LED可以是紅色,紫色,藍色,綠松石,綠色,黃色,橙色或白色從0到127。
需要注意的重要一點是,當上傳草圖(串行端口用于此過程)時,您將必須斷開RX引腳(來自MIDI輸入電路)。連接到該引腳!
責任編輯:wv
-
led
+關注
關注
242文章
23140瀏覽量
658516 -
MIDI
+關注
關注
0文章
75瀏覽量
15635
發布評論請先 登錄
相關推薦
評論