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