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, Srpanj
Anonim
Arduino Uno Midi borac
Arduino Uno Midi borac

Ova instrukcija nastala je u skladu s projektnim zahtjevima Makecoursea na Sveučilištu Južne Floride (www.makecourse.com)

Temeljen na popularnom MidiFighter -u DJ Techtools -a, ovaj domaći kontroler s digitalnim sučeljem za glazbene instrumente (MIDI) s arduinskim pogonom može se koristiti kao MIDI uređaj na bilo kojem softveru digitalne audio radne stanice (DAW). MIDI kontroler može slati i primati MIDI poruke s računala i može se koristiti za izravnu kontrolu softvera koji se koristi. Nadalje, kontrole na MIDI kontroleru potpuno su prilagodljive - što znači da se svaki pojedinačni gumb, klizač i gumb mogu mapirati na bilo koju funkciju u DAW -u. Na primjer, pritiskom na gumb možete reproducirati određenu notu ili programirati za promjenu tempa vašeg audio projekta.

github.com/jdtar/Arduino-Midi-Controller

Korak 1: Materijali

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

Arduino Uno

Oglasna ploča

4051/4067 Multiplekser

Kratkospojne žice

Dodatna žica

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 gumbe i Arduino

3-D pisač

Laserski rezač

Korak 2: Dizajn

Oblikovati
Oblikovati
Oblikovati
Oblikovati

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

Nakon što sam izradio izgled 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 podupire sve komponente. Zatim sam izrezala još jedan list i zalijepila ih zajedno što je savršeno uspjelo.

Ožičenje komponenti zahtijevalo je neke pokušaje i pogreške, ali je rezultiralo prilogom Fritzingove skice. Prvo sam ožičio žice za uzemljenje i otpornik od 4,7 kΩ, lemio i zagrijavao skupljanje spojeva na gumbima. Ugradnja dva klizna potenciometra zahtijevala je rupe za taljenje vijaka u akrilu. Nakon što su dva potenciometra uvijena, priključeni su na analogne pinove A0 i A1. Nakon što je ožičenje dovršeno, sjetio sam se da nema poklopca gumba za moje fadere pa sam umjesto kupovine ispisao neke poklopce pomoću trodimenzionalnog pisača tako što sam ih skicirao u Autodesk Fusion 360 i izvezao u STL datoteku. De

Arduino Uno ima samo 12 dostupnih pinova za digitalni ulaz, ali 16 je gumba trebalo spojiti. Kako bih to nadoknadio, spojio sam multipleksor 74HC4051 na 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. Škakljivo je bilo to što je specifični kupljeni multiplekser imao specifičan raspored pinova u čemu im je pomogla tablica s podacima, a također sam imao na umu i poseban izgled bilješke pri povezivanju gumba, što je na kraju izgledalo otprilike ovako:

NAPOMENA 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 dovrš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 s bloga Notes and Volts koji su uključeni u zip datoteku za kôd. Pomoću biblioteke kontrolera mogu se stvoriti objekti za gumbe, potenciometre i multipleksne gumbe koji sadrže vrijednosti podataka koje uključuju broj bilješke, kontrolne vrijednosti, brzinu note, broj MIDI kanala itd. Knjižnica MIDI.h omogućuje 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 biti uzima nizove gumba i multipleksiranih gumba i pokreće petlju for koja provjerava je li gumb pritisnut ili otpušten i šalje odgovarajuće bajtove podataka na midi sučelje. Petlja potenciometra provjerava položaj potenciometra i šalje odgovarajuće promjene napona natrag 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čunalima. Nakon što je novi uređaj stvoren, 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 skriptu za postavljanje praznina i mora biti postavljena ekvivalentno u postavkama MIDI -a za Hairless.

Za potrebe testiranja koristio sam Midi Monitor kako bih provjerio šalju li se točni podaci, mislim na serijsku MIDI vezu. Nakon što sam utvrdio da svaki gumb šalje ispravne podatke kroz ispravne kanale, postavio sam MIDI signal za usmjeravanje na Ableton Live 9 kao MIDI ulaz. U Abletonu sam uspio preslikati izrezane audio uzorke na svaku tipku i reproducirati svaki uzorak.

Preporučeni: