Satura rādītājs:
- Šī pamācība sākotnēji tika publicēta manā emuārā 2020. gada 28. jūnijā
- 1. solis: iebūvētās gaismas diodes mirgošana
- 2. solis: LED mirgošana manuālajā ievadē
- 3. darbība: instalējiet MIDIUSB bibliotēku
- 4. darbība: MIDI ziņojuma sūtīšana
- 5. darbība: MIDI ziņojuma sūtīšana no katras pogas
- 6. darbība: kanālu vai banku iestatīšana (pēc izvēles)
- 7. solis: lieta
- 8. solis: montāža
- 9. darbība: MIDI kontrollera izmantošana
Video: Arduino MIDI kontroliera izveide: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Šī pamācība sākotnēji tika publicēta manā emuārā 2020. gada 28. jūnijā
Man patīk būvēt lietas, kas ietver elektroniku, un es vienmēr gribēju kaut ko izveidot, izmantojot Arduino.
Viena no visbiežāk sastopamajām iesācēju būvēm, kuru es atradu, bija MIDI kontrolieris. MIDI kontrolieris ir jebkura aparatūra, kas nosūta MIDI datus (mūzikas instrumenta digitālais interfeiss) uz ierīci, lai iedarbinātu skaņas un radītu mūziku.
Es atklāju, ka daudzas ieviešanas ir sarežģītas, pat tās, kas paredzētas iesācējiem. Bija ļoti sarūgtinoši konstatēt, ka man jāizmanto simtiem neizlasāma koda rindu. Vai arī, ka dažos gadījumos, cita starpā, man ir nepieciešams lodēt rezistoru.
Projekts
Izveidojot savu Arduino MIDI kontrolieri, mans nodoms bija izveidot patīkamu projektu, saglabājot zemāko troksni. Kaut kas jebkurš iesācējs varētu sekot. Lai to paveiktu, es kā iedvesmu izmantoju MIDI Fighter 3D un noņemu visas nebūtiskās funkcijas.
Mana projekta kopējās izmaksas bija zem 30 USD, un materiālu saraksts bija patiešām īss (saistītās saites):
- Arduino Leonardo (vai klons): no 10 līdz 20 USD.
- 16 x Sanwa pogas 24 mm (vai klons): no 1 USD līdz 2,50 USD par pogu.
- Lodāmurs
- 22 AWG elektriskais vads
Arduino padome
Kad es sāku šo projektu, es atklāju, ka ir daudz jaunu Arduino modeļu (neskaitot simtiem saderīgu dēļu). Un tie visi piedāvā nedaudz atšķirīgas iespējas.
Man vajadzēja nosūtīt MIDI signālus uz datoru, un vienkāršākais veids, kā to izdarīt, ir caur USB. Jebkurai Arduino platei, kuras pamatā ir mikrokontrolleris ATmega32u4, ir iebūvēta USB komunikācija.
Oficiālās Arduino plates ar vietējo USB atbalstu ir Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Šīm plāksnēm ir integrēts USB atbalsts, kas nozīmē, ka tās var darboties kā USB MIDI ierīce.
Es nolēmu doties ar Arduino Leonardo klonu. Tam ir pietiekami daudz ieeju šim projektam, un tajā ir arī galvenes, kas atvieglo vadu pievienošanu/atvienošanu.
Pirmie soļi
Lai gan es soli pa solim paskaidrošu, kā es ieviesu šī projekta kodu, jūs varat lejupielādēt galīgo versiju.
Lai augšupielādētu kodu uz tāfeles, jums jāizmanto Arduino IDE. Viņiem ir arī tīmekļa redaktors, kas ir ļoti noderīgs, taču viņiem ir ierobežota kvota reizes dienā, kad varat apkopot kodu.
1. solis: iebūvētās gaismas diodes mirgošana
Tas ir smieklīgi, kā "Hello World" aparatūras pasaulē mirgo LED.
Man bija patīkams pārsteigums, atklājot, ka Arduino Leonardo ir iebūvēta gaismas diode, kuru varat mirgot, lai pārbaudītu savu kodu. Tādā veidā jums nav jāveido ārējā ķēde uz maizes dēļa ar LED un rezistoru.
Kods:
2. solis: LED mirgošana manuālajā ievadē
Nākamais loģiskais solis bija mirgot vienai un tai pašai gaismas diodei ikreiz, kad sūtu signālu. Es noņēmu divu Dupont vadu viena gala plastmasas vāku un pievienoju otru galu pie tāfeles:
- Tapas numurs 2: viena no digitālajām ieejām (pozitīva). Tā varētu būt jebkura digitālā tapa.
- Pin GND: jebkura zemējuma tapa (negatīva).
Tagad, katru reizi, kad pievienojos vadu atklātajiem galiem, es aizveru ķēdi un tādējādi varu izpildīt kodu
Katrai no 20 Leonardo digitālajām tapām ir iekšējais rezistors (pēc noklusējuma atvienots), ko var iespējot, izmantojot INPUT_PULLUP. Ņemiet vērā, ka ievilkšanas ievade nozīmē, ka pogas stāvoklis ir apgriezts:
- HIGH, kad ķēde ir atvērta (poga NAV nospiesta).
- LOW, kad ķēde ir aizvērta (tiek nospiesta poga).
Kods:
3. darbība: instalējiet MIDIUSB bibliotēku
Šī bibliotēka ļauj Arduino plates ar USB iespējām darboties kā MIDI instruments, izmantojot USB. Plašāku informāciju skatiet oficiālajā dokumentācijā.
Izmantojot Arduino IDE, varat instalēt papildu Arduino bibliotēkas, izmantojot bibliotēkas pārvaldnieku:
- Atveriet IDE un noklikšķiniet uz izvēlnes "Skice", pēc tam uz "Iekļaut bibliotēku", pēc tam uz "Pārvaldīt bibliotēkas".
- Atrodiet MIDIUSB un noklikšķiniet uz Instalēt.
- Kad tas ir pabeigts, blakus MIDIUSB bibliotēkai vajadzētu parādīties instalētam tagam.
- Aizveriet bibliotēkas pārvaldnieku.
Tagad Leonardo var nosūtīt MIDI ziņas, izmantojot USB! Bet vispirms ir nepieciešams zināms ieskats par to, kā darbojas MIDI.
Kā darbojas MIDI
"MIDI (mūzikas instrumentu digitālais interfeiss) ir standarta saziņas protokols, kas savieno mūzikas atskaņošanai elektroniskos mūzikas instrumentus, datorus un saistītās audio ierīces." - Vikipēdija
Cita starpā tā apstrādā notikumu ziņojumus ar datiem par atskaņotās notas augstumu un ātrumu
Šajā konkrētajā projektā ievade no 16 pogām nosūta dažādus ziņojumus, izmantojot USB. Šos ziņojumus var pārvērst skaņā datorā, izmantojot jebkuru piemērotu programmatūru, piemēram, GarageBand vai Ableton Live.
MIDI ziņojuma anatomija
Lai nosūtītu MIDI ziņojumu, es izmantoju sendMIDI () metodi no MIDIUSB bibliotēkas, kuru es instalēju 3. darbībā.
Šī metode var saņemt 4 parametrus:
- Notikuma veids: tas var būt 0x09 piezīmei Ieslēgts (atskaņot piezīmi) vai 0x08 piezīmei Izslēgts (pārtraukt piezīmes atskaņošanu).
- Piezīme Ieslēgts/izslēgts: notikuma veids apvienojumā ar MIDI kanālu (1-16). Es izmantoju tikai 1. kanālu, tāpēc tas ir vai nu 0x90 piezīmei Ieslēgts, vai 0x80 piezīmei Izslēgts.
- Piezīmes numurs: katrai piezīmei ir saistīts ciparu piķis (frekvenču skala).
- Ātrums: no 0 (bez ātruma) līdz 127 (ātrākais).
4. darbība: MIDI ziņojuma sūtīšana
Es iekļāvu MIDIUSB bibliotēku un tā vietā, lai mirgo iebūvētā gaismas diode, es nosūtīju piezīmi.
Kods:
⚠ Svarīgi: no šī soļa Arduino pārvēršas par MIDI USB kontrolieri un pārtrauc koda saņemšanu, izmantojot USB.
Kad esat iestrēdzis stāvoklī, kurā Arduino vairs nevar ieprogrammēt, rīkojieties šādi:
- Turiet nospiestu noapaļoto atiestatīšanas pogu Arduino panelī.
- Arduino IDE noklikšķiniet uz Augšupielādēt.
- Atlaidiet atiestatīšanas pogu.
- Atjauninātais kods tiks augšupielādēts uz tāfeles.
5. darbība: MIDI ziņojuma sūtīšana no katras pogas
Pēdējais solis bija kartēt katru piķi līdz pogai. 16 pogām es definēju skalu no C2 līdz E3b, kas ir piķi no 36 līdz 51 secīgi no apakšas uz augšu un no kreisās uz labo. Pārbaudiet šo failu no Arduino Tutorials, lai redzētu, kāds piķis atbilst katrai piezīmei.
Es izmantoju digitālās tapas no 2 līdz 12 un analogās tapas (izmantojot tās kā ciparus) no A0 līdz A4.
Un šāds izskatās galīgais kods
6. darbība: kanālu vai banku iestatīšana (pēc izvēles)
Ja vēlaties pievienot vairāk pogu ar iespēju pārslēgt kanālus vai bankas, piemēram, MIDI Fighter 3D (skatīt attēlu), Arduino Leonardo ir vēl četras tapas, kuras varat izmantot. Arduino Leonardo ir 20 digitālās ievades/izvades tapas, no kurām tikai 16 tiek izmantotas piezīmju atskaņošanai.
Varat izmantot šīs papildu pogas, lai atjauninātu koda mainīgo un nosūtītu tā vērtību kā parametru uz MidiUSB.sendMIDI metodi:
gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea
7. solis: lieta
Lai šis projekts būtu vienkāršs, es biju ārkārtīgi izvēlīgs, izvēloties, kuras funkcijas iekļaut.
- Tikai pogas: 16 Sanvai līdzīgas arkādes pogas 4x4 režģī. Nav pogu, slīdņu, faderu vai citas analogās ieejas.
- Korpusa korpuss: neizmantojiet skrūves, uzgriežņus, skrūves vai līmi korpusam vai Arduino plāksnes turēšanai.
- Ikdienas rīki: Piemēram, es lodēju vadus, nevis nopirku konkrētu vadu griezēju arkādes pogām.
Unibody dizains
Viens no izaicinājumiem, ar kuru es saskāros, bija pietiekami vienkārša korpusa izveide, lai to nebūtu nepieciešams salikt un to varētu izdrukāt 3D vienā piegājienā.
Lai izvairītos no skrūvju vai līmes izmantošanas, man bija jāizstrādā korpuss, kas nodrošina vismazāko piekļuvi elektronikai. Mans lielākais iedvesmas avots bija Mac Mini, kura apakšā ir apļa formas caurums. Es arī gribēju tam izveidot skrūvējamu vāku, bet es nolēmu to atvērt, lai atklātu elektroniku.
Lejupielādējiet 3D izdrukājamu lietu (322 KB). Ieteicamie iestatījumi: PLA, 0,15 mm slāņi, 20% piepildījums, atbalsta izpildītāji vismaz noapaļotajam apakšējam caurumam, Arduino turētāji un mikro USB.
Turiet Arduino bez skrūvēm
Leonardo ir 4 caurumi, lai ieskrūvētu dēli jebkurā piemērotā korpusā, taču mana ideja bija atvieglot tā dēļa pievienošanu un izņemšanu no korpusa.
Vietnē Thingiverse bija viegli atrast klipu turētāju Arduino, un man vajadzēja 5 atkārtojumus, lai integrētu šo turētāju vienotajā dizainā. Sarežģītākā daļa bija padarīt kājas, lai izvairītos no caurumiem pogām, un panākt, lai mikro USB būtu izlīdzināts ar korpusu.
8. solis: montāža
Pēc visu pogu ievietošanas vietā es lodēju īsus melnus vadus, kas savieno visas pogu negatīvās kājas starp tām.
Tad es lodēju garus sarkanus vadus no katras pozitīvās kājas, lai izveidotu savienojumu tieši ar dēli.
Lai savienotu vadus ar Arduino, es nogriezu un lodēju dažus Dupont galus un pārklāju tos ar termiski saraušanās cauruli.
Es pievienoju vadus pie plates, ievērojot to pašu secību kā MIDI Fighter. No apakšas uz augšu un no kreisās uz labo
9. darbība: MIDI kontrollera izmantošana
MIDI saņemšanai un mūzikas atskaņošanai var izmantot jebkuru mūzikas programmatūru (vai piemērotu aparatūru). Ieteicamākās ir Garage Band, Ableton Live, un es zinu, ka tālrunī ir jāinstalē virkne lietotņu.
Visi šie rīki ir noderīgi, lai ielādētu iepriekš noteiktas skaņas pirkstu bungošanai, taču tie tika izgatavoti lielākiem mērķiem. Iesācējiem šos rīkus var būt grūti uzstādīt.
MIDI tīmekļa pārlūkprogrammā
Lai kaut ko vairāk pielāgotu šim projektam un tā vienkāršībai, es izveidoju tīmekļa rīku, kas pilnībā koncentrējas uz MIDI kontrolieriem.
Punchy: WebMIDI un WebAudio ieviešana MIDI kontrolieriem.
Tas var lasīt MIDI ziņojumus jebkurā pārlūkprogrammā, kas atbalsta WebMIDI JavaScript API. Pēc tam tas atskaņo skaņas sintezatorā (izmantojot WebAudio API) vai paraugu ņemšanas ierīcē, ielādējot pielāgotas skaņas no jebkura skaņas pakotnes.
Iestatiet Ableton Live
Lai MIDI kontrolieris darbotos ar Ableton Live, veiciet šīs vienkāršās darbības no to oficiālās dokumentācijas.
Dodieties uz Preferences → Saistīt MIDI un pārliecinieties, vai ievadē ir "Track" un "Remote" IESLĒGTS un izejā ir "Remote" ON, kā arī minēts ceļvedī:
Ieteicams:
Alternatīva MIDI kontroliera izveide, izmantojot Makey-Makey un Water: 6 soļi
Alternatīva MIDI kontroliera izveide, izmantojot Makey-Makey un Water: Makey-Makey izmantošana, lai izveidotu pielāgotas un radošas ievades, ir neticami vienkārša! Lai gan daudzi cilvēki, kas izmanto aparatūru, izveido savu instrumentu, izmantojot Makey-Makey ievades, lai iedarbinātu skaņas vai piezīmes, mēs nolēmām, ka varam darīt vēl vairāk
Fiziskā spēļu kontroliera izveide: 10 soļi (ar attēliem)
Fizisko spēļu kontroliera izveide: Kad tika palaists Nintendo Wii, spēlētāji tika mudināti atstāt dīvānu un lēkt, dejot un dunci, lai savā izvēlētajā spēlē iegūtu punktus. Lai gan Wii veidošanai ir strauja mācīšanās līkne, to ir viegli izveidot
Midi kontroliera poga-tastatūra: 6 soļi
Midi kontrollera pogas-tastatūra: Iedvesmojoties no sava vidējā cīnītāja projekta, es nolēmu izveidot pogas stila midi kontrolieri, kas izmanto daudzas Mega Arduino plates digitālās ieejas. Šajā pamācībā mēs apskatīsim soļus, kas veikti, apkopojot materiālus
Circuito Arduino kontroliera spilvens: 6 soļi (ar attēliem)
Circuito Arduino kontroliera spilventiņš: " Circuito " ir DIY vadības bloks. Tas ir papildu projekts manam iepriekšējam Robotic Arm projektam. Kontroles spilventiņš ir ar datoru vadāmas mehāniskas konstrukcijas, kas palīdz pārvietot un vadīt jebkuru robotu roku, kas ir atkarīga no servo moto
Wizard Glove: Arduino kontrolēts kontroliera cimds: 4 soļi (ar attēliem)
Wizard Glove: Arduino kontrolēts kontroliera cimds: The Wizard Glove. Savā projektā esmu izveidojis cimdu, kuru varat izmantot, lai vēsā un aizraujošā veidā spēlētu savas iecienītākās ar maģiju saistītās spēles, izmantojot tikai dažus pamata arduino un arduino līdzekļus. jūs varat spēlēt tādas spēles kā vecākie ritinājumi vai jūs