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

Arduino Uno Midi Fighter: 5 քայլ
Arduino Uno Midi Fighter: 5 քայլ

Video: Arduino Uno Midi Fighter: 5 քայլ

Video: Arduino Uno Midi Fighter: 5 քայլ
Video: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, Նոյեմբեր
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Այս հրահանգը ստեղծվել է Հարավային Ֆլորիդայի համալսարանի Makecourse- ի նախագծի պահանջի կատարման համար (www.makecourse.com)

DJ Techtools- ի հանրաճանաչ MidiFighter- ի հիման վրա ՝ Arduino- ով աշխատող Musical Instrument Digital Interface (MIDI) կարգավորիչը կարող է օգտագործվել որպես MIDI սարք ցանկացած թվային աուդիո կայանի (DAW) ծրագրային ապահովման համար: MIDI վերահսկիչը կարող է MIDI հաղորդագրություններ ուղարկել և ստանալ համակարգչից և կարող է օգտագործվել ցանկացած ծրագրաշարի օգտագործման անմիջական վերահսկման համար: Բացի այդ, MIDI վերահսկիչի վրա տեղադրվող կարգավորումները լիովին կարգավորելի են, ինչը նշանակում է, որ յուրաքանչյուր առանձին կոճակ, սահնակ և կոճակ կարող է քարտեզագրվել DAW- ի ցանկացած գործառույթի: Օրինակ, կոճակը սեղմելը կարող է նվագարկել որոշակի նոտա կամ ծրագրավորվել ՝ ձեր ձայնային նախագծի տեմպը փոխելու համար:

github.com/jdtar/Arduino-Midi-Controller

Քայլ 1: Նյութեր

Ստորև ներկայացված է այս նախագծում օգտագործվող նյութերի և գործիքների ցանկը:

Արդուինո Ունո

Breadboard

4051/4067 Մուլտիպլեքսեր

Jumper լարերը

Լրացուցիչ մետաղալար

2x 10k ohm գծային սլայդ պոտենցիոմետրեր

16x Sanwa 24 մմ կոճակներ

Heերմության նվազում

Sոդման երկաթ

Սափրիչ սայր

4.7 kΩ դիմադրություն

Ակրիլային թերթ (կափարիչի համար)

Բնակարան կոճակների և Arduino- ի համար

3D տպիչ

Լազերային Դանակ

Քայլ 2: Դիզայն

Դիզայն
Դիզայն
Դիզայն
Դիզայն

Նախքան նախագիծը սկսելը, ինձ արդեն տրամադրվել էր բնակարան MIDI վերահսկիչի համար, ուստի կափարիչի էսքիզը ծաղրեցի, որպեսզի պատկերացնեմ, թե որտեղ է ամեն ինչ տեղադրվելու: Ես գիտեի, որ ցանկանում եմ առնվազն 16 կոճակ և մի քանի պոտենցիոմետր ՝ որպես հնարավորության, այնպես որ ես փորձեցի հնարավորինս հավասարաչափ տարածել բաղադրիչները:

Կափարիչի դասավորությունը կազմելուց հետո ես ֆայլը արտահանեցի որպես 1: 1 PDF և ուղարկեցի լազերային կտրիչ `ակրիլային թերթ կտրելու համար: Պտուտակային անցքերի համար ես նշեցի, թե որտեղ եմ ուզում, որ անցքերը լինեն մարկերով և հալեցի ակրիլը տաք թելքով:

Կցված է 1: 1 PDF ֆայլը, որը կարող է տպվել 1: 1 տեսքով և կտրվել էլեկտրական գործիքներով, եթե լազերային դանակ չկա:

Քայլ 3: Շինարարություն և էլեկտրամոնտաժ

Շինարարություն և էլեկտրամոնտաժ
Շինարարություն և էլեկտրամոնտաժ
Շինարարություն և էլեկտրամոնտաժ
Շինարարություն և էլեկտրամոնտաժ
Շինարարություն և էլեկտրամոնտաժ
Շինարարություն և էլեկտրամոնտաժ

Ակրիլը կտրելուց հետո պարզեցի, որ ակրիլը չափազանց բարակ էր, որպեսզի բավականաչափ ապահովեր բոլոր բաղադրիչները: Այնուհետև ես կտրեցի մեկ այլ թերթ և սոսնձեցի դրանք, ինչը կատարյալ աշխատեց:

Բաղադրիչների միացումը որոշ փորձարկումներ և սխալներ պահանջեց, բայց արդյունքում բերվեց Ֆրիտզինգի ուրվագիծը: Ես նախ միացրեցի գետնին լարերը և 4.7kΩ ռեզիստորը, եռակցեցի և ջերմությունը փոքրացրեցի կոճակների միացումները: Երկու սլայդ պոտենցիոմետրերի տեղադրման համար անհրաժեշտ էր հալեցման անցքեր ակրիլային պտուտակների համար: Երկու պոտենցիոմետրերի պտուտակվելուց հետո դրանք միացված էին A0 և A1 անալոգային կապումներին: Էլեկտրագծերի ավարտից հետո ես հիշեցի, որ իմ բռնակիչների համար գլխարկներ չկան, այլ ոչ թե դրանք գնելը, ես տպեցի որոշ կոճակների գլխարկներ ՝ օգտագործելով 3-D տպիչ ՝ այն ուրվագծելով Autodesk Fusion 360-ում և արտահանելով STL ֆայլ: Դե

Arduino Uno- ն ունի ընդամենը 12 հասանելի թվային մուտքագրիչ կապ, սակայն 16 կոճակ պետք է միացված լիներ: Սա փոխհատուցելու համար ես 74HC4051 Multiplexer- ը միացրեցի տախտակի վրա, որն օգտագործում է 4 թվային մուտքային կապում և մի քանի ազդանշաններին հնարավորություն է տալիս օգտագործել ընդհանուր գիծ, որի արդյունքում ստացվել է 8 հասանելի թվային կապում, ընդհանուր օգտագործման համար 16 թվային կապում:

Կոճակները ճիշտ կապումներին միացնելը պարզապես 4x4 մատրիցա ստեղծելու և այն ծածկագրում օգտագործելու խնդիր էր: Խնդիրն այն էր, որ ձեռք բերված հատուկ մուլտիպլեքսերը ուներ որոշակի քորոց դասավորություն, որին օգնում էր տվյալների թերթը, և ես նկատի ունեի նշումների հատուկ դասավորությունը, երբ կոճակները միացնելով, որն ավարտվեց մի փոքր այս տեսքով.

EԱՆՈԹԱԳՐՈԹՅԱՆ ՄԱՏՐԻՔՍ

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN MATRIX (M = MUX INPUT)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Քայլ 4: Programրագրավորում

Ծրագրավորում
Ծրագրավորում

Երբ հավաքումն ավարտվի, Arduino- ի ծրագրավորումը մնում է: Կցված սցենարը գրված է այնպես, որ այն հեշտությամբ հարմարեցվի:

Սկրիպտի սկիզբը ներառում է MIDI.h գրադարանը և վերահսկիչ գրադարանը, որը վերցված է Notes and Volts բլոգից, որոնք երկուսն էլ ներառված են կոդի ZIP ֆայլում: Օգտագործելով վերահսկիչ գրադարանը, կարող են ստեղծվել կոճակների, պոտենցիոմետրերի և մուլտիպլեքս կոճակների օբյեկտներ, որոնք պարունակում են տվյալների արժեքներ, որոնք ներառում են նոտայի համարը, կառավարման արժեքները, նշման արագությունը, MIDI ալիքի համարը և այլն: MIDI.h գրադարանը հնարավորություն է տալիս MIDI I/O հաղորդակցություններին Arduino- ի սերիական նավահանգիստները, որոնք իր հերթին վերցնում են տվյալները վերահսկիչի օբյեկտներից, դրանք վերածում MIDI հաղորդագրությունների և ուղարկում հաղորդագրությունները ցանկացած midi ինտերֆեյսի հետ կապված:

Սցենարի դատարկ կարգաբերման մասը սկզբնաղբյուրում է բոլոր ալիքները որպես անջատված և նաև սկսում սերիական կապ 115200 բաուդ արագությամբ, արագություն ավելի արագ, քան MIDI ազդանշանները փոխանակվում են:

Հիմնական օղակը, ըստ էության, վերցնում է կոճակների և բազմապատկված կոճակների զանգվածները և վարում է մի օղակ, որը ստուգում է, արդյոք կոճակը սեղմված է կամ բաց թողնված և համապատասխան տվյալների բայթերն ուղարկում է midi ինտերֆեյս: Պոտենցիոմետր հանգույցը ստուգում է պոտենցիոմետրի դիրքը և համապատասխան լարման փոփոխությունները հետ է ուղարկում midi ինտերֆեյս:

Քայլ 5: Կարգավորում

Image
Image
Կարգավորում
Կարգավորում
Կարգավորում
Կարգավորում
Կարգավորում
Կարգավորում

Երբ սցենարը բեռնված է Arduino- ում, հաջորդ քայլը միացումն ու նվագարկումն է: Այնուամենայնիվ, մի քանի քայլ կա, նախքան այն օգտագործելը:

OSX- ում Apple- ը ներդրել է վիրտուալ midi սարքեր ստեղծելու հնարավորություն, որոնց կարելի է մուտք գործել Mac- ներում Audio Midi Setup հավելվածի միջոցով: Նոր սարքի ստեղծումից հետո, Hairless MIDI- ն կարող է օգտագործվել Arduino- ի և նոր վիրտուալ midi սարքի միջև սերիական կապ ստեղծելու համար: Arduino- ի սերիական միացումն առանց վարսերի MIDI- ի միջոցով գործում է սցենարի դատարկ պարամետրերի հատվածում սահմանված արագության արագությամբ և պետք է համարժեք սահմանվի առանց մազերի MIDI- ի նախապատվության պարամետրերում:

Փորձարկման նպատակով ես օգտագործել եմ Midi Monitor- ը ՝ ստուգելու համար, թե արդյոք սերիական-MIDI կապի միջոցով ճիշտ տվյալներ են ուղարկվում: Երբ ես որոշեցի, որ յուրաքանչյուր կոճակ, որն ուղարկվում է ճիշտ տվյալների միջոցով ճիշտ ուղիներով, ես սահմանեցի MIDI ազդանշանը ՝ դեպի Ableton Live 9 երթուղի ՝ որպես MIDI մուտքագրում: Ableton- ում ես կարողացա քարտեզագրել կտրված աուդիո նմուշները յուրաքանչյուր կոճակի վրա և նվագարկել յուրաքանչյուր նմուշ:

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