MIDI2LED - svetlobni učinek LED traku z MIDI nadzorom: 6 korakov
MIDI2LED - svetlobni učinek LED traku z MIDI nadzorom: 6 korakov
Anonim
MIDI2LED - svetlobni učinek LED traku z nadzorovanim MIDI
MIDI2LED - svetlobni učinek LED traku z nadzorovanim MIDI

To je moj prvi pouk, zato bodite z mano.

Rad ustvarjam glasbo in v situacijah v živo, kot so koncerti v dnevni sobi, mi je všeč, če so svetlobni učinki usklajeni s tem, kar igram. Tako sem zgradil škatlo, ki temelji na Arduinu, zaradi katere LED trak zasveti v naključni barvi, ko udarim v opombo na tipkovnici MIDI in kjer udarim v opombo.

Zaloge

  • Arduino Uno
  • Arduino protozaslon
  • MIDI priključek
  • 1N4148 dioda
  • Optični spenjač 6N138
  • upori: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • WS2812B LED trak (60 LED)
  • nekaj preostalih žic
  • termoskrčljive cevi
  • primerno ohišje za Arduino (uporabljam plastično razdelilno omarico)

Potrebovali boste tudi

  • spajkalnik in spajkanje
  • MIDI tipkovnica in MIDI kabel

1. korak: Elektronika

Elektronika
Elektronika

Vezje je precej preprosto. Sestavljen je iz standardnega vhoda MIDI (levo od Arduina) in povezave z LED trakom (desno od Arduina). Vse dele postavite na proto ščit, veliko prostora je. Na splošno je priporočljivo, da za napajanje LED traku uporabite zunanji napajalnik, vendar sem ugotovil, da je med igranjem le nekaj LED hkrati prižganih, zato je bilo brez težav pri uporabi Arduino +5V / GND kot izhodne moči. (Poskusite se izogniti pritisku na vse tipke hkrati in s polno hitrostjo.;-)) Če se odločite za uporabo zunanjega napajalnika, ga preprosto priključite na nožice Arduino +5V in GND. Nekateri priporočajo, da med te dve vrstici vstavite kondenzator 100uF (ni prikazan na shemi).

Spajate dele s proto ščitom in LED trak priključite, kot je prikazano na shemi.

2. korak: Priključitev LED traku

Priključitev LED traku
Priključitev LED traku

Pomembno je, da desni konec - vhodni konec - LED traku priključite na vezje. Moj trak ima ženski konektor kot vhod in ima majhne trikotnike, ki so usmerjeni stran od vhoda. Na izhodu je bil moški konektor (da ga lahko povežem z drugim trakom, ki ga ne potrebujemo), zato sem ga odrezal in spajkal na tri kable, ki prihajajo iz Arduina. S toplotno skrčljivo cevjo povežite tri kable na LED trak in jih naredite manj vidne.

LED trak, ki sem ga uporabil, ima na hrbtni strani lepilni trak, zato ga je mogoče enostavno prilepiti na zadnjo stran tipkovnice MIDI.

3. korak: Prilagoditev projekta vaši tipkovnici

Prilagajanje projekta vaši tipkovnici
Prilagajanje projekta vaši tipkovnici
Prilagajanje projekta vaši tipkovnici
Prilagajanje projekta vaši tipkovnici

Morda boste morali prilagoditi LED trak in kodo Arduino tipkovnici. Moj ima 76 tipk, dolžina traku pa je skoraj natančno širina tipkovnice. Če imate npr. 61 ključev, morda boste potrebovali krajši trak. LED trak lahko prerežete med poljubnima dvema LED. Prepričajte se, da odrežete pravilen del, ima vhodni konec (z ženskim konektorjem) in izhodni konec (z moškim konektorjem), vhodni konec morate obdržati. V kodi spremenite #defines za

  • NUMBER_OF_LEDS na število LED, ki ostanejo v traku, potem ko odrežete konec,
  • NUMBER_OF_KEYS na število tipk na tipkovnici in
  • MIN_KEY do številke tona MIDI vašega najnižjega ključa. To lahko najdete v uporabniškem priročniku tipkovnice; ali uporabite orodje, ki prikaže številko zapiska MIDI, na primer KMidiMon za Linux ali Pocket MIDI za Windows ali Mac; ali preizkusite različne vrednosti, dokler se naprava ne odzove na vse tipke na tipkovnici

4. korak: Koda Arduino

Koda Arduino uporablja knjižnico MIDI (v4.3.1) podjetja Forty Seven Effects in knjižnico Adafruit NeoPixel (v1.3.4) podjetja Adafruit. Te knjižnice namestite z Arduino IDE. Nato sestavite kodo in jo naložite na Arduino, ne da bi bil priključen ščit (optični sklopnik je priključen na pin RX, kar ovira nalaganje). Napajajte Arduino prek kabla USB (uporabljam stensko bradavico USB).

Če želite kodo spremeniti po svojih željah, je tukaj kratek pregled, kako deluje: V vsaki zanki se odčita vhod MIDI. Če ste prejeli dogodek Note On ali Note Off, se pokličejo funkcije MyHandleNoteOn ali MyHandleNoteOff. Oba kličeta funkcijo updateVelocityArray, ki shrani hitrost (tj. Kako močno ste pritisnili tipko) številke ključa. Če je hitrost višja od tiste, ki je bila shranjena prej, je barva ustrezne LED nastavljena na "trenutno barvo". Po obravnavi dogodkov MIDI se pokliče funkcija updateLedArray. S tem se posodobi "trenutna barva" (rdeče, zelene in modre vrednosti, ki se neodvisno spreminjajo linearno, dokler ni dosežen spodnji ali zgornji konec, pri katerem je hitrost linearne spremembe nastavljena na naključno število), počasi zmanjšuje hitrost stisnjenih not in posodablja barvne vrednosti vsake LED, ki mora spremeniti svojo barvo (zaradi zadetka nove note ali zmanjšanja hitrosti). Funkcija showLedArray prenaša barve v strukturo Adafruit_NeoPixel, imenovano "piksli", in omogoča, da dejanske LED prikazujejo barve v strukturi slikovnih pik.

5. korak: Možne izboljšave …

Projekt ni nikoli dokončan. Vedno lahko nekaj storite, da ga izboljšate:

  • Proto ščit vsebuje tako malo delov, da je res potrata; enak učinek bi zlahka dosegli z Arduino Nano in PCB s 15 x 7 luknjami ter nekaj ženskimi zatiči.
  • Nekateri signali MIDI se izgubijo. Če je NoteOn, ustrezna LED ne bo zasvetila; če gre za NoteOff, ne bo ugasnil (zato sem uvedel zmanjšanje hitrosti, ki zagotavlja, da LED diode ne bodo neprekinjeno svetile). Še vedno poskušam ugotoviti razlog. Morda je to časovna težava, zato bi morali pogosteje klicati MIDI.read ().
  • Nekateri signali MIDI so napačno prebrani, torej svetijo napačne LED. Lahko se poveže z zgornjo točko. Potrebuje nekaj preiskave.
  • Vezje je zasnovano tako, da daje prijeten vizualni učinek brez veliko interakcije uporabnika (razen igranja klaviature). Lahko pa si predstavljam, da bi dodal potenciometer, ki se odčita (z uporabo enega od analognih vhodov Arduino), s katerim lahko spremenite največjo hitrost spreminjanja barv (trenutno #definirano kot MAX_COLOR_CHANGE_SPEED = 20). Ali pa izmerite povprečni čas med dvema dogodkoma NoteOn in ustrezno spremenite MAX_COLOR_CHANGE_SPEED - pri počasnih skladbah se mora barva spreminjati počasneje.

6. korak: Končano

Napajajte Arduino prek kabla USB (uporabljam stensko bradavico USB). Povežite tipkovnico MIDI s priključkom MIDI in začnite igrati. Poglej me, kako igram lahkotno glasbo (hudournik, pa čeprav je tako namenjen).

Priporočena: