Բովանդակություն:

MIDI2LED - MIDI վերահսկվող LED շերտի լուսային էֆեկտ. 6 քայլ
MIDI2LED - MIDI վերահսկվող LED շերտի լուսային էֆեկտ. 6 քայլ

Video: MIDI2LED - MIDI վերահսկվող LED շերտի լուսային էֆեկտ. 6 քայլ

Video: MIDI2LED - MIDI վերահսկվող LED շերտի լուսային էֆեկտ. 6 քայլ
Video: Голубая стрела (1958) фильм 2024, Նոյեմբեր
Anonim
MIDI2LED - MIDI վերահսկվող LED շերտի լուսային էֆեկտ
MIDI2LED - MIDI վերահսկվող LED շերտի լուսային էֆեկտ

Սա իմ առաջին հրահանգն է, ուստի համբերիր ինձ:

Ես սիրում եմ երաժշտություն պատրաստել, և կենդանի իրավիճակներում, ինչպիսիք են հյուրասենյակի համերգները, ինձ դուր է գալիս, երբ կան լուսային էֆեկտներ, որոնք համընկնում են իմ նվագածի հետ: Այսպիսով, ես կառուցեցի Arduino- ի վրա հիմնված տուփ, որի շնորհիվ LED շերտը լուսավորվում է պատահական գույնով, երբ MIDI ստեղնաշարի վրա նշում եմ հարվածում, և որտեղ հարվածում եմ նոտային:

Պարագաներ

  • Արդուինո Ունո
  • Արդուինո պրոտոշիլդ
  • MIDI խցիկ
  • 1N4148 դիոդ
  • 6N138 օպտո կցորդիչ
  • ռեզիստորներ ՝ 2x 220 Օմ, 1x 10 կՕմ, 1x 470 Օմ
  • WS2812B LED ժապավեն (60 LED)
  • որոշ մնացորդային լարեր
  • ջերմային նեղացման խողովակ
  • հարմար պատյան Arduino- ի համար (ես օգտագործում եմ պլաստիկ միացման տուփ)

Ձեզ նույնպես պետք կգա

  • զոդման եւ զոդման
  • MIDI ստեղնաշար և MIDI մալուխ

Քայլ 1: Էլեկտրոնիկա

Էլեկտրոնիկա
Էլեկտրոնիկա

Շղթան բավականին պարզ է: Այն բաղկացած է ստանդարտ MIDI մուտքագրումից (Arduino- ից ձախ) և LED շերտի միացումից (Arduino- ի աջից): Տեղադրեք բոլոր մասերը պրոտոշիդի վրա, շատ տեղ կա: Ընդհանրապես խորհուրդ է տրվում օգտագործել արտաքին հոսանքի աղբյուր ՝ LED շերտը սնուցելու համար, բայց ես գտա, որ նվագելիս միաժամանակ մի քանի LED լուսարձակներ են միացված, ուստի կար Arduino +5V / GND- ի ՝ որպես էներգիայի ելք օգտագործելու խնդիր չկա: (Փորձեք խուսափել բոլոր ստեղները միաժամանակ և ամբողջ արագությամբ հարվածելուց;-)) Եթե որոշեք օգտագործել արտաքին էներգիայի աղբյուր, պարզապես միացրեք այն Arduino +5V և GND կապումներին: Ոմանք խորհուրդ են տալիս այս երկու տողերի միջև տեղադրել 100uF կոնդենսատոր (սխեմատիկորեն նշված չէ):

Մասերը կպցրեք protoshield- ին և միացրեք LED շերտը, ինչպես ցույց է տրված սխեմատիկայում:

Քայլ 2: LED շերտի միացում

LED շերտի միացում
LED շերտի միացում

Կարևոր է միացնել LED շերտի աջ ծայրը `մուտքի ծայրը: Իմ շերտն իգական միակցիչ ունի որպես մուտք, և ամբողջ երկայնքով ունի փոքր եռանկյունիներ, որոնք ուղղված են մուտքից: Ելքում կար արական միակցիչ (որպեսզի կարողանամ այն միացնել մեկ այլ ժապավենի, որը մեզ պետք չէ), ուստի ես այն անջատեցի և այն զոդեցի Arduino- ից եկող երեք մալուխներին: Երեք մալուխները LED շերտի վրա միասին կապելու և դրանք ավելի քիչ տեսանելի դարձնելու համար օգտագործեք ջերմության նվազեցման խողովակ:

Իմ օգտագործած լուսադիոդային ժապավենը հետևի մասում ունի կպչուն ժապավեն, այնպես որ այն հեշտությամբ կարելի է սոսնձել MIDI ստեղնաշարի հետևի մասում:

Քայլ 3: Նախագիծը հարմարեցնել ձեր ստեղնաշարին

Նախագծի հարմարեցում ձեր ստեղնաշարին
Նախագծի հարմարեցում ձեր ստեղնաշարին
Նախագծի հարմարեցում ձեր ստեղնաշարին
Նախագծի հարմարեցում ձեր ստեղնաշարին

Հնարավոր է ՝ ստիպված լինեք LED շերտը և Arduino ծածկագիրը հարմարեցնել ձեր ստեղնաշարին: Իմն ունի 76 ստեղն, իսկ շերտի երկարությունը գրեթե հենց ստեղնաշարի լայնությունն է: Եթե ունեք օրինակ 61 բանալին, ձեզ կարող է անհրաժեշտ լինել ավելի կարճ ժապավեն: LED շերտը կարող է կտրվել ցանկացած երկու LED- ների միջև: Պարզապես համոզվեք, որ կտրում եք ճիշտ մասը, այն ունի մուտքային վերջ (իգական միակցիչով) և ելքային վերջ (արական միակցիչով), անհրաժեշտ է պահպանել մուտքի վերջը: Կոդում փոխեք #սահմանումները համար

  • NUMBER_OF_LEDS մինչև LED- ների քանակը, որոնք մնացել են ձեր գոտում վերջը կտրելուց հետո,
  • NUMBER_OF_KEYS ձեր ստեղնաշարի ստեղների քանակին և
  • MIN_KEY դեպի ձեր ամենացածր բանալու MIDI սկիպիդար: Դուք կարող եք դա գտնել ստեղնաշարի օգտագործողի ձեռնարկում; կամ օգտագործեք մի գործիք, որը ցուցադրում է MIDI գրառման համարը, օրինակ ՝ KMidiMon- ը Linux- ի համար, կամ Pocket MIDI- ը Windows- ի կամ Mac- ի համար. կամ փորձեք տարբեր արժեքներ, մինչև սարքը չպատասխանի ձեր ստեղնաշարի բոլոր ստեղներին

Քայլ 4: Arduino ծածկագիրը

Arduino- ի կոդը օգտագործում է MIDI գրադարանը (v4.3.1) քառասուն յոթ էֆեկտի կողմից և Adafruit NeoPixel գրադարանը (v1.3.4) ՝ Adafruit- ի կողմից: Տեղադրեք այս գրադարանները ՝ օգտագործելով Arduino IDE- ն: Այնուհետև կազմեք ծածկագիրը և տեղադրեք այն Arduino- ում ՝ առանց վահանի միացման (օպտիկական զույգը միացված է RX կապին, ինչը խոչընդոտում է վերբեռնումին): Միացրեք Arduino- ն USB մալուխի միջոցով (ես օգտագործում եմ USB պատի գորտնուկ):

Եթե ցանկանում եք փոփոխել կոդը ըստ ձեր ցանկության, ահա համառոտ ակնարկ, թե ինչպես է այն աշխատում. Յուրաքանչյուր հանգույցում MIDI մուտքագրումը կարդացվում է: Եթե Note On կամ Note Off իրադարձություն է ստացվել, կանչվում են MyHandleNoteOn կամ MyHandleNoteOff գործառույթները: Նրանք երկուսն էլ կանչում են updateVelocityArray գործառույթը, որը պահում է առանցքային համարի արագությունը (այսինքն ՝ որքան ուժգին եք սեղմել բանալին): Եթե արագությունը ավելի բարձր է, քան նախկինում պահված էր, ապա համապատասխան LED- ի գույնը սահմանվում է «ընթացիկ գույնի»: MIDI իրադարձությունների մշակումից հետո կանչվում է updateLedArray գործառույթը: Սա թարմացնում է «ընթացիկ գույնը» (որի կարմիր, կանաչ և կապույտ արժեքները փոխվում են ինքնուրույն գծային եղանակով, մինչև հասնի ստորին կամ վերին ծայրին, որի դեպքում գծային փոփոխության արագությունը սահմանվում է պատահական համարի), դանդաղ նվազեցնում է սեղմված նշումների արագությունը և թարմացնում յուրաքանչյուր LED- ի գույնի արժեքները, որոնք պետք է փոխեն իր գույնը (նոր նոտայի հարվածի կամ արագության նվազման պատճառով): Function showLedArray- ը գույները փոխանցում է Adafruit_NeoPixel կառուցվածքին, որը կոչվում է «պիքսելներ» և ստիպում է իրական LED- երին ցույց տալ գույները պիքսելների կառուցվածքում:

Քայլ 5: Հնարավոր բարելավումներ…

Նախագիծը երբեք չի ավարտվում: Միշտ կարող է ինչ -որ բան անել այն բարելավելու համար.

  • Protoshield- ն այնքան քիչ մասեր է պարունակում, որ իսկապես թափոն է. կարելի է հեշտությամբ հասնել նույն ազդեցության Arduino Nano- ով և 15x7 անցքերով PCB- ով, ինչպես նաև կանացի քորոց վերնագրերով:
  • MIDI- ի որոշ ազդանշաններ կորչում են: Եթե դա NoteOn է, համապատասխան LED- ը չի լուսավորվի. եթե դա NoteOff է, այն չի մարելու (դրա համար ես ներկայացրի արագության նվազեցումը, որն ապահովում է, որ LED- ները անվերջ չեն մնա): Ես դեռ փորձում եմ պարզել պատճառը: Հավանաբար, դա ժամանակի խնդիր է, և MIDI.read () - ը պետք է ավելի հաճախ կանչվի:
  • MIDI- ի որոշ ազդանշաններ սխալ են ընթերցվում, այսինքն ՝ սխալ LED- ները լույս են տալիս: Կարող է կապված լինել վերը նշված կետի հետ: Անհրաժեշտ է որոշակի հետաքննություն:
  • Շղթան նախագծված է հաճելի տեսողական էֆեկտ տալու համար ՝ առանց օգտվողի մեծ փոխազդեցության (բացի ստեղնաշար նվագելուց): Այնուամենայնիվ, ես կարող էի պատկերացնել, որ կարդացվող պոտենցիոմետր ավելացնեմ (օգտագործելով Arduino- ի անալոգային մուտքերից մեկը), որով կարող եք փոխել գույների փոփոխման առավելագույն արագությունը (ներկայումս #սահմանվում է որպես MAX_COLOR_CHANGE_SPEED = 20): Կամ չափեք NoteOn- ի երկու իրադարձությունների միջև միջին ժամանակը և համապատասխանաբար փոխեք MAX_COLOR_CHANGE_SPEED - դանդաղ երգերում գույնը պետք է փոխվի ավելի դանդաղ:

Քայլ 6: Կատարված է:

Միացրեք Arduino- ն USB մալուխի միջոցով (ես օգտագործում եմ USB պատի գորտնուկ): Միացրեք ձեր MIDI ստեղնաշարը MIDI խցիկին և սկսեք պտտվել: Դիտեք, թե ինչպես եմ նվագում մի փոքր թեթև երաժշտություն (բառախաղը, որքան էլ որ վատ լինի, նախատեսված է):

Խորհուրդ ենք տալիս: