Muzikinės LED lemputės

arduino
neopixel
šviesos-muzika

#1

LED lempučių sistema reaguojanti į muziką (daugiausiai žemus dažnius). Dėl valdymo ir jungimo paprastumo pasirinktos individualiai adresuojamos LED lemputės WS2812B. Kiekviena jų turi integruotą mikroschemą, dėl to didelį kiekį lempučių galima valdyti su vienu signalo laidu (ir 2 maitinimui).

Lempučių programavimui naudojama Arduino platforma. Arduino kodas visai sistemai yra daugiau nei 3000 eilučių ilgio, bet didžioji dalis kodo skirta ne pačioms LED lemputėms, o įvairių nustatymų valdymui ir saugojimui (taip pat eilučių skaičius išauga vien dėl programavimo rašymo stiliaus).

Sistemos valdymo ir kiti reikalingi komponentai sumontuoti valdymo „dėžėje“. Šios sistemos pagrindinei informacijai pateikti naudojamas LCD ekranas, kuriame meniu valdomas mechaninio enkoderio pagalba. Pačiame meniu galima keisti valdymo sistemos nustatymus ir įvairius lempučių režimus, spalvas, ryškumą ir kitus parametrus.

Enkoderio mygtukas ir korpusas specialiai projektuoti ir 3D spausdinti vien dėl įdomumo ir susipažinimo su 3D spausdinimo technologijomis. Į enkoderio korpusą įmontuotas galinis mygtuko apšvietimas iš 4 RGB LED lempučių. O dvi lemputės tarpe tarp enkoderio ir ekrano yra infrared jutiklio dalis, kurios pajutusios artėjantį objektą (pvz.: ranką) įjungia ekraną ir mygtuko apšvietimą.

Garso signalas į kurį reaguoja lemputės gaunamas iš kompiuterio audio išvesties. Garso signalo rektifikavimui (išlyginimui) ir stiprinimui naudojamas operacinių stiprintuvų lygintuvas, kuriam nėra būdingas tipinis diodų įtampos kritimas. Po tolimesnio signalo lyginimo Arduino kodu gaunamas sklandžiai ir tolygiai kintantis signalas, pagal kurį „šokinėja“ lemputės. Naudota operacinių stiprintuvų lygtinuvo schema:

Bendros valdymo sistemos schemos nedariau, viskas buvo palaipsniui lituojama pagal poreikį. Daugiausiai tai jungtys tarp atskirų komponentų ir arduino valdiklio. Dėl didelio kiekio laidų nuotraukoje nesimato visų komponentų, bet galima išskirti pagrindines dalis.

Naudoti komponentai:

  1. LED lemputės WS2812B
  2. LED lempučių profiliai ir dangteliai
  3. Arduino Pro Mini valdiklis
  4. LCD ekranas 2004
  5. Mechaninis enkoderis
  6. Infrared kliūčių vengimo jutiklis
  7. Operaciniai stiprintuvai LM358
  8. 5V 2A maitinimo šaltinis LED lemputėms
  9. 5V 700mA maitinimo šaltinis likusiai elektronikai
  10. Potenciometrai, rezistoriai, laidai ir kiti elektronikos komponentai
  11. Fanera, dažai, varžtai ir kitos konstrukcinės medžiagos

Detaliau papasakoti apie sistemos sujungimą ir naudotus komponentus reikėtų daug laiko ir daug ilgesnio teksto. O jei kas nors norėtų kažką panašaus bandyti realizuoti, galėčiau paruošti schemą ir pasidalinti kodu.

Kadangi lemputės geriausiai reaguoja į žemus dažnius, tai tokiai sistemai geriausiai ir tinka elektroninės muzikos žanrai: Deep House, Future House, Bass House, Trap ir kt. Būtent tokių pavyzdžių esu paruošęs:

https://www.youtube.com/watch?v=j6C7xCsSr5s
https://www.youtube.com/watch?v=zlFAy5S8oNQ&t=260s
https://www.youtube.com/watch?v=FBi3NQW3G5M
https://www.youtube.com/watch?v=l3iAzy2qrwQ


Konkursas #1 - Olab.lt įkurtuvių proga [baigėsi]
Konkursas #2018_PAVASARIS [BALSAVIMAS]
#2

Labai patiko. Muzikos vizualizacijų sprendimai visada traukė akį :slight_smile: !

Norėčiau kažką panašaus realizuoti! Būtų labai įdomu susipažinti su pajungimo schema ir programiniu kodu. Ar darei nuo nulio, ar pavyko rasti pavyzdžių?


#3

Jau anksčiau buvau matęs nemažai panašių tik paprastesnių idėjų, taip vadinamų “VU-Meter”. Tačiau neradau nieko panašaus su tokiom LED lemputėm, todėl ir nusprendžiau pats kurti savo versiją. Kad nereikėtų čia tokio ilgo kodo mesti, tai jį galima bus nusikopijuoti iš čia: https://drive.google.com/file/d/0B9QdiTal3qb-ZVVPYTR5R3poWTA/view?usp=sharing O schemą pridėsiu vėliau, kai turėsiu daugiau laiko jai padaryti.
Kadangi audio signalas yra gaunamas iš AUX jungties, tai būtinai reikia išorinės audio sistemos, nes kompiuteris atjungia integruotą garsiakalbį bet ką prijungus prie šios jungties. Taip pat reikia, jog kompiuterio nulinis potencialas (ground) būtų visada prijungta prie šios sistemos nulinio potencialo. Tam galima naudoti usb jungtį arba jeigu tokių laisvų nelabai yra, tiesiog laiduką prie betkurios jau prijungtios usb jungties.


#4

Schema:

Nuoroda geresnės kokybės pav.:
https://drive.google.com/file/d/0B9QdiTal3qb-cVY2VXZnZ3Y4QUk/view?usp=sharing