Përmbajtje:

MIDI2LED - një Ndriçues i Ndriçuar me Rrip LED i Ndikuar: 6 Hapa
MIDI2LED - një Ndriçues i Ndriçuar me Rrip LED i Ndikuar: 6 Hapa

Video: MIDI2LED - një Ndriçues i Ndriçuar me Rrip LED i Ndikuar: 6 Hapa

Video: MIDI2LED - një Ndriçues i Ndriçuar me Rrip LED i Ndikuar: 6 Hapa
Video: Часть 5. Аудиокнига Эдит Уортон «Эпоха невинности» (главы 31–34) 2024, Nëntor
Anonim
MIDI2LED - një efekt i dritës LED i kontrolluar nga MIDI
MIDI2LED - një efekt i dritës LED i kontrolluar nga MIDI

Ky është udhëzimi im i parë, prandaj duroni me mua.

Më pëlqen të bëj muzikë, dhe në situata të drejtpërdrejta si koncertet në dhomën e ndenjes, më pëlqen kur ka efekte të lehta në sinkron me atë që luaj. Kështu që unë ndërtova një kuti të bazuar në Arduino që e bën një shirit LED të ndizet në një ngjyrë të rastësishme kur godas një shënim në tastierën time MIDI dhe ku e godas shënimin.

Furnizimet

  • Arduino Uno
  • Arduino protoshield
  • Fole MIDI
  • Diodë 1N4148
  • 6N138 bashkues opto
  • rezistorë: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • Rrip LED WS2812B (60 LED)
  • disa tela të mbetur
  • tubat e tkurrjes së nxehtësisë
  • zorrë e përshtatshme për Arduino (unë përdor një kuti kryqëzimi plastike)

Ju gjithashtu do të keni nevojë

  • saldim dhe saldim
  • Tastiera MIDI dhe kabllo MIDI

Hapi 1: Elektronika

Elektronika
Elektronika

Qarku është mjaft i drejtpërdrejtë. Përbëhet nga një hyrje standarde MIDI (majtas Arduino) dhe lidhja me shiritin LED (djathtas Arduino). Vendosni të gjitha pjesët në protoshield, ka shumë hapësirë. Në përgjithësi rekomandohet të përdorni një furnizim me energji të jashtme për të fuqizuar shiritin LED, por zbulova se kur luani, vetëm disa LED janë të ndezur në të njëjtën kohë, kështu që kishte nuk ka problem në përdorimin e Arduino +5V / GND si dalje e energjisë. (Mundohuni të shmangni goditjen e të gjithë çelësave në të njëjtën kohë, dhe me shpejtësi të plotë.;-)) Nëse vendosni të përdorni një furnizim me energji të jashtme, thjesht lidheni atë me kunjat Arduino +5V dhe GND. Disa njerëz rekomandojnë futjen e një kondensatori 100uF (nuk tregohet në skemë) midis këtyre dy rreshtave.

Ngjitini pjesët në protoshield dhe lidhni shiritin LED siç tregohet në skemë.

Hapi 2: Lidhja e Rripit LED

Lidhja e Rripit LED
Lidhja e Rripit LED

Importantshtë e rëndësishme të lidhni skajin e djathtë - skajin hyrës - të shiritit LED në qark. Shiriti im ka një lidhës femër si hyrje, dhe ka trekëndësha të vegjël që tregojnë nga hyrja. Në dalje, kishte një lidhës mashkullor (për të qenë në gjendje ta lidhim atë me një rrip tjetër, për të cilin nuk na nevojitet), kështu që e ndërpreva dhe e bashkova në tre kabllot që vijnë nga Arduino. Përdorni tubin e tkurrjes së nxehtësisë për t'i lidhur tre kabllot në shiritin LED së bashku dhe për t'i bërë ato më pak të dukshme.

Shiriti LED që kam përdorur vjen me shirit ngjitës në pjesën e pasme, kështu që lehtë mund të ngjitet në pjesën e pasme të tastierës MIDI.

Hapi 3: Përshtatja e projektit me tastierën tuaj

Përshtatja e projektit me tastierën tuaj
Përshtatja e projektit me tastierën tuaj
Përshtatja e projektit me tastierën tuaj
Përshtatja e projektit me tastierën tuaj

Ju mund të keni nevojë të përshtatni shiritin LED dhe kodin Arduino në tastierën tuaj. I imi ka 76 çelësa, dhe gjatësia e shiritit është pothuajse saktësisht gjerësia e tastierës. Nëse keni p.sh. 61 çelësa, mund të keni nevojë për një shirit më të shkurtër. Shiriti LED mund të pritet midis dy LED -ve. Vetëm sigurohuni që jeni duke prerë pjesën e duhur, ajo ka një fund hyrës (me një lidhës femër) dhe një fund dalës (me një lidhës mashkull), ju duhet të mbani fundin e hyrjes. Në kod, ndryshoni #defines për

  • NUMBER_OF_LEDS në numrin e LED -ve të mbetura në shiritin tuaj pasi keni ndërprerë fundin,
  • NUMBER_OF_KEYS në numrin e çelësave në tastierën tuaj, dhe
  • MIN_KEY në numrin e katranit MIDI të çelësit tuaj më të ulët. Këtë mund ta gjeni në manualin e përdorimit të tastierës; ose përdorni një mjet që shfaq numrin e shënimit MIDI, si KMidiMon për Linux, ose Pocket MIDI për Windows ose Mac; ose provoni vlera të ndryshme derisa pajisja t'i përgjigjet të gjithë çelësave në tastierën tuaj

Hapi 4: Kodi Arduino

Kodi Arduino përdor bibliotekën MIDI (v4.3.1) nga Dyzet Shtatë Efektet dhe bibliotekën Adafruit NeoPixel (v1.3.4) nga Adafruit. Instaloni këto biblioteka duke përdorur Arduino IDE. Pastaj përpiloni kodin dhe ngarkojeni atë në Arduino pa mburojë të lidhur (optokifti është i lidhur me kunjin RX, i cili pengon ngarkimin). Furnizoni Arduino përmes kabllit USB (unë përdor një lyth të murit USB).

Nëse dëshironi të modifikoni kodin sipas dëshirës tuaj, këtu keni një përmbledhje të shkurtër se si funksionon: Në çdo lak, hyrja MIDI lexohet. Nëse është marrë një ngjarje Shënim Aktiv ose Shënim, thirren funksionet MyHandleNoteOn ose MyHandleNoteOff. Ata të dy e quajnë funksionin updateVelocityArray, i cili ruan shpejtësinë (domethënë sa fort keni goditur çelësin) të numrit të çelësit. Nëse shpejtësia është më e lartë se ajo e ruajtur më parë, ngjyra e LED -it përkatës vendoset në "ngjyrën aktuale". Pasi të jenë trajtuar ngjarjet MIDI, thirret funksioni updateLedArray. Kjo përditëson "ngjyrën aktuale" (vlerat e kuqe, jeshile dhe blu të të cilave ndryshojnë në mënyrë të pavarur në mënyrë lineare, derisa të arrihet skaji i poshtëm ose i sipërm, në të cilin pikë shpejtësia për ndryshimin linear vendoset në një numër të rastit), ngadalë zvogëlon shpejtësinë e shënimeve të shtypura dhe përditëson vlerat e ngjyrave të secilës LED që duhet të ndryshojë ngjyrën e saj (për shkak të goditjes së shënimit të ri, ose zvogëlimit të shpejtësisë). Funksioni showLedArray transferon ngjyrat në strukturën Adafruit_NeoPixel të quajtur "pixel" dhe i bën LED -et aktuale të tregojnë ngjyrat në strukturën e pikselave.

Hapi 5: Përmirësimet e mundshme…

Një projekt nuk përfundon kurrë. Gjithmonë ka diçka që mund të bëhet për ta përmirësuar atë:

  • Protoshield përmban aq pak pjesë sa është me të vërtetë një humbje; lehtë mund të arrini të njëjtin efekt me një Arduino Nano dhe një PCB me vrima 15x7 plus disa tituj femrash me kunja.
  • Disa nga sinjalet MIDI humbasin. Nëse është një NoteOn, LED përkatës nuk do të ndizet; nëse është një NoteOff, nuk do të fiket (kjo është arsyeja pse unë prezantova zvogëlimin e shpejtësisë, e cila siguron që LED -të nuk do të qëndrojnë të pacaktuar). Unë jam ende duke u përpjekur të kuptoj arsyen. Ndoshta është një çështje kohe, dhe MIDI.read () duhet të thirret më shpesh.
  • Disa nga sinjalet MIDI janë keqlexuar, domethënë ndriçojnë LED -të e gabuar. Mund të lidhet me pikën e mësipërme. Ka nevojë për një hetim.
  • Qarku është krijuar për të dhënë një efekt vizual të këndshëm pa shumë ndërveprim të përdoruesit (përveç luajtjes së tastierës). Sidoqoftë, mund të imagjinoja të shtoja një potenciometër që lexohet (duke përdorur një nga hyrjet analoge të Arduino) me të cilën mund të ndryshoni shpejtësinë maksimale me të cilën ndryshojnë ngjyrat (aktualisht #përcaktohet si MAX_COLOR_CHANGE_SPEED = 20). Ose matni kohën mesatare midis dy ngjarjeve të NoteOn dhe ndryshoni MAX_COLOR_CHANGE_SPEED në përputhje me rrethanat - në këngët e ngadalta, ngjyra duhet të ndryshojë më ngadalë.

Hapi 6: U krye

Furnizoni Arduino përmes kabllit USB (unë përdor një lyth të murit USB). Lidhni tastierën tuaj MIDI me folenë MIDI dhe filloni të lëvizni. Më shiko të luaj pak muzikë të lehtë (lojëra fjalësh, aq e keqe sa është, e menduar).

Recommended: