Sadržaj:
- Ovo uputstvo je prvobitno objavljeno na mom blogu 28. juna 2020
- Korak 1: Treptanje ugrađene LED diode
- Korak 2: Treptanje LED diode na ručnom unosu
- Korak 3: Instaliranje MIDIUSB biblioteke
- Korak 4: Slanje MIDI poruke
- Korak 5: Slanje MIDI poruke sa svakog dugmeta
- Korak 6: Postavljanje kanala ili banaka (izborno)
- Korak 7: Slučaj
- Korak 8: Skupština
- Korak 9: Upotreba MIDI kontrolera
Video: Izgradnja Arduino MIDI kontrolera: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Ovo uputstvo je prvobitno objavljeno na mom blogu 28. juna 2020
Uživam u izgradnji stvari koje uključuju elektroniku, i uvijek sam htio nešto napraviti koristeći Arduino.
Jedna od najčešćih verzija za početnike koju sam pronašao bio je MIDI kontroler. MIDI kontroler je svaki hardver koji šalje MIDI podatke (digitalno sučelje muzičkog instrumenta) na uređaj za pokretanje zvukova i stvaranje muzike.
Otkrio sam da su mnoge implementacije komplicirane, čak i one za početnike. Bilo je vrlo frustrirajuće saznati da moram koristiti stotine redova nečitljivog koda. Ili da u nekim slučajevima, među ostalim primjerima, moram lemiti otpornik.
Projekat
Izgradnjom vlastitog Arduino MIDI kontrolera namjera mi je bila napraviti ugodan projekt, zadržavajući buku na najnižoj razini. Nešto što bi svaki početnik mogao slijediti. Da bih to postigao, koristio sam MIDI Fighter 3D kao osnovnu inspiraciju i uklonio svaku nebitnu značajku.
Ukupni troškovi mog projekta bili su ispod 30 USD, a popis materijala bio je zaista kratak (partnerske veze):
- Arduino Leonardo (ili klon): između 10 i 20 dolara.
- 16 x Sanwa tastera 24 mm (ili klon): između 1 USD i 2,50 USD po dugmetu.
- Lemilica
- 22 AWG električna žica
Arduino ploča
Kad sam započeo ovaj projekt, otkrio sam da postoji gomila novih Arduino modela (ne uključujući stotine kompatibilnih ploča). I svi oni nude malo drugačije mogućnosti.
Morao sam poslati MIDI signale na računar, a najjednostavniji način za to je putem USB -a. Svaka Arduino ploča zasnovana na mikrokontroleru ATmega32u4 ima ugrađenu USB komunikaciju.
Službene Arduino ploče s izvornom USB podrškom su Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Ove ploče imaju integriranu USB podršku što znači da mogu djelovati kao USB MIDI uređaj.
Odlučio sam otići s klonom Arduino Leonarda. Ima dovoljno ulaza za ovaj projekt, a uključuje i zaglavlja, što olakšava uključivanje/isključivanje žica.
Prvi koraci
Iako ću objasniti korak po korak kako sam implementirao kod za ovaj projekt, možete preuzeti konačnu verziju.
Za postavljanje koda na ploču morate koristiti Arduino IDE. Imaju i web uređivač koji je vrlo koristan, ali imaju ograničenu kvotu dnevno za sastavljanje koda.
Korak 1: Treptanje ugrađene LED diode
Smiješno je kako "Hello World" u svijetu hardvera treperi LED diodom.
Bilo je to lijepo iznenađenje za mene kada sam otkrio da Arduino Leonardo ima ugrađenu LED lampicu koju možete treptati kako biste testirali svoj kôd. Na taj način ne morate graditi vanjsko kolo na ploči s LED -om i otpornikom.
Kod:
Korak 2: Treptanje LED diode na ručnom unosu
Sljedeći logičan korak bio je treperiti istom LED diodom kad god pošaljem signal. Uklonio sam plastični poklopac s jednog kraja 2 Dupont žice, a drugi kraj spojio na ploču:
- Pin broj 2: Jedan od digitalnih ulaza (pozitivan). To može biti bilo koji digitalni pin.
- Pin GND: Bilo koji pin za uzemljenje (negativan).
Sada, svaki put kad spojim izložene krajeve žica, zatvaram krug i na taj način mogu izvršiti kod
Svaki od 20 digitalnih pinova na Leonardu ima unutarnji otpornik (isključen prema zadanim postavkama) koji se može omogućiti pomoću INPUT_PULLUP -a. Imajte na umu da uvlačni ulaz znači da je stanje dugmeta obrnuto:
- VISOKO kada je krug otvoren (dugme NIJE pritisnuto).
- NISKA kada je krug zatvoren (pritisnuto dugme).
Kod:
Korak 3: Instaliranje MIDIUSB biblioteke
Ova biblioteka omogućava Arduino ploči sa USB mogućnostima da djeluje kao MIDI instrument preko USB -a. Više informacija potražite u službenoj dokumentaciji.
Pomoću Arduino IDE -a možete instalirati dodatne Arduino biblioteke pomoću Upravitelja biblioteke:
- Otvorite IDE i kliknite izbornik "Sketch", zatim "Include Library", pa "Manage Libraries".
- Potražite MIDIUSB i kliknite Instaliraj.
- Nakon što završi, pored biblioteke MIDIUSB trebala bi se pojaviti instalirana oznaka.
- Zatvorite Upravitelja biblioteke.
Sada Leonardo može slati MIDI poruke putem USB -a! Ali prvo je potreban neki uvid u to kako MIDI radi.
Kako MIDI radi
"MIDI (digitalni interfejs za muzičke instrumente) je standardni komunikacijski protokol koji povezuje elektronske muzičke instrumente, računare i povezane audio uređaje za reprodukciju muzike." - Wikipedia
On obrađuje poruke o događajima s podacima o visini tona i brzini odsvirane note, između ostalih uputa
U ovom konkretnom projektu, ulaz sa 16 tipki šalje različite poruke putem USB -a. Ove se poruke mogu pretvoriti u zvuk na računaru pomoću bilo kojeg odgovarajućeg softvera poput GarageBand ili Ableton Live.
Anatomija MIDI poruke
Za slanje MIDI poruke upotrijebio sam metodu sendMIDI () iz biblioteke MIDIUSB koju sam instalirao u koraku 3.
Ova metoda može primiti 4 parametra:
- Vrsta događaja: Može biti 0x09 za notu On (sviraj notu) ili 0x08 za note Off (zaustavi sviranje note).
- Napomena Uključeno/Isključeno: Vrsta događaja u kombinaciji sa MIDI kanalom (1-16). Koristim samo kanal 1 tako da je ili 0x90 za napomenu Uključeno ili 0x80 za bilješku Isključeno.
- Broj note: Svaka nota ima pridruženu numeričku visinu (frekvencijsku skalu).
- Brzina: Od 0 (bez brzine) do 127 (najbrži).
Korak 4: Slanje MIDI poruke
Uključio sam MIDIUSB biblioteku i umjesto da trepćem ugrađenu LED diodu, poslao sam poruku.
Kod:
Važno: Od ovog koraka nadalje, Arduino se pretvara u MIDI USB kontroler i prestaje primati kôd putem USB -a.
Kad zaglavite u položaju u kojem se Arduino više ne može programirati, slijedite ove korake:
- Držite zaobljeno dugme za reset na Arduino ploči.
- Kliknite Otpremi na Arduino IDE.
- Otpustite dugme za resetovanje.
- Ažurirani kôd bit će postavljen na ploču.
Korak 5: Slanje MIDI poruke sa svakog dugmeta
Posljednji korak je bilo mapiranje svakog tona na dugme. Za 16 tipki definirao sam skalu od C2 do E3b, koja su tona od 36 do 51 u nizu odozdo prema gore i slijeva nadesno. Pogledajte ovu datoteku iz Arduino vodiča da vidite koja visina odgovara svakoj noti.
Koristio sam digitalne pinove od 2 do 12 i analogne pinove (koristeći ih kao digitalne) od A0 do A4.
Ovako izgleda konačni kod
Korak 6: Postavljanje kanala ili banaka (izborno)
U slučaju da želite dodati još gumba s mogućnošću mijenjanja kanala ili banaka, kao u MIDI Fighter 3D (pogledajte sliku), Arduino Leonardo ima još četiri pina koje možete koristiti. Arduino Leonardo ima 20 digitalnih ulazno/izlaznih pinova, od kojih se samo 16 koristi za sviranje nota.
Pomoću tih dodatnih gumba možete ažurirati varijablu u kodu i poslati njezinu vrijednost kao parametar metodi MidiUSB.sendMIDI:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
Korak 7: Slučaj
Da bi ovaj projekt bio jednostavan, bio sam izuzetno izbirljiv u odabiru koje značajke uključuju.
- Samo dugmad: 16 arkadnih dugmadi sličnih Sanwi, u mreži 4x4. Bez dugmadi, bez klizača, bez fadera ili bilo kojeg drugog analognog ulaza.
- Jedinstveno kućište: Ne koristite vijke, matice, vijke ili ljepilo za kućište ili za držanje Arduino ploče.
- Svakodnevni alati: Na primjer, lemio sam žice umjesto da kupim određenu mašinu za šišanje za arkadne tipke.
Unibody Design
Jedan od izazova s kojima sam se suočio bilo je dizajniranje kućišta dovoljno jednostavnog da ne zahtijeva montažu i može se štampati 3D u jednoj vožnji.
Da bih izbjegao korištenje vijaka ili ljepila, morao sam dizajnirati kućište koje omogućava najmanji pristup elektronici. Moja najveća inspiracija za kućište bio je Mac Mini, koji ima rupu u obliku kruga na dnu. Za to sam također želio dizajnirati poklopac koji se može vijčati, ali odlučio sam ga pustiti da se otvori kako bi se otkrila elektronika.
Preuzmite 3D kućište za štampanje (322 KB). Preporučene postavke: PLA, slojevi od 0,15 mm, ispuna od 20%, podržavaju pojačala barem za rupu sa zaobljenim dnom, Arduino držače i mikro USB.
Držite Arduino bez vijaka
Leonardo ima 4 rupe za uvrtanje ploče u bilo koje prikladno kućište, ali moja ideja je bila olakšati dodavanje i uklanjanje ploče iz kućišta.
Pronalaženje držača isječaka za Arduino na Thingiverse -u bilo je jednostavno i trebalo mi je 5 ponavljanja da integriram taj držač u unibody dizajn. Najteži dio bio je napraviti noge kako bi izbjegao rupe za dugmad i postavio mikro USB tako da bude centriran prema kućištu.
Korak 8: Skupština
Nakon što sam umetnuo sve tipke, lemio sam kratke crne žice spajajući sve negativne nogice gumba između njih.
Zatim sam lemio duge crvene žice sa svake pozitivne nogice za spajanje izravno na ploču.
Da bih spojio žice s Arduinom, odrezao sam i lemio neke krajeve Duponta i prekrio ih termoskupljajućim cijevima.
Spojio sam žice na ploču prema istom redoslijedu kao u MIDI Fighteru. Odozdo prema gore i slijeva nadesno
Korak 9: Upotreba MIDI kontrolera
Bilo koji muzički softver (ili odgovarajući hardver) može se koristiti za prijem MIDI i stvaranje muzike. Najviše se preporučuju Garage Band, Ableton Live i znam da postoji gomila aplikacija za instaliranje na telefon.
Svi su ti alati korisni za učitavanje unaprijed definiranih zvukova za bubnjanje prstima, ali napravljeni su za veće svrhe. Ovi alati početnicima mogu biti teški za postavljanje.
MIDI u web pregledniku
Kako bih nešto bio usklađeniji s ovim projektom i njegovom jednostavnošću, izgradio sam web alat potpuno fokusiran na MIDI kontrolere.
Punchy: WebMIDI i WebAudio implementacija za MIDI kontrolere.
Može čitati MIDI poruke na bilo kojem pregledniku koji podržava WebMIDI JavaScript API. Zatim reproducira zvukove u sintisajzeru (pomoću WebAudio API -ja) ili u uzorku, učitavajući prilagođene zvukove iz bilo kojeg zvučnog paketa.
Postavite Ableton Live
Kako bi MIDI kontroler radio s Ableton Live, slijedite ove jednostavne korake iz njihove službene dokumentacije.
Idite na Postavke → Povežite MIDI i provjerite je li na "Ulazu" uključeno "Track" i "Remote", a na izlazu je "Remote" ON, kao što je navedeno u vodiču:
Preporučuje se:
Izgradnja čamca za samoupravljanje (ArduPilot Rover): 10 koraka (sa slikama)
Izgradnja čamca za samoupravljanje (ArduPilot Rover): Znate što je super? Samovozeća vozila bez posade. U stvari su toliko cool da smo mi (moje kolege sa uniju i ja) sami započeli gradnju još 2018. To je i razlog zašto sam ove godine krenuo da to konačno završim u slobodno vrijeme. U ovom Instu
Izgradnja automatskog solarnog tragača s Arduino Nano V2: 17 koraka (sa slikama)
Izgradnja automatskog solarnog tragača s Arduino Nano V2: Zdravo! Ovaj Instructable je zamišljen kao drugi dio mog projekta Solar Tracker. Za objašnjenje kako solarni tragači rade i kako sam dizajnirao svoj prvi tragač, koristite donju vezu. Ovo će ponuditi kontekst za ovaj projekt.https: //www.instructables.co
Stvaranje alternativnog MIDI kontrolera pomoću Makey-Makey-a i vode: 6 koraka
Stvaranje alternativnog MIDI kontrolera pomoću Makey-Makey-a i vode: Korištenje Makey-Makey-a za kreiranje prilagođenih i kreativnih unosa je nevjerojatno jednostavno! Iako mnogi ljudi koji koriste hardver stvaraju vlastiti instrument koristeći ulaze na Makey-Makeyu za pokretanje zvukova ili nota, odlučili smo da bismo mogli učiniti još više
Izgradnja jednostavnog MP3 playera sa stihovima: 6 koraka (sa slikama)
Izrada jednostavnog Steampunk MP3 playera: U Steampunk grupi na FB -u postavilo se pitanje je li teško izgraditi "neki Steampunk koji funkcionira". I nije tako skupo jer mnogi Steampunk gadgeti koriste skupe materijale.OK, Lady's i gospodo dopuštamo da to učinimo
Dugme-tastatura midi kontrolera: 6 koraka
Dugmad-tastatura Midi kontrolera: Inspirisan mojim projektom midifighter-a, odlučio sam da napravim midi kontroler u stilu dugmeta koji koristi brojne digitalne ulaze koje ima Mega Arduino ploča. U ovom Instructableu proći ćemo kroz korake prikupljene od materijala