Tartalomjegyzék:

Arduino MIDI vezérlő építése: 9 lépés (képekkel)
Arduino MIDI vezérlő építése: 9 lépés (képekkel)

Videó: Arduino MIDI vezérlő építése: 9 lépés (képekkel)

Videó: Arduino MIDI vezérlő építése: 9 lépés (képekkel)
Videó: Высокая плотность 2022 2024, Július
Anonim

Ezt az utasítást eredetileg 2020. június 28 -án tették közzé a blogomban

Szeretek olyan dolgokat építeni, amelyek elektronikát tartalmaznak, és mindig szerettem volna valamit építeni az Arduino segítségével.

A kezdők egyik leggyakoribb konstrukciója, amit találtam, egy MIDI vezérlő volt. A MIDI -vezérlő bármilyen hardver, amely MIDI -adatokat (hangszer digitális interfész) küld egy eszközre hangok indítására és zenélésre.

Azt tapasztaltam, hogy sok megvalósítás bonyolult, még azok is, amelyek kezdőknek szólnak. Nagyon bosszantó volt azt tapasztalnom, hogy több száz sor olvashatatlan kódot kell használnom. Vagy hogy bizonyos esetekben ellenállást kell forrasztanom, más példák mellett.

A projekt

Saját Arduino MIDI vezérlő megépítésével az volt a célom, hogy egy élvezetes projektet készítsek, miközben a zaj a legalacsonyabb. Valami, amit minden kezdő követhet. Ennek eléréséhez a MIDI Fighter 3D-t használtam inspirációként, és eltávolítottam minden nem alapvető funkciót.

A projektem teljes költsége 30 dollár alatt volt, és az anyagok listája nagyon rövid volt (társult linkek):

  • Arduino Leonardo (vagy klón): 10 és 20 dollár között.
  • 16 x Sanwa gomb 24 mm (vagy klón): 1 USD és 2,50 USD között gombonként.
  • Forrasztópáka
  • 22 AWG elektromos vezeték

Az Arduino Board

Amikor elkezdtem ezt a projektet, azt találtam, hogy van egy csomó új Arduino modell (a több száz kompatibilis táblát nem számítva). És mindegyik kissé eltérő képességeket kínál.

MIDI jeleket kellett küldenem a számítógépre, és ennek legegyszerűbb módja az USB. Bármely Arduino kártya, amely az ATmega32u4 mikrovezérlőn alapul, beépített USB kommunikációval rendelkezik.

A hivatalos Arduino táblák natív USB támogatással: Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Ezek a lapok beépített USB támogatással rendelkeznek, ami azt jelenti, hogy USB MIDI eszközként működhetnek.

Úgy döntöttem, hogy az Arduino Leonardo klónjával megyek. Elegendő bemenettel rendelkezik ehhez a projekthez, és fejléceket is tartalmaz, amelyek megkönnyítik a vezetékek be- és kihúzását.

Első lépések

Bár lépésről lépésre elmagyarázom, hogyan valósítottam meg a projekt kódját, letöltheti a végső verziót.

A kód feltöltéséhez a táblára az Arduino IDE -t kell használnia. Rendelkeznek webszerkesztővel is, amely nagyon hasznos, de korlátozott napi kvótájuk van a kód összeállításához.

Lépés: A beépített LED villogása

Vicces, hogy a "Hello World" a hardver világában villog egy LED -et.

Kellemes meglepetés volt számomra, hogy felfedeztem, hogy az Arduino Leonardo beépített LED-del rendelkezik, amellyel villogva tesztelheti a kódot. Így nem kell külső áramkört építeni egy kenyérpirítón, LED -del és ellenállással.

Kód:

2. lépés: A LED villogása a kézi bemeneten

A következő logikus lépés az volt, hogy ugyanazt a LED -et villogtam, amikor jelet küldök. Eltávolítottam a 2 Dupont vezeték egyik végének műanyag burkolatát, a másik végét pedig a táblához csatlakoztattam:

  • 2. számú pin: Az egyik digitális bemenet (pozitív). Ez lehet bármilyen digitális tű.
  • GND csap: Bármilyen földelt csap (negatív).

Most, valahányszor csatlakozom a vezetékek szabad végéhez, lezárom az áramkört, és így végrehajthatom a kódot

A Leonardo 20 digitális csapjának mindegyike rendelkezik egy belső ellenállással (alapértelmezés szerint lekapcsolva), amelyet az INPUT_PULLUP segítségével lehet engedélyezni. Ne feledje, hogy a felhúzó bemenet azt jelenti, hogy a gomb állapota megfordul:

  • MAGAS, ha az áramkör nyitva van (a gombot NEM nyomja meg).
  • LOW, ha az áramkör zárva van (gomb megnyomása).

Kód:

3. lépés: A MIDIUSB könyvtár telepítése

Ez a könyvtár lehetővé teszi, hogy egy USB -képes Arduino -kártya MIDI -eszközként működjön USB -n keresztül. További információkért nézze meg a hivatalos dokumentációt.

Az Arduino IDE használatával további Arduino könyvtárakat telepíthet a Könyvtárkezelő segítségével:

  1. Nyissa meg az IDE -t, és kattintson a "Vázlat" menüre, majd a "Könyvtár beillesztése", majd a "Könyvtárak kezelése" elemre.
  2. Keresse meg a MIDIUSB -t, és kattintson a Telepítés gombra.
  3. Miután elkészült, a MIDIUSB könyvtár mellett megjelenik egy Telepített címke.
  4. Zárja be a Könyvtárkezelőt.

Most a Leonardo képes MIDI üzeneteket küldeni USB -n keresztül! De először némi betekintésre van szükség a MIDI működésével kapcsolatban.

Hogyan működik a MIDI

"A MIDI (Musical Instrument Digital Interface) egy szabványos kommunikációs protokoll, amely összeköti az elektronikus hangszereket, a számítógépeket és a kapcsolódó audioeszközöket a zene lejátszásához." - Wikipédia

Egyebek mellett az eseményüzeneteket kezeli a hangmagasság és a lejátszott hang sebességével

Ebben a projektben a 16 gomb bemenete különböző üzeneteket küld USB -n keresztül. Ezek az üzenetek hanggá alakíthatók a számítógépen bármilyen megfelelő szoftverrel, mint például a GarageBand vagy az Ableton Live.

A MIDI üzenet anatómiája

MIDI üzenet küldéséhez a sendMIDI () metódust használtam a 3. lépésben telepített MIDIUSB könyvtárból.

Ez a módszer 4 paramétert fogadhat:

  • Esemény típusa: 0x09 lehet jegyzet bekapcsolva (jegyzet lejátszása) vagy 0x08 lehet jegyzet kikapcsolt állapotban (leállítani a jegyzet lejátszását).
  • Megjegyzés Be/Ki: Az esemény típusa a MIDI csatornával kombinálva (1-16). Csak az 1 -es csatornát használom, így vagy 0x90 a jegyzet be, vagy 0x80 a jegyzet ki.
  • Megjegyzés száma: Minden hanghoz tartozik numerikus hangmagasság (frekvencia skála).
  • Sebesség: 0 -tól (nincs sebesség) 127 -ig (leggyorsabb).

4. lépés: MIDI üzenet küldése

Beillesztettem a MIDIUSB könyvtárat, és a beépített LED villogása helyett egy megjegyzést küldtem.

Kód:

⚠ Fontos: Ettől a lépéstől kezdve az Arduino MIDI USB vezérlővé változik, és leállítja a kód fogadását USB -n keresztül.

Ha elakad egy olyan helyzetben, ahol az Arduino már nem programozható, kövesse az alábbi lépéseket:

  1. Tartsa lenyomva a lekerekített reset gombot az Arduino táblán.
  2. Kattintson az Feltöltés gombra az Arduino IDE -n.
  3. Engedje el a reset gombot.
  4. A frissített kód feltöltésre kerül a táblára.

5. lépés: MIDI -üzenet küldése minden gombról

MIDI üzenet küldése minden gombról
MIDI üzenet küldése minden gombról

Az utolsó lépés minden pálya gombhoz való hozzárendelése volt. A 16 gombhoz C2 -től E3b -ig terjedő skálát határoztam meg, amelyek a 36 -tól 51 -ig terjedő hangmagasságok, alulról felfelé és balról jobbra haladó sorrendben. Nézze meg ezt a fájlt az Arduino Tutorials -ból, hogy megtudja, milyen hangmagasság felel meg az egyes hangoknak.

Digitális tűket használtam 2 -től 12 -ig, és analóg tűket (digitális formában használva) A0 -tól A4 -ig.

És így néz ki a végső kód:

6. lépés: Csatornák vagy bankok beállítása (opcionális)

Csatornák vagy bankok beállítása (opcionális)
Csatornák vagy bankok beállítása (opcionális)

Abban az esetben, ha további gombokat szeretne hozzáadni csatornák vagy bankok váltásához, például a MIDI Fighter 3D -ben (lásd a képet), az Arduino Leonardo további négy érintőt használhat. Az Arduino Leonardo 20 digitális bemeneti/kimeneti tűvel rendelkezik, amelyek közül csak 16 -ot használnak hangjegyek lejátszására.

Ezekkel az extra gombokkal frissíthet egy változót a kódban, és elküldheti annak értékét paraméterként a MidiUSB.sendMIDI metódusba:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

7. lépés: Az ügy

Az ügy
Az ügy
Az ügy
Az ügy

Annak érdekében, hogy ez a projekt egyszerű legyen, rendkívül válogatós voltam a funkciók kiválasztásában.

  • Csak gombok: 16 Sanwa-szerű arcade gomb, 4x4-es rácsban. Nincs gomb, nincs csúszka, nincs fader vagy más analóg bemenet.
  • Unibody tok: Ne használjon csavart, anyát, csavart vagy ragasztót a burkolathoz vagy az Arduino tábla rögzítéséhez.
  • Mindennapi eszközök: Például forrasztottam a vezetékeket, ahelyett, hogy vettem volna egy speciális drótvágót az árkádgombokhoz.

Unibody Design

Az egyik kihívás, amellyel szembesültem, egy olyan tok megtervezése volt, amely elég egyszerű ahhoz, hogy ne kelljen összeszerelni, és 3D -ben kinyomtatható legyen egyetlen menetben.

A csavarok vagy ragasztók használatának elkerülése érdekében olyan házat kellett terveznem, amely a legkisebb hozzáférést biztosítja az elektronikához. A ház legnagyobb inspirációja a Mac Mini volt, amelynek alján egy kör alakú lyuk található. Ehhez csavarozható fedelet is szerettem volna tervezni, de úgy döntöttem, hogy nyitva hagyom, hogy felfedjem az elektronikát.

Töltse le a 3D nyomtatható tokot (322 KB). Ajánlott beállítások: PLA, 0,15 mm -es rétegek, 20% -os kitöltés, legalább a lekerekített alsó lyuk támogatása, az Arduino tartók és a mikro -USB.

Arduino tartása csavarok nélkül

A Leonardo 4 lyukkal rendelkezik ahhoz, hogy a táblát bármilyen megfelelő tokba csavarja, de az ötletem az volt, hogy megkönnyítse a tábla hozzáadását és eltávolítását a tokból.

A Thingiverse -n könnyű volt kliptartót találni az Arduino számára, és 5 iterációra volt szükségem, hogy integrálja ezt a tartót az unibody desing -hez. A legnehezebb rész a lábak elkészítése volt, hogy elkerülje a gombok lyukait, és hogy a mikro USB -t a házhoz igazítsa.

8. lépés: Az összeszerelés

Az összeszerelés
Az összeszerelés
Az összeszerelés
Az összeszerelés
Az összeszerelés
Az összeszerelés

Miután az összes gombot a helyére illesztettem, rövid fekete vezetékeket forrasztottam, amelyek összekötik a gombok negatív lábát.

Ezután hosszú, piros vezetékeket forrasztottam minden pozitív lábról, hogy közvetlenül a táblához csatlakozzam.

A vezetékek csatlakoztatásához az Arduino-hoz vágtam és forrasztottam néhány Dupont-véget, és letakartam őket zsugorcsővel.

A vezetékeket a táblához kötöttem, ugyanabban a sorrendben, mint a MIDI Fighterben. Alulról felfelé és balról jobbra

9. lépés: A MIDI vezérlő használata

A MIDI vezérlő használata
A MIDI vezérlő használata

Bármilyen zenei szoftver (vagy megfelelő hardver) használható a MIDI vételére és bizonyos zenék készítésére. A leginkább ajánlott a Garage Band, az Ableton Live, és tudom, hogy egy csomó alkalmazást kell telepíteni a telefonra.

Mindezek az eszközök hasznosak az előre meghatározott hangok betöltéséhez az ujjdoboláshoz, de nagyobb célokra készültek. Ezeket az eszközöket nehéz lehet kezdőknek beállítani.

MIDI a webböngészőben

Annak érdekében, hogy valami jobban illeszkedjen ehhez a projekthez és egyszerűségéhez, létrehoztam egy webes eszközt, amely teljes mértékben a MIDI vezérlőkre összpontosított.

Punchy: WebMIDI és WebAudio implementáció MIDI vezérlőkhöz.

Bármilyen böngészőben képes olvasni a MIDI üzeneteket, amely támogatja a WebMIDI JavaScript API -t. Ezután hangokat játszik le szintetizátorban (a WebAudio API használatával) vagy mintavevőben, és betölti az egyéni hangokat bármelyik hangcsomagból.

Az Ableton Live beállítása

Annak érdekében, hogy a MIDI vezérlő működjön az Ableton Live alkalmazással, kövesse ezeket az egyszerű lépéseket a hivatalos dokumentációjukból.

Lépjen a Beállítások → Link MIDI elemre, és győződjön meg arról, hogy a "Bemenet" "Track" és "Remote" BE van kapcsolva, és a kimeneten "Remote" BE van, valamint az útmutatóban említettek szerint:

Ajánlott: