Sisällysluettelo:
- Tämä ohje on alun perin julkaistu blogissani 28. kesäkuuta 2020
- Vaihe 1: Sisäänrakennetun LED-valon vilkkuminen
- Vaihe 2: LED vilkkuu manuaalisessa tulossa
- Vaihe 3: MIDIUSB -kirjaston asennus
- Vaihe 4: MIDI -viestin lähettäminen
- Vaihe 5: MIDI -viestin lähettäminen jokaisesta painikkeesta
- Vaihe 6: Kanavien tai pankkien määrittäminen (valinnainen)
- Vaihe 7: Asia
- Vaihe 8: Kokoonpano
- Vaihe 9: MIDI -ohjaimen käyttö
Video: Arduino MIDI -ohjaimen rakentaminen: 9 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
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:
- Avaa IDE ja napsauta "Sketch" -valikkoa, sitten "Include Library" ja sitten "Manage Libraries".
- Etsi MIDIUSB ja napsauta Asenna.
- Kun se on valmis, asennetun tunnisteen pitäisi näkyä MIDIUSB -kirjaston vieressä.
- 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:
- Pidä Arduino -levyn pyöristettyä nollauspainiketta painettuna.
- Napsauta Lataa Arduino IDE: ssä.
- Vapauta nollauspainike.
- Päivitetty koodi ladataan taululle.
Vaihe 5: 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)
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
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
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ö
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:
Itseohjaavan veneen rakentaminen (ArduPilot Rover): 10 vaihetta (kuvilla)
Itseohjaavan veneen rakentaminen (ArduPilot Rover): Tiedätkö mikä on siistiä? Miehittämättömät itseajoneuvot. Ne ovat itse asiassa niin siistejä, että me (ylioppilaskollegani ja minä) aloimme rakentaa sellaisen itse vuonna 2018. Siksi myös lähdin tänä vuonna lopettamaan sen vihdoin vapaa -ajallani. Tässä Inst
Battlebotin rakentaminen pahvilla ja Arduinolla: 7 vaihetta (kuvilla)
Kuinka rakentaa taistelupotti pahvilla ja Arduinolla: Luotin taistelupotit Arduino UNO: lla ja pahvi käytettiin ruumiiden rakentamiseen. Yritin käyttää kohtuuhintaisia tarvikkeita ja annoin lapsille luovan vapauden taistelurobotiensa suunnittelussa. Battlebot vastaanottaa komentoja langattomalta ohjaimelta
SMARS -robotin rakentaminen - Arduino Smart Robot Tank Bluetooth: 16 vaihetta (kuvilla)
SMARS -robotin rakentaminen - Arduino Smart Robot Tank Bluetooth: Tämä artikkeli on PCBWAY: n sponsoroima ylpeänä. PCBWAY valmistaa korkealaatuisia PCB -prototyyppejä ympäri maailmaa. Kokeile itse ja saat 10 PCB: tä vain 5 dollarilla PCBWAY: ltä erittäin laadukkaasti, kiitos PCBWAY. Arduino Unon moottorisuoja
Automaattisen aurinkoseurannan rakentaminen Arduino Nano V2: lla: 17 vaihetta (kuvilla)
Automaattisen aurinkoseurannan rakentaminen Arduino Nano V2: lla: Hei! Tämä Instructable on tarkoitettu osaksi Solar Tracker -projektiani. Alla olevasta linkistä saat selityksen siitä, miten aurinkoseurantalaitteet toimivat ja miten suunnittelin ensimmäisen seurantalaitteeni. Tämä tarjoaa kontekstin tälle projektille. Https://www.instructables.co
Gripper Arm -seuratun robotin rakentaminen ohjattuna Via Nrf24l01 Arduino: 3 vaihetta (kuvilla)
Gripper Arm -seuratun robotin rakentaminen hallittavan kautta Nrf24l01 Arduino: Ohje " Kuinka rakentaa Gripper -varren tela -robotti, jota ohjataan Via Nrf24l01 Arduino " selittää, kuinka rakentaa kolmen asteen vapauden tartuntavarsi, joka on asennettu telaketjuiseen pyörään, jota käytetään kaksimoottorisella L298N -moduulilla MEG: n avulla