Turinys:

„Arduino Uno Midi Fighter“: 5 žingsniai
„Arduino Uno Midi Fighter“: 5 žingsniai

Video: „Arduino Uno Midi Fighter“: 5 žingsniai

Video: „Arduino Uno Midi Fighter“: 5 žingsniai
Video: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, Liepa
Anonim
Arduino Uno Midi kovotojas
Arduino Uno Midi kovotojas

Ši instrukcija buvo sukurta vykdant Pietų Floridos universiteto „Makecourse“projekto reikalavimą (www.makecourse.com)

Remiantis populiariu „DJ Techtools“„MidiFighter“, šis naminis „Arduino“varomas muzikos instrumentų skaitmeninės sąsajos (MIDI) valdiklis gali būti naudojamas kaip MIDI įrenginys bet kurioje skaitmeninės garso darbo vietos (DAW) programinėje įrangoje. MIDI valdiklis gali siųsti ir gauti MIDI pranešimus iš kompiuterio ir gali būti naudojamas tiesiogiai valdyti bet kokią naudojamą programinę įrangą. Be to, MIDI valdiklio valdiklius galima visiškai pritaikyti - tai reiškia, kad kiekvienas atskiras mygtukas, slankiklis ir rankenėlė gali būti susieti su bet kuria DAW funkcija. Pavyzdžiui, paspaudus mygtuką galima paleisti konkrečią natą arba būti užprogramuotas perjungti garso projekto tempą.

github.com/jdtar/Arduino-Midi-Controller

1 žingsnis: medžiagos

Žemiau pateikiamas šiame projekte naudojamų medžiagų ir įrankių sąrašas.

Arduino Uno

Bandomoji Lenta

4051/4067 Multiplekseris

Jumperio laidai

Papildoma viela

2x 10k omų linijiniai skaidrių potenciometrai

16x Sanwa 24 mm mygtukai

Šilumos susitraukimas

Lituoklis

Skustuvo ašmenys

4,7 kΩ rezistorius

Akrilo lakštas (dangteliui)

Mygtukų ir „Arduino“korpusas

3-D spausdintuvas

Lazerinis pjoviklis

2 žingsnis: dizainas

Dizainas
Dizainas
Dizainas
Dizainas

Prieš pradėdamas projektą, man jau buvo suteiktas MIDI valdiklio korpusas, todėl sumeistravau dangčio eskizą, norėdamas įsivaizduoti, kur viskas turi būti padėta. Žinojau, kad noriu bent 16 mygtukų ir poros potenciometrų, todėl stengiausi kuo tolygiau išdėstyti komponentus.

Sudaręs dangčio išdėstymą, eksportavau failą kaip 1: 1 PDF failą ir nusiunčiau į lazerinį pjaustytuvą, kad iškirptų akrilo lapą. Sraigtinėms skylėms pažymėjau, kur norėčiau, kad skylės būtų su žymekliu ir ištirpinau akrilą karštu siūlu.

Pridedamas 1: 1 PDF failas, kurį galima išspausdinti 1: 1 ir iškirpti elektriniais įrankiais, jei nėra lazerinio pjaustytuvo.

3 žingsnis: Konstrukcija ir laidai

Konstrukcija ir laidai
Konstrukcija ir laidai
Konstrukcija ir laidai
Konstrukcija ir laidai
Konstrukcija ir laidai
Konstrukcija ir laidai

Po pjovimo pjovimo akrilo, aš sužinojau, kad akrilas buvo per plonas, kad galėtų pakankamai išlaikyti visus komponentus. Tada aš iškirpiau kitą lapą ir suklijavau, o tai atsitiko puikiai.

Sujungus komponentus prireikė bandymų ir klaidų, tačiau buvo pridėtas „Fritzing“eskizas. Pirmiausia prijungiau įžeminimo laidus ir 4,7 kΩ rezistorių, lituoti ir šiluma sumažino mygtukų jungtis. Dviejų skaidrių potenciometrų montavimui reikėjo akrilo varžtų lydymosi skylių. Prisukus du potenciometrus, jie buvo prijungti prie A0 ir A1 analoginių kaiščių. Kai laidai buvo baigti, prisiminiau, kad mano faderiams nebuvo rankenėlių dangtelių, todėl, užuot juos nusipirkęs, kai kuriuos rankenėlių dangtelius atspausdinau naudodamas 3-D spausdintuvą, eskizuodamas jį „Autodesk Fusion 360“ir eksportuodamas į STL failą. De

„Arduino Uno“turi tik 12 galimų skaitmeninių įvesties kaiščių, tačiau turėjo būti prijungti 16 mygtukų. Norėdami tai kompensuoti, aš prijungiau 74HC4051 multiplekserį ant lentos, kuri naudoja 4 skaitmeninius įvesties kaiščius ir leidžia keliems signalams naudoti bendrinamą liniją, todėl gaunami 8 turimi skaitmeniniai įvesties kaiščiai ir iš viso 16 skaitmeninių kaiščių.

Sujungti mygtukus su teisingais kaiščiais tiesiog reikėjo sukurti 4x4 matricą ir panaudoti ją kode. Tačiau sudėtinga buvo tai, kad konkretus įsigytas multiplekseris turėjo specifinį kaiščio išdėstymą, kuriam padėjo duomenų lapas, taip pat turėjau omenyje konkretų užrašų išdėstymą, kai prijungiau mygtukus, o tai atrodė šiek tiek taip:

PASTABA MATRIXAS

[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 ĮVESTIS)

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

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

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

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

4 žingsnis: programavimas

Programavimas
Programavimas

Kai surinkimas bus baigtas, beliks programuoti „Arduino“. Pridedamas scenarijus yra parašytas taip, kad jį būtų galima lengvai pritaikyti.

Scenarijaus pradžioje yra MIDI.h biblioteka ir valdiklio biblioteka, pasiskolinta iš „Notes and Volts“tinklaraščio, kurie abu yra įtraukti į kodo pašto failą. Naudojant valdiklio biblioteką, galima sukurti mygtukų, potenciometrų ir multipleksuotų mygtukų objektus, kuriuose yra duomenų reikšmės, įskaitant užrašo numerį, valdymo vertes, užrašo greitį, MIDI kanalo numerį ir kt. MIDI.h biblioteka įgalina MIDI I/O ryšį „Arduino“nuoseklieji prievadai, kurie savo ruožtu paima duomenis iš valdiklio objektų, konvertuoja juos į MIDI pranešimus ir siunčia pranešimus į bet kurią prijungtą midi sąsają.

Tuščia scenarijaus sąrankos dalis inicijuoja visus kanalus kaip išjungtus, taip pat inicijuoja nuoseklųjį ryšį 115200 baudų greičiu, spartesniu nei keičiamasi MIDI signalais.

Pagrindinė kilpa iš esmės užima mygtukų ir multipleksuotų mygtukų masyvus ir paleidžia ciklą, kuris patikrina, ar mygtukas buvo paspaustas ar atleistas, ir išsiunčia atitinkamus duomenų baitus į midi sąsają. Potenciometro kilpa patikrina potenciometro padėtį ir siunčia atitinkamus įtampos pokyčius atgal į midi sąsają.

5 veiksmas: sąranka

Image
Image
Sąranka
Sąranka
Sąranka
Sąranka
Sąranka
Sąranka

Kai scenarijus buvo įkeltas į „Arduino“, kitas žingsnis yra prijungti ir paleisti. Tačiau prieš pradedant naudoti, reikia atlikti kelis veiksmus.

„OSX“sistemoje „Apple“sukūrė funkciją sukurti virtualius midi įrenginius, kuriuos galima pasiekti naudojant „Mac“naudojamą „Audio Midi Setup“programą. Sukūrus naują įrenginį, „Hairless MIDI“gali būti naudojamas nuosekliam ryšiui tarp „Arduino“ir naujojo virtualiojo midi įrenginio sukurti. Serijinis ryšys iš „Arduino“per „Hairless MIDI“veikia pagal duomenų perdavimo spartą, apibrėžtą scenarijaus tuštumos sąrankos dalyje, ir turi būti nustatytas lygiavertis „Hairless MIDI“nuostatų nustatymuose.

Bandymų tikslais aš naudoju „Midi Monitor“, norėdamas patikrinti, ar siunčiami teisingi duomenys, manant, kad serijinis MIDI ryšys. Nustačiusi, kad visi mygtukai teisingais kanalais buvo siunčiami teisingais duomenimis, nustatiau MIDI signalą, kuris nukreiptų į „Ableton Live 9“kaip MIDI įvestį. Abletone man pavyko suskirstyti supjaustytus garso pavyzdžius prie kiekvieno mygtuko ir paleisti kiekvieną pavyzdį.

Rekomenduojamas: