Tartalomjegyzék:

Arduino Uno Midi Fighter: 5 lépés
Arduino Uno Midi Fighter: 5 lépés

Videó: Arduino Uno Midi Fighter: 5 lépés

Videó: Arduino Uno Midi Fighter: 5 lépés
Videó: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, Július
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Ez az oktatóanyag a Dél -Floridai Egyetem Makecourse projektkövetelményének teljesítésével jött létre (www.makecourse.com)

A DJ Techtools népszerű MidiFighter -jén alapuló, ez a házilag készített Arduino -alapú hangszer digitális interfész (MIDI) vezérlő használható MIDI -eszközként bármilyen digitális audio munkaállomás (DAW) szoftverben. A MIDI -vezérlő képes MIDI -üzeneteket küldeni és fogadni a számítógépről, és közvetlenül vezérelni lehet a használt szoftvert. Ezenkívül a MIDI vezérlő kezelőszervei teljesen testreszabhatók - vagyis minden egyes gomb, csúszka és gomb a DAW bármely funkciójához hozzárendelhető. Például egy gomb megnyomásával lejátszhat egy adott hangot, vagy programozhatja az audioprojekt tempójának megváltoztatására.

github.com/jdtar/Arduino-Midi-Controller

1. lépés: Anyagok

Az alábbiakban felsoroljuk a projektben használt anyagokat és eszközöket.

Arduino Uno

Kenyeretábla

4051/4067 Multiplexer

Jumper vezetékek

Extra vezeték

2x 10 k ohmos lineáris csúszó potenciométer

16x Sanwa 24 mm -es gombok

Hőzsugorodás

Forrasztópáka

Borotvapenge

4,7 kΩ -os ellenállás

Akril lap (fedélhez)

A gombok és az Arduino háza

3d nyomtató

Lézervágó

2. lépés: Tervezés

Tervezés
Tervezés
Tervezés
Tervezés

A projekt megkezdése előtt már biztosítottam a házat a MIDI vezérlőmnek, ezért felrajzoltam a fedél vázlatát annak érdekében, hogy láthatóvá tegyem, hol kell mindent elhelyezni. Tudtam, hogy legalább 16 gombot és néhány potenciométert szeretnék, mint funkciót, ezért megpróbáltam a lehető legegyenletesebben elosztani az alkatrészeket.

Miután elkészítettem a fedél elrendezését, 1: 1 arányú PDF formátumban exportáltam a fájlt, és elküldtem egy lézervágóhoz, hogy levágjon egy akrillapot. A csavarlyukaknál jelöltem, hogy hol akarom, hogy lyukak legyenek, és forró szállal megolvasztottam az akrilt.

Mellékelve az 1: 1 PDF, amely kinyomtatható 1: 1 arányban, és elektromos szerszámokkal vágható, ha nincs lézervágó.

3. lépés: Építés és huzalozás

Építés és huzalozás
Építés és huzalozás
Építés és huzalozás
Építés és huzalozás
Építés és huzalozás
Építés és huzalozás

Az akril vágása után rájöttem, hogy az akril túl vékony ahhoz, hogy kellően elbírja az összes alkatrészt. Ezután kivágtam egy másik lapot, és összeragasztottam, ami tökéletesen működött.

Az alkatrészek bekötése némi próbát és hibát vett igénybe, de a Fritzing vázlatot csatolták. Először bekötöttem a földelő vezetékeket és a 4,7 kΩ -os ellenállást, forrasztva és a hő hatására zsugorodtak a gombok csatlakozásai. A két csúszó potenciométer felhelyezéséhez olvasztólyukak szükségesek az akril csavarjaihoz. A két potenciométer becsavarása után bekötötték az A0 és A1 analóg csapokat. Miután a huzalozás befejeződött, eszembe jutott, hogy a faderekhez nem volt gombsapka, ezért ahelyett, hogy megvásároltam volna, kinyomtattam néhány gombsapkát egy 3D-s nyomtatóval, vázlatosan az Autodesk Fusion 360-ban, és exportálva egy STL fájlba. De

Az Arduino Uno csak 12 elérhető digitális bemeneti tűvel rendelkezik, de 16 gombot be kell kötni. Ennek ellensúlyozására bekötöttem egy 74HC4051 multiplexert egy kenyérsütő táblán, amely 4 digitális bemeneti csatlakozót használ, és lehetővé teszi, hogy több jel használjon megosztott vonalat, és így 8 rendelkezésre álló digitális bemeneti érintkezőt, összesen 16 digitális tűt használhat.

A gombok csatlakoztatása a megfelelő csapokhoz egyszerűen egy 4x4 -es mátrix létrehozása és a kódban való felhasználása volt. A trükkös rész azonban az volt, hogy a megvásárolt multiplexernek meghatározott tűelrendezése volt, amelyhez az adatlap segített, és a gombok bekötésekor egy konkrét jegyzetelrendezést is szem előtt tartottam, ami végül valahogy így nézett ki:

MEGJEGYZÉS 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 BEMENET)

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

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

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

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

4. lépés: Programozás

Programozás
Programozás

Az összeszerelés befejezése után már csak az Arduino programozása marad hátra. A mellékelt szkript úgy van megírva, hogy könnyen testreszabható legyen.

A szkript eleje tartalmazza a MIDI.h könyvtárat és a Notes és Volts blogból kölcsönzött vezérlőkönyvtárat, amelyek mind a kód zip fájljában szerepelnek. A vezérlőkönyvtár használatával a gombokhoz, potenciométerekhez és multiplexelt gombokhoz objektumok hozhatók létre, amelyek olyan adatértékeket tartalmaznak, mint a jegyzet száma, a vezérlőértékek, a jegyzet sebessége, a MIDI csatorna száma stb. A MIDI.h könyvtár lehetővé teszi a MIDI I/O kommunikációt a Az Arduino soros portok, amelyek átveszik az adatokat a vezérlőobjektumokból, átalakítják azokat MIDI -üzenetekké, és elküldik az üzeneteket a csatlakoztatott midi interfészre.

A szkript üres beállítási része minden csatornát kikapcsolt állapotban inicializál, és soros kapcsolatot is kezdeményez 115200 baud sebességgel, ami gyorsabb, mint a MIDI jelek.

A fő hurok lényegében felveszi a gombok és multiplexelt gombok tömbjét, és fut egy for ciklusra, amely ellenőrzi, hogy a gombot megnyomták vagy elengedték -e, és elküldi a megfelelő adatbájtokat a midi interfészre. A potenciométer hurok ellenőrzi a potenciométer helyzetét, és visszaküldi a megfelelő feszültségváltozásokat a midi interfészre.

5. lépés: Beállítás

Image
Image
Beállít
Beállít
Beállít
Beállít
Beállít
Beállít

Miután a szkriptet betöltötték az Arduino -ba, a következő lépés a plug and play. Van azonban néhány lépés, mielőtt használni lehetne.

Az OSX rendszeren az Apple beépített egy funkciót virtuális midi eszközök létrehozásához, amelyek a Mac -ek Audio Midi Setup alkalmazásán keresztül érhetők el. Az új eszköz létrehozása után a Hairless MIDI segítségével soros kapcsolat hozható létre az Arduino és az új virtuális midi eszköz között. Az Arduino és a Hairless MIDI közötti soros kapcsolat a szkript üres beállítási részében meghatározott baud sebességgel működik, és a Hairless MIDI beállításokban egyenértékűnek kell lennie.

Tesztelés céljából a Midi Monitor segítségével ellenőriztem, hogy a megfelelő adatokat küldték-e a soros-MIDI kapcsolat alapján. Miután megállapítottam, hogy minden egyes gomb a megfelelő adatokat küldi a megfelelő csatornákon, beállítottam a MIDI jelet, hogy az Ableton Live 9 -hez MIDI bemenetként vezessen. Az Abletonban minden gombhoz fel tudtam térképezni a szeletelt hangmintákat, és minden mintát lejátszani.

Ajánlott: