Përmbajtje:

Ndërtimi i një kontrolluesi Arduino MIDI: 9 hapa (me fotografi)
Ndërtimi i një kontrolluesi Arduino MIDI: 9 hapa (me fotografi)

Video: Ndërtimi i një kontrolluesi Arduino MIDI: 9 hapa (me fotografi)

Video: Ndërtimi i një kontrolluesi Arduino MIDI: 9 hapa (me fotografi)
Video: TX81Z Arduino MIDI-контроллер/редактор 2024, Nëntor
Anonim

Ky udhëzues u botua fillimisht në blogun tim më 28 qershor 2020

Më pëlqen të ndërtoj gjëra që përfshijnë elektronikë dhe gjithmonë kam dashur të ndërtoj diçka duke përdorur Arduino.

Një nga pajisjet më të zakonshme për fillestarët që gjeta ishte një kontrollues MIDI. Një kontrollues MIDI është çdo pajisje që dërgon të dhëna MIDI (Ndërfaqe dixhitale e instrumentit muzikor) në një pajisje për të shkaktuar tinguj dhe për të bërë muzikë.

Kam gjetur se shumë zbatime janë të ndërlikuara, madje edhe ato që janë për fillestarët. Ishte shumë zhgënjyese të gjesh se kam nevojë të përdor qindra rreshta të kodit të palexueshëm. Ose që kam nevojë të lidh një rezistencë në disa raste, midis shembujve të tjerë.

Projekti

Duke ndërtuar kontrolluesin tim Arduino MIDI, qëllimi im ishte të bëja një projekt të këndshëm, duke e mbajtur zhurmën në nivelin më të ulët. Diçka që çdo fillestar mund të ndjekë. Për ta arritur këtë, unë përdor MIDI Fighter 3D si një frymëzim bazë dhe hoqa çdo veçori jo thelbësore.

Kostoja totale e projektit tim ishte nën 30 dollarë, dhe lista e materialeve ishte vërtet e shkurtër (lidhjet e filialeve):

  • Arduino Leonardo (ose klon): midis $ 10 dhe $ 20.
  • 16 x butona Sanwa 24mm (ose klon): midis $ 1 dhe $ 2.50 për buton.
  • Makine per ngjitjen e metalit
  • 22 Tela Elektrike AWG

Bordi Arduino

Kur fillova këtë projekt, gjeta se kishte një mori modelesh të reja Arduino (pa përfshirë qindra tabela të pajtueshme). Dhe të gjithë ofrojnë aftësi paksa të ndryshme.

Më duhej të dërgoja sinjale MIDI në një kompjuter dhe mënyra më e thjeshtë për ta bërë këtë është përmes USB. Çdo bord Arduino i bazuar në mikrokontrolluesin ATmega32u4 ka një komunikim USB të integruar.

Pllakat zyrtare të Arduino me mbështetje amtare USB janë Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Këto borde kanë mbështetje të integruar USB që do të thotë se ato mund të veprojnë si një pajisje MIDI USB.

Vendosa të shkoj me një klon të Arduino Leonardo. Ka hyrje të mjaftueshme për këtë projekt dhe përfshin gjithashtu tituj, gjë që e bën më të lehtë lidhjen/shkëputjen e telave.

Hapat e parë

Edhe pse unë do të shpjegoj hap pas hapi se si e zbatova kodin për këtë projekt, ju mund të shkarkoni versionin përfundimtar.

Për të ngarkuar kodin në tabelë duhet të përdorni Arduino IDE. Ata gjithashtu kanë një redaktues në internet që është shumë i dobishëm, por ata kanë një kuotë të kufizuar në oraret në ditë që mund të përpiloni kodin.

Hapi 1: Pulsim i LED-it të integruar

Funnyshtë qesharake se si "Hello World" në botën e pajisjeve po ndez një LED.

Ishte një surprizë e bukur për mua të zbuloja se Arduino Leonardo ka një LED të integruar të cilin mund ta blini për të provuar kodin tuaj. Në atë mënyrë nuk keni nevojë të ndërtoni një qark të jashtëm në një tabelë me një LED dhe një rezistencë.

Kodi:

Hapi 2: Pulsimi i LED në hyrjen manuale

Hapi tjetër logjik ishte të ndezja të njëjtën LED sa herë që dërgoja një sinjal. Hoqa mbulesën plastike të njërit skaj të 2 telave Dupont dhe lidhi skajin tjetër me tabelën:

  • Numri i pinit 2: Një nga hyrjet dixhitale (pozitive). Mund të jetë çdo kunj dixhital.
  • Pin GND: Çdo kunj terreni (negativ).

Tani, sa herë që bashkohem me skajet e ekspozuara të telave, unë po mbyll qarkun dhe kështu mund të ekzekutoj kodin si pasojë

Secila nga 20 kunjat dixhitale në Leonardo ka një rezistencë të brendshme (e shkëputur si parazgjedhje) që mund të aktivizohet duke përdorur INPUT_PULLUP. Mbani në mend se një hyrje tërheqëse do të thotë që gjendja e butonit është e përmbysur:

  • LART HIGH kur qarku është i hapur (butoni NUK shtypet).
  • LOW kur qarku është i mbyllur (butoni shtypet).

Kodi:

Hapi 3: Instalimi i Bibliotekës MIDIUSB

Kjo bibliotekë lejon që një bord Arduino me aftësi USB të veprojë si një instrument MIDI përmes USB. Kontrolloni dokumentacionin zyrtar për më shumë informacion.

Duke përdorur Arduino IDE, mund të instaloni Biblioteka shtesë Arduino duke përdorur Menaxherin e Bibliotekës:

  1. Hapni IDE dhe klikoni në menunë "Skicë", pastaj "Përfshi Bibliotekën", pastaj "Menaxhoni Bibliotekat".
  2. Kërkoni për MIDIUSB dhe klikoni Instalo.
  3. Pasi të ketë mbaruar, një etiketë e instaluar duhet të shfaqet pranë bibliotekës MIDIUSB.
  4. Mbyllni Menaxherin e Bibliotekës.

Tani Leonardo mund të dërgojë mesazhe MIDI përmes USB! Por së pari, nevojitet një pasqyrë se si funksionon MIDI.

Si funksionon MIDI

"MIDI (Ndërfaqja dixhitale e instrumentit muzikor) është një protokoll standard komunikimi që lidh instrumentet muzikore elektronike, kompjuterët dhe pajisjet audio të lidhura për të luajtur muzikë." - Wikipedia

Ai trajton mesazhet e ngjarjeve me të dhëna për lartësinë dhe shpejtësinë e notës së luajtur, mes udhëzimeve të tjera

Në këtë projekt specifik, hyrja nga 16 butonat dërgon mesazhe të ndryshme përmes USB. Këto mesazhe mund të konvertohen në zë në një kompjuter duke përdorur çdo softuer të përshtatshëm si GarageBand ose Ableton Live.

Anatomia e një mesazhi MIDI

Për të dërguar një mesazh MIDI, kam përdorur metodën sendMIDI () nga Biblioteka MIDIUSB që kam instaluar në hapin 3.

Kjo metodë mund të marrë 4 parametra:

  • Lloji i ngjarjes: Mund të jetë 0x09 për shënimin Aktiv (luaj shënim) ose 0x08 për shënim Jo (ndalo së luajturi shënim).
  • Shënim Aktiv/Fikur: Lloji i ngjarjes i kombinuar me kanalin MIDI (1-16). Unë përdor vetëm kanalin 1 kështu që është ose 0x90 për shënimin On ose 0x80 për shënimin Off.
  • Numri i shënimit: Çdo shënim ka një hap numerik të lidhur (shkalla e frekuencës).
  • Shpejtësia: Nga 0 (pa shpejtësi) në 127 (më e shpejta).

Hapi 4: Dërgimi i një Mesazhi MIDI

Unë përfshiva Bibliotekën MIDIUSB dhe në vend që të ndriçoja LED-in e integruar, dërgova një shënim.

Kodi:

Ant E rëndësishme: Nga ky hap e tutje Arduino kthehet në një kontrollues MIDI USB dhe ndalon marrjen e kodit përmes USB.

Kur të ngeceni në një pozicion ku Arduino nuk mund të programohet më, ndiqni këto hapa:

  1. Mbani të shtypur butonin e rrumbullakosur të rivendosjes në tabelën Arduino.
  2. Klikoni Ngarko në ID Arduino.
  3. Lëshoni butonin e rivendosjes.
  4. Kodi i përditësuar do të ngarkohet në tabelë.

Hapi 5: Dërgimi i një mesazhi MIDI nga çdo buton

Dërgimi i një mesazhi MIDI nga çdo buton
Dërgimi i një mesazhi MIDI nga çdo buton

Hapi i fundit ishte hartimi i çdo pike në një buton. Për 16 butonat, unë përcaktova një shkallë nga C2 në E3b, të cilat janë fushat nga 36 në 51 në një sekuencë nga poshtë lart dhe nga e majta në të djathtë. Shikoni këtë skedar nga Arduino Tutorials për të parë se cila lartësi korrespondon me secilën shënim.

Kam përdorur kunja dixhitale nga 2 në 12 dhe kunja analoge (duke i përdorur ato si numra dixhitalë) nga A0 në A4.

Dhe kështu duket kodi përfundimtar

Hapi 6: Vendosja e kanaleve ose bankave (opsionale)

Vendosja e kanaleve ose bankave (sipas dëshirës)
Vendosja e kanaleve ose bankave (sipas dëshirës)

Në rast se doni të shtoni më shumë butona me aftësinë për të ndërruar kanale ose banka, si në MIDI Fighter 3D (shiko imazhin), Arduino Leonardo ka edhe katër kunja të tjera që mund të përdorni. Arduino Leonardo ka 20 kunja hyrëse/dalëse dixhitale, nga të cilat vetëm 16 janë në përdorim për të luajtur shënime.

Ju mund t'i përdorni ato butona shtesë për të azhurnuar një ndryshore në kod dhe për të dërguar vlerën e saj si një parametër në metodën MidiUSB.sendMIDI:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

Hapi 7: Rasti

Rasti
Rasti
Rasti
Rasti

Për ta mbajtur këtë projekt të thjeshtë, unë isha jashtëzakonisht përzgjedhës në zgjedhjen e veçorive që përfshijnë.

  • Vetëm butona: 16 butona arcade të ngjashëm me Sanwa, në një rrjet 4x4. Pa çelësa, pa rrëshqitës, pa zbehje ose ndonjë hyrje tjetër analoge.
  • Rast unibody: Mos përdorni vida, arra, bulona ose ngjitës për rrethimin ose për të mbajtur bordin Arduino.
  • Mjetet e përditshme: Për shembull, unë bashkova telat në vend që të blija një prerës të veçantë teli për butonat e arkadës.

Dizajni i Unibody

Një nga sfidat me të cilat u ballafaqua ishte dizajnimi i një kasete mjaft të thjeshtë sa të mos kishte nevojë për montim dhe mund të printohej në 3D në një afat të vetëm.

Për të shmangur përdorimin e vidhave ose zamit, më duhej të krijoja një mbyllje që siguron aksesin më të vogël në pajisje elektronike. Frymëzimi im më i madh për mbylljen ishte Mac Mini, i cili ka një vrimë në formë rrethi në pjesën e poshtme. Unë gjithashtu doja të krijoja një kapak të vidhosshëm për këtë, por vendosa ta lija të hapur për të ekspozuar pajisjet elektronike.

Shkarkoni kutinë 3D të printueshme (322 KB). Cilësimet e rekomanduara: PLA, shtresa 0.15mm, mbushje 20%, zbatues mbështetës të paktën për vrimën e poshtme të rrumbullakosur, mbajtëset Arduino dhe mikro USB.

Mbajtja e një Arduino pa vida

Leonardo ka 4 vrima për të vidhosur dërrasën në çdo kuti të përshtatshme, por ideja ime ishte ta bëja të lehtë shtimin dhe heqjen e tabelës nga kutia.

Gjetja e një mbajtëse klipi për Arduino në Thingiverse ishte e lehtë, dhe më janë dashur 5 përsëritje për ta integruar atë mbajtësin në dëshirën e unibody. Pjesa më e vështirë ishte bërja e këmbëve për të shmangur vrimat për butonat dhe për të bërë që mikro USB të rreshtohej në qendër me kutinë.

Hapi 8: Kuvendi

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Pasi futa të gjithë butonat në vend, bashkova tela të shkurtër të zinj duke bashkuar të gjitha këmbët negative të butonave midis tyre.

Pastaj bashkova tela të gjatë të kuq nga secila këmbë pozitive për t'u lidhur direkt me tabelën.

Për të lidhur telat me Arduino, kam prerë dhe ngjitur disa skaje të Dupont dhe i kam mbuluar me tuba që zvogëlojnë nxehtësinë.

I lidha telat me tabelën sipas të njëjtit rend si në MIDI Fighter. Nga poshtë lart dhe nga e majta në të djathtë

Hapi 9: Përdorimi i kontrolluesit MIDI

Përdorimi i kontrolluesit MIDI
Përdorimi i kontrolluesit MIDI

Çdo softuer muzikor (ose pajisje e përshtatshme) mund të përdoret për të marrë MIDI dhe për të bërë muzikë. Ato më të rekomanduarat janë Garage Band, Ableton Live, dhe unë e di që ka një mori aplikacionesh për tu instaluar në një telefon.

Të gjitha ato mjete janë të dobishme për ngarkimin e tingujve të paracaktuar për baterimin e gishtërinjve, por ato janë bërë për qëllime më të mëdha. Këto mjete mund të jenë të vështira për t'u krijuar për fillestarët.

MIDI në shfletuesin e uebit

Për të bërë diçka më të përshtatur me këtë projekt dhe thjeshtësinë e tij, unë ndërtova një vegël Web të fokusuar plotësisht në kontrolluesit MIDI.

Punchy: Zbatimi i WebMIDI dhe WebAudio për kontrolluesit MIDI.

Mund të lexojë mesazhe MIDI në çdo shfletues që mbështet WebMIDI JavaScript API. Pastaj luan tinguj në një sintetizues (duke përdorur API WebAudio) ose në një mostër, duke ngarkuar tinguj me porosi nga çdo paketë zëri.

Konfiguroni Ableton Live

Për ta bërë kontrolluesin MIDI të punojë me Ableton Live, ndiqni këto hapa të thjeshtë nga dokumentacioni i tyre zyrtar.

Shkoni te Preferencat → Lidhni MIDI dhe sigurohuni që "Input" të ketë "Track" dhe "Remote" ON dhe dalja të ketë "Remote" ON, siç përmendet në udhëzues:

Recommended: