Sisukord:

Arduino MIDI kontrolleri ehitamine: 9 sammu (piltidega)
Arduino MIDI kontrolleri ehitamine: 9 sammu (piltidega)

Video: Arduino MIDI kontrolleri ehitamine: 9 sammu (piltidega)

Video: Arduino MIDI kontrolleri ehitamine: 9 sammu (piltidega)
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, November
Anonim

See juhend oli algselt avaldatud minu ajaveebis 28. juunil 2020

Mulle meeldib ehitada asju, mis sisaldavad elektroonikat, ja olen alati tahtnud Arduino abil midagi ehitada.

Üks levinumaid ehitusi algajatele, mille leidsin, oli MIDI -kontroller. MIDI -kontroller on mis tahes riistvara, mis saadab seadmesse MIDI -andmeid (muusikariista digitaalne liides) helide käivitamiseks ja muusika tegemiseks.

Leidsin, et paljud rakendused on keerulised, isegi need, mis on mõeldud algajatele. See oli väga masendav, kui leidsin, et pean kasutama sadu read loetamatut koodi. Või et mul on muude näidete hulgas mõnel juhul vaja takisti jootmist.

Projekt

Enda Arduino MIDI kontrolleri ehitamisel kavatsesin teha nauditava projekti, hoides müra madalaimal tasemel. Midagi, mida iga algaja võiks järgida. Selle saavutamiseks kasutasin MIDI Fighter 3D-d inspiratsioonina ja eemaldasin kõik vähemolulised funktsioonid.

Minu projekti kogumaksumus oli alla 30 dollari ja materjalide loend oli tõesti lühike (sidusettevõtte lingid):

  • Arduino Leonardo (või kloon): vahemikus 10–20 dollarit.
  • 16 x Sanwa nuppu 24 mm (või kloon): vahemikus 1–2,50 dollarit nupu kohta.
  • Jootekolb
  • 22 AWG elektrijuhe

Arduino juhatus

Seda projekti alustades leidsin, et seal on hunnik uusi Arduino mudeleid (välja arvatud sajad ühilduvad tahvlid). Ja kõik need pakuvad veidi erinevaid võimalusi.

Mul oli vaja arvutisse saata MIDI -signaale ja lihtsaim viis seda teha on USB kaudu. Igal ATmega32u4 mikrokontrolleril põhineval Arduino plaadil on sisseehitatud USB-side.

Ametlikud USB -toega Arduino plaadid on Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Nendel tahvlitel on integreeritud USB -tugi, mis tähendab, et need võivad toimida USB MIDI -seadmena.

Otsustasin minna Arduino Leonardo klooniga. Sellel projektil on piisavalt sisendeid ja see sisaldab ka päiseid, mis lihtsustab juhtmete ühendamist/lahtiühendamist.

Esimesed sammud

Kuigi selgitan samm-sammult, kuidas ma selle projekti koodi rakendasin, saate lõpliku versiooni alla laadida.

Koodi tahvlile üleslaadimiseks peate kasutama Arduino IDE -d. Neil on ka veebitöötlusprogramm, mis on väga kasulik, kuid neil on piiratud kvoot päevas, millal saate koodi koostada.

Samm: sisseehitatud LED-i vilkumine

See on naljakas, kuidas riistvaramaailma "Tere maailm" vilgutab LED -i.

Minu jaoks oli meeldiv üllatus avastada, et Arduino Leonardol on sisseehitatud LED, mida saate oma koodi testimiseks vilgutada. Nii ei pea te LED -i ja takistiga leivaplaadile välist vooluahelat ehitama.

Kood:

2. samm: LED -i vilkumine käsitsi sisestamisel

Järgmine loogiline samm oli signaali saatmisel sama LED -i vilkumine. Eemaldasin kahe Duponti juhtme ühe otsa plastkaane ja ühendasin teise otsa plaadiga:

  • Pin number 2: üks digitaalsisenditest (positiivne). See võib olla ükskõik milline digitaalne tihvt.
  • Tihvt GND: mis tahes maandusnõel (negatiivne).

Nüüd, iga kord, kui ma juhtmete avatud otsad ühendan, sulen ahela ja saan seega koodi käivitada

Igal Leonardo 20 digitaalsel kontaktil on sisemine takisti (vaikimisi lahti ühendatud), mille saab lubada INPUT_PULLUP abil. Pidage meeles, et väljatõmmatav sisend tähendab nupu oleku pööramist:

  • KÕRGE, kui ahel on avatud (nuppu EI vajutata).
  • LOW, kui ahel on suletud (nuppu vajutatakse).

Kood:

3. samm: MIDIUSB -kogu installimine

See raamatukogu võimaldab USB -võimalustega Arduino plaadil toimida USB kaudu MIDI -instrumendina. Lisateabe saamiseks vaadake ametlikku dokumentatsiooni.

Arduino IDE abil saate raamatukoguhalduri abil installida täiendavaid Arduino raamatukogusid:

  1. Avage IDE ja klõpsake menüüd "Sketch", seejärel "Include Library", seejärel "Manage Libraries".
  2. Otsige üles MIDIUSB ja klõpsake nuppu Installi.
  3. Kui see on lõpetatud, peaks MIDIUSB raamatukogu kõrval ilmuma paigaldatud silt.
  4. Sulgege teegihaldur.

Nüüd saab Leonardo USB kaudu MIDI -sõnumeid saata! Kuid kõigepealt on vaja mõningast ülevaadet MIDI toimimisest.

Kuidas MIDI töötab

"MIDI (Musical Instrument Digital Interface) on standardne suhtlusprotokoll, mis ühendab muusika esitamiseks elektroonilisi muusikariistu, arvuteid ja nendega seotud heliseadmeid." - Vikipeedia

Muude juhiste kõrval käsitleb see sündmusteateid, mis sisaldavad andmeid noodi helikõrguse ja kiiruse kohta

Selles konkreetses projektis saadab 16 nupu sisend USB kaudu erinevaid sõnumeid. Need sõnumid saab arvutis heliks muuta, kasutades sobivat tarkvara, näiteks GarageBand või Ableton Live.

MIDI -sõnumi anatoomia

MIDI -sõnumi saatmiseks kasutasin 3. sammus installitud meetodit sendMIDI () MIDIUSB -raamatukogust.

See meetod võib saada 4 parameetrit:

  • Sündmuse tüüp: see võib olla 0x09 noodi sisselülitamisel (esitus noot) või 0x08 märkme väljalülitamisel (lõpetage noodi esitamine).
  • Märkus Sisse/välja: Sündmuse tüüp koos MIDI kanaliga (1-16). Ma kasutan ainult kanalit 1, nii et see on kas 0x90 märkme sisselülitamisel või 0x80 märkme väljalülitamisel.
  • Märkme number: Igal noodil on seotud numbriline samm (sagedusskaala).
  • Kiirus: 0 (kiirust pole) kuni 127 (kiireim).

Samm: MIDI -sõnumi saatmine

Kaasasin MIDIUSB raamatukogu ja sisseehitatud LED-i vilkumise asemel saatsin märkuse.

Kood:

⚠ Tähtis: sellest sammust alates muutub Arduino MIDI USB -kontrolleriks ja lõpetab koodi vastuvõtmise USB kaudu.

Kui jääte olukorda, kus Arduinot ei saa enam programmeerida, toimige järgmiselt

  1. Hoidke Arduino tahvli ümardatud lähtestusnuppu all.
  2. Klõpsake Arduino IDE -s nuppu Laadi üles.
  3. Vabastage lähtestusnupp.
  4. Värskendatud kood laaditakse tahvlile üles.

Samm 5: MIDI -sõnumi saatmine igalt nupult

MIDI -sõnumi saatmine igast nupust
MIDI -sõnumi saatmine igast nupust

Viimane samm oli kaardistada iga pigi nupule. 16 nupu jaoks määrasin skaala vahemikus C2 kuni E3b, mis on sammud 36 kuni 51 järjestikku alt üles ja vasakult paremale. Vaadake seda faili Arduino õpetustest, et näha, milline helikõrgus vastab igale noodile.

Kasutasin digitaalseid tihvte 2 kuni 12 ja analoognõelu (kasutades neid digitaalsetena) vahemikus A0 kuni A4.

Ja nii näeb lõplik kood välja

6. toiming: kanalite või pankade seadistamine (valikuline)

Kanalite või pankade seadistamine (valikuline)
Kanalite või pankade seadistamine (valikuline)

Kui soovite lisada rohkem nuppe kanalite või pankade vahetamiseks, nagu MIDI Fighter 3D -s (vt pilti), on Arduino Leonardol veel neli tihvti, mida saate kasutada. Arduino Leonardol on 20 digitaalset sisend-/väljundnõela, millest ainult 16 on mõeldud nootide esitamiseks.

Nende lisanuppude abil saate koodi muutujat värskendada ja selle väärtuse parameetrina saata meetodile MidiUSB.sendMIDI:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

7. samm: juhtum

Juhul
Juhul
Juhul
Juhul

Selle projekti lihtsuse hoidmiseks olin äärmiselt valiv, milliseid funktsioone kaasata.

  • Ainult nupud: 16 Sanwa-sarnast arkaadinuppu 4x4 ruudustikus. Ei mingeid nuppe, liugureid, fadereid ega muud analoogsisendit.
  • Korpuse korpus: Arduino plaadi hoidmiseks ärge kasutage kruvisid, mutreid, polte ega liimi.
  • Igapäevased tööriistad: Näiteks jootsin juhtmed selle asemel, et osta arkaadnuppude jaoks spetsiifiline traatlõikur.

Unibody disain

Üks väljakutsetest, millega ma silmitsi seisin, oli korpuse kujundamine piisavalt lihtne, et seda poleks vaja kokku panna ja seda saaks printida ühe korraga.

Kruvide või liimi kasutamise vältimiseks pidin kavandama korpuse, mis tagab elektroonikale väikseima juurdepääsu. Minu suurim inspiratsioon korpuse jaoks oli Mac Mini, mille allosas on ringikujuline auk. Tahtsin ka selle jaoks kruvitava kaane kujundada, kuid otsustasin selle lahti lasta, et elektroonikat paljastada.

Laadige alla 3D prinditav ümbris (322 KB). Soovitatavad seaded: PLA, 0,15 mm kihid, 20% täitematerjal, toetajad vähemalt ümara põhjaava jaoks, Arduino hoidikud ja mikro -USB.

Arduino hoidmine ilma kruvideta

Leonardol on 4 auku, millega plaati igasse sobivasse korpusesse kruvida, kuid minu idee oli hõlbustada plaadi lisamist ja eemaldamist korpusest.

Arduino klambrihoidja leidmine Thingiversest oli lihtne ja selle hoidja unibody -kujundusse integreerimiseks kulus mul viis korda. Kõige raskem oli jalgade tegemine, et vältida nuppude auke ja muuta mikro -USB korpuse keskele joondatuks.

8. samm: kokkupanek

Assamblee
Assamblee
Assamblee
Assamblee
Assamblee
Assamblee

Pärast kõigi nuppude sisestamist jootsin lühikesed mustad juhtmed, mis ühendasid nende vahel kõik negatiivsed jalad.

Siis jootsin igast positiivsest jalast pikad punased juhtmed otse plaadiga ühendamiseks.

Juhtmete ühendamiseks Arduinoga lõikasin ja jootsin mõned Duponti otsad ning katsin need termokahanevate torudega.

Ühendasin juhtmed plaadiga samas järjekorras nagu MIDI Fighteris. Alt üles ja vasakult paremale

9. samm: MIDI -kontrolleri kasutamine

MIDI kontrolleri kasutamine
MIDI kontrolleri kasutamine

MIDI vastuvõtmiseks ja muusika tegemiseks saab kasutada mis tahes muusikatarkvara (või sobivat riistvara). Kõige soovitatavamad on Garage Band, Ableton Live ja ma tean, et telefoni on installimiseks palju rakendusi.

Kõik need tööriistad on kasulikud sõrme trummeldamiseks etteantud helide laadimiseks, kuid need on tehtud suuremaks otstarbeks. Nende tööriistade seadistamine võib algajatele olla keeruline.

MIDI veebibrauseris

Et midagi selle projekti ja selle lihtsusega paremini kooskõlla viia, ehitasin veebitööriista, mis keskendus täielikult MIDI -kontrolleritele.

Punchy: WebMIDI ja WebAudio juurutamine MIDI -kontrolleritele.

See saab lugeda MIDI -sõnumeid mis tahes brauseris, mis toetab WebMIDI JavaScripti API -d. Seejärel esitab see helisid süntesaatoris (kasutades WebAudio API -d) või proovivõtjas, laadides kohandatud helisid mis tahes helipakist.

Seadistage Ableton Live

Selleks, et MIDI -kontroller töötaks koos Ableton Live'iga, järgige nende ametlikus dokumentatsioonis toodud lihtsaid samme.

Minge jaotisse Eelistused → Linkige MIDI ja veenduge, et sisendil on „Track” ja „Remote” sees ning väljundil on „Remote” SEES ja samuti juhendis mainitud:

Soovitan: