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

MIDI- վերահսկվող Stepper Motor With Direct Digital Synthesis (DDS) չիպ ՝ 3 քայլ
MIDI- վերահսկվող Stepper Motor With Direct Digital Synthesis (DDS) չիպ ՝ 3 քայլ

Video: MIDI- վերահսկվող Stepper Motor With Direct Digital Synthesis (DDS) չիպ ՝ 3 քայլ

Video: MIDI- վերահսկվող Stepper Motor With Direct Digital Synthesis (DDS) չիպ ՝ 3 քայլ
Video: Հմայիչ 17-րդ դարի լքված դղյակը Ֆրանսիայում (26 տարի ժամանակի լրիվ սառեցված) 2024, Նոյեմբեր
Anonim
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով
MIDI- ով վերահսկվող Stepper Motor with Direct Digital Synthesis (DDS) չիպով

Երբևէ վա՞տ եք պատկերացրել, որ ՄԻԱՅՆ պետք է վերածվեիք մինի նախագծի: Դե, ես խաղում էի Arduino Due- ի համար պատրաստած էսքիզով, որի նպատակն էր երաժշտություն պատրաստել AD9833 Direct Digital Synthesis (DDS) մոդուլով… և ինչ -որ պահի մտածեցի. սա »: Եվ հենց այդ գաղափարն էլ դրդեց այս փոքրիկ տապանակի վրա հիմնված նախագիծը:

Այս նախագծում ներառված կլինի MIDI-over-USB- ի օգտագործման Arduino Due- ի կառավարման և AD9833 մոդուլի և stepper վարորդի միջև քառակուսի ալիքներ ուղարկելու որոշ ծածկագիր: Կլինեն նաև դիագրամ և հիմնական հրահանգներ ՝ սա մինչև Arduino Due- ին միացնելու համար:

Պարագաներ:

Այն, ինչ ձեզ հարկավոր կլինի այս նախագծի համար

Arduino Due

Ո NOTՇԱԴՐՈԹՅՈՆ. Կոդը գրված է Due- ի համար, բայց այն նաև պետք է աշխատի և (կամ) հարմարվի eroրոյի համար: Այն օգտագործում է Arduino- ի MIDIUSB գրադարանը, որը պահանջում է հայրենի USB պորտ:

oldոդման տախտակ + ցատկողներ

AD9833 Breakout մոդուլ

A4988 Stepper Driver (կամ նմանատիպ)

NEMA 17 տիպի շարժիչ (կամ նմանատիպ)

- 24 Վ էլեկտրամատակարարում (նկատի ունեցեք, ես ընտրել եմ այս 24 Վոլտ արժեքը, քանի որ այն ավելի մեծ էր, քան անվանական սլաքային շարժիչի լարումը: Ձեր իրականացումը կարող է տարբեր լինել, եթե ավելի մեծ շարժիչ եք օգտագործում)

Քայլ 1: Breadboarding

Breadboarding
Breadboarding

Դրա հիմնական գաղափարն այն է, որ Direct Digital Synthesis IC- ն քառակուսի ալիք կստեղծի `քայլող շարժիչի վարորդի« քայլ »քորոցը քշելու համար: Այս սլաքի վարորդը շարժիչը կշարժի նշված լսելի հաճախականությամբ: Շարժիչի ուղղությունը որոշ չափով կամայական է այնքան ժամանակ, քանի դեռ այն քայլում է ճիշտ հաճախականությամբ:

Մոտեցումը, որը ես նախընտրում եմ օգտագործել հացաթխման սեղանի շուրջ, այն է, որ սկզբում աշխատեցնեմ էլեկտրահաղորդման գծերն ու հիմքերը, այնուհետև սկսեմ գործարկել մյուս բոլոր ՝ ոչ էներգիայի միացումները:

Հիմք:

- AD9833 մոդուլի AGND և DGND կապումներն միացրեք հացատախտակին տեղադրված GND երկաթգծին:

- Stepper Driver- ի երկու GND կապում միացրեք GND երկաթուղուն

- Սա բերեք Arduino Due- ի GND կապում

3.3V Հզորություն:

- Միացրեք Stepper Driver- ի VDD Pin- ը breadboard- ի V+ Rail- ին

- AD9833 մոդուլի VCC կապը միացրեք տախտակի V+ Rail- ին

- Սա բերեք Arduino Due- ի 3.3V Pin- ին

24V Հզորություն:

- VMOT կապը միացրեք 24 Վ DC հոսանքի աղբյուրին (կախված ձեր շարժիչի ընտրությունից, գուցե ցանկանաք ավելի բարձր կամ ցածր մատակարարման երկաթուղի գործարկել)

Մոդուլ-մոդուլ միացում

- AD9833 մոդուլից OUT կապը միացրեք շարժիչի վարորդի STEP քորոցին

Stepper վարորդի միացումներ

- Միացրեք Stepper Motor- ի միացումները 2B/2A/1A/1B կապումներին: Բևեռականությունն այնքան էլ կարևոր չէ, քանի դեռ Վարորդի փուլերը համընկնում են Stepper Motor- ի փուլերի հետ:

- Միացրեք RESET և SLEEP կապերը միասին և դրանք մոտեցրեք Arduino Due Pin 8 -ին:

- Միացրեք DIR կապը 3.3V երկաթուղու հետ

AD9833 Մոդուլի միացումներ

- SCLK- ը միացրեք Arduino Due- ի SCK կապին: Նկատի ունեցեք, որ այս քորոցը գտնվում է միկրոկառավարիչի մոտ գտնվող 6-պին արական ICSP վերնագրի վրա, այլ ոչ թե սովորական արտաքին կին վերնագրերի վրա:

- SDATA կապը միացրեք Due- ի MOSI կապին: Նկատի ունեցեք, որ այս քորոցը գտնվում է միկրոկառավարիչի մոտ գտնվող 6-պին արական ICSP վերնագրի վրա, այլ ոչ թե սովորական արտաքին կին վերնագրերի վրա:

- Միացրեք FSYNC- ը Arduino Due Pin 6 -ին (սա Chip Select փինն է այս ծրագրի համար)

Այժմ, երբ հացահատիկը լիովին հավաքված է, ժամանակն է հայացք գցել ծածկագրին:

Քայլ 2: mingրագրավորում և MIDI կարգավորում

Programրագրավորում և MIDI կարգավորում
Programրագրավորում և MIDI կարգավորում

Կցված: Այս չիպը ունի DAC, որն աշխատում է 25 ՄՀց հաճախականությամբ բանաձևով (28 բիթ) (ընդհանուր գերբեռնվածություն այն ամենի համար, ինչ անհրաժեշտ է այստեղ), և այստեղի կոդի մեծ մասը կարգավորում է քառակուսի ալիք գործարկելու և թողարկելու համար:

Նշում. Կա երկու USB պորտ: Մեկը օգտագործվում է տախտակի ծրագրավորման համար, իսկ մյուսը `MIDI-over-USB կոմունալ ծառայությունների համար:

Նկատի ունեցեք, որ այս ուրվագիծը չի աշխատի այնպես, ինչպես Arduino Uno- ում

Անհատականացման ընտրանքներ

- Կան 2 ռեժիմ, որոնք կարող են սահմանվել նախամշակող մակրո սահմանմամբ: Եթե «#define STOPNOTES» - ը մնա անձեռնմխելի, ապա stepper- ը կանգ կառնի նշումների արանքում: Սա միշտ չէ, որ ցանկալի է (օրինակ ՝ արագ arpeggios նվագելը), ուստի այս վարքագիծը փոխելու համար պարզապես ջնջեք կամ մեկնաբանեք, որ #սահմանեք հայտարարությունը, և stepper- ը անընդհատ կաշխատի խաղալուց հետո:

-Ես օգտագործում եմ էժան 2 օկտավա MIDI ստեղնաշար դրանով, որն ունի օկտավա վեր/վար կոճակ, բայց եթե դուք չունեք այդ տարբերակը, կարող եք օկտավա-տեղաշարժել ներքևի հաճախականության թարգմանությունը `բազմապատկելով կամ բաժանելով 2-ի ուժերին:

MIDI հաճախականությամբ թարգմանությունը կատարվում է playNote գործառույթի այս տողով. Int f_out = (int) (27.5*pow (2, ((float) midiNote-33)/12));

- Ես հակված եմ օգտագործել իմ համակարգիչը USB MIDI- ով միանալու համար: Դուք կարող եք դա անել ձեր նախընտրած Digital Audio Workstation (DAW) ծրագրակազմից: Եթե չունեք մեկը, բավականին հեշտ է այս համակարգը կարգավորել LMMS- ի միջոցով `անվճար, բաց կոդով հարթակ: Տեղադրվելուց և գործարկելուց հետո պարզապես նշեք Arduino Due- ն որպես MIDI ելքային սարք, իսկ եթե օգտագործում եք USB MIDI ստեղնաշար, ապա մուտքագրեք այն:

Քայլ 3: Փորձարկում և փորձարկում

Timeամանակն է խաղալ ձեր սլաքային շարժիչով:

Ինչպես նշվեց, դրա հիմքում ընկած ամբողջ գաղափարը մի տեսակ անփորձ փորձ էր, ուստի անպայման փորձեր կատարեք:

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