Obsah:
- Zásoby
- Krok 1: Elektronika
- Krok 2: Pripojenie pásika LED
- Krok 3: Prispôsobenie projektu vašej klávesnici
- Krok 4: Kód Arduino
- Krok 5: Možné vylepšenia…
- Krok 6: Hotovo
Video: MIDI2LED - svetelný efekt LED pásika ovládaný MIDI: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Toto je môj prvý pokyn, takže so mnou vydržte.
Milujem tvorbu hudby a v živých situáciách, ako sú koncerty v obývačke, mám rád, keď sú svetelné efekty synchronizované s tým, čo hrám. Preto som postavil box na báze Arduina, vďaka ktorému sa LED pásik rozsvieti v náhodnej farbe, keď narazím na notu na svojej MIDI klávesnici a kde trafím notu.
Zásoby
- Arduino Uno
- Protoshield Arduino
- MIDI konektor
- Dióda 1N4148
- Optická spojka 6N138
- odpory: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- WS2812B LED pás (60 LED)
- nejaké zvyšné drôty
- zmršťovacie bužírky
- vhodné puzdro pre Arduino (používam plastovú spojovaciu skrinku)
Budete tiež potrebovať
- spájkovačka a spájkovačka
- MIDI klávesnica a MIDI kábel
Krok 1: Elektronika
Okruh je celkom jednoduchý. Skladá sa zo štandardného MIDI vstupu (vľavo od Arduina) a pripojenia k LED pásu (vpravo od Arduina). Umiestnite všetky diely na protoshield, je tu veľa miesta. Všeobecne sa odporúča použiť externý napájací zdroj na napájanie pásky LED, ale zistil som, že keď hráte, súčasne svieti iba niekoľko diód LED, takže došlo k nie je problém použiť Arduino +5V / GND ako výstupný výkon. (Skúste sa vyhnúť úderu na všetky klávesy súčasne a plnou rýchlosťou.;-)) Ak sa rozhodnete použiť externý napájací zdroj, jednoducho ho pripojte k pinom Arduino +5V a GND. Niektorí ľudia odporúčajú vložiť medzi tieto dva riadky kondenzátor 100uF (nie je schematicky znázornené).
Spájkujte diely na protoshield a pripojte pásik LED podľa schémy.
Krok 2: Pripojenie pásika LED
Je dôležité pripojiť pravý koniec - vstupný koniec - pásky LED k obvodu. Môj prúžok má ako vstup ženský konektor a všetky malé trojuholníky smerujú preč od vstupu. Na výstupe bol zástrčkový konektor (aby sme ho mohli pripojiť k inému pásu, ktorý nepotrebujeme), tak som to prerušil a spájkoval s tromi káblami prichádzajúcimi z Arduina. Tepelne zmršťovacou hadičkou spojte tri káble k pásku LED dohromady a znížte ich viditeľnosť.
LED pás, ktorý som použil, je na zadnej strane vybavený lepiacou páskou, takže ho možno ľahko prilepiť na zadnú stranu MIDI klávesnice.
Krok 3: Prispôsobenie projektu vašej klávesnici
Možno budete musieť prispôsobiť LED pásik a kód Arduino svojej klávesnici. Ten môj má 76 klávesov a dĺžka pásu je takmer presne rovnaká ako šírka klávesnice. Ak máte napr. 61 klávesov, možno budete potrebovať kratší prúžok. LED pásik je možné rezať medzi ľubovoľné dve LED diódy. Uistite sa, že odrezávate správnu časť, má vstupný koniec (so zásuvkou) a výstup (s konektorom), vstupný koniec musíte ponechať. V kóde zmeňte #defines pre
- NUMBER_OF_LEDS k počtu diód LED, ktoré zostali vo vašom páse po odrezaní konca,
- NUMBER_OF_KEYS k počtu klávesov na vašej klávesnici a
- MIN_KEY k číslu MIDI výšky vášho najnižšieho kľúča. Nájdete to v používateľskej príručke klávesnice; alebo použite nástroj, ktorý zobrazuje číslo poznámky MIDI, napríklad KMidiMon pre Linux alebo Pocket MIDI pre Windows alebo Mac; alebo vyskúšajte rôzne hodnoty, kým zariadenie nezareaguje na všetky klávesy na vašej klávesnici
Krok 4: Kód Arduino
Kód Arduino používa knižnicu MIDI (v4.3.1) od Forty Seven Effects a knižnicu Adafruit NeoPixel (v1.3.4) od spoločnosti Adafruit. Nainštalujte tieto knižnice pomocou Arduino IDE. Potom skompilovajte kód a nahrajte ho do Arduina bez pripojeného štítu (optočlen je pripojený k pinu RX, ktorý sťažuje nahrávanie). Napájajte Arduino káblom USB (používam nástennú bradavicu USB).
Ak by ste chceli kód upraviť podľa svojich predstáv, tu je stručný prehľad jeho fungovania: V každej slučke sa načíta vstup MIDI. Ak bola prijatá udalosť Note On alebo Note Off, volajú sa funkcie MyHandleNoteOn alebo MyHandleNoteOff. Obaja nazývajú funkciu updateVelocityArray, ktorá ukladá rýchlosť (tj. Ako silno ste stlačili kláves) čísla kľúča. Ak je rýchlosť vyššia, ako bola predtým uložená, farba zodpovedajúcej LED sa nastaví na „aktuálnu farbu“. Po spracovaní udalostí MIDI sa zavolá funkcia updateLedArray. Tým sa aktualizuje „aktuálna farba“(červené, zelené a modré hodnoty sa menia nezávisle lineárne, až kým sa nedosiahne dolný alebo horný koniec, pričom v tomto bode je rýchlosť lineárnej zmeny nastavená na náhodné číslo), pomaly znižuje rýchlosť lisovaných tónov a aktualizuje hodnoty farieb každej diódy LED, ktorá musí zmeniť svoju farbu (v dôsledku nového úderu na notu alebo zníženia rýchlosti). Funkcia showLedArray prenáša farby do štruktúry Adafruit_NeoPixel nazývanej „pixely“a núti skutočné LED diódy zobrazovať farby v štruktúre pixelov.
Krok 5: Možné vylepšenia…
Projekt nie je nikdy dokončený Vždy je možné urobiť niečo pre jeho zlepšenie:
- Protoshield obsahuje tak málo častí, že je to skutočne plytvanie; rovnaký efekt je možné ľahko dosiahnuť pomocou Arduino Nano a plošného spoja 15 x 7 otvorov plus niektorých zásuviek s kolíkovými konektormi.
- Niektoré MIDI signály sa stratia. Ak je to NoteOn, príslušná dióda LED sa nerozsvieti; ak je to NoteOff, nezhasne (preto som zaviedol zníženie rýchlosti, ktoré zaisťuje, že diódy LED nebudú svietiť donekonečna). Stále sa snažím zistiť dôvod. Pravdepodobne je to problém s načasovaním a MIDI.read () by sa malo volať častejšie.
- Niektoré MIDI signály sú nesprávne prečítané, to znamená, že sa rozsvietia nesprávne LED diódy. Dalo by sa to spojiť s vyššie uvedeným bodom. Vyžaduje si to vyšetrovanie.
- Obvod je navrhnutý tak, aby poskytoval príjemný vizuálny efekt bez veľkého zásahu používateľa (okrem hry na klávesnici). Dokázal by som si však predstaviť pridanie odčítaného potenciometra (pomocou jedného z analógových vstupov Arduina), pomocou ktorého môžete zmeniť maximálnu rýchlosť, ktorou sa farby menia (v súčasnosti je #definovaný ako MAX_COLOR_CHANGE_SPEED = 20). Alebo zmerajte priemerný čas medzi dvoma udalosťami NoteOn a podľa toho zmeňte MAX_COLOR_CHANGE_SPEED - v pomalých skladbách by sa farba mala meniť pomalšie.
Krok 6: Hotovo
Napájajte Arduino káblom USB (používam nástennú bradavicu USB). Pripojte svoju MIDI klávesnicu k MIDI konektoru a začnite rockovať. Pozrite sa, ako hrám malú ľahkú hudbu (slovná hračka, nech je akákoľvek, zamýšľaná).
Odporúča:
Ovládač jasu LED pásika: 4 kroky
Ovládač jasu LED pásika: LED pásiky sú na celom svete známe svojou spotrebou nízkeho napätia a jasu. Niekedy potrebujeme upraviť napájanie a jas týchto LED pásikov, napríklad počas spánku by ste boli rušení kvôli svetlý
IOT: ESP 8266 Nodemcu ovládanie RGB LED pásika cez internet pomocou aplikácie BLYNK: 9 krokov
IOT: ESP 8266 Nodemcu Ovládanie RGB LED pásu cez internet pomocou aplikácie BLYNK: Dobrý deň, chlapci, v tomto návode som vám ukázal, ako vytvoriť RGB LED pásový ovládač s nodemcu, ktorý dokáže ovládať RGB LED STRIP po celom svete cez internet pomocou BLYNK APP. Užite si tento projekt & urobte svoj domov farebným
Ako vytvoriť úžasné efekty Obvod RGB LED pásika: 6 krokov (s obrázkami)
Ako vytvoriť úžasné efekty Obvod RGB LED Strip: Ahoj, priateľ, dnes budem vyrábať obvod, ktorý bude ovládať LED Strip. Tento obvod poskytne úžasné efekty LED Strip. Tento obvod je veľmi jednoduchý a lacný. Potrebujeme iba 3- RGB LED. Začnime
Ovládač jasu LED pásika: 7 krokov
Ovládač jasu LED pásika: Ahoj, priateľ, niekedy sa nám nepáči vysoký jas LED pásika a na to vypneme vypínač. Takže dnes urobím obvod regulátora jasu pásika LED. Týmto obvodom môžeme ľahko ovládať jas LED pásu
Ako uľahčíte blikanie LED pásika: 5 krokov
Ako uľahčíte blikanie LED pásika: Ako uľahčíte blikanie LED pásika