Satura rādītājs:

Arduino MIDI kontroliera izveide: 9 soļi (ar attēliem)
Arduino MIDI kontroliera izveide: 9 soļi (ar attēliem)

Video: Arduino MIDI kontroliera izveide: 9 soļi (ar attēliem)

Video: Arduino MIDI kontroliera izveide: 9 soļi (ar attēliem)
Video: 1. Q light controller plus sākt darbu ar QLC +. Stiprinājumi un funkcijas 2024, Decembris
Anonim

Šī 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:

  1. 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".
  2. Atrodiet MIDIUSB un noklikšķiniet uz Instalēt.
  3. Kad tas ir pabeigts, blakus MIDIUSB bibliotēkai vajadzētu parādīties instalētam tagam.
  4. 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:

  1. Turiet nospiestu noapaļoto atiestatīšanas pogu Arduino panelī.
  2. Arduino IDE noklikšķiniet uz Augšupielādēt.
  3. Atlaidiet atiestatīšanas pogu.
  4. Atjauninātais kods tiks augšupielādēts uz tāfeles.

5. darbība: MIDI ziņojuma sūtīšana no katras pogas

MIDI ziņojuma sūtīšana no katras pogas
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)

Kanālu vai banku iestatīšana (pēc izvēles)
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

Lieta
Lieta
Lieta
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

Asambleja
Asambleja
Asambleja
Asambleja
Asambleja
Asambleja

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

Izmantojot MIDI kontrolieri
Izmantojot MIDI kontrolieri

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: