Kazalo:
- Ta navodila so bila prvotno objavljena na mojem blogu 28. junija 2020
- 1. korak: Utripajo vgrajeno LED
- 2. korak: Utripanje LED na ročnem vnosu
- 3. korak: Namestitev knjižnice MIDIUSB
- 4. korak: Pošiljanje MIDI sporočila
- 5. korak: Pošiljanje sporočila MIDI z vsakega gumba
- 6. korak: Nastavitev kanalov ali bank (neobvezno)
- 7. korak: Primer
- 8. korak: Sestavljanje
- 9. korak: Uporaba krmilnika MIDI
Video: Izdelava MIDI krmilnika Arduino: 9 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Ta navodila so bila prvotno objavljena na mojem blogu 28. junija 2020
Uživam v gradnji stvari, ki vključujejo elektroniko, in vedno sem želel z Arduinom zgraditi nekaj.
Ena najpogostejših različic za začetnike, ki sem jo našel, je bil MIDI krmilnik. MIDI krmilnik je vsaka strojna oprema, ki pošilja podatke MIDI (digitalni vmesnik za glasbeni instrument) na napravo, da sproži zvoke in ustvarja glasbo.
Ugotovil sem, da so številne izvedbe zapletene, tudi tiste za začetnike. Bilo je zelo frustrirajuće ugotoviti, da moram uporabiti na stotine vrstic nečitljive kode. Ali pa moram med drugimi primeri v nekaterih primerih spajkati upor.
Projekt
Z izgradnjo lastnega Arduino MIDI krmilnika sem nameraval ustvariti prijeten projekt, pri čemer je hrup čim manjši. Nekaj, kar bi lahko sledil vsak začetnik. Da bi to dosegel, sem kot osnovni navdih uporabil MIDI Fighter 3D in odstranil vse nebistvene funkcije.
Skupni stroški mojega projekta so bili pod 30 USD, seznam materialov pa je bil res kratek (partnerske povezave):
- Arduino Leonardo (ali klon): med 10 in 20 USD.
- 16 x gumbi Sanwa 24 mm (ali klon): med 1 USD in 2,50 USD na gumb.
- Spajkalnik
- 22 AWG električna žica
Plošča Arduino
Ko sem začel s tem projektom, sem ugotovil, da je kup novih modelov Arduino (ne vključuje na stotine združljivih plošč). In vsi ponujajo nekoliko drugačne zmogljivosti.
Moral sem poslati MIDI signale v računalnik, najpreprostejši način za to pa je prek USB -ja. Vsaka plošča Arduino, ki temelji na mikrokrmilniku ATmega32u4, ima vgrajeno komunikacijo USB.
Uradne Arduino plošče z domačo podporo USB so Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Te plošče imajo vgrajeno podporo USB, kar pomeni, da lahko delujejo kot naprava USB MIDI.
Odločil sem se, da grem s klonom Arduina Leonarda. Za ta projekt ima dovolj vhodov in vključuje tudi glave, ki olajšajo priklop/odklop žic.
Prvi koraki
Čeprav bom korak za korakom razložil, kako sem uvedel kodo za ta projekt, lahko prenesete končno različico.
Za nalaganje kode na ploščo morate uporabiti Arduino IDE. Imajo tudi spletni urejevalnik, ki je zelo uporaben, vendar imajo omejeno dnevno kvoto, v kateri lahko sestavite kodo.
1. korak: Utripajo vgrajeno LED
Smešno je, kako "Hello World" v svetu strojne opreme utripa z LED.
Zame je bilo prijetno presenečenje, ko sem ugotovil, da ima Arduino Leonardo vgrajeno LED, ki jo lahko utripate, da preizkusite svojo kodo. Tako vam ni treba graditi zunanjega vezja na plošči z LED in uporom.
Koda:
2. korak: Utripanje LED na ročnem vnosu
Naslednji logični korak je bil utripanje iste LED, ko pošljem signal. Odstranil sem plastični pokrov enega konca dveh žic Dupont in drugi konec priključil na ploščo:
- Pin številka 2: Eden od digitalnih vhodov (pozitiven). Lahko je kateri koli digitalni pin.
- Pin GND: kateri koli ozemljitveni zatič (negativen).
Zdaj, vsakič, ko se pridružim izpostavljenim koncem žic, zaprem vezje in posledično lahko izvedem kodo
Vsak od 20 digitalnih zatičev na Leonardu ima notranji upor (privzeto odklopljen), ki ga je mogoče omogočiti z INPUT_PULLUP. Upoštevajte, da vlečni vnos pomeni, da je stanje gumba obrnjeno:
- VISOKO, ko je vezje odprto (tipka NI pritisnjena).
- NIZKA, ko je vezje zaprto (pritisnjen gumb).
Koda:
3. korak: Namestitev knjižnice MIDIUSB
Ta knjižnica omogoča, da plošča Arduino z zmogljivostmi USB deluje kot instrument MIDI prek USB -ja. Za več informacij preglejte uradno dokumentacijo.
Z uporabo Arduino IDE lahko z upraviteljem knjižnic namestite dodatne knjižnice Arduino:
- Odprite IDE in kliknite meni "Sketch", nato "Include Library", nato "Manage Libraries".
- Poiščite MIDIUSB in kliknite Namesti.
- Ko konča, se mora poleg knjižnice MIDIUSB pojaviti nameščena oznaka.
- Zaprite upravitelja knjižnice.
Zdaj lahko Leonardo pošilja MIDI sporočila prek USB -ja! Najprej pa je potreben vpogled v delovanje MIDI.
Kako deluje MIDI
"MIDI (digitalni vmesnik za glasbene instrumente) je standardni komunikacijski protokol, ki povezuje elektronske glasbene instrumente, računalnike in sorodne zvočne naprave za predvajanje glasbe." - Wikipedija
Med drugim obravnava sporočila o dogodkih s podatki o višini in hitrosti igrane note
V tem posebnem projektu vnos s 16 gumbi pošilja različna sporočila prek USB -ja. Ta sporočila lahko pretvorite v zvok v računalniku s katero koli primerno programsko opremo, kot sta GarageBand ali Ableton Live.
Anatomija sporočila MIDI
Za pošiljanje sporočila MIDI sem uporabil metodo sendMIDI () iz knjižnice MIDIUSB, ki sem jo namestil v 3. koraku.
Ta metoda lahko prejme 4 parametre:
- Vrsta dogodka: Lahko je 0x09 za opombo Vklopljeno (predvajanje note) ali 0x08 za opombo Izklopljeno (ustavite predvajanje note).
- Opomba Vklop/Izklop: Vrsta dogodka v kombinaciji s kanalom MIDI (1-16). Uporabljam samo kanal 1, tako da je 0x90 za opombo On ali 0x80 za opombo Off.
- Opomba: Vsaka nota ima pripadajočo numerično višino (frekvenčno lestvico).
- Hitrost: Od 0 (brez hitrosti) do 127 (najhitreje).
4. korak: Pošiljanje MIDI sporočila
Vključil sem knjižnico MIDIUSB in namesto da bi utripal vgrajeno LED, sem poslal opombo.
Koda:
⚠ Pomembno: Od tega koraka dalje se Arduino spremeni v MIDI krmilnik USB in preneha prejemati kodo prek USB -ja.
Ko se zataknete v položaju, kjer Arduina ni več mogoče programirati, sledite tem korakom:
- Držite zaokrožen gumb za ponastavitev na plošči Arduino.
- Kliknite Naloži v Arduino IDE.
- Spustite gumb za ponastavitev.
- Posodobljena koda bo naložena na tablo.
5. korak: Pošiljanje sporočila MIDI z vsakega gumba
Zadnji korak je bil preslikati vsak korak na gumb. Za 16 gumbov sem določil lestvico od C2 do E3b, ki so višine od 36 do 51 v zaporedju od spodaj navzgor in od leve proti desni. V datoteki Arduino Tutorials si oglejte, katera višina ustreza vsaki opombi.
Uporabil sem digitalne zatiče od 2 do 12 in analogne zatiče (ki jih uporabljam kot digitalce) od A0 do A4.
Takole izgleda končna koda
6. korak: Nastavitev kanalov ali bank (neobvezno)
Če želite dodati več gumbov z možnostjo preklapljanja kanalov ali bank, na primer v MIDI Fighter 3D (glej sliko), ima Arduino Leonardo še štiri zatiče, ki jih lahko uporabite. Arduino Leonardo ima 20 digitalnih vhodno/izhodnih zatičev, od katerih se jih le 16 uporablja za predvajanje not.
S temi dodatnimi gumbi lahko posodobite spremenljivko v kodi in njeno vrednost pošljete kot parameter metodi MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
7. korak: Primer
Da bi bil ta projekt preprost, sem bil zelo izbirčen pri izbiri, katere funkcije vključujejo.
- Samo gumbi: 16 arkadnih gumbov, podobnih Sanwi, v mreži 4x4. Brez gumbov, brez drsnikov, brez faderjev ali katerega koli drugega analognega vhoda.
- Enotno ohišje: Ne uporabljajte vijakov, matic, vijakov ali lepila za ohišje ali držite ploščo Arduino.
- Vsakodnevna orodja: Na primer, spajal sem žice, namesto da bi kupil posebno strižnik za arkadne gumbe.
Unibody Design
Eden od izzivov, s katerimi sem se soočal, je bilo oblikovanje dovolj preprostega ohišja, da ne potrebuje montaže in ga je mogoče natisniti 3D v enem samem zagonu.
Da bi se izognili uporabi vijakov ali lepila, sem moral oblikovati ohišje, ki omogoča najmanjši dostop do elektronike. Moj največji navdih za ohišje je bil Mac Mini, ki ima na dnu luknjo v obliki kroga. Za to sem želel oblikovati tudi vijačni pokrov, vendar sem se odločil, da ga odprem, da razkrije elektroniko.
Prenesite ohišje za 3D tiskanje (322 KB). Priporočene nastavitve: PLA, plasti 0,15 mm, 20% polnilo, podpirajo ojačevalce vsaj za luknjo z zaobljenim dnom, držala Arduino in mikro USB.
Držite Arduino brez vijakov
Leonardo ima 4 luknje za privijanje plošče v katero koli primerno ohišje, vendar je bila moja ideja olajšati dodajanje in odstranjevanje plošče iz ohišja.
Iskanje držala za sponke za Arduino na Thingiverse je bilo enostavno in potreboval sem 5 ponovitev, da sem to držalo vključil v oblikovanje unibodyja. Najtežje je bilo narediti noge, da bi se izognili luknjam za gumbe in da bi mikro USB postavili po sredini na ohišje.
8. korak: Sestavljanje
Ko sem vstavila vse gumbe, sem spajkala kratke črne žice, ki so med njimi združile vse negativne krake gumbov.
Nato sem z vsake pozitivne noge spajkal dolge rdeče žice za povezavo neposredno na ploščo.
Za priključitev žic na Arduino sem odrezal in spajkal nekaj koncev Dupont ter jih pokril s toplotno skrčljivo cevjo.
Žice sem priključil na ploščo po istem vrstnem redu kot v MIDI Fighterju. Od spodaj navzgor in od leve proti desni
9. korak: Uporaba krmilnika MIDI
Za sprejem MIDI in ustvarjanje glasbe lahko uporabite katero koli glasbeno programsko opremo (ali ustrezno strojno opremo). Najbolj priporočeni so Garage Band, Ableton Live in vem, da je na telefon kup aplikacij za namestitev.
Vsa ta orodja so uporabna za nalaganje vnaprej določenih zvokov za bobnanje s prsti, vendar so bila narejena za večje namene. Ta orodja so lahko začetnikom težka za nastavitev.
MIDI v spletnem brskalniku
Da bi bilo kaj bolj usklajeno s tem projektom in njegovo preprostostjo, sem zgradil spletno orodje, ki je popolnoma osredotočeno na MIDI krmilnike.
Punchy: implementacija WebMIDI in WebAudio za krmilnike MIDI.
Sporočila MIDI lahko bere v katerem koli brskalniku, ki podpira API za WebMIDI JavaScript. Nato predvaja zvoke v sintetizatorju (z uporabo API -ja WebAudio) ali v vzorčevalniku in naloži zvoke po meri iz katerega koli zvočnega paketa.
Nastavite Ableton Live
Če želite, da krmilnik MIDI deluje z Ableton Live, sledite tem preprostim korakom iz njihove uradne dokumentacije.
Pojdite na Nastavitve → Poveži MIDI in se prepričajte, da ima »Vhod« vklopljeno »Sled« in »Oddaljeno«, izhod pa ima »Daljinski« vklopljen, kot je omenjeno v priročniku:
Priporočena:
Ustvarjanje alternativnega MIDI krmilnika z uporabo Makey-Makey in vode: 6 korakov
Ustvarjanje alternativnega MIDI krmilnika z uporabo Makey-Makey in vode: Uporaba Makey-Makeyja za ustvarjanje po meri in ustvarjalnih vnosov je neverjetno enostavna! Medtem ko mnogi ljudje, ki uporabljajo strojno opremo, ustvarijo svoj instrument z uporabo vhodov na Makey-Makeyju za sprožitev zvokov ali not, smo se odločili, da bi lahko naredili še več.
Zamenjava lupine brezžičnega krmilnika Xbox 360: 15 korakov (s slikami)
Zamenjava lupine brezžičnega krmilnika Xbox 360: Navodila po korakih za zamenjavo lupine krmilnika Xbox 360 na novo lupino. Ta vadnica se lahko uporabi za pomoč študentom pri osnovnem razumevanju strojne opreme, elektrotehničnega/računalniškega inženirstva in načel računalništva prek video igre
Izdelava adapterja Bluetooth Pt.2 (izdelava združljivega zvočnika): 16 korakov
Izdelava vmesnika Bluetooth Pt.2 (Izdelava združljivega zvočnika): V tem navodilu vam bom pokazal, kako uporabiti svoj adapter Bluetooth za združljivost starega zvočnika s tehnologijo Bluetooth.*Če niste prebrali mojega prvega navodil o " Izdelavi adapter Bluetooth " Predlagam, da to storite, preden nadaljujete. C
Izdelava poceni krmilnika rose z LED zatemnilnikom: 3 koraki
Izdelava poceni krmilnika rose z LED -zatemnilnikom: Po kratkem stiku 12 -voltnega sušilnika za lase, ki sem ga pred nekaj meseci uporabil za preprečevanje rose na zvezdniški zabavi, sem mislil, da je čas, da za svoj obseg dobim pravi regulator rosišča in grelnik rose Povprečni regulator rose stane več kot 100 evrov (ali ameriški D
Gumb-tipkovnica krmilnika midi: 6 korakov
Gumb-tipkovnica za krmilnik midi: Navdihnjen z mojim projektom midifighter, sem se odločil za izdelavo midi krmilnika v slogu gumbov, ki izkorišča številne digitalne vhode, ki jih ima plošča Mega Arduino. V tem navodilu bomo preučili korake zbiranja materialov