MIDI2LED - MIDI juhitav LED -riba valgusefekt: 6 sammu
MIDI2LED - MIDI juhitav LED -riba valgusefekt: 6 sammu
Anonim
MIDI2LED - MIDI juhitav LED -riba valgusefekt
MIDI2LED - MIDI juhitav LED -riba valgusefekt

See on minu esimene juhendatav, nii et olge minuga.

Mulle meeldib muusikat teha ja sellistes reaalajas olukordades nagu elutoa kontserdid meeldib mulle, kui mängitavaga sünkroonis on valgusefektid. Nii ehitasin ma Arduino-põhise kasti, mis paneb LED-riba heledama juhusliku värviga, kui taban oma MIDI-klaviatuuri noodi ja kus ma noodi taban.

Tarvikud

  • Arduino Uno
  • Arduino protoshield
  • MIDI pesa
  • Diood 1N4148
  • 6N138 optiline sidur
  • takistid: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • WS2812B LED -riba (60 LED -i)
  • mõned juhtmete jäägid
  • termokahanevad torud
  • sobiv korpus Arduino jaoks (ma kasutan plastikust jaotuskarpi)

Teil on ka vaja

  • jootekolb ja jootekolb
  • MIDI -klaviatuur ja MIDI -kaabel

Samm: elektroonika

Elektroonika
Elektroonika

Ahel on üsna lihtne. See koosneb tavalisest MIDI -sisendist (Arduino vasakul) ja ühendusest LED -ribaga (Arduino paremal). Asetage kõik osad protoshieldile, seal on palju ruumi. Üldiselt soovitatakse LED -riba toiteks kasutada välist toiteallikat, kuid leidsin, et mängides põlevad korraga vaid mõned LED -id, seega Arduino +5V / GND kasutamisel väljundina pole probleeme. (Püüdke vältida kõigi klahvide üheaegset ja täie kiirusega vajutamist.;-)) Kui otsustate kasutada välist toiteallikat, ühendage see lihtsalt Arduino +5V ja GND kontaktidega. Mõned inimesed soovitavad nende kahe rea vahele sisestada 100uF kondensaatori (pole skemaatiliselt näidatud).

Jootke osad protoshieldi külge ja ühendage LED -riba, nagu on näidatud skemaatiliselt.

Samm: LED -riba ühendamine

LED -riba ühendamine
LED -riba ühendamine

Oluline on ühendada ahelaga LED -riba parem ots - sisendots. Minu ribal on sisendina naissoost pistik ja sellel on väikesed kolmnurgad, mis on suunatud sisendist eemale. Väljundis oli isane pistik (et saaksime selle ühendada teise ribaga, mida me ei vaja), nii et katkestasin selle ja jootsin selle kolme Arduino kaabli külge. Siduge kolm kaablit LED -riba külge ja vähendage nende nähtavust termokahanevate torude abil.

Minu kasutatud LED -riba tagaküljel on kleeplint, nii et seda saab kergesti liimida MIDI -klaviatuuri tagaküljele.

3. samm: projekti kohandamine oma klaviatuuriga

Projekti kohandamine oma klaviatuuriga
Projekti kohandamine oma klaviatuuriga
Projekti kohandamine oma klaviatuuriga
Projekti kohandamine oma klaviatuuriga

Võimalik, et peate LED -riba ja Arduino koodi oma klaviatuuriga kohandama. Minul on 76 klahvi ja riba pikkus on peaaegu täpselt klaviatuuri laius. Kui teil on nt. 61 klahvi, võib vaja minna lühemat riba. LED -riba saab lõigata kahe LED -i vahele. Lihtsalt veenduge, et lõikate õige osa ära, sellel on sisendots (naissoost pistikuga) ja väljundots (meessoost pistikuga), peate sisendotsa alles hoidma. Muutke koodis #defines eest

  • NUMBER_OF_LEDS pärast riba lõppu jäänud ribade LED -ide arvu,
  • NUMBER_OF_KEYS klaviatuuri klahvide arvule ja
  • MIN_KEY madalaima võtme MIDI pigi numbrile. Selle leiate klaviatuuri kasutusjuhendist; või kasutage tööriista, mis kuvab MIDI märkme numbri, näiteks KMidiMon Linuxi jaoks või Pocket MIDI Windowsi või Maci jaoks; või proovige erinevaid väärtusi, kuni seade reageerib kõigile teie klaviatuuri klahvidele

Samm: Arduino kood

Arduino kood kasutab Forty Seven Effectsi MIDI raamatukogu (v4.3.1) ja Adafruit NeoPixeli raamatukogu (v1.3.4). Installige need teegid Arduino IDE abil. Seejärel koostage kood ja laadige see Arduinosse ilma kilpi ühendamata (optron on ühendatud RX -pistikuga, mis takistab üleslaadimist). Lülitage Arduino sisse USB -kaabli kaudu (ma kasutan USB -seintüügast).

Kui soovite koodi oma maitse järgi muuta, siis siin on lühike ülevaade selle toimimisest: igas silmus loetakse ette MIDI sisend. Kui on saabunud sündmus Note On või Note Off, kutsutakse üles funktsioonid MyHandleNoteOn või MyHandleNoteOff. Mõlemad kutsuvad funktsiooni updateVelocityArray, mis salvestab võtme numbri kiiruse (st kui kõvasti olete klahvi vajutanud). Kui kiirus on suurem kui varem salvestatud, määratakse vastava LED -i värviks "praegune värv". Pärast MIDI sündmuste käsitlemist kutsutakse üles funktsioon updateLedArray. See värskendab "praegust värvi" (mille punased, rohelised ja sinised väärtused muutuvad lineaarselt sõltumatult, kuni saavutatakse alumine või ülemine ots, mille juures lineaarse muutuse kiirus on seatud juhuslikule numbrile), vähendab aeglaselt pressitud nootide kiirust ja värskendab iga LED -i värviväärtusi, mis peavad värvi muutma (uue noodi tabamise või kiiruse vähenemise tõttu). Funktsioon showLedArray kannab värvid üle Adafruit_NeoPixeli struktuurile, mida nimetatakse piksliteks, ja paneb tegelikud LED -id näitama pikslite struktuuri värve.

Samm: võimalikud täiustused…

Projekt pole kunagi lõppenud. Selle parandamiseks saab alati midagi teha:

  • Protoshield sisaldab nii vähe osi, et see on tõesti raiskamine; sama efekti oleks lihtne saavutada Arduino Nano ja 15x7 auguga PCB ning mõne naissoost tihvtiga.
  • Mõned MIDI -signaalid lähevad kaduma. Kui see on NoteOn, siis vastav LED ei sütti; kui see on NoteOff, siis see ei kustu (sellepärast võtsin kasutusele kiiruse vähendamise, mis tagab, et LED -id ei jää lõputult põlema). Püüan ikka põhjuse välja selgitada. Võimalik, et see on ajastusprobleem ja MIDI.read () tuleks helistada sagedamini.
  • Mõnda MIDI -signaali loetakse valesti, s.t põlevad valed LED -id. Võib ühendada ülaltoodud punktiga. Vajab uurimist.
  • Vooluahel on loodud andma meeldiva visuaalse efekti ilma kasutaja sekkumiseta (peale klaviatuuri mängimise). Kuid ma võiksin ette kujutada lisatud potentsiomeetri lisamist (kasutades ühte Arduino analoogsisendit), millega saate muuta värvide muutumise maksimaalset kiirust (praegu #define'd kui MAX_COLOR_CHANGE_SPEED = 20). Või mõõtke kahe NoteOn -sündmuse vahelist keskmist aega ja muutke vastavalt MAX_COLOR_CHANGE_SPEED - aeglaste lugude puhul peaks värv muutuma aeglasemalt.

6. samm: valmis

Lülitage Arduino sisse USB -kaabli kaudu (ma kasutan USB -seintüügast). Ühendage oma MIDI -klaviatuur MIDI -pesaga ja hakake rokkima. Vaadake, kuidas ma mängin veidi kerget muusikat (sõnamäng, nii halb kui see ka pole, mõeldud).

Soovitan: