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

Կառուցեք Arduino MIDI վերահսկիչ. 9 քայլ (նկարներով)
Կառուցեք Arduino MIDI վերահսկիչ. 9 քայլ (նկարներով)

Video: Կառուցեք Arduino MIDI վերահսկիչ. 9 քայլ (նկարներով)

Video: Կառուցեք Arduino MIDI վերահսկիչ. 9 քայլ (նկարներով)
Video: MKS Monster8 - Basics 2024, Նոյեմբեր
Anonim

Այս հրահանգը սկզբնապես հրապարակվեց իմ բլոգում, 2020 թվականի հունիսի 28 -ին:

Ինձ դուր է գալիս էլեկտրոնիկա պարունակող իրերի կառուցումը, և ես միշտ ցանկացել եմ ինչ -որ բան կառուցել Arduino- ի միջոցով:

Սկսնակների համար գտած ամենատարածված կառուցվածքներից մեկը MIDI վերահսկիչ էր: MIDI վերահսկիչը ցանկացած սարքավորում է, որը MIDI տվյալներ (Musical Instrument Digital Interface) սարքին է ուղարկում ՝ ձայներ արձակելու և երաժշտություն ստեղծելու համար:

Ես պարզեցի, որ շատ իրականացումներ բարդ են, նույնիսկ այն, ինչ նախատեսված է սկսնակների համար: Շատ վրդովեցուցիչ էր գտնել, որ ես պետք է հարյուրավոր տողեր անընթեռնելի կոդ օգտագործեմ: Կամ, որ ես պետք է որոշ դեպքերում, ի թիվս այլ օրինակների, ռեզիստոր ամրացնեմ:

Նախագիծը

Կառուցելով իմ սեփական Arduino MIDI Controller- ը, իմ մտադրությունն էր պատրաստել հաճելի նախագիծ ՝ աղմուկը նվազագույնի հասցնելով: Այն, ինչին կարող է հետևել ցանկացած սկսնակ: Դա իրականացնելու համար ես օգտագործեցի MIDI Fighter 3D- ը որպես հիմնական ոգեշնչում և հեռացրեցի յուրաքանչյուր ոչ էական հատկություն:

Իմ նախագծի ընդհանուր արժեքը 30 դոլարից ցածր էր, և նյութերի ցանկը իսկապես կարճ էր (աֆիլիատ հղումներ).

  • Արդուինո Լեոնարդո (կամ կլոն) ՝ 10 դոլարից մինչև 20 դոլար:
  • 16 x Sanwa կոճակներ 24 մմ (կամ կլոն). 1 դոլարից մինչև 2.50 դոլար մեկ կոճակի համար:
  • Sոդման երկաթ
  • 22 AWG Էլեկտրական լար

Arduino- ի խորհուրդը

Երբ սկսեցի այս նախագիծը, գտա, որ կան մի շարք նոր Arduino մոդելներ (ներառյալ հարյուրավոր համատեղելի տախտակները): Եվ բոլորը մի փոքր այլ հնարավորություններ են առաջարկում:

Ինձ անհրաժեշտ էր MIDI ազդանշաններ ուղարկել համակարգչին, և դրա ամենապարզ ձևը USB- ի միջոցով է: Meանկացած Arduino տախտակ, որը հիմնված է ATmega32u4 միկրոկառավարիչի վրա, ունի ներկառուցված USB հաղորդակցություն:

Պաշտոնական Arduino տախտակները ՝ հայրենի USB աջակցությամբ, Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro են: Այս տախտակները ունեն ինտեգրված USB աջակցություն, ինչը նշանակում է, որ դրանք կարող են գործել որպես USB MIDI սարք:

Ես որոշեցի գնալ Arduino Leonardo- ի կլոնով: Այն ունի բավականաչափ մուտքեր այս նախագծի համար և ներառում է նաև վերնագրեր, ինչը հեշտացնում է լարերը միացնելը/անջատելը:

Առաջին քայլերը

Թեև ես քայլ առ քայլ կբացատրեմ, թե ինչպես եմ իրականացրել այս նախագծի ծածկագիրը, բայց կարող եք ներբեռնել վերջնական տարբերակը:

Տախտակին կոդը վերբեռնելու համար անհրաժեշտ է օգտագործել Arduino IDE- ն: Նրանք ունեն նաև վեբ խմբագիր, որը շատ օգտակար է, բայց նրանք սահմանափակ չափաբաժին ունեն օրական այն օրերին, երբ կարող եք ծածկագիր կազմել:

Քայլ 1: Թարթում ներկառուցված LED- ը

Funnyիծաղելի է, թե ինչպես է «Բարև աշխարհը» ապարատային աշխարհում թարթում LED:

Ինձ համար հաճելի անակնկալ էր հայտնաբերել, որ Arduino Leonardo- ն ունի ներկառուցված LED, որը կարող եք թարթել ՝ ձեր կոդը ստուգելու համար: Այդ կերպ ձեզ հարկավոր չէ արտաքին շղթա կառուցել լուսատախտակի վրա ՝ LED- ով և դիմադրիչով:

Կոդ ՝

Քայլ 2: LED- ը թարթում է ձեռքով մուտքագրման վրա

Հաջորդ տրամաբանական քայլը նույն LED- ն թարթելն էր, երբ ազդանշան եմ ուղարկում: Ես հանեցի 2 Dupont լարերի մի ծայրի պլաստիկ ծածկը, իսկ մյուս ծայրը միացրեցի տախտակին.

  • Պին թիվ 2: Թվային մուտքերից մեկը (դրական): Դա կարող է լինել ցանկացած թվային քորոց:
  • Pin GND: groundանկացած հիմնավորված քորոց (բացասական):

Այժմ, ամեն անգամ, երբ միանում եմ լարերի բաց ծայրերին, ես փակում եմ շրջանը և դրանով իսկ արդյունքում կարող եմ կատարել ծածկագիրը:

Լեոնարդոյի 20 թվային կապումներից յուրաքանչյուրն ունի ներքին դիմադրություն (անջատված է լռելյայն), որը կարելի է միացնել ՝ օգտագործելով INPUT_PULLUP: Հիշեք, որ քաշվող մուտքը նշանակում է, որ կոճակի վիճակը շրջված է.

  • HIGH երբ միացումը բաց է (կոճակը ՉԻ սեղմված):
  • LOW, երբ միացումը փակ է (կոճակը սեղմված է):

Կոդ ՝

Քայլ 3: Տեղադրեք MIDIUSB գրադարանը

Այս գրադարանը թույլ է տալիս USB հնարավորություններով Arduino տախտակին հանդես գալ որպես MIDI գործիք USB- ի միջոցով: Լրացուցիչ տեղեկությունների համար ստուգեք պաշտոնական փաստաթղթերը:

Arduino IDE- ի միջոցով կարող եք տեղադրել լրացուցիչ Arduino գրադարաններ ՝ օգտագործելով Գրադարանի կառավարիչը.

  1. Բացեք IDE- ն և կտտացրեք «Էսքիզ» ընտրացանկին, այնուհետև «Ներառել գրադարան», այնուհետև «Կառավարեք գրադարանները»:
  2. Որոնեք MIDIUSB և կտտացրեք Տեղադրեք:
  3. Ավարտելուց հետո MIDIUSB գրադարանի կողքին պետք է հայտնվի Տեղադրված պիտակ:
  4. Փակեք գրադարանի կառավարիչը:

Այժմ Լեոնարդոն կարող է MIDI հաղորդագրություններ ուղարկել USB- ի միջոցով: Բայց նախ անհրաժեշտ է որոշակի պատկերացում այն մասին, թե ինչպես է աշխատում MIDI- ն:

Ինչպես է աշխատում MIDI- ն

«MIDI (երաժշտական գործիքի թվային ինտերֆեյս) ստանդարտ հաղորդակցության արձանագրություն է, որը միացնում է էլեկտրոնային երաժշտական գործիքները, համակարգիչները և հարակից աուդիո սարքերը երաժշտություն նվագելու համար»: - Վիքիպեդիա

Այն, ի թիվս այլ հրահանգների, վարում է իրադարձությունների հաղորդագրությունները `նվագած ձայնի արագության և արագության տվյալներով:

Այս հատուկ նախագծում 16 կոճակներից մուտքագրումը տարբեր հաղորդագրություններ է ուղարկում USB- ի միջոցով: Այս հաղորդագրությունները կարող են ձայնի վերածվել համակարգչում ՝ օգտագործելով ցանկացած համապատասխան ծրագրակազմ, ինչպիսին է GarageBand- ը կամ Ableton Live- ը:

MIDI հաղորդագրության անատոմիա

MIDI հաղորդագրություն ուղարկելու համար ես օգտագործեցի sendMIDI () մեթոդը MIDIUSB գրադարանից, որը ես տեղադրել եմ 3 -րդ քայլին:

Այս մեթոդը կարող է ստանալ 4 պարամետր.

  • Միջոցառման տեսակը. Այն կարող է լինել 0x09 նշման համար (խաղալ նոտա) կամ 0x08 նշման համար `անջատված (դադարեցնել նվագարկումը):
  • Նշում միացված/անջատված. Միջոցառման տեսակը զուգորդվում է MIDI ալիքի հետ (1-16): Ես օգտագործում եմ միայն 1 -րդ ալիքը, այնպես որ այն կա 0x90 նշման համար կամ 0x80 նշման համար:
  • Նշման համար. Յուրաքանչյուր նշում ունի համապատասխան թվային սկիպիդար (հաճախականության սանդղակ):
  • Արագություն ՝ 0 -ից (արագություն չկա) մինչև 127 (ամենաարագ):

Քայլ 4: MIDI հաղորդագրություն ուղարկելը

Ես ներառեցի MIDIUSB գրադարանը և ներկառուցված LED- ը թարթելու փոխարեն, ես գրություն ուղարկեցի:

Կոդ ՝

Ant Կարևոր. Այս քայլից Arduino- ն վերածվում է MIDI USB վերահսկիչի, և այն դադարում է USB- ի միջոցով կոդ ստանալ:

Երբ դուք խրված եք այնպիսի դիրքում, որտեղ Arduino- ն այլևս չի կարող ծրագրավորվել, հետևեք հետևյալ քայլերին

  1. Պահեք Arduino- ի տախտակի վրա կլորացված վերականգնման կոճակը:
  2. Կտտացրեք Վերբեռնել Arduino IDE- ում:
  3. Ազատեք վերականգնման կոճակը:
  4. Թարմացված ծածկագիրը կբեռնվի տախտակ:

Քայլ 5: Յուրաքանչյուր կոճակից MIDI հաղորդագրություն ուղարկելը

Յուրաքանչյուր կոճակից MIDI հաղորդագրություն ուղարկելը
Յուրաքանչյուր կոճակից MIDI հաղորդագրություն ուղարկելը

Վերջին քայլն այն էր, որ յուրաքանչյուր սկիպիդարը պատկերվի կոճակի վրա: 16 կոճակների համար ես սահմանեցի սանդղակ C2- ից մինչև E3b, որոնք 36 -ից 51 -ի սկիպիդարներն են ՝ ներքևից վերև և ձախից աջ հաջորդականությամբ: Ստուգեք այս ֆայլը Arduino Tutorials- ից ՝ տեսնելու, թե ինչ բարձրություն է համապատասխանում յուրաքանչյուր նոտային:

Ես օգտագործել եմ թվային կապում 2 -ից 12 -ը և անալոգային կապում (օգտագործելով դրանք որպես թվանշան) A0- ից A4:

Եվ այսպես է թվում վերջնական կոդը ՝

Քայլ 6. Ալիքների կամ բանկերի ստեղծում (ըստ ցանկության)

Ալիքների կամ բանկերի ստեղծում (ըստ ցանկության)
Ալիքների կամ բանկերի ստեղծում (ըստ ցանկության)

Եթե ցանկանում եք ավելի շատ կոճակներ ավելացնել ալիքներ կամ բանկեր փոխելու ունակությամբ, ինչպես MIDI Fighter 3D- ում (տես նկարը), Arduino Leonardo- ն ունի ևս չորս կապում, որոնք կարող եք օգտագործել: Arduino Leonardo- ն ունի 20 մուտքագրման/ելքային թվային կապում, որից միայն 16 -ն են օգտագործվում նոտաներ նվագելու համար:

Դուք կարող եք օգտագործել այդ լրացուցիչ կոճակները ՝ կոդի մեջ փոփոխականը թարմացնելու և դրա արժեքը որպես պարամետր ուղարկելու MidiUSB.sendMIDI մեթոդին ՝

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Քայլ 7: Գործը

Այն դեպքն է
Այն դեպքն է
Այն դեպքն է
Այն դեպքն է

Այս նախագիծը պարզ պահելու համար ես չափազանց բծախնդիր ընտրեցի, թե որ հատկանիշներն են ներառում:

  • Միայն կոճակներ. 16 Sanwa- ի նման արկադային կոճակներ ՝ 4x4 ցանցում: Ոչ մի կոճակ, ոչ մի սահող, ոչ մի թրթռիչ կամ որևէ այլ անալոգային մուտք:
  • Միակ մարմնի պատյան. Մի օգտագործեք պտուտակներ, ընկույզներ, պտուտակներ կամ սոսինձ պարիսպի համար կամ Arduino տախտակը պահելու համար:
  • Ամենօրյա գործիքներ. Օրինակ ՝ ես լարերը միացրեցի ՝ փոխարենը գնելու համար արկադային կոճակների համար հատուկ մետաղալար կտրիչ:

Unibody Design

Իմ առջև ծառացած մարտահրավերներից մեկը պատյան ձևավորելը բավական պարզ էր, որ այն հավաքման կարիք չունենա և կարող է 3D տպվել մեկ անգամ:

Պտուտակներ կամ սոսինձ չօգտագործելու համար ես պետք է նախագծեի պարիսպ, որն ապահովում էր էլեկտրոնիկայի ամենափոքր հասանելիությունը: Պարիսպի իմ ամենամեծ ոգեշնչումը Mac Mini- ն էր, որը ներքևում ունի շրջանաձև անցք: Ես նաև ցանկանում էի դրա համար պտուտակավոր կափարիչ նախագծել, բայց որոշեցի այն բաց թողնել ՝ էլեկտրոնիկայի ցուցադրման համար:

Ներբեռնեք 3 -րդ տպելի պատյանը (322 ԿԲ): Առաջարկվող կարգավորումներ. PLA, 0.15 մմ շերտեր, 20% լցնում, աջակցության ապահովիչներ առնվազն կլորացված ներքևի անցքի, Arduino- ի ամրակների և միկրո USB- ի համար:

Առանց պտուտակների պահելով Arduino- ն

Լեոնարդոն ունի 4 անցք, որպեսզի տախտակը պտտվի ցանկացած հարմար պատյանում, բայց իմ գաղափարն այն էր, որ հեշտությամբ ավելացնեի տախտակը պատյանից:

Arduino- ի համար Thingiverse- ում տեսահոլովակ պահող գտնելը հեշտ էր, և ինձանից պահանջվեց 5 կրկնում, որպեսզի այդ պահիչը միացնեմ միակողմանի նախագծին: Ամենադժվարը ոտքերն անելն էր, որպեսզի խուսափեն կոճակների անցքերից և միկրո USB- ն կենտրոնացնեն պատյանին:

Քայլ 8: Համագումար

Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը
Վեհաժողովը

Բոլոր կոճակները տեղում տեղադրելուց հետո, ես սոսնձեցի կարճ սև լարերը ՝ միացնելով նրանց միջև եղած կոճակների բոլոր բացասական ոտքերը:

Հետո յուրաքանչյուր դրական ոտքից կպցրեցի երկար կարմիր մետաղալարեր `անմիջապես տախտակին միանալու համար:

Լարերը Arduino- ին միացնելու համար ես կտրեցի և կպցրեցի Dupont- ի որոշ ծայրեր և ծածկեցի դրանք ջերմության նվազման խողովակով:

Ես լարերը միացրեցի տախտակին ՝ հետևելով նույն կարգին, ինչ MIDI Fighter- ում: Ներքևից վերև և ձախից աջ:

Քայլ 9: Օգտագործելով MIDI վերահսկիչ

Օգտագործելով MIDI վերահսկիչ
Օգտագործելով MIDI վերահսկիչ

Musicանկացած երաժշտական ծրագիր (կամ համապատասխան սարքավորում) կարող է օգտագործվել MIDI ստանալու և երաժշտություն ստեղծելու համար: Առավել առաջարկվողներն են Garage Band- ը, Ableton Live- ը, և ես գիտեմ, որ հեռախոսի վրա տեղադրելու համար կան բազմաթիվ ծրագրեր:

Այդ բոլոր գործիքներն օգտակար են մատների թմբկահարման համար նախապես որոշված ձայները բեռնելու համար, բայց դրանք արվել են ավելի մեծ նպատակների համար: Այդ գործիքները կարող են դժվար լինել սկսնակների համար:

MIDI վեբ դիտարկիչում

Այս նախագծի և դրա պարզության հետ ինչ -որ բան ավելի համահունչ դարձնելու համար ես ստեղծեցի վեբ գործիք, որն ամբողջությամբ կենտրոնացած էր MIDI կարգավորիչների վրա:

Punchy: WebMIDI և WebAudio իրականացում MIDI վերահսկիչների համար:

Այն կարող է կարդալ MIDI հաղորդագրություններ ցանկացած դիտարկիչում, որն ապահովում է WebMIDI JavaScript API- ն: Այնուհետև հնչյունները նվագում է սինթեզատորում (օգտագործելով WebAudio API- ն) կամ սեմփլտրում ՝ բեռնելով հատուկ հնչյուններ ցանկացած ձայնային փաթեթից:

Կարգավորեք Ableton Live- ը

Որպեսզի MIDI վերահսկիչը աշխատի Ableton Live- ի հետ, հետևեք այս պարզ քայլերին նրանց պաշտոնական փաստաթղթերից:

Գնացեք Նախապատվություններ → Հղեք MIDI- ին և համոզվեք, որ «Մուտքի» մեջ կան «Հետք» և «Հեռակա» միացված, իսկ ելքի վրա ՝ «Հեռակա» միացված, ինչպես նաև նշված է ուղեցույցում.

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