MIDI2LED - MIDI kontrolisana LED traka Svetlosni efekat: 6 koraka
MIDI2LED - MIDI kontrolisana LED traka Svetlosni efekat: 6 koraka
Anonim
MIDI2LED - MIDI kontrolisani svjetlosni efekt LED traka
MIDI2LED - MIDI kontrolisani svjetlosni efekt LED traka

Ovo je moje prvo uputstvo, pa me podnesite.

Volim stvarati muziku, a u situacijama uživo, poput koncerata u dnevnoj sobi, volim kad su svjetlosni efekti usklađeni sa onim što sviram. Tako sam sagradio kutiju zasnovanu na Arduinu koja čini da LED traka zasvijetli slučajnom bojom kada udarim notu na svoju MIDI tastaturu i gdje udarim u notu.

Supplies

  • Arduino Uno
  • Arduino proto štit
  • MIDI priključak
  • 1N4148 dioda
  • Optička spojnica 6N138
  • otpornici: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • WS2812B LED traka (60 LED)
  • neke preostale žice
  • termoskupljajuće cijevi
  • odgovarajuće kućište za Arduino (koristim plastičnu razvodnu kutiju)

Takođe će vam trebati

  • lemilica i lemljenje
  • MIDI tastatura i MIDI kabl

Korak 1: Elektronika

The Electronics
The Electronics

Krug je prilično jednostavan. Sastoji se od standardnog MIDI ulaza (lijevo od Arduina) i veze sa LED trakom (desno od Arduina). Stavite sve dijelove na proto štit, ima puno prostora. Općenito se preporučuje korištenje vanjskog izvora napajanja za napajanje LED trake, ali otkrio sam da je pri sviranju uključeno samo nekoliko LED dioda u isto vrijeme, pa je bilo nema problema u korištenju Arduina +5V / GND kao izlazne snage. (Pokušajte izbjeći pritiskanje svih tipki istovremeno i punom brzinom.;-)) Ako odlučite koristiti vanjsko napajanje, jednostavno ga spojite na Arduino +5V i GND pinove. Neki ljudi preporučuju umetanje kondenzatora od 100uF (nije prikazan na shemi) između ova dva reda.

Lemite dijelove na proto štit i povežite LED traku kao što je prikazano na shemi.

Korak 2: Spajanje LED trake

Priključivanje LED trake
Priključivanje LED trake

Važno je spojiti desni kraj - ulazni kraj - LED trake na kolo. Moja traka ima ženski konektor kao ulaz i ima male trokute sve vrijeme usmjerene od ulaza. Na izlazu je bio muški konektor (kako bismo ga mogli spojiti na drugu traku, koja nam ne treba), pa sam ga odrezao i lemio na tri kabela koji dolaze s Arduina. Upotrijebite termoskupljajuće cijevi da povežete tri kabela zajedno sa LED trakom i učinite ih manje vidljivim.

LED traka koju sam koristio dolazi sa ljepljivom trakom na poleđini, tako da se lako može zalijepiti za stražnju stranu MIDI tastature.

Korak 3: Prilagođavanje projekta vašoj tastaturi

Prilagođavanje projekta vašoj tastaturi
Prilagođavanje projekta vašoj tastaturi
Prilagođavanje projekta vašoj tastaturi
Prilagođavanje projekta vašoj tastaturi

Možda ćete morati prilagoditi LED traku i Arduino kôd svojoj tastaturi. Moj ima 76 tipki, a dužina trake je gotovo točno širina tastature. Ako imate npr. 61 ključ, možda će vam trebati kraća traka. LED traka se može rezati između bilo koje dvije LED diode. Samo pazite da odrežete ispravan dio, ima ulazni kraj (sa ženskim konektorom) i izlazni kraj (s muškim konektorom), morate zadržati ulazni kraj. U kodu promijenite #defines for

  • NUMBER_OF_LEDS na broj LED dioda preostalih u traci nakon odsijecanja kraja,
  • NUMBER_OF_KEYS na broj tastera na tastaturi i
  • MIN_KEY do MIDI broja tona vašeg najnižeg ključa. Ovo ćete pronaći u korisničkom priručniku tastature; ili upotrijebite alat koji prikazuje broj bilješke MIDI, poput KMidiMon za Linux ili Pocket MIDI za Windows ili Mac; ili isprobajte različite vrijednosti dok uređaj ne odgovori na sve tipke na vašoj tastaturi

Korak 4: Arduino kod

Arduino kôd koristi MIDI biblioteku (v4.3.1) kompanije Forty Seven Effects i biblioteku Adafruit NeoPixel (v1.3.4) kompanije Adafruit. Instalirajte ove biblioteke pomoću Arduino IDE -a. Zatim sastavite kôd i prenesite ga na Arduino bez spojenog štita (optička sprega je spojena na RX pin, što ometa učitavanje). Napajajte Arduino putem USB kabela (koristim USB zidnu bradavicu).

Ako želite promijeniti kôd po svom ukusu, evo kratkog pregleda kako to funkcionira: U svakoj petlji očitava se MIDI ulaz. Ako je primljen događaj Note On ili Note Off, pozivaju se funkcije MyHandleNoteOn ili MyHandleNoteOff. Oboje pozivaju funkciju updateVelocityArray koja pohranjuje brzinu (tj. Koliko ste jako pritisnuli tipku) broja ključa. Ako je brzina veća od one koja je prethodno pohranjena, boja odgovarajuće LED diode postavlja se na "trenutnu boju". Nakon obrade MIDI događaja, poziva se funkcija updateLedArray. Ovim se ažurira "trenutna boja" (crvene, zelene i plave vrijednosti koje se nezavisno mijenjaju linearno, sve dok se ne dosegne donji ili gornji kraj, pri čemu se brzina linearne promjene postavlja na slučajni broj), polako smanjuje brzinu istisnutih nota i ažurira vrijednosti boje svake LED diode koja mora promijeniti boju (zbog novog pogotka note ili smanjenja brzine). Funkcija showLedArray prenosi boje u strukturu Adafruit_NeoPixel koja se naziva "pikseli" i čini da stvarne LED diode prikazuju boje u strukturi piksela.

Korak 5: Moguća poboljšanja …

Projekat nikada nije završen. Uvijek se nešto može učiniti da se to poboljša:

  • Proto -štit sadrži toliko malo dijelova da je zaista otpad; lako bi se mogao postići isti učinak s Arduino Nano -om i PCB -om sa 15 rupa i 15 rupa te nekim ženskim pin zaglavljima.
  • Neki od MIDI signala se gube. Ako je NoteOn, odgovarajuća LED lampica neće zasvijetliti; ako je NoteOff, neće se ugasiti (zato sam uveo smanjenje brzine, što osigurava da LED diode neće ostati uključene neograničeno dugo). Još uvijek pokušavam otkriti razlog. Moguće je da je to vremenski problem, pa bi MIDI.read () trebalo češće pozivati.
  • Neki od MIDI signala su pogrešno pročitani, odnosno svijetli pogrešna LED dioda. Može se povezati sa gornjom tačkom. Treba istraga.
  • Kolo je dizajnirano tako da daje ugodan vizualni efekt bez mnogo interakcije korisnika (osim sviranja na klavijaturi). Međutim, mogao sam zamisliti dodavanje potenciometra koji se očitava (koristeći jedan od analognih ulaza Arduina) s kojim možete promijeniti maksimalnu brzinu kojom se boje mijenjaju (trenutno #definirano kao MAX_COLOR_CHANGE_SPEED = 20). Ili izmjerite prosječno vrijeme između dva NoteOn događaja i prema tome promijenite MAX_COLOR_CHANGE_SPEED - u sporim pjesmama boja bi se trebala mijenjati sporije.

Korak 6: Gotovo

Napajajte Arduino putem USB kabela (koristim USB zidnu bradavicu). Spojite svoju MIDI tastaturu na MIDI priključak i počnite se ljuljati. Gledajte me kako puštam laganu muziku (zamišljeno, ma koliko loša bila, namjerno).

Preporučuje se: