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

Arduino MIDI Foot Controller: 12 քայլ
Arduino MIDI Foot Controller: 12 քայլ

Video: Arduino MIDI Foot Controller: 12 քայլ

Video: Arduino MIDI Foot Controller: 12 քայլ
Video: Behringer XR 12 MIDI remote control from arduino 2024, Նոյեմբեր
Anonim
Arduino MIDI Foot Controller
Arduino MIDI Foot Controller

Վերջերս ես նախագծեցի այս MIDI կարգավորիչը `գործելու համար looper արտահայտությունը, որը ներկառուցված է Boss DD500 հետաձգման ոտնակի մեջ: Ես վերահսկում եմ իմ ամբողջ կիթառի սարքը ՝ օգտագործելով Behringer FCB MIDI տախտակ, և դա թույլ է տալիս ինձ փոխել էֆեկտների օղակի հետաձգման ոտնակի վրա կարկատաններ ՝ միաժամանակ միացնելով ուժեղացուցիչի ալիքները:

DD500- ը ունի շատ հիմնական looper գործառույթ, որը ներկառուցված է, բայց դրա թերություններից մեկն այն է, որ երբ looper- ն ակտիվ է, այն կառավարվում է ոտնակի վրա տեղադրված ոտնաթաթերի միջոցով: Սա նշանակում է, որ դուք չեք կարող փոխել ոտնակի վրա կարկատաններ, քանի դեռ օղակը ակտիվ է, քանի որ այն ըստ էության գրավում է ոտնաթաթերի անջատիչների գործառույթները: Քանի որ ես օգտագործում եմ MIDI, այս սահմանափակումը գոյություն չունի, քանի որ դա պարզապես ֆիզիկական խնդիր է: Սա նշանակում էր, որ իմ հիմնական MIDI կարգավորիչի վրա 5 ոտնաչափ անջատիչ պետք է վերապահվի looper- ի համար, և ես որոշեցի նրանց համար առանձին վերահսկիչ կառուցել:

Դրա համար իմ նախնական ծրագիրն էր վերցնել մի փոքր Hammond պարիսպ և տեղադրել 5 ոտնաչափ անջատիչ և սովորեցնել ինձ Arduino- ի հիմնական կոդավորումը: Երբ ես սկսեցի ավելի շատ բան սովորել, և իմ կոդը աշխատում էր, այն ավարտվեց ինձ մոտիվացնելով ավելի շատ բաներ փորձելու, իսկ հետո այն հիմնականում ձնագնդի վերածվեց ավելի մեծ բանի:

Քայլ 1: Հայեցակարգեր

Հայեցակարգեր
Հայեցակարգեր
Հայեցակարգեր
Հայեցակարգեր

Վաղ գաղափարներից մեկն ընդամենը 5 անընդմեջ կարգավիճակ ունենալն էին ՝ կարգավիճակի LED- ներով: Սա բավականին պարզ էր Arduino- ի հետ հացահատիկի վրա ծաղրելը: Նոր հնարավորությունների և սարքավորումների ավելացումն այն գործընթացն էր, որի ընթացքում ես անընդհատ նախագծում և վերափոխում էի թղթի վրա ֆիզիկական դասավորությունը և կառուցում էի հացահատիկի նախագիծը: Նույնիսկ շատ պլանավորմամբ, դրա վրա շատ աշխատանքներ ինչ -որ չափով կատարվել էին հենց սկզբում:

Վերոնշյալ 2 նկարները ցույց են տալիս թղթի վրա կատարածս առաջին նկարը, որն առաջին հերթին դրդեց գաղափարի սկիզբը, որին հաջորդեց մեկամսյա նշումները, որոնք հաջորդեցին դրան, ինչը ձևավորեց ֆիզիկական և PCB դասավորությունները:

Քայլ 2: Սեղանի նախատիպավորում

Breadboard Protoyping
Breadboard Protoyping
Breadboard Protoyping
Breadboard Protoyping

Ամբողջ նախագիծը կառուցվել է տախտակի վրա և լիովին փորձարկվել `համոզվելու համար, որ այն լիովին գործում է DD500- ով, նախքան դրա մշտական բնակեցման որևէ աշխատանք սկսելը: Կոդում ավելացվել են որոշ լրացուցիչ հնարավորություններ, ինչը վերահսկիչին տվել է DD500- ի բացակայող լրացուցիչ գործառույթներ: Դրանք ավելի ամբողջական կքննարկվեն ծածկագրերի բաժնում:

Ոտնակն ունի 5 ոտնաչափ անջատիչ, 4 կարգավիճակի LED, 5 I2C LCD էկրան և կառավարվում է Arduino Nano Every- ի կողմից: Այն ուժ է ստանում 9 Վ կիթառի ոտնակի PSU- ից ՝ առանձին ճեղքման տուփի միջոցով, որն այդ ուժը փոխանցում է MIDI մալուխին ՝ օգտագործելով 2 կապում, որոնք սովորաբար չեն օգտագործվում MIDI միակցիչի վրա:

Քայլ 3: Պատրաստում

Հորինում
Հորինում
Հորինում
Հորինում
Հորինում
Հորինում

Ես նայեցի նախագիծը տեղավորելու շատ հնարավոր դեպքեր և նույնիսկ դիտարկեցի այն գաղափարը, որ կփորձեմ իմ պատյանը թեքել ալյումինի թերթերից: Ի վերջո, ես տեղավորվեցի Hammond- ի պատյանում, որը բավականաչափ լայն էր, որպեսզի տեղավորեր իմ ընտրած 5 16X2 LCD էկրանները:

Ոտնաթաթի անջատիչները ընդհանուր առմամբ փափուկ հպման անջատիչներ էին:

Այս փուլում ես որոշեցի ունենալ մաքսային էկրանի եզրեր, որոնք առջևը մաքուր տեսք կունենան, քանի որ ես Dremel- ով ձեռքով կկտրեի էկրանի անցքերը և գիտեի, որ, ամենայն հավանականությամբ, կլինեն մի քանի տարածքներ, որոնք կատարյալ չեն: Ես դրանք կտրել եմ տեղական դիզայներական ստուդիայի կողմից, որը լազերային կտրում է ՝ սկզբում որպես ստվարաթղթե կաղապարներ ՝ համոզվելու համար, որ չափսերս բոլորը ճիշտ են, այնուհետև 3 մմ սպիտակ ակրիլով ՝ վերջնական կտորի համար:

Քայլ 4: CAD մակետ և դասավորություն

CAD մակետ և դասավորություն
CAD մակետ և դասավորություն
CAD մակետ և դասավորություն
CAD մակետ և դասավորություն

Իմ թղթե ուրվագծերից ես օգտագործեցի Inkscape- ը ՝ բոլոր ֆիզիկական բաղադրիչները դուրս հանելու և չափերն ու դիրքերը վերջնական տեսքի բերելու համար: Ես նաև այս պահին եկա էկրանի տեղադրման եղանակով: Առջևի տեսանելի պտուտակների քանակը նվազագույնի հասցնելու համար ես որոշեցի բոլոր էկրանները հետևից ամրացնել ալյումինե թիթեղների վրա ՝ անջատիչներով, այնուհետև ինձ կպահանջվի միայն 4 պտուտակ մեկ ափսեի համար, որպեսզի դրանք ամրացնեն պարիսպը, ինչը այն նաև կպահի էկրանի եզրերը տեղում:

Քայլ 5: PCB նախագծում

PCB դիզայն
PCB դիզայն
PCB դիզայն
PCB դիզայն
PCB դիզայն
PCB դիզայն
PCB դիզայն
PCB դիզայն

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

Գրատախտակի որոշ հատվածներ այդ ժամանակ անփորձության պատճառով վատ նախագծված էին, օրինակ ՝ էկրանի հզորության համար օգտագործել մեկ 5 Վ ռելս, օրինակ ՝ յուրաքանչյուրին առանձին սնունդ չտալու փոխարեն: Բարեբախտաբար, տեղի ունեցած լարման անկումը բավարար չէր էկրանների հետ խնդիրներ առաջացնելու համար:

Տախտակները եկան մոտ 2 շաբաթ անց և, բարեբախտաբար, աշխատեցին առանց որևէ խնդիրների:

Քայլ 6: Էկրանի ամրացումներ

Էկրանի ամրացումներ
Էկրանի ամրացումներ
Էկրանի ամրացումներ
Էկրանի ամրացումներ
Էկրանի ամրացումներ
Էկրանի ամրացումներ

Առաջին պատրաստված մասերը էկրանի ամրացումներն էին: Ես դրա համար օգտագործել եմ 3 մմ ալյումին և փոսեր փորելու համար: Չափերը որոշվեցին `ամեն ինչ դնելով գրասեղանի վրա, քանի որ ես ուզում էի, որ վերջնական ոտնակը լինի և էկրանի PCB- ներին ամրացվող անցքերից չափելով: Ես նաև ոտքերի անջատիչները տեղադրեցի նրանց հետ, որպեսզի նրանց համար հեռավորություններ ստանամ:

Երբ բոլոր անցքերը փորվեցին, էկրանները տեղադրվեցին և ստուգվեցին քառակուսի լինելու համար ՝ գծիչը պահելով ներքևի հարթ եզրերին: Մինչ այժմ ամեն ինչ շարված էր:

Քայլ 7: Շրջափակում

Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ

Հաջորդը գործը փոփոխելն էր: Ոտքի անջատիչներն ու LED- ները պարզ էին, քանի որ դրանցից յուրաքանչյուրը պարզապես պահանջում էր համապատասխանաբար 12 մմ և 5 մմ անցք:

Ֆիզիկական աշխատանքի հիմնական մասը ստացվել է էկրանի անցքերը կտրելիս: Ես օգտագործել եմ «Դրեմել» -ը ծանր կտրող սկավառակներով և տարբեր ֆայլեր `հետագայում անցքերը մաքրելու համար: Այս հատվածը տևեց մոտ 2 ժամ:

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

Այս պահին գործը լիովին պատրաստ էր, և ես ծաղրեցի ամեն ինչ ՝ տեսնելու համար, թե ինչպիսին կլինի այն:

Քայլ 8: Uh-Oh

Օհ-Օհ
Օհ-Օհ
Օհ-Օհ
Օհ-Օհ
Օհ-Օհ
Օհ-Օհ

Եվ հետո եկավ այն գիտակցումը, որ չնայած իմ բոլոր պլանավորմանն ու չափումներին, ես թույլ եմ տվել մեկ ՄԵGE սխալ: Ես նախագծել եմ տախտակի և պատյանների դասավորությունը միմյանցից անկախ: Իմ գլխում տախտակը գրեթե նստած էր վերևի պատին, իսկ հետևում ՝ կարճ կանգնած: Բայց բացարձակապես ոչ մի կերպ չէր կարող սա տեղավորվել: Եվ կողք դնելու համար նույնպես տարածք չկար: Հսկայական վերահսկողություն, բայց բարեբախտաբար, որը ես կարողացա շտկել, քանի որ պատյանի հետևի կափարիչի վրա էկրանի ամրակների միջև դեռ բավականին քիչ տարածություն կար: Եվս մի քանի անցք, որոնք փորված են էկրանի ամրացման վրա և մի քանի կանգառ, և մենք նորից զբաղվում ենք բիզնեսով ՝ բավականաչափ տեղ ունենալով ծածկը ծածկելու համար:

Քայլ 9: Ներկել

Ներկել
Ներկել
Ներկել
Ներկել
Ներկել
Ներկել

Ամեն ինչ նորից ապամոնտաժվեց, իսկ պատյանը ներկվեց Metallic Candy Red- ով, որին հաջորդեց մի քանի շերտ լաք: Գործը մնաց մեկ շաբաթ բուժվելու համար, չնայած ես պարզեցի, որ լաքը դեռ փոքր -ինչ փափուկ էր այս պահին, երբ ամեն ինչ կառուցում էի: Դրա պատճառով ներկի մի քանի փոքր տարածքներ վնասվեցին: Մի բան, որից ես նպատակ ունեմ խուսափել իմ հաջորդ նախագծում:

Այս ընթացքում ես գնել էի 3D տպիչ և որոշեցի օգտագործել այն ոտքի անջատիչների համար որոշ լվացքի մեքենաներ պատրաստելու համար, քանի որ գնածս նեյլոնե սարսափելի դեղնավուն երանգն ուներ և վատ չափի էին:

Քայլ 10: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Ֆիզիկական հավաքի վերջին մասը ամեն ինչ լարելն էր: Կրկին, պատյանների դիզայնի/PCB- ի նախագծման հետ կապված խնդիրները նորից ի հայտ եկան, և PCB- ի վերնագրի որոշ դիրքեր նշանակում էին միմյանց վրա շատ լարեր հատել ՝ ամեն ինչ ավելի խառնաշփոթ դարձնելով, քան ես հույս ունեի:

Էկրանների լարերը փաթեթավորված էին 4 հավաքածուի մեջ, և օգտագործելով ջերմահեղուկ և հյուսված փաթաթան ՝ կազմված մեկ կտորից:

Քայլ 11: Arduino կոդ

Image
Image

Որպես Arduino- ի կոդավորման ամբողջովին սկսնակ, ես ինքս ինձ սովորեցնում էի, երբ առաջ էի գնում: Կոդը, հավանաբար, «երկար ճանապարհի» ծրագրային համարժեքն է, բայց ես գոհ էի, որ այն նախատեսվածի պես աշխատեց:

DD500- ի looper- ն ունի 5 հիմնական գործառույթ.

  • Looper միացված/անջատված
  • Ձայնագրել/Չափազանց/խաղալ
  • Նվագարկել ձայնագրված հանգույցը
  • Դադարեցնել նվագարկումը
  • Մաքրել գրանցված հանգույցը

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

Մեկ այլ հատկություն, որը ես ավելացրել էի, այն էր, որ հետևեմ, թե քանի անգամ է գրանցման/ավելորդ գործառույթը ակտիվացված: Սա պահպանվում է կոդի մեջ ՝ ավելացնելով մի ամբողջ թիվ, որը ցուցադրվում է «բուֆերային» էկրանին ՝ թվարկելով, թե քանի հետք է գրանցված: Մինչ DD500- ը չի կարող ջնջել առանձին հետքերը, ես սա ավելացրեցի զուտ որպես կոդավորման վարժություն `տեսնելու, թե արդյոք կարող եմ այն գործի դնել:

Կարծես թե խնդիր կա ֆայլերը Instructables- ում վերբեռնելու համար, և ես դրա փոխարեն տեղադրել եմ Pastebin- ի ծածկագրի պատճենը ՝

Կոդում օգտագործվել է 2 գրադարան.

LiquidCrystal_I2C

FortySevenEffects MIDI գրադարան

Քայլ 12: Եզրակացություն

Եզրակացություն
Եզրակացություն

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

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