Kazalo:

Midi borec Arduino Uno: 5 korakov
Midi borec Arduino Uno: 5 korakov

Video: Midi borec Arduino Uno: 5 korakov

Video: Midi borec Arduino Uno: 5 korakov
Video: Amazing arduino project 2024, November
Anonim
Arduino Uno Midi borec
Arduino Uno Midi borec

Ta pouk je bil ustvarjen v skladu z zahtevami projekta Makecourse na Univerzi v Južni Floridi (www.makecourse.com)

Na osnovi priljubljenega MidiFighterja DJ Techtools se lahko ta domači krmilnik z digitalnim vmesnikom z glasbenimi instrumenti (MIDI), ki ga poganja Arduino, uporablja kot naprava MIDI v kateri koli programski opremi za digitalno avdio delovno postajo (DAW). MIDI krmilnik lahko pošilja in prejema sporočila MIDI iz računalnika in se lahko uporablja za neposreden nadzor nad programsko opremo, ki se uporablja. Poleg tega so krmilniki na MIDI krmilniku popolnoma prilagodljivi - kar pomeni, da je vsak posamezen gumb, drsnik in gumb mogoče preslikati v katero koli funkcijo v DAW. Na primer, s pritiskom na gumb lahko predvajate določeno noto ali pa ga programirate za preklop tempa vašega zvočnega projekta.

github.com/jdtar/Arduino-Midi-Controller

1. korak: Materiali

Spodaj je seznam materialov in orodij, uporabljenih pri tem projektu.

Arduino Uno

Ogledna plošča

4051/4067 Multiplekser

Mostične žice

Dodatna žica

2x 10k ohmski linearni drsni potenciometer

16x gumbi Sanwa 24 mm

Toplotno krčenje

Spajkalnik

Britvica

4,7 kΩ upor

Akrilna folija (za pokrov)

Ohišje za gumbe in Arduino

3-D tiskalnik

Laserski rezalnik

2. korak: Oblikovanje

Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje

Pred začetkom projekta so mi že zagotovili ohišje za krmilnik MIDI, zato sem se poslikal skico pokrova, da sem si predstavljal, kam naj se vse postavi. Vedel sem, da želim imeti vsaj 16 gumbov in nekaj potenciometrov, zato sem poskušal čim bolj enakomerno razporediti komponente.

Ko sem sestavil postavitev pokrova, sem datoteko izvozil kot PDF v razmerju 1: 1 in jo poslal laserskemu rezalniku, da je izrezal list akrila. Za luknje za vijake sem z markerjem označil, kje naj bodo luknje, in z vročo nitjo stopil akril.

Priložen je PDF v razmerju 1: 1, ki ga lahko natisnete kot 1: 1 in ga razrežete z električnim orodjem, če laserski rezalnik ni na voljo.

3. korak: Gradnja in ožičenje

Gradbeništvo in ožičenje
Gradbeništvo in ožičenje
Gradbeništvo in ožičenje
Gradbeništvo in ožičenje
Gradbeništvo in ožičenje
Gradbeništvo in ožičenje

Po rezanju z rezanjem akrila sem ugotovil, da je akril premajhen, da bi dovolj podprl vse komponente. Nato sem izrezal še en list in jih zlepil skupaj, kar se je izkazalo za odlično.

Ožičenje komponent je trajalo nekaj poskusov in napak, vendar je prišlo do priložene skice Fritzing. Najprej sem ožičil ozemljitvene žice in 4,7 kΩ upor, spajkal in toplotno skrčil povezave na gumbih. Za montažo dveh drsnih potenciometrov so bile potrebne talilne luknje za vijake v akrilu. Po privitju obeh potenciometrov sta bila ožičena do analognih nožic A0 in A1. Ko je bilo ožičenje končano, sem se spomnil, da za moje faderje ni pokrovčkov, zato sem namesto da bi jih kupil, natisnil nekaj pokrovčkov s 3-D tiskalnikom, tako da sem ga skiciral v Autodesk Fusion 360 in izvozil v datoteko STL. De

Arduino Uno ima na voljo le 12 vhodov za digitalni vhod, vendar je bilo treba priključiti 16 gumbov. Da bi to kompenziral, sem na ploščo ožičil multiplekser 74HC4051, ki uporablja 4 digitalne vhodne zatiče in omogoča več signalom uporabo skupne linije, kar ima za posledico 8 razpoložljivih digitalnih vhodnih zatičev za skupno 16 digitalnih zatičev, ki so na voljo za uporabo.

Priključitev gumbov na pravilne zatiče je bila preprosto stvar ustvarjanja matrike 4x4 in njene uporabe v kodi. Zapleten del pa je bil, da je imel posebni kupljeni multiplekser določeno postavitev zatičev, pri kateri je bil podatkovni list v pomoč, poleg tega pa sem pri ožičenju gumbov v mislih imel v mislih določeno postavitev beležke, ki je na koncu izgledala takole:

OPOMBA 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 VHOD)

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

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

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

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

4. korak: Programiranje

Programiranje
Programiranje

Ko je montaža končana, je ostalo le programiranje Arduina. Priloženi skript je napisan tako, da ga je enostavno prilagoditi.

Začetek skripta vključuje knjižnico MIDI.h in knjižnico krmilnika, izposojeno iz bloga Notes and Volts, ki sta vključeni v datoteko zip za kodo. Z uporabo knjižnice krmilnika lahko ustvarite predmete za gumbe, potenciometre in multipleksirane gumbe, ki vsebujejo podatkovne vrednosti, ki vključujejo številko note, kontrolne vrednosti, hitrost note, številko kanala MIDI itd. Knjižnica MIDI.h omogoča komunikacijo MIDI I/O na Serijska vrata Arduino, ki nato vzamejo podatke iz objektov krmilnika, jih pretvorijo v sporočila MIDI in sporočila pošljejo na kateri koli midi vmesnik.

Del skripta za nastavitev void inicializira vse kanale kot izklopljene in sproži tudi serijsko povezavo pri 115200 baud, kar je hitreje od izmenjave signalov MIDI.

Glavna zanka v bistvu sprejme niz gumbov in multipleksiranih gumbov ter zažene zanko for, ki preveri, ali je bil gumb pritisnjen ali sproščen, in pošlje ustrezne podatkovne bajte vmesniku midi. Zanka potenciometra preveri položaj potenciometra in pošlje ustrezne spremembe napetosti nazaj na midi vmesnik.

5. korak: Nastavitev

Image
Image
Nastaviti
Nastaviti
Nastaviti
Nastaviti
Nastaviti
Nastaviti

Ko je skript naložen na Arduino, je naslednji korak priključitev in predvajanje. Preden ga lahko uporabite, obstaja nekaj korakov.

V OSX je Apple vključil funkcijo za ustvarjanje navideznih midi naprav, do katerih je mogoče dostopati prek aplikacije Audio Midi Setup na računalnikih Mac. Ko je nova naprava ustvarjena, lahko Hairless MIDI uporabite za ustvarjanje serijske povezave med Arduinom in novo virtualno midi napravo. Zaporedna povezava z Arduina prek Hairless MIDI deluje s hitrostjo prenosa, ki je določena v delu za nastavitev void skripta, zato je treba nastaviti enakovredno v nastavitvah brez dlake MIDI.

Za namene testiranja sem uporabil Midi Monitor, da preverim, ali so bili posredovani pravilni podatki, povezava serijsko-MIDI. Ko sem ugotovil, da vsi gumbi pošiljajo pravilne podatke po ustreznih kanalih, sem nastavil signal MIDI za usmerjanje na Ableton Live 9 kot vhod MIDI. V Abletonu sem lahko preslikal izrezane zvočne vzorce na vsak gumb in predvajal vsak vzorec.

Priporočena: