Sadržaj:
- Ovo uputstvo izvorno je objavljeno na mom blogu 28. lipnja 2020
- Korak 1: Treptanje ugrađene LED diode
- Korak 2: Treptanje LED diode na ručnom unosu
- Korak 3: Instaliranje MIDIUSB knjižnice
- Korak 4: Slanje MIDI poruke
- Korak 5: Slanje MIDI poruke sa svakog gumba
- Korak 6: Postavljanje kanala ili banaka (izborno)
- Korak 7: Slučaj
- Korak 8: Skupština
- Korak 9: Korištenje MIDI kontrolera
Video: Izrada Arduino MIDI kontrolera: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Ovo uputstvo izvorno je objavljeno na mom blogu 28. lipnja 2020
Uživam u izgradnji stvari koje uključuju elektroniku, i uvijek sam želio nešto izgraditi pomoću Arduina.
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 glazbenih instrumenata) na uređaj za pokretanje zvukova i stvaranje glazbe.
Otkrio sam da su mnoge implementacije komplicirane, čak i one za početnike. Bilo je jako frustrirajuće otkriti da moram upotrijebiti stotine redaka nečitljivog koda. Ili da između ostalih primjera u nekim slučajevima moram lemiti otpornik.
Projekt
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, upotrijebio 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 stvarno kratak (partnerske veze):
- Arduino Leonardo (ili klon): između 10 i 20 dolara.
- 16 x Sanwa gumbi 24 mm (ili klon): između 1 USD i 2,50 USD po gumbu.
- Lemilica
- 22 AWG električna žica
Arduino ploča
Kad sam započeo ovaj projekt, otkrio sam da postoji hrpa 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čunalo, 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 učitavanje koda na ploču morate koristiti Arduino IDE. Također 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.
Bilo je to lijepo iznenađenje za mene kada sam otkrio da Arduino Leonardo ima ugrađenu LED diodu koju možete treptati kako biste testirali svoj kôd. Na taj način ne morate graditi vanjski krug na ploči s LED -om i otpornikom.
Kôd:
Korak 2: Treptanje LED diode na ručnom unosu
Sljedeći logičan korak bio je treptanje iste LED diode 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 gumba obrnuto:
- VISOKO kad je krug otvoren (gumb NIJE pritisnut).
- NISKA kada je krug zatvoren (pritisnuto dugme).
Kôd:
Korak 3: Instaliranje MIDIUSB knjižnice
Ova knjižnica omogućuje Arduino ploči s 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 knjižnice pomoću Upravitelja knjižnice:
- 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 knjižnice.
Sada Leonardo može slati MIDI poruke putem USB -a! No, prvo je potreban neki uvid u to kako MIDI radi.
Kako MIDI radi
"MIDI (digitalno sučelje za glazbene instrumente) standardni je komunikacijski protokol koji povezuje elektroničke glazbene instrumente, računala i povezane audio uređaje za reprodukciju glazbe." - Wikipedija
On obrađuje poruke o događajima s podacima o visini tona i brzini svirane note, između ostalih uputa
U ovom specifičnom projektu, ulaz sa 16 gumba šalje različite poruke putem USB -a. Ove se poruke mogu pretvoriti u zvuk na računalu pomoću bilo kojeg prikladnog softvera poput GarageBanda ili Abletona 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 (prestani svirati notu).
- Napomena Uključeno/Isključeno: Vrsta događaja u kombinaciji s MIDI kanalom (1-16). Koristim samo kanal 1 tako da je ili 0x90 za bilješku Uključeno ili 0x80 za bilješku Isključeno.
- Broj note: Svaka nota ima pridruženu numeričku visinu (frekvencijsku ljestvicu).
- Brzina: Od 0 (bez brzine) do 127 (najbrže).
Korak 4: Slanje MIDI poruke
Uključio sam biblioteku MIDIUSB i umjesto da treperi ugrađena LED dioda, poslao sam poruku.
Kôd:
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 pritisnutu zaobljenu tipku za poništavanje na Arduino ploči.
- Pritisnite Upload na Arduino IDE -u.
- Otpustite gumb za resetiranje.
- Ažurirani kôd bit će postavljen na ploču.
Korak 5: Slanje MIDI poruke sa svakog gumba
Posljednji korak bio je mapiranje svakog tona na gumb. Za 16 gumba definirao sam ljestvicu od C2 do E3b, to su rasponi od 36 do 51 u nizu odozdo prema gore i slijeva nadesno. Pogledajte ovu datoteku iz Arduino Tutoriala 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 (vidi 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
Kako bi ovaj projekt bio jednostavan, bio sam izuzetno izbirljiv u odabiru koje značajke uključuju.
- Samo gumbi: 16 arkadnih gumba sličnih Sanwi, u mreži 4x4. Bez gumba, bez klizača, bez fadera ili bilo kojeg drugog analognog ulaza.
- Unibody 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 škaru za žice za arkadne gumbe.
Unibody dizajn
Jedan od izazova s kojima sam se suočio bilo je dizajniranje kućišta dovoljno jednostavnog da ne treba montažu i može se ispisati 3D u jednoj vožnji.
Kako bih izbjegao korištenje vijaka ili ljepila, morao sam dizajnirati kućište koje omogućuje najmanji pristup elektronici. Moja najveća inspiracija za kućište bio je Mac Mini koji ima rupu u obliku kruga na dnu. Također sam za to ž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 ispis (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 je ideja bila olakšati dodavanje i uklanjanje ploče iz kućišta.
Pronalaženje držača isječaka za Arduino na Thingiverseu bilo je jednostavno i trebalo mi je 5 ponavljanja da integriram taj držač u unibody dizajn. Najteže je bilo izraditi noge kako bi se izbjegle rupe za gumbe i kako bi mikro USB bio centriran prema kućištu.
Korak 8: Skupština
Nakon što sam umetnuo sve gumbe, lemio sam kratke crne žice spajajući sve negativne nogice gumba između njih.
Zatim sam lemio duge crvene žice sa svake pozitivne noge za spajanje izravno na ploču.
Za spajanje žica s Arduinom izrezao sam i lemio neke Dupont krajeve i pokrio ih termoskupljajućim cijevima.
Spojio sam žice na ploču istim redoslijedom kao u MIDI Fighteru. Odozdo prema gore i slijeva nadesno
Korak 9: Korištenje MIDI kontrolera
Bilo koji glazbeni softver (ili odgovarajući hardver) može se koristiti za primanje MIDI -ja i stvaranje glazbe. Najviše se preporučuju Garage Band, Ableton Live i znam da postoji hrpa 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 u 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 uključeno "Remote", kao što je spomenuto u vodiču:
Preporučeni:
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 stvaranje prilagođenih i kreativnih unosa nevjerojatno je 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
LED mod kontrolera kontrolera Gamecube: 8 koraka (sa slikama)
LED mod za Gamecube Controller: Jeste li ikada imali kontroler igre koji ste zaista voljeli, ali vam nije bio prilagođen? Pa tako sam se ja osjećao sa svojim Gamecube kontrolerom. Gamecube kontroleri su moje omiljene vrste kontrolera, ali u Sjevernoj Americi tri najčešća su
Izrada Bluetooth adaptera Pt.2 (Izrada kompatibilnog zvučnika): 16 koraka
Izrada Bluetooth adaptera Pt.2 (Izrada kompatibilnog zvučnika): U ovom uputstvu pokazat ću vam kako koristiti svoj Bluetooth adapter kako bi Bluetooth zvučnik bio kompatibilan sa starim zvučnikom.*Ako niste pročitali moje prve upute o &"izradi Bluetooth adapter " Predlažem da to učinite prije nego nastavite. C
Tipka tipkovnice Midi kontrolera: 6 koraka
Tipkasta tipkovnica za midi kontroler: Nadahnuta mojim projektom midifighter-a, odlučila sam napraviti midi kontroler u stilu gumba koji iskorištava brojne digitalne ulaze koje ima Mega Arduino ploča. U ovom Instructableu proći ćemo korake prikupljene od materijala
Izrada malih robota: izrada mikro-sumo robota od jednog kubičnog inča i manji: 5 koraka (sa slikama)
Izrada malih robota: Izrada mikro-sumo robota od jednog kubičnog inča i manjih: Evo nekoliko detalja o izgradnji sićušnih robota i sklopova. Ova instrukcija će obuhvatiti i neke osnovne savjete i tehnike koje su korisne u izgradnji robota bilo koje veličine. Za mene je jedan od velikih izazova u elektronici vidjeti koliko je mali