Sisällysluettelo:

Arduino MIDI -ohjaimen rakentaminen: 9 vaihetta (kuvilla)
Arduino MIDI -ohjaimen rakentaminen: 9 vaihetta (kuvilla)

Video: Arduino MIDI -ohjaimen rakentaminen: 9 vaihetta (kuvilla)

Video: Arduino MIDI -ohjaimen rakentaminen: 9 vaihetta (kuvilla)
Video: Arduino Drum Sequencer: 8 kappaletta, 16 askelta per mitta, 8 mittaa per kuvio 2024, Marraskuu
Anonim

Tämä ohje on alun perin julkaistu blogissani 28. kesäkuuta 2020

Nautin elektroniikan sisältävien tavaroiden rakentamisesta, ja olen aina halunnut rakentaa jotain Arduinolla.

Yksi tavallisimmista aloittelijoiden rakennuksista löysin MIDI -ohjaimen. MIDI -ohjain on mikä tahansa laitteisto, joka lähettää MIDI -dataa (musiikki -instrumentin digitaalinen käyttöliittymä) laitteelle äänien laukaisemiseksi ja musiikin tekemiseksi.

Huomasin, että monet toteutukset ovat monimutkaisia, myös aloittelijoille. Oli hyvin turhauttavaa huomata, että minun on käytettävä satoja rivejä lukematonta koodia. Tai että minun on juotettava vastus joissakin tapauksissa, muun muassa.

Projekti

Rakentamalla oman Arduino MIDI -ohjaimen tarkoitukseni oli tehdä nautinnollinen projekti pitäen melu alhaisena. Jotain mitä tahansa aloittelija voisi seurata. Tämän saavuttamiseksi käytin MIDI Fighter 3D: tä perusinspiraationa ja poistin kaikki ei-olennaiset ominaisuudet.

Projektini kokonaiskustannukset olivat alle 30 dollaria, ja materiaaliluettelo oli todella lyhyt (kumppanilinkit):

  • Arduino Leonardo (tai klooni): 10–20 dollaria.
  • 16 x Sanwa -painiketta 24 mm (tai klooni): 1–2,50 dollaria per painike.
  • Juotin
  • 22 AWG sähköjohto

Arduinon lauta

Kun aloitin tämän projektin, huomasin, että on olemassa joukko uusia Arduino -malleja (lukuun ottamatta satoja yhteensopivia levyjä). Ja kaikki tarjoavat hieman erilaisia ominaisuuksia.

Minun piti lähettää MIDI -signaaleja tietokoneelle, ja yksinkertaisin tapa tehdä se on USB: n kautta. Kaikissa ATmega32u4-mikrokontrolleriin perustuvissa Arduino-korteissa on sisäänrakennettu USB-tiedonsiirto.

Viralliset Arduino -levyt, joissa on natiivi USB -tuki, ovat Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Näissä levyissä on integroitu USB -tuki, mikä tarkoittaa, että ne voivat toimia USB MIDI -laitteena.

Päätin mennä Arduino Leonardon kloonin kanssa. Siinä on tarpeeksi tuloja tähän projektiin ja se sisältää myös otsikot, mikä helpottaa johtojen kytkemistä/irrottamista.

Ensiaskeleet

Vaikka selitän vaihe vaiheelta, miten otin käyttöön tämän projektin koodin, voit ladata lopullisen version.

Jos haluat ladata koodin taululle, sinun on käytettävä Arduino IDE: tä. Heillä on myös Web -editori, joka on erittäin hyödyllinen, mutta heillä on rajoitettu kiintiö päivittäin, jolloin voit koota koodin.

Vaihe 1: Sisäänrakennetun LED-valon vilkkuminen

On hassua, kuinka "Hello World" laitteistomaailmassa vilkkuu LED -valoa.

Minulle oli mukava yllätys, kun huomasin, että Arduino Leonardossa on sisäänrakennettu LED-valo, jota voit vilkuttaa testataksesi koodiasi. Näin sinun ei tarvitse rakentaa ulkoista piiriä leipälevylle, jossa on LED ja vastus.

Koodi:

Vaihe 2: LED vilkkuu manuaalisessa tulossa

Seuraava looginen askel oli vilkkua sama LED aina, kun lähetän signaalin. Irrotin 2 Dupont -johdon toisen pään muovisuojuksen ja liitin toisen pään levyyn:

  • Nasta 2: Yksi digitaalituloista (positiivinen). Se voi olla mikä tahansa digitaalinen nasta.
  • Nasta GND: Mikä tahansa maadoitustappi (negatiivinen).

Nyt joka kerta, kun liityn johtimien paljastettuihin päihin, suljen piirin ja voin siten suorittaa koodin

Jokaisessa Leonardon 20 digitaalisesta nastasta on sisäinen vastus (oletusarvoisesti irrotettu), joka voidaan ottaa käyttöön INPUT_PULLUP -toiminnolla. Muista, että ylösveto tarkoittaa, että painikkeen tila on käänteinen:

  • KORKEA, kun piiri on auki (painiketta EI paineta).
  • LOW, kun piiri on suljettu (painiketta painetaan).

Koodi:

Vaihe 3: MIDIUSB -kirjaston asennus

Tämän kirjaston avulla USB -ominaisuuksilla varustettu Arduino -kortti voi toimia MIDI -instrumenttina USB: n kautta. Katso lisätietoja virallisista asiakirjoista.

Arduino IDE: n avulla voit asentaa ylimääräisiä Arduino -kirjastoja kirjastonhallinnan avulla:

  1. Avaa IDE ja napsauta "Sketch" -valikkoa, sitten "Include Library" ja sitten "Manage Libraries".
  2. Etsi MIDIUSB ja napsauta Asenna.
  3. Kun se on valmis, asennetun tunnisteen pitäisi näkyä MIDIUSB -kirjaston vieressä.
  4. Sulje kirjastonhoitaja.

Nyt Leonardo voi lähettää MIDI -viestejä USB: n kautta! Mutta ensin tarvitaan tietoa MIDI: n toiminnasta.

Kuinka MIDI toimii

"MIDI (Musical Instrument Digital Interface) on vakioviestintäprotokolla, joka yhdistää elektroniset soittimet, tietokoneet ja niihin liittyvät äänilaitteet musiikin toistamiseen." - Wikipedia

Se käsittelee tapahtumaviestejä, joissa on tietoja muun muassa nuotin korkeudesta ja nopeudesta

Tässä projektissa 16 painikkeen tulo lähettää erilaisia viestejä USB: n kautta. Nämä viestit voidaan muuntaa ääneksi tietokoneella millä tahansa sopivalla ohjelmistolla, kuten GarageBand tai Ableton Live.

MIDI -viestin anatomia

MIDI -viestin lähettämiseen käytin sendMIDI () -menetelmää vaiheessa 3 asentamastani MIDIUSB -kirjastosta.

Tämä menetelmä voi vastaanottaa 4 parametria:

  • Tapahtumatyyppi: Se voi olla 0x09 muistiinpanolle Päällä (soita nuotti) tai 0x08 muistiinpanolle Pois (keskeytä nuotin toisto).
  • Huomautus Päälle/Pois: Tapahtumatyyppi yhdistettynä MIDI-kanavaan (1-16). Käytän vain kanavaa 1, joten se on joko 0x90 muistiinpanon ollessa päällä tai 0x80 muistiinpanon ollessa poissa käytöstä.
  • Huomautuksen numero: Jokaisella nuotilla on siihen liittyvä numeerinen sävelkorkeus (taajuusasteikko).
  • Nopeus: 0 (ei nopeutta) 127 (nopein).

Vaihe 4: MIDI -viestin lähettäminen

Lisäsin MIDIUSB-kirjaston ja lähetin muistiinpanon sisäisen LED-valon vilkkumisen sijasta.

Koodi:

⚠ Tärkeää: Tästä vaiheesta lähtien Arduino muuttuu MIDI USB -ohjaimeksi ja lopettaa koodin vastaanottamisen USB: n kautta.

Kun juutut paikkaan, jossa Arduinoa ei voi enää ohjelmoida, toimi seuraavasti:

  1. Pidä Arduino -levyn pyöristettyä nollauspainiketta painettuna.
  2. Napsauta Lataa Arduino IDE: ssä.
  3. Vapauta nollauspainike.
  4. Päivitetty koodi ladataan taululle.

Vaihe 5: MIDI -viestin lähettäminen jokaisesta painikkeesta

MIDI -viestin lähettäminen jokaisesta painikkeesta
MIDI -viestin lähettäminen jokaisesta painikkeesta

Viimeinen vaihe oli kartoittaa jokainen piki napille. Määritin 16 painikkeelle asteikon C2 - E3b, jotka ovat korkeuksia 36 - 51 peräkkäin alhaalta ylös ja vasemmalta oikealle. Tarkista tämä tiedosto Arduino Tutorialsista nähdäksesi, mikä sävelkorkeus vastaa kutakin nuottia.

Käytin digitaalisia nastoja 2-12 ja analogisia nastoja (käyttäen niitä digitaalina) A0: sta A4: ään.

Ja tältä lopullinen koodi näyttää

Vaihe 6: Kanavien tai pankkien määrittäminen (valinnainen)

Kanavien tai pankkien määrittäminen (valinnainen)
Kanavien tai pankkien määrittäminen (valinnainen)

Jos haluat lisätä muita painikkeita, joilla on mahdollisuus vaihtaa kanavaa tai pankkia, kuten MIDI Fighter 3D: ssä (katso kuva), Arduino Leonardossa on neljä muuta nastaa, joita voit käyttää. Arduino Leonardossa on 20 digitaalista tulo-/lähtötappia, joista vain 16 on tarkoitettu nuottien soittamiseen.

Näiden lisäpainikkeiden avulla voit päivittää koodin muuttujan ja lähettää sen arvon parametrina MidiUSB.sendMIDI -menetelmälle:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Vaihe 7: Asia

Tapaus
Tapaus
Tapaus
Tapaus

Jotta tämä projekti olisi yksinkertainen, olin erittäin nirso valitakseni, mitkä ominaisuudet sisältävät.

  • Vain painikkeet: 16 Sanwan kaltaista arcade-painiketta 4x4-ruudukossa. Ei nuppeja, liukusäätimiä, fadereita tai muita analogisia tuloja.
  • Unibody -kotelo: Älä käytä ruuveja, muttereita, pultteja tai liimaa koteloon tai Arduino -levyn pitämiseen.
  • Jokapäiväiset työkalut: Esimerkiksi juotin johdot sen sijaan, että ostaisin tietyn lankaleikkurin arcade -painikkeille.

Unibody -muotoilu

Yksi haasteistani oli suunnitella kotelo tarpeeksi yksinkertaiseksi, jotta se ei tarvitse kokoonpanoa ja voidaan tulostaa 3D -muodossa yhdellä kertaa.

Ruuvien tai liiman käytön välttämiseksi minun piti suunnitella kotelo, joka tarjoaa pienimmän pääsyn elektroniikkaan. Suurin inspiraationi koteloon oli Mac Mini, jonka alareunassa on ympyrän muotoinen reikä. Halusin myös suunnitella ruuvattavan kannen sitä varten, mutta päätin antaa sen avautua paljastaakseen elektroniikan.

Lataa 3D -tulostettava kotelo (322 kt). Suositellut asetukset: PLA, 0,15 mm: n kerrokset, 20%: n täyttö, tukijärjestelmät ainakin pyöristetylle alareiälle, Arduino -pidikkeet ja mikro -USB.

Pidä Arduinoa ilman ruuveja

Leonardossa on 4 reikää levyn ruuvaamiseen sopivaan koteloon, mutta ajatukseni oli helpottaa levyn lisäämistä ja poistamista kotelosta.

Leikepidikkeen löytäminen Arduinolle Thingiversesta oli helppoa, ja kesti viisi toistoa integroidaksesi pidikkeen unibody -suunnitteluun. Vaikein osa oli tehdä jalkansa, jotta vältytään painikkeiden rei'iltä ja jotta mikro -USB asetettaisiin kotelon keskelle.

Vaihe 8: Kokoonpano

Kokoontuminen
Kokoontuminen
Kokoontuminen
Kokoontuminen
Kokoontuminen
Kokoontuminen

Kun olin asettanut kaikki painikkeet paikoilleen, juotin lyhyet mustat johdot, jotka yhdistävät painikkeiden kaikki negatiiviset jalat niiden välille.

Sitten juotin pitkät punaiset johdot jokaisesta positiivisesta jalasta, jotta ne liitettäisiin suoraan levyyn.

Johtojen liittämiseksi Arduinoon leikkasin ja juotin joitain Dupont-päitä ja peitin ne kutistekupilla.

Liitin johdot piirilevyyn samassa järjestyksessä kuin MIDI Fighterissa. Alhaalta ylös ja vasemmalta oikealle

Vaihe 9: MIDI -ohjaimen käyttö

MIDI -ohjaimen käyttäminen
MIDI -ohjaimen käyttäminen

Mitä tahansa musiikkiohjelmistoa (tai sopivaa laitteistoa) voidaan käyttää MIDI: n vastaanottamiseen ja musiikin tekemiseen. Suositeltavimmat ovat Garage Band, Ableton Live, ja tiedän, että puhelimeen on asennettava joukko sovelluksia.

Kaikki nämä työkalut ovat hyödyllisiä ladattaessa ennalta määritettyjä ääniä sormirummutusta varten, mutta ne on tehty suurempia tarkoituksia varten. Nämä työkalut voivat olla vaikeita aloittelijoille.

MIDI verkkoselaimessa

Saadakseni jotain enemmän yhdenmukaista tämän projektin ja sen yksinkertaisuuden kanssa rakensin verkkotyökalun, joka keskittyi täysin MIDI -ohjaimiin.

Punchy: WebMIDI- ja WebAudio -toteutus MIDI -ohjaimille.

Se voi lukea MIDI -viestejä millä tahansa WebMIDI JavaScript -sovellusliittymää tukevalla selaimella. Sitten se toistaa ääniä syntetisaattorissa (WebAudio -sovellusliittymän avulla) tai näytteenottimessa ja lataa mukautettuja ääniä mistä tahansa äänipakkauksesta.

Asenna Ableton Live

Jotta MIDI -ohjain toimisi Ableton Liven kanssa, noudata näitä yksinkertaisia ohjeita heidän virallisista asiakirjoistaan.

Siirry kohtaan Asetukset → Linkitä MIDI ja varmista, että "Input" -laitteessa on "Track" ja "Remote" PÄÄLLÄ ja että ulostulossa on "Remote" ON sekä oppaassa mainittu:

Suositeltava: