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

Հիմնական Arduino MIDI վերահսկիչ ՝ 5 քայլ
Հիմնական Arduino MIDI վերահսկիչ ՝ 5 քայլ

Video: Հիմնական Arduino MIDI վերահսկիչ ՝ 5 քայլ

Video: Հիմնական Arduino MIDI վերահսկիչ ՝ 5 քայլ
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Նոյեմբեր
Anonim
Հիմնական Arduino MIDI վերահսկիչ
Հիմնական Arduino MIDI վերահսկիչ

Ներածություն:

Ես նոր եմ աշխատում Arduino- ի հետ, բայց հույս ունեմ ընդլայնել իմ գիտելիքները `ուսուցանելով ուրիշներին և ստանալով հետադարձ կապ: Սա շատ հիմնական MIDI վերահսկիչ է ՝ 4 կոճակով և պոտենցիոմետրով: Այս նախագծի ուրվագիծը այսպիսին է.

1. Կառուցեք հացաթուղթը

2. Էսքիզը վերբեռնեք Arduino- ում

3. Հասկացեք անմազ MIDI- ն և ներքին MIDI հանգույցը (loopbe1)

4. ուղղորդեք ձեր MIDI- ն դեպի DAW (Ableton)

Պարագաներ

1 x Arduino Mega 2560

1 x Հացի տախտակ

1 x USB մալուխ

1 x պոտենցիոմետր

4 x մարտավարության կոճակներ

4 x 120 Օմ ռեզիստորներ

14 x jumper մալուխներ breadboard- ի համար

Քայլ 1. Կառուցեք թխվածքաբլիթը

Կառուցելով դուրս Breadboard
Կառուցելով դուրս Breadboard
Կառուցելով դուրս Breadboard
Կառուցելով դուրս Breadboard

Միացրեք ձեր տախտակը, որպեսզի բոլոր բաղադրիչները համապատասխանեն վերը նշված 1 -ին պատկերին: Յուրաքանչյուր կոճակ պետք է լինի նույնը, ինչ պատկերը 2. Կոճակի մուտքերը Arduino- ում 2, 3, 4 և 5 են, իսկ պոտենցիոմետրի միջին քորոցը միացված է ANALOG մուտքի A0- ին:

Քայլ 2: Էսքիզների վերբեռնում

Էսքիզների վերբեռնում
Էսքիզների վերբեռնում

Պատճենեք և տեղադրեք ստորև նշված կոդը Arduino IDE- ում: «Գործիքներ» բաժնում ընտրեք ճիշտ տախտակը և էսքիզը վերբեռնեք Arduino- ում:

բայթ noteON = 144; // նշում հրամանատարության վրա բայթ; // պահեստավորում, որը ներկայումս նվագում է int կոճակը Pin1 = 2; int կոճակ Pin2 = 3; int կոճակ Pin3 = 4; int կոճակ Pin4 = 5; int potPin = A0; բուլյան currentState = LOW; // ընթացիկ կոճակի վիճակի համար boolean lastState = LOW; // վերջին կոճակի վիճակի պահեստ void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // այս անգամ մենք կապը կդնենք որպես INPUT Serial.begin (9600); // սկզբնականացնել Serial connection} void loop () {int PotVal = analogRead (potPin); բայթ արագություն = քարտեզ (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, արագություն); // միացնել նշումը 60 -ը 127 արագության հետաձգմամբ (200); // կոճակի դեբոնինգի կոպիտ ձևը} այլ դեպքում, եթե (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // անջատել նշումը 60 -ը հետաձգելը (2); // կոճակի դուրսբերման կոպիտ ձևը} lastState = currentState; currentState = digitalRead (buttonPin2); եթե (currentState == HIGH && lastState == LOW) {// եթե կոճակը հենց նոր սեղմված է MIDImessage (noteON, 61, արագություն); // միացրեք նշումը 60 -ը 127 արագության հետաձգմամբ (200); // կոճակի կոպիտ ձև debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // անջատել նշումը 60 հետաձգումը (2); // կոճակի դուրսբերման կոպիտ ձևը} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// եթե կոճակը հենց նոր սեղմված է MIDImessage (noteON, 62, արագություն); // միացրեք նշումը 60 -ը 127 արագության ուշացումով (200); // կոճակի կոպիտ ձև debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // անջատել նշումը 60 հետաձգումը (2); // կոճակի դուրսբերման կոպիտ ձևը} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// եթե կոճակը հենց նոր սեղմված է MIDImessage (noteON, 63, արագություն); // միացրեք նշումը 60 -ը 127 արագության ուշացումով (200); // կոճակի կոպիտ ձև debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // անջատել նշումը 60 հետաձգումը (2); // կոճակի դուրսբերման կոպիտ ձևը} lastState = currentState; } // ուղարկել MIDI հաղորդագրություն void MIDImessage (բայթ հրաման, բայտ տվյալներ 1, բայթ տվյալներ 2) {Serial.write (հրաման); Serial.write (data1); Serial.write (data2); }

Ես դեռ նոր եմ ընդհանուր առմամբ ծածկագիր գրելու մեջ….. նրանք, ովքեր մի փոքր ավելի մեծ փորձ ունեն, հավանաբար կարող են մաքրել սա…

Քայլ 3. Հասկանալով անմազ MIDI և ներքին MIDI օղակները

Հասկանալով անմազ MIDI և ներքին MIDI օղակները
Հասկանալով անմազ MIDI և ներքին MIDI օղակները
Հասկանալով անմազ MIDI և ներքին MIDI օղակները
Հասկանալով անմազ MIDI և ներքին MIDI օղակները
Հասկանալով անմազ MIDI և ներքին MIDI օղակները
Հասկանալով անմազ MIDI և ներքին MIDI օղակները

Arduino- ն պետք է անցնի սերիական կամրջի միջով, ինչպիսին է Մազազուրկ MIDI- ն, այնուհետև ՝ ներքին MIDI հանգույցով, ինչպիսին է loopbe1- ը (կամ IAC ավտոբուսը Mac- ի համար):

Նշում. Դուք չեք կարող էսքիզ վերբեռնել Arduino- ում, մինչ այն միացված է առանց մազերի MIDI սերիական կամրջին:

Ընտրեք ձեր Arduino- ն առանց վարսերի MIDI սերիական նավահանգստում, իսկ loopbe1 կամ IAC Bus- ում ՝ MIDI- ում:

Նշում. Համոզվեք, որ անջատումը loopbe1- ի օգտագործման ժամանակ միացված չէ:

Քայլ 4. Միացում ձեր DAW- ին

Միացում ձեր DAW- ին
Միացում ձեր DAW- ին

Եթե ազդանշան եք ստանում Hairless MIDI հավելվածին, երբ սեղմում եք սեղանի վրա գտնվող կոճակը (լույսերը կփայլեն), դուք պետք է կարողանաք MIDI տվյալները ուղարկել DAW: Ես օգտագործեցի Ableton- ը, բայց ցանկացած DAW պետք է աշխատի: Համոզված եղեք, որ ձեր ներքին MIDI հանգույցը (loopbe1) միացված է ձեր DAW նախասիրություններում (Ableton- ում ցանկանում եք, որ «track» - ը միացված լինի): Հաջորդը, ընտրեք ձեր MIDI ուղու մուտքերից մեկը MIDI հանգույցին (loopbe1), ինչպես ցույց է տրված վերևի նկարում:

Քայլ 5: Խաղա

Image
Image

Այժմ կոճակները կաշխատեն, ինչպես ցանկացած այլ MIDI վերահսկիչ: Պոտենցիոմետրը կփոխի DAW ուղարկվող գրառումների արագությունը: Վերևում (շատ մութ…) տեսանյութը ցույց է տալիս դաշնամուրի հնչողություն գործողության մեջ:

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