Sadržaj:

MIDI2LED - MIDI kontrolirana LED traka Svjetlosni efekt: 6 koraka
MIDI2LED - MIDI kontrolirana LED traka Svjetlosni efekt: 6 koraka

Video: MIDI2LED - MIDI kontrolirana LED traka Svjetlosni efekt: 6 koraka

Video: MIDI2LED - MIDI kontrolirana LED traka Svjetlosni efekt: 6 koraka
Video: Секрет опытных мастеров! Как легко состыковать материал, если в углу стоит круглая труба? #shorts 2024, Studeni
Anonim
MIDI2LED - MIDI kontrolirani svjetlosni efekt LED traka
MIDI2LED - MIDI kontrolirani svjetlosni efekt LED traka

Ovo je moje prvo uputstvo, pa me podnesite.

Volim stvarati glazbu, a u situacijama uživo poput koncerata u dnevnoj sobi volim kad su svjetlosni efekti usklađeni s onim što sviram. Tako sam izgradio kutiju zasnovanu na Arduinu zbog koje LED traka svijetli u nasumičnoj boji kad udarim notu na MIDI tipkovnici i gdje udarim u notu.

Pribor

  • 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)
  • nešto preostalih žica
  • termoskupljajuće cijevi
  • prikladno kućište za Arduino (koristim plastičnu razvodnu kutiju)

Također će vam trebati

  • lemilica i lemljenje
  • MIDI tipkovnica i MIDI kabel

Korak 1: Elektronika

Elektronika
Elektronika

Krug je prilično jednostavan. Sastoji se od standardnog MIDI ulaza (lijevo od Arduina) i veze s 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 tijekom igre uključeno samo nekoliko LED dioda, pa je bilo nema problema u korištenju Arduina +5V / GND kao izlazne snage. (Pokušajte izbjeći pritiskanje svih tipki u isto vrijeme, i to 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 shematski) između ova dva reda.

Lemiti dijelove na proto štit i spojiti LED traku kao što je prikazano na shemi.

Korak 2: Spajanje LED trake

Spajanje LED trake
Spajanje LED trake

Važno je spojiti desni kraj - ulazni kraj - LED trake u krug. Moja traka ima ženski konektor kao ulaz i ima male trokute cijelo 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 to odrezao i lemio na tri kabela koji dolaze s Arduina. Termoskupljajućim cijevima povežite tri kabela s LED trakom i učinite ih manje vidljivima.

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

Korak 3: Prilagodba projekta vašoj tipkovnici

Prilagodba projekta vašoj tipkovnici
Prilagodba projekta vašoj tipkovnici
Prilagodba projekta vašoj tipkovnici
Prilagodba projekta vašoj tipkovnici

Možda ćete morati prilagoditi LED traku i Arduino kôd svojoj tipkovnici. Moj ima 76 tipki, a duljina trake je gotovo točno širina tipkovnice. 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 za

  • NUMBER_OF_LEDS na broj LED dioda preostalih u traci nakon odsijecanja kraja,
  • NUMBER_OF_KEYS na broj tipki na tipkovnici i
  • MIN_KEY do MIDI broja tona vašeg najnižeg ključa. Možda ćete to pronaći u korisničkom priručniku tipkovnice; 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 tipkovnici

Korak 4: Arduino kod

Arduino kôd koristi MIDI biblioteku (v4.3.1) tvrtke Forty Seven Effects i biblioteku Adafruit NeoPixel (v1.3.4) tvrtke Adafruit. Instalirajte ove knjižnice pomoću Arduino IDE -a. Zatim sastavite kôd i prenesite ga na Arduino bez spojenog štita (opto sprežnik je spojen na RX pin, što ometa učitavanje). Napajajte Arduino putem USB kabela (koristim USB zidnu bradavicu).

Ako želite izmijeniti 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. Time se ažurira "trenutna boja" (čije se crvene, zelene i plave vrijednosti neovisno 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 utisnutih 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 …

Projekt nikad nije dovršen. Uvijek se nešto može učiniti da se to poboljša:

  • Proto štit sadrži toliko malo dijelova da je stvarno otpad; lako bi se mogao postići isti učinak s Arduino Nano i PCB -om 15x7 rupa plus nekoliko ženskih pin zaglavlja.
  • Neki od MIDI signala se gube. Ako je NoteOn, odgovarajuća LED dioda 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. Možda je to problem s vremenom, pa bi se MIDI.read () trebao češće pozivati.
  • Neki od MIDI signala pogrešno su pročitani, tj. Svijetle pogrešne LED diode. Može se povezati s gornjom točkom. Potrebno je malo istrage.
  • Krug je osmišljen 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 (pomoću jednog od Arduinovih analognih ulaza) s kojim možete promijeniti maksimalnu brzinu kojom se boje mijenjaju (trenutno #definira 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

Napajanje Arduina putem USB kabela (koristim USB zidnu bradavicu). Spojite svoju MIDI tipkovnicu na MIDI priključak i počnite se ljuljati. Gledajte me kako puštam laganu glazbu (dosjetka, koliko god bila loša, namjera).

Preporučeni: