Obsah:

MIDI2LED - svetelný efekt LED pásika ovládaný MIDI: 6 krokov
MIDI2LED - svetelný efekt LED pásika ovládaný MIDI: 6 krokov

Video: MIDI2LED - svetelný efekt LED pásika ovládaný MIDI: 6 krokov

Video: MIDI2LED - svetelný efekt LED pásika ovládaný MIDI: 6 krokov
Video: Svetelný RGB pásik TP LINK Tapo L930 ovládaný apkou hlasovými povelmi aj rytmom hudby 2024, November
Anonim
MIDI2LED - svetelný efekt LED pásika ovládaný MIDI
MIDI2LED - svetelný efekt LED pásika ovládaný MIDI

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

Elektronika
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

Pripojenie LED pásika
Pripojenie LED pásika

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

Prispôsobenie projektu vašej klávesnici
Prispôsobenie projektu vašej klávesnici
Prispôsobenie projektu vašej klávesnici
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: