Satura rādītājs:

MIDI2LED - MIDI kontrolēts LED sloksnes gaismas efekts: 6 soļi
MIDI2LED - MIDI kontrolēts LED sloksnes gaismas efekts: 6 soļi

Video: MIDI2LED - MIDI kontrolēts LED sloksnes gaismas efekts: 6 soļi

Video: MIDI2LED - MIDI kontrolēts LED sloksnes gaismas efekts: 6 soļi
Video: MIDI-интерфейс Arduino, часть 01 Схемы MIDI INPUT, OUTPUT и THRU 2024, Novembris
Anonim
MIDI2LED - MIDI kontrolēts LED sloksnes gaismas efekts
MIDI2LED - MIDI kontrolēts LED sloksnes gaismas efekts

Šī ir mana pirmā pamācība, tāpēc izturieties ar mani.

Man patīk muzicēt, un dzīvās situācijās, piemēram, dzīvojamās istabas koncertos, man patīk, kad tiek atskaņoti gaismas efekti sinhronizācijā ar to, ko spēlēju. Tāpēc es uzbūvēju uz Arduino balstītu kasti, kas liek LED sloksnei iedegties nejaušā krāsā, kad es nospiedu piezīmi savā MIDI tastatūrā un kur es noklikšķināju uz piezīmes.

Piegādes

  • Arduino Uno
  • Arduino protoshield
  • MIDI ligzda
  • 1N4148 diode
  • 6N138 opto savienotājs
  • rezistori: 2x 220 omi, 1x 10 kOhm, 1x 470 omi
  • WS2812B LED sloksne (60 gaismas diodes)
  • daži atlikušie vadi
  • termiski saraušanās caurules
  • piemērots korpuss Arduino (es izmantoju plastmasas sadales kārbu)

Jums arī vajadzēs

  • lodāmurs un lodētava
  • MIDI tastatūra un MIDI kabelis

1. solis: elektronika

Elektronika
Elektronika

Ķēde ir diezgan vienkārša. Tas sastāv no standarta MIDI ieejas (pa kreisi no Arduino) un savienojuma ar LED sloksni (pa labi no Arduino). Novietojiet visas detaļas uz protoshield, tur ir daudz vietas. Parasti LED sloksnes barošanai ieteicams izmantot ārēju barošanas avotu, bet es atklāju, ka, spēlējot, vienlaikus tiek ieslēgtas tikai dažas gaismas diodes, tāpēc nav problēmu izmantot Arduino +5V / GND kā izejas jaudu. (Centieties nespiest visus taustiņus vienlaikus un ar pilnu ātrumu.;-)) Ja jūs nolemjat izmantot ārēju barošanas avotu, vienkārši pievienojiet to Arduino +5V un GND tapām. Daži cilvēki iesaka starp šīm divām līnijām ievietot 100uF kondensatoru (nav parādīts shematiski).

Lodējiet detaļas protoshield un pievienojiet LED sloksni, kā parādīts shēmā.

2. darbība: LED sloksnes pievienošana

LED sloksnes pievienošana
LED sloksnes pievienošana

Ir svarīgi savienot ķēdi ar LED sloksnes labo galu - ieejas galu. Manai sloksnei ir sieviešu savienotājs kā ieeja, un tajā ir mazi trīsstūri, kas vērsti prom no ieejas. Pie izejas bija savienotājs ar vīrieti (lai to varētu savienot ar citu sloksni, kas mums nav nepieciešama), tāpēc es to nogriezu un pielodēju pie trim kabeļiem, kas nāk no Arduino. Izmantojiet saraušanās caurules, lai savienotu trīs kabeļus ar LED sloksni un padarītu tos mazāk redzamus.

Manis izmantotās LED sloksnes aizmugurē ir līmlente, tāpēc to var viegli pielīmēt MIDI tastatūras aizmugurē.

3. darbība. Projekta pielāgošana tastatūrai

Projekta pielāgošana tastatūrai
Projekta pielāgošana tastatūrai
Projekta pielāgošana tastatūrai
Projekta pielāgošana tastatūrai

Jums, iespējams, būs jāpielāgo LED sloksne un Arduino kods tastatūrai. Manējā ir 76 taustiņi, un sloksnes garums ir gandrīz tieši tastatūras platums. Ja jums piem. 61 taustiņi, jums var būt nepieciešama īsāka sloksne. LED sloksni var sagriezt starp jebkurām divām gaismas diodēm. Vienkārši pārliecinieties, ka nogriežat pareizo daļu, tai ir ieejas gals (ar sieviešu savienotāju) un izejas gals (ar vīriešu savienotāju), jums ir jāsaglabā ievades beigas. Kodā mainiet #defines priekš

  • NUMBER_OF_LEDS līdz to gaismas diožu skaitam, kas palikušas jūsu joslā pēc gala nogriešanas,
  • NUMBER_OF_KEYS līdz tastatūras taustiņu skaitam un
  • MIN_KEY līdz zemākās atslēgas MIDI piķa numuram. To var atrast tastatūras lietotāja rokasgrāmatā; vai izmantojiet rīku, kas parāda MIDI piezīmes numuru, piemēram, KMidiMon operētājsistēmai Linux vai Pocket MIDI operētājsistēmai Windows vai Mac; vai izmēģiniet dažādas vērtības, līdz ierīce reaģē uz visiem tastatūras taustiņiem

4. solis: Arduino kods

Arduino kodā tiek izmantota četrdesmit septiņu efektu MIDI bibliotēka (v4.3.1) un Adafruit bibliotēka Adafruit NeoPixel (v1.3.4). Instalējiet šīs bibliotēkas, izmantojot Arduino IDE. Pēc tam apkopojiet kodu un augšupielādējiet to Arduino, ja nav pievienots vairogs (optiskais savienotājs ir pievienots RX tapai, kas kavē augšupielādi). Barojiet Arduino, izmantojot USB kabeli (es izmantoju USB sienas kārpu).

Ja vēlaties modificēt kodu pēc saviem ieskatiem, šeit ir īss pārskats par tā darbību: katrā ciklā tiek nolasīta MIDI ievade. Ja ir saņemts notikums Note On vai Note Off, tiek izsauktas MyHandleNoteOn vai MyHandleNoteOff funkcijas. Viņi abi izsauc funkciju updateVelocityArray, kas saglabā atslēgas numura ātrumu (t.i., cik smagi esat nospiedis taustiņu). Ja ātrums ir lielāks par iepriekš saglabāto, atbilstošās gaismas diodes krāsa tiek iestatīta uz "pašreizējo krāsu". Pēc MIDI notikumu apstrādes tiek izsaukta funkcija updateLedArray. Tādējādi tiek atjaunināta "pašreizējā krāsa" (kuras sarkanās, zaļās un zilās vērtības mainās neatkarīgi lineārā veidā, līdz tiek sasniegts apakšējais vai augšējais gals, kurā lineāro izmaiņu ātrums ir iestatīts uz nejaušu skaitli), lēnām samazina nospiesto piezīmju ātrumu un atjaunina katras gaismas diodes krāsu vērtības, kurām ir jāmaina krāsa (jauna nots trāpījuma vai ātruma samazināšanās dēļ). Funkcija showLedArray pārnes krāsas uz Adafruit_NeoPixel struktūru, ko sauc par "pikseļiem", un liek faktiskajām gaismas diodēm parādīt pikseļu struktūras krāsas.

5. darbība. Iespējamie uzlabojumi…

Projekts nekad nav pabeigts. Vienmēr var kaut ko darīt, lai to uzlabotu:

  • Protoshield satur tik maz detaļu, ka tas tiešām ir atkritumi; to pašu efektu varētu viegli sasniegt ar Arduino Nano un 15x7 caurumu PCB, kā arī dažām sieviešu tapām.
  • Daži MIDI signāli pazūd. Ja tas ir NoteOn, atbilstošā gaismas diode nedeg; ja tas ir NoteOff, tas nenodziest (tāpēc es ieviesu ātruma samazināšanu, kas nodrošina, ka gaismas diodes nepaliks bezgalīgi). Es joprojām cenšos noskaidrot iemeslu. Iespējams, tā ir laika problēma, un MIDI.read () būtu jāzvana biežāk.
  • Daži MIDI signāli ir nepareizi lasīti, t.i., iedegas nepareizas gaismas diodes. Var būt saistīts ar iepriekš minēto punktu. Vajag kādu izmeklēšanu.
  • Ķēde ir veidota tā, lai sniegtu patīkamu vizuālu efektu bez lielas lietotāja mijiedarbības (izņemot tastatūras spēlēšanu). Tomēr es varētu iedomāties pievienot potenciometru, kas tiek nolasīts (izmantojot vienu no Arduino analogās ieejas), ar kuru jūs varat mainīt krāsu maiņas maksimālo ātrumu (pašlaik #definēt kā MAX_COLOR_CHANGE_SPEED = 20). Vai arī izmēriet vidējo laiku starp diviem NoteOn notikumiem un attiecīgi mainiet MAX_COLOR_CHANGE_SPEED - lēnās dziesmās krāsai vajadzētu mainīties lēnāk.

6. solis: Gatavs

Barojiet Arduino, izmantojot USB kabeli (es izmantoju USB sienas kārpu). Pievienojiet MIDI tastatūru MIDI ligzdai un sāciet šūpot. Skatieties, kā es spēlēju vieglu mūziku (pun, lai cik slikti tas būtu, tas ir paredzēts).

Ieteicams: