INHOUDSOPGAWE:

Arduino Uno Midi Fighter: 5 stappe
Arduino Uno Midi Fighter: 5 stappe

Video: Arduino Uno Midi Fighter: 5 stappe

Video: Arduino Uno Midi Fighter: 5 stappe
Video: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, November
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Hierdie instruksies is geskep ter voldoening aan die projekvereiste van die Makecourse aan die Universiteit van Suid -Florida (www.makecourse.com)

Hierdie tuisgemaakte Arduino -aangedrewe Musical Instrument Digital Interface (MIDI) kontroleerder, wat gebaseer is op die gewilde MidiFighter deur DJ Techtools, kan as 'n MIDI -toestel op enige sagteware van die Digital Audio Workstation (DAW) gebruik word. 'N MIDI -beheerder kan MIDI -boodskappe vanaf 'n rekenaar stuur en ontvang en kan gebruik word om die sagteware wat gebruik word, direk te beheer. Boonop is die kontroles op 'n MIDI -kontroleerder volledig aanpasbaar - wat beteken dat elke individuele knoppie, skuifknop en knop aan elke funksie in 'n DAW gekoppel kan word. Deur byvoorbeeld op 'n knoppie te druk, kan 'n spesifieke noot gespeel word of geprogrammeer word om die tempo van u klankprojek te verander.

github.com/jdtar/Arduino-Midi-Controller

Stap 1: materiaal

Hieronder is 'n lys met materiaal en gereedskap wat in hierdie projek gebruik word.

Arduino Uno

Broodbord

4051/4067 Multiplexer

Springdrade

Ekstra draad

2x 10k ohm lineêre skyfie potensiometers

16x Sanwa 24mm knoppies

Krimp hitte

Soldeerbout

Skeermes lem

Weerstand van 4,7 kΩ

Akrielblad (vir deksel)

Behuising vir knoppies en Arduino

3D-drukker

Lasersnyer

Stap 2: Ontwerp

Ontwerp
Ontwerp
Ontwerp
Ontwerp

Ek het reeds die behuising van my MIDI -kontroleerder voorsien voordat ek met die projek begin het, so ek het 'n skets vir die deksel bespot om te sien waar alles geplaas moet word. Ek het geweet dat ek ten minste 16 knoppies en 'n paar potensiometers as 'n funksie wou hê, en ek het probeer om die komponente so eweredig moontlik uit te sprei.

Nadat ek die uitleg vir die deksel opgestel het, het ek die lêer uitgevoer as 'n 1: 1 PDF en dit na 'n lasersnyer gestuur om 'n vel akriel te sny. Vir skroefgate het ek met 'n merker gemerk waar ek die gate wou hê en die akriel met 'n warm filament gesmelt.

Aangeheg is die 1: 1 PDF wat as 'n 1: 1 uitgedruk kan word en met elektriese gereedskap gesny kan word as daar nie 'n lasersnyer beskikbaar is nie.

Stap 3: Konstruksie en bedrading

Konstruksie en bedrading
Konstruksie en bedrading
Konstruksie en bedrading
Konstruksie en bedrading
Konstruksie en bedrading
Konstruksie en bedrading

Nadat ek die akriel gesny het, het ek agtergekom dat die akriel te dun was om al die komponente voldoende te ondersteun. Ek sny toe nog 'n vel uit en plak dit vas, wat toevallig goed werk.

Die bedrading van die komponente het 'n bietjie proef en fout geneem, maar dit het gelei tot die aangehegte Fritzing -skets. Ek het eers die gronddrade en die weerstand van 4.7kΩ vasgemaak, gesoldeer en hitte het die verbindings op die knoppies verminder. Die montering van die twee skyfpotensiometers benodig smeltgate vir die skroewe in die akriel. Nadat die twee potensiometers ingeskroef is, is dit aan die A0- en A1 -analoogpenne gekoppel. Nadat die bedrading voltooi was, het ek onthou dat daar geen knopdoppe vir my faders was nie, dus eerder as om dit aan te skaf, het ek 'n paar knopdoppe met 'n 3D-drukker gedruk deur dit in Autodesk Fusion 360 te skets en na 'n STL-lêer uit te voer. De

Die Arduino Uno het slegs 12 beskikbare digitale invoerpenne, maar 16 knoppies moes aangesluit word. Om dit te vergoed, het ek 'n 74HC4051 -multiplexer op 'n broodbord aangelê wat 4 digitale invoerpenne gebruik en verskeie seine in staat stel om 'n gedeelde lyn te gebruik, wat lei tot 8 beskikbare digitale invoerpenne vir 'n totaal van 16 digitale penne wat beskikbaar is vir gebruik.

Om die knoppies aan die regte penne te koppel, was bloot 'n kwessie van die opstel van 'n 4x4 -matriks en die gebruik daarvan in die kode. Die moeilike deel was egter dat die spesifieke multiplexer wat gekoop is, 'n spesifieke penuitleg gehad het waarmee die datablad gehelp het, en ek het ook 'n spesifieke nootuitleg in gedagte gehad toe ek die knoppies bedraad het, wat uiteindelik so lyk:

LET WEL 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 INGANG)

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

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

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

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

Stap 4: Programmering

Programmering
Programmering

Sodra die vergadering voltooi is, is alles wat oor is om die Arduino te programmeer. Die aangehegte skrif is so geskryf dat dit maklik aanpasbaar is.

Die begin van die skrif bevat die MIDI.h -biblioteek en 'n beheerdersbiblioteek wat geleen is uit die Notes and Volts -blog, wat albei in die zip -lêer van die kode ingesluit is. Met behulp van die beheerderbiblioteek kan voorwerpe vir knoppies, potensiometers en veelvuldige knoppies geskep word met datawaardes wat die nootnommer, kontrolewaardes, nootsnelheid, MIDI -kanaalnommer, ens insluit. Die MIDI.h -biblioteek maak MIDI I/O -kommunikasie moontlik Arduino -seriële poorte wat op sy beurt die data van die voorwerpe van die beheerder neem, dit omskakel in MIDI -boodskappe en die boodskappe stuur na watter midi -koppelvlak ook al gekoppel is.

Die leegte -opsetgedeelte van die skrip initialiseer alle kanale as afgeskakel en begin ook 'n seriële verbinding met 115200 baud, 'n vinniger tempo as wat die MIDI -seine uitgeruil word.

Die hooflus neem in wese die skikkings van knoppies en gemultiplexde knoppies en voer 'n for -lus uit wat kontroleer of die knoppie ingedruk of vrygestel is en die ooreenstemmende databytes na die midi -koppelvlak stuur. Die potensiometerlus kontroleer die posisie van die potensiometer en stuur die ooreenstemmende spanningsveranderings terug na die midi -koppelvlak.

Stap 5: Opstel

Image
Image
Stel op
Stel op
Stel op
Stel op
Stel op
Stel op

Sodra die skrif op die Arduino gelaai is, is die volgende stap om in te skakel en te speel. Daar is egter 'n paar stappe voordat dit gebruik kan word.

Op OSX het Apple 'n funksie opgeneem om virtuele midi -toestelle te skep waarmee u toegang kan verkry via die Audio Midi Setup -toepassing op Mac's. Sodra die nuwe toestel geskep is, kan Hairless MIDI gebruik word om 'n seriële verbinding tussen die Arduino en die nuwe virtuele midi -toestel te skep. Die reeksverbinding vanaf die Arduino via Hairless MIDI werk teen die baud -tempo wat in die leemte -opstelgedeelte van die script gedefinieer word en moet gelyk gestel word in die Hairless MIDI -voorkeurinstellings.

Vir toetsdoeleindes het ek Midi Monitor gebruik om te kyk of die korrekte data gestuur word, dink die seriële MIDI-verbinding. Sodra ek vasgestel het dat elke knoppie die korrekte data deur die korrekte kanale stuur, het ek die MIDI -sein opgestel om na Ableton Live 9 as 'n MIDI -invoer te stuur. In Ableton kon ek gesnyde klankmonsters aan elke knoppie uitbeeld en elke voorbeeld speel.

Aanbeveel: