Kako narediti poceni krmilnik MIDI na osnovi Arduina z lastnimi rokami. Kako z lastnimi rokami narediti poceni krmilnik MIDI, ki temelji na Arduinu. Branje položajev potenciometra

Že dolgo sem si želel prebuditi skladatelja v sebi in začeti ustvarjati svojo elektronsko glasbo. Vendar so me (milo rečeno) odvrnile visoke cene krmilnikov MIDI. Toda po brskanju po internetu sem dobil idejo, da ustvarim svoj krmilnik z uporabo Arduino Uno in prevodnih barv!

Začnimo)

1. korak: Izbira delov

Lahko rahlo odstopate od predstavljenega materiala in krmilnik MIDI, ki ste ga sestavili, bo še vedno deloval (z "nekoliko odstopanjem" mislim, da lahko namestite upor z nekoliko drugačno vrednostjo ali pustite enega od nožic odklopljenega).

Od elektronike potrebujemo:

  • 1 Arduino Uno s kablom USB;

  • 1 kozarec prevodne barve;

  • 1 montažna plošča dimenzij 5x7 cm;

  • 3 gumbi;

  • upori z uporom 2,2 kOhm;

  • 1 LED;

  • upori z uporom 10 kOhm;

  • 1 senzor LDR;

  • upori z uporom 4,7 kOhm;

  • 1 skakalec;

  • 12 kosov 2,7 MΩ uporov;

  • 30 ravnih zatičev;

  • 12 upognjenih zatičev;

  • 12 adapterjev;

  • 12 sponk za papir.

Poleg elektronike boste potrebovali tudi naslednja orodja:

  • Spajkalnik in spajka;
  • Rezalniki žice;
  • Stojalo za spajkanje delov (tretja roka);
  • multimeter;
  • Več žic in/ali tanka kovinska žica.

2. korak: Spajkajte zatiče

Začnimo ustvarjati ploščo s spajkanjem zatičev. Objavimo upognjene zatiče v sredini prve vrstice na plošči. Kasneje bodo služili kot "občutljivi" zatiči, na katere bo priključena tipkovnica.

Po namestitvi zatičev opazite, da kratki zatiči štrlijo iz plošče. Pritiskamo nanje, da se vse zlije. Zdaj jih spajkamo in takoj preverimo povezave za kratke stike.

Opomba: zatičev ne spajkajte predolgo, sicer se bodo segreli in stopili plastiko.

Za naslednji korak postavite ravne glavnike v reže Arduino. Namestimo ploščo na zatiče, ki so vstavljeni v Arduino. To dejanje je zahtevalo malo sile, ker nožice niso popolnoma poravnane z luknjami na plošči.

Ko ste ploščo uspešno namestili na zatiče, se prepričajte, da so zatiči poravnani z zgornjim robom plošče. Po tem jih je mogoče spajkati.

3. korak: Spajkajte mostičke

Zdaj odstranimo ploščo iz Arduina in jo obrnemo na hrbtno stran. Spajkamo mostičke, na katere bomo kasneje pritrdili komponente. To lahko storite na dva načina:

  • Napolnite vse potrebne luknje s spajkanjem in jih nato povežite med seboj.
  • Uporabite tanko žico.

Svetujem vam, da uporabite drugo metodo, ker je preprostejša in hitrejša. Če izberete to metodo, postavite žico na ploščo, kot je prikazano na sliki.

  • Rdeča pika pomeni spajkanje žice v luknjo.
  • Rumena pika - povežite tanko žico z zatičem na drugi strani plošče (kot na tretji sliki).

Kot lahko vidite, sem nekoliko pokvaril spodnji levi kot, ko sem nanesel preveč spajkanja, zato bodite previdni!

Nasvet: če nimate tanke žice, uporabite ostanke vodnikov uporov, ki jih uporabljate.

4. korak: Spajkajte kapacitivne upore na dotik

Vgradimo komponente in sicer 2.7 MOhmupori, ki bo opravljal senzorično-kapacitivne funkcije.

Opomba: Če želite izvedeti več o teoretičnih osnovah in praktičnih aplikacijah kapacitivnih senzorjev na dotik, vam svetujem, da si ogledate naslednje povezave:

Postavimo eno 2.7 MOhmupor od spodnjega dela skrajno desne upognjene bucike in noge potisnite skozi luknje (kot na prvi sliki). Zdaj obrnimo ploščo in potisnimo en uporovni vod nazaj v naslednjo luknjo (kot je prikazano na drugi sliki). Spodnjo nogo upora prispajkajte na luknjo, zgornjo nogo upora pa na pin terminal. Potem bomo pritrdili 7 cm žice na ta zatič (kot je razvidno iz tretje slike).

Ponovimo postopek z vsemi upori in žicami ter jih spajkamo na svoje mesto. Spodnji kraki uporov morajo tvoriti eno dolgo povezavo.

nasvet: Izberite izmenične barve za žice - to bo olajšalo povezave v kasnejših korakih.

5. korak: Spajkajte gumbe

Začnimo s postavitvijo gumbov in uporov na ploščo, kot na prvi in ​​drugi sliki. V mojem primeru sem uporabil 2.2 kOhm upori, lahko pa uporabite katerikoli upor z vrednostjo med 2 kOhm in 10 kOhm.

Obrnimo ploščo in vse spajkamo na svoje mesto. Slika 3 pojasnjuje različne povezave, ki jih boste morali narediti:

  • modra pika - označuje krak gumba, ki ga je treba spajkati na ploščo;
  • roza pika – označuje nogo upora, ki jo je treba spajkati na ploščo;
  • rdeča črta pomeni, da morate spajkati dve točki v eno povezavo;
  • črna črta označuje žico, ki bo šla od ene noge gumba skozi luknjo v plošči, ki se bo nato povezala z zatičem na drugi strani.

Če je vse pravilno spajkano, vam bosta skrajna leva gumba omogočala spreminjanje oktav, medtem ko bo skrajni desni gumb omogočilLDR senzor.

6. korak: Spajkajte LDR in LED

Ko so gumbi spajkani, nadaljujemo z nameščanjem LDR, LED in pripadajočih uporov. Preden to storite, bi bilo pametno eksperimentirati z vrednostmi uporov, ki bodo šli na LED. Morda je moja ocena previsoka, da bi prižgal vašo LED. Malo eksperimentirajte, da najdete pravo vrednost upora.

Nasvet: kateri koli upor med 330Ohm in 5kOhmbi bila dobra rešitev za 5mmLED.

Zdaj bomo uredili LED, LDR in upore ( 4.7 K zaLDR) na pravih mestih. Obrnemo ploščo in vse spajkamo. Tretja slika bo pojasnila različne povezave, ki jih je treba narediti:

  • rjave pike so zatiči LDR, ki jih je treba prispajkati na ploščo;
  • roza pika je uporovna noga, ki jo je treba prispajkati na ploščo;
  • oranžne pike so LED zatiči, ki jih je treba spajkati na ploščo;
  • rdeča črta - dve točki morate spajkati v eno povezavo;
  • črna črta je žica, ki bo šla od izhoda upora skozi luknjo na plošči, ki se bo nato povezala z zatičem.

Opomba: Pred spajkanjem LED se prepričajte, da je polarnost LED pravilna. Pozitivni priključek LED mora biti priključen na upor, negativni priključek pa na maso.

7. korak: preizkusite vse povezave

Zdaj je pravi čas, da preizkusite, ali so povezave gumbov, LDR in LED uspešno spajkane. To je zadnja priložnost za odpravo napak, svetujem vam, da prenesete priloženo kodo in zaženete program. in prenesite Arduino_Test_Fixture_Code na ploščo Arduino.

Če je vse uspešno in je test opravljen, lahko nadaljujete na naslednji korak. Če ne, še enkrat preverite spajkane povezave na plošči. Bolje je imeti multimeter pri roki, to pravim iz lastnih grenkih izkušenj.

8. korak: Dokončanje plošče

Začnimo z namestitvijo žic v luknje, kot je prikazano na prvi sliki. Za ta korak je priročno uporabiti dve žici različnih barv.

Ploščo obrnemo in odrežemo žice na želeno dolžino. Spajkajte jih na zatiče, ki gredo v priključke Arduino. Preden začnete uporabljati Krmilnik MIDI, najprej morate preizkusiti njegove povezave s testno skico. Naložite skico, odprite serijska vrata in se dotaknite "občutljivih" zatičev na plošči. Če vidite besedilo »Opomba x je aktivna« za vsak žebljiček, ko se ga dotaknete, vsi žebljički delujejo pravilno.

9. korak: Pretvorite Arduino v napravo MIDI

Ko je plošča pripravljena, je čas, da Arduino pretvorite v krmilnik MIDI, ki ga bodo prepoznali glasbeni programi, kot sta Ableton in Fl Studio, ali celo druge naprave MIDI. Postopek je sestavljen iz dveh korakov:

  1. Spremenite trenutno vdelano programsko opremo na Arduino Uno v programe, združljive z MIDI;
  2. Naloži MIDI skico v Arduino.

Začnimo pri prvi točki. Pogojno naloženo v Arduino vdelana programska opremaUSB-serijska vrata, ki Arduinu omogoča izmenjavo sporočil z osebnim računalnikom in Arduino IDE. Z novim programom DualMoco, bo dodan drugi način, ki bo Arduinu omogočil, da deluje kot MIDI naprave.

Uporabili bomo program FLIP in sledili navodilom za spremembo vdelane programske opreme Arduino. V arhivu v mapi Firmware boste našli delujočo datoteko - datoteko DualMoco.hex.

Po prenosu nove vdelane programske opreme znova povežite Arduino z računalnikom. Če gre vse v redu, Arduino IDE ne bi smel zaznati, ker je novi program v ( MIDInačin). Odprite glasbeni program, ki lahko snema MIDI, in preverite, ali je Arduino poimenovan MIDI/ MOCOzaLUFA je bilo prikazano nad nastavitvami MIDI, kot lahko vidite na 1. sliki.

10. korak: Končne priprave

Posebnost DualMoco je, da ima drugi način - USB-serijska vrata, ki vam omogoča nalaganje skic iz Arduino IDE, tako kot pri navadni firmware. Če želite Arduino preklopiti v drugi način, povežite dva zatiča ISCP skupaj, kot je prikazano na sliki 1 in 2. Uporabite lahko kos žice ali majhno premostitveno žico, kot je prikazano na slikah. Zdaj za nekaj sekund odklopite kabel USB iz Arduina in ga znova priklopite, Arduino bi se moral prikazati v Arduino IDE.

Opomba: Ko želite preklopiti iz načinausb-serijska vrataVNačin MIDI, odstranite mostičekNoge ISCP, kot je prikazano na tretji sliki, in znova povežiteArduino na PC.

Čas je, da naložite trenutno skico v Arduino, Arduino_Končno_Koda. Prenesite ga, pretvorite Arduino v usbserijska vrata in prenesite kodo. Če morate natančno prilagoditi prag, eksperimentirajte z vrednostmi PRAG in RES. Ko vse deluje po pričakovanjih, spremenite trenutno vrstico 17 iz:

logični midiMode = false; // če je midiMode = false, bo Arduino deloval kot usb-serijska naprava

boolean midiMode = res;// če je midiMode = true, bo Arduino deloval kot izvorna naprava MIDI.

Po končnih spremembah kode je čas za testiranje glasbenega programa, ki podpira naprave MIDI. Najprej preklopimo Arduino v način MIDI za to:

  1. Naložimo končno kodo v Arduino.
  2. Odstranimo kabel USB iz Arduina.
  3. Preklopite Arduino v način MIDI tako, da odstranite mostiček z zatičev ISCP.
  4. Namestimo kabel USB v Arduino.

Če je šlo vse v redu, odprite glasbeni program in se začnite dotikati žebljičkov. Čarobni zvoki morajo zveneti ...

11. korak: Spajkajte sponke za papir na mostičke

Ko je plošča Arduino popolnoma dokončana, je čas, da se osredotočimo na tipkovnico in kako jo povezati s ploščo. Obstaja milijon načinov za to, vendar sem izbral sponke za papir, ki bi jih pritrdili na pobarvan papir (lahko jih je pritrditi in jih je mogoče ponovno uporabiti).

Postopek spajkanja sponk za papir na žice je precej preprost:

  1. Odrežite vtič na eni strani žice;
  2. Z žice odstranimo izolacijo za 5 mm;
  3. Spajkajte ogoljeno žico na sponko za papir;
  4. Ponovite za vseh 12 sponk za papir.

Opomba: sponke ne smejo biti prevlečene z nobenim premazom (barvo ali plastiko).

12. korak: Barvanje predloge

Medtem ko je mogoče igrati na tipkovnico Arduino MIDI samo z dotikom sponk za papir, je veliko bolj zabavno izdelati lastno šablono in jo uporabiti. Pobarvaj natisnjeno predlogo. Predloga je v arhivu projekta.

Barvanje šablone je povsem preprosto, pazite le, da med vrsticami pustite prostor in uporabite ustrezne barve, sicer ne bo šlo. Ko se barva posuši, pritrdite sponke za papir na "ključe" in lahko začnete ustvarjati glasbo.

Hvala za vašo pozornost!)

Klaviatura je zasnovana za povezavo z zunanjim zvočnim modulom ali računalnikom (če obstaja ustrezen vmesnik) po MIDI protokolu - za snemanje glasbe v sekvencerski program ali nastop v živo. Število tipk v predlagani različici je 48, vendar se lahko poveča na 64 brez spreminjanja vezja. Posebnost predlagane tipkovnice je njena občutljivost na silo udarca na tipko.

Zgodovina naprave

Pred časom sem bil v zvezi z nakupom stanovanja prisiljen izgubiti luksuzni instrument, ki mi je služil kot MIDI klaviatura - to je bila legendarna YAMAHA DX-7. Ko se je žalost polegla, se je pojavilo vprašanje v vsej svoji resnosti in grdoti: na čem delati? V tem trenutku je s prizadevanji mojega prijatelja v moje roke padlo napol sestavljeno vezje za KR1816BE39 (v nasprotnem smislu se ta procesor imenuje 8048). Vezje je enostavno za sestavo in nastavitev, predvsem pa je prišlo v roke ob pravem času. Tipkovnico sem sestavil v obliki matrike 8x6 z uporabo KR1533ID7 in KR1533KP7. Bila je tudi muha v mazilu - dve pomanjkljivosti te sheme do smrti ubijeta vse njene prednosti: pomanjkanje občutljivosti na hitrost pritiska na tipko (zvočniki) in kolesce PITCH WEEL. No, enkrat sem programiral na Z-80 (in naredil celo delujoč sekvencer) in se odločil, da se otresem starih časov. Odločno sem zavrnil Z-80 kot CPU kot moralno zastarelo. Poleg tega nisem želel veliko spajkati in odločil sem se, da vzamem isto napravo na KR1816BE39 kot osnovo in jo opremim z drugim multiplekserjem za prekinitvene (zgornje) kontakte tipk. Našel sem dokumentacijo (ne boste verjeli - v knjižnici knjiga “Designing Digital Devices on Single-Chip Microprocessors”) za asembler KR1816BE39 in načečkal program ... In potem se je izkazalo, da ima prijateljev programator ROM umrl, in preprosto ni bilo ničesar, s čimer bi lahko flashal programa ... Od žalosti sem popolnoma izgubil razum in se odločil, da ponovno napišem isti algoritem za PIC. V pol dneva so spajkali programator (LUDIPIPO), nato naredili prototip iz podnožja, KR1533ID7 in para KR1533KP7, celotno montažo pa opravil MGTF brez žiga. In proces se je začel...

Najprej je bila lansirana nedinamična različica programa (predstavljam jo tudi za tiste, ki imate tipkovnico z enim stikom na tipko). Nato se je začela dinamična različica. In potem je prišla ideja, da bi dodali gumbe in indikator. Dejstvo je, da sem imel WAVEBLASTER (hčerinski sintetizator valovne tabele za zelo stare zvočne sisteme), ki je dolgo ležal v mirovanju. S tem, ko sem ga povezal s svojim ustvarjanjem, sem dobil nekaj, na čemer lahko igraš (po svojih najboljših močeh in talentu) brez računalnika, kar je včasih precej priročno. To je določilo nabor funkcij na gumbih - lahko je uporabno pri povezovanju z zvočnimi moduli med igranjem "v živo". Funkcije gumbov je enostavno spremeniti tako, da napišete lastne upravljalnike in uporabite moje postopke pozivanja in prikaza. Nekako se je tipkovnica, sestavljena v železnem ohišju, izkazala za bolj priročno kot YAMAHA PSS (še vedno tipke polne velikosti, pedal in, kar je najpomembneje, dinamika!). Sredi ustvarjalnega procesa se je pojavila težka želja, da bi naredili različico tipkovnice MIDI izključno za računalnik - indikator in gumbi so neobvezni, potrebna pa sta kolesa PITCH WEEL in MODULATION. Nekaj ​​časa sem se mučil s tem, a je na koncu obupal in spet vklopil spajkalnik. Elektronike ni težko sestaviti, mehaniko pa je nekoliko težje in začel sem gubati čelo nad obliko kolesa. Po premisleku sem se odločil, da opustim drugo kolo - tako ali tako nikoli ne vrtim obeh naenkrat, običajno najprej pišem note in tone, nato dodajam modulacijo. Ne nazadnje je bilo treba upoštevati prepolovitev obsega mehanskega dela, ki sem ga imel tako rad. Za manj lene bom v nadaljevanju razložil, kako narediti dve kolesi skoraj brez težav. Da bi še vedno lahko pisal modulacijo, sem se odločil organizirati tri načine delovanja kolesa: višina za 2 poltona, višina za 1 polton (priročno) in modulacija. Vse to lahko preklopite z enim gumbom, način pa označite s parom LED diod. Da bi poenostavil vezje, sem odstranil preostale gumbe in indikatorje; vse to ni potrebno za delo s sodobnimi programi sekvencerja.

Kolo je seveda treba postaviti na os potenciometra, to je razumljivo, toda s čim naj bo povezano? Moja prva misel je bila, da uporabim enosmerni časovnik 555, vendar so izračuni pokazali, da bi bilo težko doseči natančne in stabilne meritve trajanja impulza, medtem ko bi poskušal zagotoviti sprejemljivo hitrost vzorčenja kolesa, saj je procesor v glavnem zaposlen z merjenjem preklopa. čas stikov tipkovnice. Edina preostala možnost je uporaba analogno-digitalnega pretvornika (ADC). Ker sem uporabil Pic16F84 brez vgrajenega ADC, sem se spomnil svojega inženirskega ozadja (in svoje domače tovarne) in naredil ADC iz več uporov s primerjalnikom (in delom programa). Izkazalo se je preprosto, poceni in precej natančno.

Predstavljam oba diagrama - tako z gumbi kot s koleščkom, kot tudi programe zanje. Če želite, lahko oba vezja enostavno združite tako, da rahlo spremenite naslove zunanjih naprav, zapomniti si morate le, da način CHORUS (STEREO) uporablja višino tona za pridobitev razglasitve in ga morate bodisi odstraniti, bodisi skrbeti za oddajanje višine tona z razglasitvijo; prek kanalov.

Torej – dejanska tipkovnica

Diagram naprave

Prva se je pojavila nedinamična različica, neobčutljiva na silo udarca na tipko - za preizkus funkcionalnosti postavitve.

PIC16F84 sem uporabil kot procesor iz več razlogov: ta čip je na voljo, poceni in enostaven za programiranje in bil je tisti, ki sem ga imel pri roki. Pozor: PIC16C84 ni primeren - ima samo 36 celic RAM-a in program ne bo deloval. Vendar kolesno vezje uporablja manj celic RAM in njegov program je mogoče stlačiti v PIC16C84 z zmanjšanjem še nekaj celic, na primer MIDCH (z dodelitvijo stalnega kanala MIDI vsem prenesenim podatkom).

Diagram dinamične tipkovnice z indikacijo je prikazan spodaj:

Vezje je v mnogih pogledih tradicionalno - težko je izumiti kolo brez pedalov in koles J Port B deluje za prenos - nižjih 7 bitov daje ključni naslov v matriki ali podatke za zunanje naprave (indikator in DAC kolesa). Najpomembnejši bit se uporablja za izpis podatkov MIDI v serijski kodi - pretvorba in izhod se izvedeta v programski opremi. Zato mora biti kristal na 4 MHz, razen če želite prepisati rutino izhoda bajtov MIDI. Dva najmanj pomembna bita vrat A delujeta za sprejem - sprejemata signale iz multiplekserjev "sproščenih" in "pritisnjenih" kontaktov tipk, trije najpomembnejši biti pa določajo naslov zunanje naprave (prek drugega dekoderja KR1533ID7). V vezju s kolescem sem opustil dekodirnik naslovov zunanjih naprav, da bi poenostavil vezje in sprostil visoki bit priključka PA4 za vnos podatkov iz primerjalnika, zato so naslovi tipkovnice in gumbov različni. Pri združevanju vezij bo treba vrniti to mikrovezje, za dešifriranje naslova uporabiti bita vrat PA2 in PA3 ter nasloviti 4 naprave: tipkovnico, gumbe, podatkovni register dinamične indikacije in register poznavanja dinamične indikacije. Indikacijo načina kolesa bo treba prepisati.

Vezje s kolesom PITCH WEEL / MODULATION izgleda takole:

Na vsako tipko je nameščena ena dioda za ločevanje. Upori na vhodih multiplekserjev ne smejo biti večji od 8 k, sicer so možne napake zaradi montažne kapacitivnosti. Indikator - poljuben s skupno anodo za 3 števke, če so sponke segmentov vsake števke izhodne ločeno, morajo biti sponke segmentov z istim imenom združene - indikacija je dinamična in števke svetijo zaporedno. Kateri koli gumb, brez zaklepanja, odboj kontakta nadzoruje programska oprema. Svetleče diode so nameščene v bližini istoimenskih gumbov in označujejo aktiviranje ustreznih načinov; gumba "+" in "-" nimata LED. Tranzistorji na indikatorju so kateri koli z nizko močjo in visokofrekvenčnim povratnim prevodom. Dva registra KR1533IR23 se uporabljata za izmenično zaklepanje naslova in kode števke trenutnega indikatorja (svetleče diode so prav tako združene v dve kvazi števki). Uporabil sem standardno klaviaturo sovjetskih električnih orgel z 48 tipkami (izdelana je bila tudi ločeno kot radijski oblikovalec "START" in je precej razširjena). Da bi zmanjšali višino tipkovnice in debelino inštrumenta, smo pustili dve od šestih kontaktnih skupin pod vsako tipko, vse skupaj pa razrezali in na novo zlepili. Na splošno je dovolj ena preklopna skupina na tipko, vendar je bilo bolj priročno, da jo lepite na ta način. Zbirke "sproščenih" in "pritisnjenih" kontaktov so dolge 8 tipk. Po želji lahko uporabite tudi tipkovnico, kjer sta namesto preklopne skupine kontaktov uporabljena dva para zapiralnih kontaktov - en par se zapre na začetku gibanja tipke, drugi na koncu (kot pri instrumentih YAMAHA). V tem primeru mora biti signal na PA0 doveden iz inverznega izhoda multiplekserja (pin 6). Brez sprememb v vezju lahko uporabljate tipkovnico s 64 tipkami (standardno – 61, tj. 5 oktav). Če je potrebno, lahko število ključev povečate na najmanj 127; v vezje morate vnesti še en dekoder KR1533ID7.

Zelo pomembno je, da dobro nastavite mehaniko - zgornji kontakti se MORAJO zapreti, ko se tipke sprostijo. Če tega ne storite, program takšne tipke šteje za pritisnjene in jih poskuša obdelati, tako da ponovni pritisk teh tipk ne povzroči zvoka. Poleg tega je največje število not, ki jih je mogoče igrati hkrati, 10 (če je komu zraslo več prstov na rokah, se to število zlahka spremeni), če pa tipk ne spustimo, se to število zmanjša. Iz istih razlogov se MORA število tipk, določenih v postopku poziva tipkovnice, ujemati s številom pravih tipk. Odbijanje kontakta je programsko zatrto.

Za uporovno matriko ADC R-2R je priporočljivo izbrati upore z natančnostjo 1–2%, absolutne vrednosti pa so lahko drugačne, razmerje je pomembno. Vendar ne smete močno povečati nazivne vrednosti; to bo povečalo čas pretvorbe zaradi vhodne kapacitivnosti primerjalnika. Uporabil sem SMD upore brez ujemanja, čeprav so meritve pokazale, da so v eni montažni letvi upori običajno ujemani z natančnostjo nad 1%. Prepričan sem, da bo vezje delovalo z nenatančnimi upori, vendar se bo linearnost karakteristike poslabšala. Samo kolesce je narejeno iz ročaja starega televizorja in ima na osi potenciometra vzmet, ki ga vrne v srednji položaj. Za udobje nastavitve mehanike, ko vklopite napajanje s pritisnjenim gumbom za način, se aktivira program za odpravljanje napak, ki zasveti LED, ko je kolo v srednjem položaju, kar vam omogoča natančno nastavitev ničelnega položaja kolesca na osi potenciometra. Če obstaja potreba in želja po izdelavi ločenega kolesa MODULACIJE, ga je treba povezati s prostim primerjalnim elementom (štirje so), matrika R-2R pa je skupna za obe kolesi. Za preklop izhodov primerjalnikov je bolje uporabiti dodatno mikrovezje in uporabiti PA2 kot krmilni signal.

Po želji lahko sestavite dinamično različico tipkovnice brez indikacije, gumbov in kolesca PITCH WEEL / MODULATION - preprosto brez sestavljanja neuporabljenega dela vezja. Vsi spremenljivi parametri bodo ob vklopu nastavljeni na privzete ...

Vse to se lahko napaja iz česar koli; trenutna poraba je odvisna od specifičnega indikatorja in ne presega 100 mA. Imam stabilizator 7805 desno na plošči brez hladilnika (na sliki se dobro vidi). Potreben je majhen radiator, če se nanj napaja več kot 9 V. Primerjalnik se napaja z napetostjo 9 - 12 V, po možnosti stabilizirano. Da, uporabil sem sovjetska mikrovezja iz starih zalog - obstaja veliko število njihovih sodobnih analogov, zamenjava je možna in celo zaželena - sodobni analogi imajo manjšo porabo.

Program

Algoritem za obdelavo pritisnjenih tipk izhaja iz tistega, predlaganega v reviji "Mikroprocesorska orodja in sistemi" št. 5, 1986. Prav ta objava (ali bolje rečeno napaka v predlaganem programu) me je spodbudila k študiju asemblerja. Pravzaprav je bila edina ideja, vzeta od tam, zabeležiti številko vsake pritisnjene tipke v posebej dodeljeno območje RAM-a (CHAN), tako da, ko je tipkovnica ponovno vprašana, ne obdela znova že obdelane tipke. Za vsako od pritisnjenih tipk imam dodeljeni dve celici RAM (skupno ne več kot 10): v prvi se zabeleži številka pritisnjene tipke, v drugi - njena HITROST (hitrost pritiska). Ponavljam - teh celic je le 20 in začetni naslov je podan z imenom CHAN. Predznak prostega para je nastavljen najpomembnejši bit prve celice. Najpomembnejši bit druge celice, ki je nastavljena, pomeni, da je bila NOTE ON za ta ključ že poslana in ne potrebuje nadaljnje obdelave.

Ne bom podrobno opisoval celotnega programa, izvorna koda je polna komentarjev in je zelo dostopna usposobljeni osebi. Za ostalo takoj zagotovim že pripravljeno firmware v datoteki Dinamic.hex in Pitchmod.hex. Pojasnil bom le nekaj neočitnih točk. No, najprej o dinamiki: v trenutku, ko se zgornji kontakti ključa odprejo, se njegova številka zapiše v prvo celico prvega prostega para iz območja CHAN, hkrati pa ponastavi znak prostega para. Začetna vrednost VELOCITY = 127 je zapisana v drugo celico, občutljivost tipkovnice pa je določena s frekvenco prekinitve, saj obdelava prekinitve zmanjša vrednosti VELOCITY za vse tipke, za katere še ni bila poslana NOTE ON. Prekinitve povzroča vgrajen časovnik. V trenutku, ko so spodnji kontakti tipke zaprti, se v ustrezni celici CHAN nastavi znak "preneseno" in prenese NOTE ON s trenutno HITROSTJO. Za izboljšanje krivulje občutljivosti se vrednosti HITROSTI zmanjšajo po logaritemskem zakonu: 1/16 njenega dela, zmanjšanega za 1, se odšteje od trenutne vrednosti HITROSTI, medtem ko se tipka premika od zgornjega kontakta do spodnjega ena, vrednost HITROSTI v ustrezni celici CHAN se zmanjša v skladu z logaritemskim zakonom in hitreje kot se tipka premika, večja je HITROST v trenutku, ko so spodnji kontakti tipke zaprti in se oddaja NOTE ON. Prekinitve nadzorujejo tudi dinamični prikaz, to se naredi za odpravo utripanja indikatorja.
Funkcije gumbov: TRANSPOSE - vse tipke so zmanjšane na vaš najljubši a-mol: obseg +/- 15 poltonov. PRG dodeli tember (instrument) dani prednastavitvi (UP1-UP5), VOL pa dodeli glasnost. Trenutni parameter je prikazan na indikatorju in ga je mogoče spremeniti z gumboma "+" in "-" TWIN prikaže "dvojni" tember - eno od prednastavitev (UP1-UP5) in hkrati LOWER prednastavitev. zvok hkrati. STEREO oddaja zvok trenutne prednastavitve na desni in levi stereo kanal z rahlim »detoniranjem« (učinek »refren«). Gumb SPLIT ni aktiviran. Pedal SUSTAIN je zasnovan tako, da eden od gumbov ne sme biti zelo velik. Naslovi upravljavcev gumbov so zbrani v tabeli na začetku programa; pri spreminjanju funkcij gumbov lahko zamenjate svoje.

ADC kolesa je napol programska oprema, deluje z algoritmom zaporednega približevanja, matrika R-2R izvaja digitalno-analogno pretvorbo. Najprej se 1 v najpomembnejši števki uporabi za matriko R-2R in primerjalnik ugotovi, ali je to veliko ali malo. Če je malo, ostane 1 v najpomembnejšem bitu, če je veliko - 0. Nato se isto zgodi z vsakim naslednjim nižjim bitom (skupaj 6 korakov) in dobimo šestbitno število, ki ustreza kot vrtenja kolesa. Ta natančnost se mi zdi zadostna, vendar lahko dodate še en bit s povečanjem matrike in programa za pretvorbo.

Oblikovanje

Kot dejansko tipkovnico sem uporabil sovjetski konstruktor "Start", zdaj je morda lažje najti staro, nedelujočo Yamaho ali Casio, to bo rešilo tudi problem izdelave ohišja - če je seveda stari inštrument je relativno nedotaknjen...

Tiskano vezje ni bilo razvito - menil sem, da je neprimerno porabiti čas za ožičenje in izdelavo plošče za izdelavo ene same kopije naprave, postavitev pa je bila narejena na vezju z uporabo mostičkov MGTF. Kot konektor in kabel do tipkovnice smo uporabili kabel iz disketnih enot iz računalnika z ustreznim konektorjem na vsaki strani - tako olajšamo sestavljanje/razstavljanje končane naprave.

V mojem primeru je bilo telo upognjeno iz tanke jeklene pločevine (kar je bilo pri roki) - z lesenimi stranicami (kot stari sovjetski instrumenti).

No, skratka to je vse. Ustvarjalni uspeh!

Seznam radioelementov

Imenovanje Vrsta Denominacija Količina OpombaTrgovinaMoja beležka
Shema št. 1.
MikrokrmilnikPIC16F841 V beležnico
čipKR1533ID71 V beležnico
čipKR1533KP71 V beležnico
Linearni regulator

LM7805

1 V beležnico
Dioda

KD522A

64 V beležnico
Kondenzator22 pF2 V beležnico
Kondenzator0,1 µF2 V beležnico
100 µF2 V beležnico
upor

220 ohmov

2 V beležnico
upor

6,8 kOhm

8 V beležnico
Kvarčni resonator4 MHz1 V beležnico
Gumb tipkovnice 64 V beležnico
Shema št. 2.
MikrokrmilnikPIC16F841 V beležnico
čipKR1533ID72 V beležnico
čipKR1533KP72 V beležnico
čipKR1533IR232 V beležnico
Linearni regulator

LM7805

1 V beležnico
Bipolarni tranzistor

KT315A

5 V beležnico
Dioda

KD522A

80 V beležnico
Kondenzator22 pF2 V beležnico
Kondenzator0,1 µF2 V beležnico
Elektrolitski kondenzator100 µF2 V beležnico
upor

180 ohmov

7 V beležnico
upor

220 ohmov

2 V beležnico
upor

6,8 kOhm

16 V beležnico
upor

8 kOhm

1 V beležnico
Kvarčni resonator4 MHz1 V beležnico
3-mestni LED digitalni indikator s skupnimi anodami. 1 V beležnico
Svetleča diodardeča12 V beležnico
Stikalo na ključ 64 V beležnico
Gumb 16 V beležnico
Shema št. 3.
MikrokrmilnikPIC16F841 V beležnico
čipKR1533ID71 V beležnico
čipKR1533KP72 V beležnico
Primerjalnik

Za producente in zvočne inženirje je MIDI krmilnik že dolgo postal pomemben atribut, ki pomaga ustvarjati čudovito glasbo. Virtualna glasbila vedno zvenijo posebno, zato so okras vsake melodije.

Ker je veliko glasbenikov zelo zaskrbljenih zaradi kakovosti svojih izdelkov, se postavlja vprašanje: kako izbrati krmilnik tipa MIDI? Ta članek bo opisal nasvete in osnovna merila izbire.

Kaj je krmilnik MIDI?

V osemdesetih letih 20. stoletja je bila uporabljena naprava, imenovana krmilnik, ki je glasbeniku omogočala nadzor nad delovanjem več sintetizatorjev hkrati z eno tipkovnico. Ta ideja je bila uspešna, zato so tovrstne naprave takoj postale razširjene. Če jih potem vsi ne bi mogli kupiti, so se krmilniki trenutno močno pocenili. Glasbeniki, zvočni inženirji, tekstopisci, izvajalci, DJ-ji - vsi uporabljajo takšne naprave.

Kaj je naprava, ki ima tipkovnico? Podoben je tipkam klavirja in sintetizatorja. Ima dodane gumbe, različne gumbe in drsnike. Pri interakciji z njimi se melodija prenaša na zvočne module, ki imajo zunanji tip. Govorimo o prenosnikih in drugih napravah. Z drugimi besedami, krmilniki (večina jih) niso sposobni sami proizvesti zvoka. Zasnovani so za uravnavanje bitov, not in drugih parametrov, reproduciranih iz zunanje naprave (zvočni modul).

Kakšne so prednosti krmilnika MIDI? Najbolj očitno: je vsestranski in prenosljiv. Zahvaljujoč temu lahko uporabite vse virtualne učinke in nadzirate sodobno programsko opremo. Preprosto ga lahko prenašate na primer s torbo za prenosni računalnik.

Na kaj paziti pri nakupu?

Preden kupite katerikoli krmilnik, morate razmisliti, čemu je namenjen. Koristno bi bilo odgovoriti na naslednja vprašanja; dali bodo natančno predstavo o tem, katera možnost iz velikega asortimana je primerna.

Za kaj se bo krmilnik uporabljal? Naprava, namenjena za odrske nastope, mora biti iz materiala, ki je odporen na mehanske obremenitve. Glede na to, da je večina krmilnikov izdelanih iz plastike, morate biti pozorni na kovinske možnosti. Prav tako se morate odločiti za vrsto mehanizma in število ključev. Če jih je preveč, potem obstaja možnost, da zamenjamo namen katerega od njih med nastopom v živo.

Majhen krmilnik MIDI je primeren za DJ-ja. Sploh ga ni težko narediti z lastnimi rokami, če oseba razume elektroniko. To pomeni, da DJ-ji pogosto uporabljajo doma narejeno opremo. Več o tem si lahko preberete spodaj. Takšno napravo morate kupiti ob upoštevanju dejstva, da potrebujete tudi ročaje in drsnike. Brez njih program (MIDI kontroler deluje samo v tandemu z njim) ne bo izvajal želenih funkcij.

Če glasbenik ureja skladbe v postelji, na letalu, v avtu ali na drugem mestu, bo pri izbiri glavna stvar prenosljivost. Glede na to, da je naprava napajana, morate biti pozorni na tiste, ki jih je mogoče polniti iz vodila USB.

MIDI krmilniki Pioneer

Pioneer MIDI krmilnik je naprava, po kateri je bilo vedno povpraševanje. Ta proizvajalec je že dolgo med tremi vodilnimi na trgu takšne opreme. Po čem se »sorodni« modeli Pioneer razlikujejo med seboj? Samo prisotnost dodatnih funkcij, ki izgledajo kot običajni mehanski gumbi na nadzorni plošči. Vsak krmilnik te znamke ima odlična tekalna kolesa. Videz je resen in eleganten. Impresivno velikost naprave kompenzira njena največja funkcionalnost.

Ni se treba spraševati, kateri model izbrati. Takoj si morate podrobneje ogledati DDJ-T1. Razmerje med ceno in kakovostjo je zelo dobro. Nadzorna plošča je priročna, gumbe lahko pritiskate brez težav, naprava je enostavna za prenašanje.

Krmilnik Novation Launchpad

Krmilnik Novation Launchpad MIDI je zasnovan posebej za delo z Ableton Live. Naprava je primerna tako za odrske kot domače studijske aktivnosti. Z njim bo enostavno prirejati tudi diskoteke. Mreža naprave je sestavljena iz 64 gumbov. Opremljen je z dodatnimi učinki, pa tudi funkcijami za delo s programsko opremo. Napravo lahko povežemo z računalnikom in deluje tako z družino Windows kot z nekaterimi drugimi operacijskimi sistemi.

DIY MIDI krmilnik - resničnost ali mit?

Domači krmilniki MIDI so že dolgo v povpraševanju. Kaj je potrebno za uresničitev vaše ideje? Potrebujete diagram, po katerem bo naprava spajkana in sestavljena, proračun, fizik ali električar, ki je seznanjen s tem področjem.

Poleg poznavanja tehnične plati se je treba vprašati tudi, koliko se ustvarjalec spozna na krmilnike. Če želite pravilno sestaviti napravo, ki bo izpolnila vsa pričakovanja, morate razumeti, katero osnovo je najbolje uporabiti, zakaj bo model sestavljen in tudi kje namestiti nadzorno ploščo. Zadeva je precej zapletena, a povsem rešljiva. Danes obstaja veliko že pripravljenih vezij, iz katerih je mogoče sestaviti krmilnik. Glavna stvar je zaupanje v svoje načrte in potrpežljivost.

Model znamke Akai

Akai je pred kratkim izdal nov krmilnik, imenovan MPC Touch. Za razliko od sorodnih naprav ima ta 7-palčni zaslon. Tako je delo z njim veliko lažje. Na podlagi pregledov je treba reči, da je opisani model uporabljen kot primer, ko gre za profesionalne krmilnike. Če pogledamo in upoštevamo funkcionalnost, takoj izgine vprašanje, kako izbrati takšno napravo. Programska oprema deluje precej hitro in učinkovito, težave se ne pojavljajo, napake pa so izjemno redke.

Edina pomanjkljivost je, da krmilnik ne more delovati brez vira napajanja, saj nima baterije. Blagovna znamka Akai je na trgu poznana že dolgo časa. Njegov MIDI kontroler je zmogljiva in visokokakovostna naprava, ki lahko prenese velike obremenitve. Pogosto se nekateri modeli uporabljajo na odru.

MIDI krmilnik je naprava, ki pretvori določen fizični proces v nabor digitalnih ukazov v formatu MIDI. Fizični postopek je lahko karkoli, od pritiska na tipko s prstom do obračanja gumba za glasnost. Nastali ukazni tok se prek protokola MIDI prenese v druge naprave - računalnik, strojne vzorčevalnike, sintetizatorje ali zunanje sekvencerje in se tam na določen način dešifrira. Najpogostejša vrsta krmilnika MIDI je tipkovnica MIDI – elektronski ekvivalent klavirske tipkovnice. Obstaja tudi veliko drugih vrst krmilnikov, vključno z elektronskimi kompleti bobnov.

Sodobni trg ponuja ogromno število različnih krmilnikov MIDI za elektronske instalacije, ki se razlikujejo po različnih merilih, kot so cena, kakovost, tehnične lastnosti itd. Obstaja tudi več končnih uporabniških naprav, ki so implementirane kot komercialni projekti (eDrum, megaDrum). Toda kljub vsemu temu želja po ustvarjanju takšne naprave z lastnimi rokami še vedno živi v glavah sodobnih Kulibinov.

Tako sem se pred nekaj leti, malo pozno, začel zanimati za izdelavo takšne naprave, saj sem sodeloval v skupini za težko glasbo. Igrali smo hard rock, bolje rečeno nekaj brutaldeatha, goregrinda, grindcorea. Igral sem električno kitaro. Malo prej sva kupila bobnarski set Sonor in zvečer zganjala hrup v garaži. Kasneje nas je garaža vprašala in postavilo se je vprašanje o prostorih. Ker nismo našli nič vrednega, smo se odločili, da bomo vadili doma, kar je takoj povzročilo konflikt s sosedi. Tu se je pojavilo vprašanje elektronskih bobnov.

Vzporedno z igranjem inštrumentov v živo sem pisal elektronsko glasbo in uporabljal predvsem VST inštrumente in vtičnike, za ustvarjanje bobnarskih partov sem imel raje Addictive drums in ezDrums, ki imajo možnost dela z MIDI vmesnikom. Ne da bi to temo sploh poguglal, sem se brezglavo poglobil v razvoj lastnega MIDI krmilnika na cenovno dostopnem mikrokrmilniku ATMega32 v DIP paketu, ki je imel vgrajenih 8 ADC kanalov. Nisem želel ograditi vezja in sem se odločil omejiti na 8 vhodov. Ker ATMega32 nima strojnega USB-ja, sem uporabil standardno povezavo z računalnikom preko virtualnega usb-ja. Po večdnevnem ubadanju s programiranjem mi je uspelo zagnati napravo. Predstavljajte si moje presenečenje, ko sem na internetu odkril že pripravljeno napravo s shemo vezja in strojno programsko opremo (MegaDrum). Toda vse, kar se ne naredi, je vse na bolje.


Poln USB

Po poklicu sem programer, po poklicu pa sem programer elektronik, kandidat tehničnih znanosti in kot je rekel moj nekdanji nadrejeni, sem Švicar, kosec in trobentač. Kot se pogosto zgodi, sem se zavzel za AVR-je, ne zato, ker bi imel občutke do njih, ampak zato, ker sem bil popolnoma zadovoljen z njihovim delovanjem in njihovimi tehničnimi lastnostmi. Toda prišel je čas, ko niso bili več dovolj. In potem ga je zamenjal stm32, ki je med drugim imel na krovu polnopravni vmesnik USB. Tu je prišla ideja, da naredimo popoln MIDI krmilnik. Poleg tega sem že imel izkušnje z delom z vmesnikom MIDI.

Kje začeti? V paketih DIP nismo imeli stm32 (če sploh obstajajo v naravi), zato je ideja o spajkanju na vezju takoj izginila. Ravno takrat so se začele pojavljati poceni razvojne plošče na osnovi mikrokontrolerjev stm32, kot je DISCOVERY. In zdaj sem srečni lastnik plošče za odpravljanje napak STM32F407DISCOVERY, ki vključuje tudi programator ST-Link. Procesor STM32F407 ima 16 kanalov ADC, čeprav 4 kanale zasedajo zunanje naprave, s katerimi je plošča za odpravljanje napak preprosto napolnjena. Toda za moje namene je bilo 12 kanalov dovolj.


Po tem, ko sem nekaj časa preučeval programsko okolje Keil, arhitekturo mikroprocesorja STM32F407 in standardne periferne knjižnice za delo z USB, sem ustvaril program za anketiranje vseh kanalov ADC z uporabo kanala za neposredni dostop do pomnilnika, pa tudi sestavljenega USB napravo, ki vključuje zvočno napravo MIDI in HID za spreminjanje nastavitev naprave.

Kot senzorje za bobne sem uporabil piezo zvonec ZP-1, ki ga je mogoče kupiti v trgovini po ugodni ceni.


Shemo ožičenja sem vzel iz MegaDrum.


Krmilni program sem napisal v Delphiju z rezervo 16 kanalov. Načeloma se lahko število kanalov naprave neomejeno povečuje z dodajanjem analognih multiplekserjev v vezje, kot je to storjeno v Megadrumu, vendar je za naše namene dovolj 16 kanalov, saj nismo tako napredni glasbeniki. In bobnarju začetniku bo to število bobnov prava stvar.


Naprava je bila testirana v sistemih Windows in Linux z uporabo sledilnika Renoise. Posebnih težav pri delu ni bilo.
Vendar sem se odločil, da se ne bom ustavil pri tem rezultatu. STM32F407 je precej sofisticiran procesor, zato je relativno drag. Ceneje je bilo narediti napravo z uporabo STM32F103. eBay je priskočil na pomoč. Kupil sem razvojno ploščo s STM32F103RBT6 na krovu.


Res je, da nima vgrajenega programatorja. Imel sem srečo, ker sem še vedno imel programator ST-Link iz prejšnje službe.


Vdelano programsko opremo smo morali popolnoma prepisati, saj se načela delovanja procesorjev 407 in 103, čeprav ne radikalno, razlikujejo.
Potem sem na internetu naletel na ploščo za odpravljanje napak, ki je dejansko stala en peni, in se odločil, da lahko na ta način znižam stroške komponent na minimum.

Večina člankov na internetu govori o izdelavi tipkovnic MIDI, krmilnikov, daljincev itd. temeljijo na uporabi priključkov MIDI, katerih povezava s sodobnim računalnikom je lahko problematična. Starejše zvočne kartice so imele igralna vrata, na katera ste lahko priključili igralno palico ali napravo MIDI:

Vse nove matične plošče pa imajo vgrajen zvočni krmilnik, zvočne kartice pa pogosto nimajo možnosti povezovanja naprav MIDI.
Vse kar ostane je nakup moderne MIDI tipkovnice, DJ konzole itd. z USB izhodom za povezavo z računalnikom ali kupite/spajkajte adapter ali kupite posebno zvočno kartico z možnostjo povezave MIDI naprav. Nakup seveda ni problem, vendar nismo zato prišli na to stran, kajne?

V tem članku želim pokazati, kako lahko uporabite poceni krmilnik Arduino za izdelavo preproste tipkovnice MIDI z USB povezavo za 8 tipk in kolescem za pomikanje.

Uporabil sem torej:
Krmilnik Arduino UNO
8 kosov gumbi
8 uporov 10 kOhm
rotacijski dajalnik 25LB22-Q
mizo in mostičke

Diagram povezave je naslednji:

Za povezavo sem uporabil najpreprostejšo možnost: 1 ključ - 1 vhod. Vendar pri večjem številu tipk, različnih krmilnikih ipd. Morda ne bo dovolj vhodov, zato boste morali uporabiti branje podatkov prek analognih vhodov (z dodajanjem uporov različnih vrednosti) ali prek multipleksiranja. Če pa na analogni vhod priključite več tipk, lahko pride do težav pri branju stanja, ko pritisnete več tipk hkrati. Zato je po mojem mnenju multipleksiranje bolj sprejemljiva možnost.

Programska oprema Arduino

Ne bom upošteval strukture podatkov MIDI, ker ... to je opisano v članku:

Kodirnik je povezan s prekinitvenimi vhodi strojne opreme; opisa dela z njim ne bom upošteval, ker Program je preprost in vzet iz uradne spletne strani Arduino.

V tem projektu se kodirnik uporablja kot drsno kolesce za spreminjanje modulacijskega kolesca, vendar ga je mogoče prerazporediti za druge namene (pitch bend itd.).

Podatki MIDI iz kodirnika iz Arduina se pošljejo z naslednjo vrstico:
noteOn(0xB0, 0x01, encoder0Pos);
kjer je 0xB0 sporočilo krmilnika (sprememba nadzora)
0x01 - koda krmilnika (v našem primeru modulacija)
encoder0Pos - vrednost krmilnika (v našem primeru 0-127).
S spreminjanjem kod krmilnika lahko uporabite drsno kolesce (kodirnik) za različne krmilnike.

Omeniti velja tudi Pitch Bend. Iz MIDI specifikacije izhaja, da je treba poslati sporočilo treh bajtov: 0xE0 (Pitch Bend code), MSB (high byte), LSB (low byte).

Dva zunanja bajta hranita 14-bitno vrednost koraka, ki je lahko v razponu od 0 do 16383 (0x3FFF). Sredina je 0x2000, vse nad to vrednostjo povzroči spremembo višine tona navzgor, če je nižja, se višina tona spremeni navzdol.
V programski kodi sem komentiral vrstice, če nenadoma želite uporabiti Pitch Bend namesto modulacije (sredina vrednosti, razčlenitev na 2 bajta itd.)

Koda za zaznavanje pritiska tipke vključuje tri stanja: tipka je pritisnjena, tipka zadržana in tipka izpuščena. To je bilo narejeno zato, da se je lahko posredovala vrednost trajanja pritiska na tipko. Če to ni potrebno, potem lahko pustite samo eno stanje (pritisnite tipko), program bo v tem primeru bistveno poenostavljen.
Za obravnavo stanja vsakega od osmih ključev se uporablja naslednja koda:

If (buttonState_C == HIGH && note_C_send_on == false) // Pritisnjena tipka ( noteOn(0x90, note_C, 0x7F); note_C_send_on = true; // Poslan ukaz Note On note_C_send_off = false; // Ukaz Note Off ni poslan ) sicer če (buttonState_C == HIGH && note_C_send_on == true) // Če je tipka zadržana ( noteOn(0x00, note_C, 0x7F); note_C_send_on = true; note_C_send_off = false; ) sicer če (buttonState_C == LOW && note_C_send_off == false) // Če je tipka izpuščena ( noteOn(0x90, note_C, 0x00); note_C_send_on = false; note_C_send_off = true; encoder0Pos = 0; // Vrni položaj kolesca na nič ) ....... ..... .. ... .... // Funkcija za pošiljanje sporočila MIDI na serijska vrata void noteOn(int cmd, int pitch, int velocity) ( Serial.write(cmd); Serial.write(pitch); Serial. pisanje (hitrost); zakasnitev (20);

Prosimo, upoštevajte, da če se uporablja pitch bend, potem bo treba encoder0Pos vrniti ne na nič, ampak na 0x2000 (ali pa je bolje nastaviti definicijo na začetku programa).

Torej, vezje je sestavljeno, skica je naložena v krmilnik, zaženemo Serial Monitor, spremenimo hitrost prenosa na 115200 in pritisnemo tipke ali zavrtimo kodirnik in pogledamo vrednosti.
Če je vse v redu, pojdite na naslednji del. Takoj bom rekel, da se je zame izkazalo za najbolj problematično in če ne bi našel virtualnega pretvornika USB -> Midi, tega članka ne bi bilo.

Računalniška programska oprema (Windows)

Če želite od Arduina prejemati podatke prek navideznega COM-vrata USB in jih prenesti v kateri koli program sekvencerja MIDI, potrebujete poseben pripomoček: Serial MIDI Converter V2D (pisarniško mesto)

Program je večplatformski, meni je delal pod Windows 7 x64, čeprav z nekaj težavami.

Zaženemo ga, izberemo vrata USB, hitrost prenosa (115200) ter vhodna vrata MIDI in izhodna vrata MIDI.

Zdaj so vsi podatki MIDI, ki pridejo v navidezna vrata COM USB 12, preusmerjeni na vrata MIDI Yoke 6 (za ustvarjanje navideznih vrat MIDI sem uporabil program MIDI Yoke). Lahko jih preusmerite na Microsoft GS Wavetable Synth in druga vrata.
Program mora biti ves čas vključen. Ko pritisnete tipke ali zavrtite gumb kodirnika, mora indikator Serial RX na dnu utripati.

Za vizualni prikaz dohodnih podatkov MIDI iz vrat se mi je zdel zelo uporaben program MIDI-OX (pisarniško mesto):

Upoštevajte, da morate v nastavitvah naprav MIDI nastaviti vhodna vrata MIDI.

Zdaj, ko pritisnete tipke za note ali zavrtite kolesce, boste videli podatke MIDI v Monitor-Output.

to. S pomočjo programske in strojne opreme nam je uspelo izdelati preprosto MIDI tipkovnico na krmilniku Arduino s prenosom podatkov v računalnik za kasnejšo obdelavo, na primer v Cubase ipd. vklj. v realnem času.
Na podlagi tega projekta lahko naredite DJ konzolo, polno MIDI tipkovnico itd.

Spodaj lahko prenesete INO sketch, Serial MIDI Converter V2D, MIDI-OX in MIDI Yoke