Satura rādītājs:

Arduino Uno Midi cīnītājs: 5 soļi
Arduino Uno Midi cīnītājs: 5 soļi

Video: Arduino Uno Midi cīnītājs: 5 soļi

Video: Arduino Uno Midi cīnītājs: 5 soļi
Video: The 5 BEST ARDUINOS for Building a MIDI CONTROLLER 2024, Jūlijs
Anonim
Arduino Uno Midi cīnītājs
Arduino Uno Midi cīnītājs

Šī pamācība tika izveidota, izpildot Dienvidfloridas Universitātes Makecourse projekta prasības (www.makecourse.com)

Pamatojoties uz populāro DJ Techtools MidiFighter, šo pašdarināto Arduino darbināmo mūzikas instrumentu digitālā interfeisa (MIDI) kontrolieri var izmantot kā MIDI ierīci jebkurā digitālās audio darbstacijas (DAW) programmatūrā. MIDI kontrolieris var nosūtīt un saņemt MIDI ziņojumus no datora, un to var izmantot, lai tieši kontrolētu izmantoto programmatūru. Turklāt MIDI kontrollera vadīklas ir pilnībā pielāgojamas - tas nozīmē, ka katru atsevišķu pogu, slīdni un pogu var saistīt ar jebkuru DAW funkciju. Piemēram, nospiežot pogu, var atskaņot noteiktu noti vai tikt ieprogrammētai, lai mainītu audio projekta tempu.

github.com/jdtar/Arduino-Midi-Controller

1. solis: materiāli

Zemāk ir šajā projektā izmantoto materiālu un rīku saraksts.

Arduino Uno

Maizes dēlis

4051/4067 Multiplekseris

Jumper vadi

Papildu vads

2x 10k omu lineārie slaidu potenciometri

16x Sanwa 24 mm pogas

Karstuma saraušanās

Lodāmurs

Žilete

4,7 kΩ rezistors

Akrila loksne (vākam)

Pogas un Arduino korpuss

3-D printeris

Lāzera griezējs

2. solis: projektēšana

Dizains
Dizains
Dizains
Dizains

Pirms projekta uzsākšanas man jau bija nodrošināts korpuss manam MIDI kontrolierim, tāpēc es uztaisīju vāka skici, lai redzētu, kur viss ir jāievieto. Es zināju, ka vēlos izmantot vismaz 16 pogas un pāris potenciometrus, tāpēc mēģināju pēc iespējas vienmērīgāk izvietot komponentus.

Pēc vāka izkārtojuma sastādīšanas es eksportēju failu kā 1: 1 PDF failu un nosūtīju to uz lāzera griezēju, lai izgrieztu akrila loksni. Skrūvju caurumiem es atzīmēju, kur es vēlos, lai caurumi būtu ar marķieri, un izkausēju akrilu ar karstu pavedienu.

Pievienots 1: 1 PDF fails, kuru var izdrukāt kā 1: 1 un izgriezt ar elektroinstrumentiem, ja nav pieejams lāzera griezējs.

3. darbība: konstrukcija un elektroinstalācija

Celtniecība un elektroinstalācija
Celtniecība un elektroinstalācija
Celtniecība un elektroinstalācija
Celtniecība un elektroinstalācija
Celtniecība un elektroinstalācija
Celtniecība un elektroinstalācija

Pēc akrila griešanas es uzzināju, ka akrils ir pārāk plāns, lai pietiekami izturētu visas sastāvdaļas. Pēc tam es izgriezu vēl vienu lapu un salīmēju kopā, kas notika perfekti.

Komponentu savienošana prasīja zināmus izmēģinājumus un kļūdas, taču tika pievienota Fritzing skice. Es vispirms pievienoju zemējuma vadus un 4,7 kΩ rezistoru, pielodēju un karstums samazināja pogu savienojumus. Divu slaidu potenciometru uzstādīšanai bija nepieciešami kušanas caurumi akrila skrūvēm. Pēc abu potenciometru ieskrūvēšanas tie tika savienoti ar A0 un A1 analogajām tapām. Kad elektroinstalācija bija pabeigta, es atcerējos, ka maniem faderiem nebija pogu vāciņu, tā vietā, lai tos iegādātos, es, izmantojot trīsdimensiju printeri, izdrukāju dažus pogu vāciņus, ieskicējot tos Autodesk Fusion 360 un eksportējot uz STL failu. De

Arduino Uno ir tikai 12 pieejamās digitālās ievades tapas, bet bija jāpieslēdz 16 pogas. Lai to kompensētu, es pievienoju 74HC4051 multipleksoru uz maizes dēļa, kurā tiek izmantotas 4 digitālās ievades tapas un kas ļauj vairākiem signāliem izmantot koplīniju, kā rezultātā ir pieejamas 8 pieejamas digitālās ievades tapas kopā 16 lietošanai pieejamām digitālajām tapām.

Pieslēgt pogas pareizajām tapām bija tikai izveidot 4x4 matricu un izmantot to kodā. Tomēr sarežģītā daļa bija tāda, ka konkrētajam iegādātajam multiplekserim bija īpašs tapu izkārtojums, kuram palīdzēja datu lapa, kā arī man bija prātā konkrēts piezīmju izkārtojums, pieslēdzot pogas, kas galu galā izskatījās nedaudz šādi:

PIEZĪME MATRIX

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

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

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

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

PIN MATRIKS (M = MUX IEEJA)

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

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

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

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

4. solis: programmēšana

Programmēšana
Programmēšana

Kad montāža ir pabeigta, atliek tikai programmēt Arduino. Pievienotais skripts ir uzrakstīts tā, lai tas būtu viegli pielāgojams.

Skripta sākumā ir iekļauta MIDI.h bibliotēka un kontrolieru bibliotēka, kas aizņemta no emuāra Piezīmes un volti, kas abi ir iekļauti koda zip failā. Izmantojot kontrolieru bibliotēku, var izveidot objektus pogām, potenciometriem un multipleksētām pogām, kas satur datu vērtības, kas ietver piezīmju numuru, kontroles vērtības, piezīmju ātrumu, MIDI kanāla numuru utt. MIDI.h bibliotēka nodrošina MIDI I/O sakarus Arduino seriālie porti, kas savukārt ņem datus no kontroliera objektiem, pārvērš tos par MIDI ziņojumiem un nosūta ziņojumus uz jebkuru midi saskarni.

Skripta tukšā iestatīšanas daļa inicializē visus kanālus kā izslēgtus, kā arī uzsāk sērijas savienojumu ar 115200 bodu, kas ir ātrāks nekā MIDI signālu apmaiņa.

Galvenā cilpa būtībā aizņem pogu un multipleksēto pogu masīvus un palaiž cilpu, kas pārbauda, vai poga ir nospiesta vai atlaista, un nosūta atbilstošos datu baitus uz midi saskarni. Potenciometra cilpa pārbauda potenciometra stāvokli un nosūta atbilstošās sprieguma izmaiņas atpakaļ uz midi saskarni.

5. darbība: iestatīšana

Image
Image
Uzstādīt
Uzstādīt
Uzstādīt
Uzstādīt
Uzstādīt
Uzstādīt

Kad skripts tika ielādēts Arduino, nākamais solis ir pievienošana un atskaņošana. Tomēr pirms tā izmantošanas ir jāveic dažas darbības.

Operētājsistēmā OSX Apple iekļāva funkciju, lai izveidotu virtuālas midi ierīces, kurām var piekļūt, izmantojot Mac audio lietojumprogrammu Audio Midi Setup. Kad jaunā ierīce ir izveidota, Matu bez matiem var izmantot, lai izveidotu sērijas savienojumu starp Arduino un jauno virtuālo midi ierīci. Sērijas savienojums no Arduino līdz Hairless MIDI darbojas ar pārraides ātrumu, kas noteikts skripta tukšās iestatīšanas daļā, un tam jābūt iestatītam līdzvērtīgam Hairless MIDI preferenču iestatījumos.

Pārbaudes nolūkos es izmantoju Midi Monitor, lai pārbaudītu, vai tiek sūtīti pareizi dati, domājot par sērijas-MIDI savienojumu. Tiklīdz es noskaidroju, ka visas pogas, izmantojot pareizos kanālus, pārsūta pareizos datus, es iestatīju MIDI signālu, lai maršrutētu uz Ableton Live 9 kā MIDI ievadi. Abletonā es varēju kartēt sagrieztus audio paraugus katrai pogai un atskaņot katru paraugu.

Ieteicams: