Sadržaj:

Arduino Uno Midi borac: 5 koraka
Arduino Uno Midi borac: 5 koraka

Video: Arduino Uno Midi borac: 5 koraka

Video: Arduino Uno Midi borac: 5 koraka
Video: #1 How to Build a MIDI controller with an Arduino: The DIY MIDI Controller Workshop 2.0 2024, Juli
Anonim
Arduino Uno Midi borac
Arduino Uno Midi borac

Ova instrukcija nastala je u skladu sa zahtjevima projekta Makecourse na Univerzitetu Južne Floride (www.makecourse.com)

Zasnovan na popularnom MidiFighter -u DJ Techtools -a, ovaj domaći kontroler sa digitalnim interfejsom za muzičke instrumente (MIDI) sa Arduino pogonom može se koristiti kao MIDI uređaj na bilo kom softveru za digitalnu audio radnu stanicu (DAW). MIDI kontroler može slati i primati MIDI poruke sa računara i može se koristiti za direktnu kontrolu softvera koji se koristi. Osim toga, kontrole na MIDI kontroleru su potpuno prilagodljive - što znači da se svako pojedinačno dugme, klizač i dugme mogu mapirati na bilo koju funkciju u DAW -u. Na primjer, pritiskom na dugme možete reproducirati određenu notu ili programirati za promjenu tempa vašeg audio projekta.

github.com/jdtar/Arduino-Midi-Controller

Korak 1: Materijali

Ispod je popis materijala i alata korištenih u ovom projektu.

Arduino Uno

Breadboard

4051/4067 Multiplekser

Žice za kratkospojnike

Extra Wire

2x linearni klizni potenciometar od 10k ohma

16x Sanwa tipke od 24 mm

Termoskupljanje

Lemilica

Žilet

4,7 kΩ otpornik

Akrilni lim (za poklopac)

Kućište za dugmad i Arduino

3-D štampač

Laserski rezač

Korak 2: Dizajnirajte

Dizajn
Dizajn
Dizajn
Dizajn

Već sam dobio smještaj za svoj MIDI kontroler prije početka projekta, pa sam ismijavao skicu poklopca kako bih vizualizirao gdje će sve biti postavljeno. Znao sam da želim najmanje 16 tipki i nekoliko potenciometara kao značajku, pa sam pokušao što ravnomjernije rasporediti komponente.

Nakon sastavljanja izgleda poklopca, izvezao sam datoteku kao PDF u omjeru 1: 1 i poslao je laserskom rezaču da izreže list akrila. Za rupe za vijke, markerom sam označio gdje želim da rupe budu i otopio akril vrućom niti.

U privitku je PDF u omjeru 1: 1 koji se može ispisati kao 1: 1 i izrezati električnim alatima ako laserski rezač nije dostupan.

Korak 3: Izgradnja i ožičenje

Izgradnja i ožičenje
Izgradnja i ožičenje
Izgradnja i ožičenje
Izgradnja i ožičenje
Izgradnja i ožičenje
Izgradnja i ožičenje

Nakon rezanja rezanjem akrila, otkrio sam da je akril previše tanak da dovoljno podržava sve komponente. Zatim sam izrezao još jedan list i zalijepio ih zajedno što je savršeno uspjelo.

Ožičenje komponenti zahtijevalo je neke pokušaje i greške, ali je rezultiralo prilogom Fritzingove skice. Prvo sam ožičio žice za uzemljenje i otpornik od 4,7 kΩ, lemio i toplinom smanjio veze na gumbima. Za montažu dva klizna potenciometra potrebne su rupe za taljenje vijaka u akrilu. Nakon što su dva potenciometra pričvršćena, priključeni su na analogne pinove A0 i A1. Nakon što je ožičenje završeno, sjetio sam se da nema poklopca gumba za moje fadere, pa sam ih umjesto kupovine ispisao neke kapice pomoću trodimenzionalnog pisača skicirajući ih u Autodesk Fusion 360 i izvezivši ih u STL datoteku. De

Arduino Uno ima samo 12 dostupnih pinova za digitalni ulaz, ali 16 dugmadi je trebalo spojiti. Da bih to kompenzirao, spojio sam multipleksor 74HC4051 na matičnu ploču koja koristi 4 digitalna ulazna pina i omogućuje više signala da koriste zajedničku liniju što rezultira s 8 dostupnih igala za digitalni ulaz za ukupno 16 digitalnih pinova dostupnih za upotrebu.

Povezivanje gumba na ispravne pinove jednostavno je bilo pitanje stvaranja matrice 4x4 i korištenja iste u kodu. Škakljiv dio je bio što je određeni kupljeni multiplekser imao specifičan raspored pinova u čemu je pomogla tablica s podacima, a također sam imao na umu i specifičan izgled bilješke pri povezivanju gumba, što je na kraju izgledalo otprilike ovako:

NOTE 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 MATRIX (M = MUX ULAZ)

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

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

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

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

Korak 4: Programiranje

Programiranje
Programiranje

Nakon što je montaža završena, sve što preostaje je programiranje Arduina. Priložena skripta napisana je na takav način da se lako može prilagoditi.

Početak skripte uključuje biblioteku MIDI.h i biblioteku kontrolera posuđenu sa bloga Notes and Volts, a obje su uključene u zip datoteku za kôd. Pomoću biblioteke kontrolera mogu se kreirati objekti za tipke, potenciometre i multipleksirane tipke koji sadrže vrijednosti podataka koje uključuju broj note, kontrolne vrijednosti, brzinu note, broj MIDI kanala itd. MIDI.h biblioteka omogućava MIDI I/O komunikaciju na Arduino serijski portovi koji zauzvrat uzima podatke iz objekata kontrolera, pretvara ih u MIDI poruke i šalje poruke na bilo koje midi sučelje.

Dio skripte za postavljanje void inicijalizira sve kanale kao isključene, a također započinje serijsku vezu na 115200 bauda, brzinom većom od razmjene MIDI signala.

Glavna petlja u suštini uzima nizove dugmadi i multipleksiranih tastera i pokreće petlju for koja proverava da li je dugme pritisnuto ili otpušteno i šalje odgovarajuće bajtove podataka na midi interfejs. Petlja potenciometra provjerava položaj potenciometra i šalje odgovarajuće promjene napona na midi sučelje.

Korak 5: Postavljanje

Image
Image
Postaviti
Postaviti
Postaviti
Postaviti
Postaviti
Postaviti

Nakon što je skripta učitana na Arduino, sljedeći korak je uključivanje i reproduciranje. Međutim, postoji nekoliko koraka prije nego što se može koristiti.

Na OSX -u, Apple je uključio značajku za stvaranje virtualnih midi uređaja kojima se može pristupiti putem aplikacije Audio Midi Setup na Mac računarima. Nakon što je novi uređaj kreiran, Hairless MIDI se može koristiti za stvaranje serijske veze između Arduina i novog virtualnog midi uređaja. Serijska veza s Arduina preko Hairless MIDI -ja radi brzinom prijenosa definiranom u dijelu za postavljanje void skripte i mora biti postavljena ekvivalentno u postavkama za Hairless MIDI.

Za potrebe testiranja koristio sam Midi Monitor da provjerim da li se šalju ispravni podaci, mislim na serijsko-MIDI vezu. Nakon što sam utvrdio da svako dugme šalje ispravne podatke putem ispravnih kanala, postavio sam MIDI signal za usmjeravanje na Ableton Live 9 kao MIDI ulaz. U Abletonu sam uspio preslikati izrezane audio uzorke na svako dugme i reproducirati svaki uzorak.

Preporučuje se: