Ako vyrobiť lacný MIDI ovládač na báze Arduina vlastnými rukami. Ako vyrobiť lacný MIDI ovládač založený na Arduine vlastnými rukami Čítanie pozícií potenciometra

Už dlho som chcel v sebe prebudiť skladateľa a začať vytvárať vlastnú elektronickú hudbu. Mňa však (mierne povedané) odrádzali vysoké ceny MIDI ovládačov. Ale po prehľadávaní internetu som dostal nápad vytvoriť si vlastný ovládač pomocou Arduino Uno a vodivých farieb!

Začnime)

Krok 1: Výber dielov

Môžete sa mierne odchýliť od prezentovaného materiálu a MIDI kontrolér, ktorý ste zostavili, bude stále fungovať (pod pojmom „mierne odchýliť“ mám na mysli, že môžete nainštalovať odpor s mierne odlišnou hodnotou alebo nechať jeden z kolíkov odpojený).

Z elektroniky potrebujeme:

  • 1 Arduino Uno s káblom USB;

  • 1 nádoba vodivej farby;

  • 1 montážna doska s rozmermi 5x7 cm;

  • 3 tlačidlá;

  • odpory s odporom 2,2 kOhm;

  • 1 LED;

  • odpory s odporom 10 kOhm;

  • 1 snímač LDR;

  • odpory s odporom 4,7 kOhm;

  • 1 prepojka;

  • 12 ks rezistorov 2,7 MΩ;

  • 30 priamych kolíkov;

  • 12 ohnutých čapov;

  • 12 adaptérov;

  • 12 sponiek.

Okrem elektroniky budete potrebovať aj tieto nástroje:

  • Spájkovačka a spájka;
  • Nožnice na drôt;
  • Stojan na spájkovanie dielov (tretia ruka);
  • multimeter;
  • Niekoľko drôtov a/alebo tenký kovový drôt.

Krok 2: Spájkujte kolíky

Začneme vytvárať dosku spájkovaním kolíkov. Uverejníme príspevok ohnuté čapy v strede prvého radu na doske. Následne budú slúžiť ako „citlivé“ piny, ku ktorým sa pripojí klávesnica.

Po nainštalovaní kolíkov si všimnite, že krátke kolíky vyčnievajú z dosky. Zatlačíme na ne, aby všetko išlo do roviny. Teraz ich prispájkujeme a ihneď skontrolujeme spoje na skrat.

Poznámka: Nespájkujte kolíky príliš dlho, inak sa zohrejú a roztavia plast.

V ďalšom kroku umiestnite rovné hrebene do štrbín Arduino. Nainštalujte dosku na vrcholy kolíkov, ktoré sú vložené do Arduina. Táto akcia vyžadovala trochu sily, pretože kolíky nie sú dokonale zarovnané s otvormi na doske.

Po úspešnej inštalácii dosky na kolíky sa uistite, že kolíky sú zarovnané s horným okrajom dosky. Potom môžu byť spájkované.

Krok 3: Spájkujte prepojky

Teraz vyberieme dosku z Arduina a otočíme ju na opačnú stranu. Spájkujme prepojky, na ktoré budú komponenty neskôr pripevnené. Existujú dva spôsoby, ako to urobiť:

  • Naplňte všetky potrebné otvory spájkou a potom ich navzájom spojte.
  • Použite tenký drôt.

Odporúčam vám použiť druhú metódu, pretože je jednoduchšia a rýchlejšia. Ak zvolíte túto metódu, umiestnite drôt na dosku tak, ako je znázornené na obrázku.

  • Červená bodka znamená spájkovanie drôtu do otvoru.
  • Žltá bodka - tenký drôt pripojte na kolík na druhej strane dosky (ako na treťom obrázku).

Ako vidíte, trochu som pokazil ľavý dolný roh, keď som použil príliš veľa spájky, takže buďte opatrní!

Tip: Ak nemáte tenký drôt, použite zvyšky vodičov odporov, ktoré používate.

Krok 4: Spájkujte dotykové kapacitné odpory

Inštalujeme komponenty, tj 2.7 MOhmodpory, ktorý bude vykonávať senzoricko-kapacitné funkcie.

Poznámka: Ak sa chcete dozvedieť viac o teoretických základoch a praktických aplikáciách dotykových kapacitných snímačov, odporúčam vám pozrieť si nasledujúce odkazy:

Umiestnime jeden 2.7 MOhmodpor zospodu pravého ohnutého kolíka a prestrčte nohy cez otvory (ako na prvom obrázku). Teraz otočme dosku a zatlačte jeden vodič rezistora späť do ďalšieho otvoru (ako je znázornené na druhom obrázku). Prispájkujte spodnú časť odporu k otvoru a hornú časť odporu ku kolíkovej svorke. Potom priložíme 7 cm drôtu na tento kolík (ako je vidieť na treťom obrázku).

Zopakujme proces so všetkými odpormi a drôtmi a prispájkujme ich na miesto. Spodné nohy rezistorov by mali tvoriť jedno dlhé spojenie.

Poradenstvo: Zvoľte si striedajúce sa farby vodičov – to uľahčí pripojenia v neskorších krokoch.

Krok 5: Spájkujte tlačidlá

Začnime umiestnením tlačidiel a rezistorov na dosku, ako na prvom a druhom obrázku. V mojom prípade som použil 2.2 kOhm odpory, ale môžete použiť akýkoľvek odpor s hodnotou medzi 2kOhm a 10KOhm.

Otočme dosku a všetko prispájkujme na miesto. Obrázok 3 vysvetľuje rôzne pripojenia, ktoré budete musieť vytvoriť:

  • modrá bodka - označuje nohu tlačidla, ktorú je potrebné prispájkovať k doske;
  • ružová bodka – označuje odporovú nohu, ktorá musí byť prispájkovaná k doske;
  • červená čiara znamená, že by ste mali spájať dva body do jedného spojenia;
  • čierna čiara označuje drôt, ktorý pôjde z jednej nohy tlačidla cez otvor v doske, ktorý sa potom pripojí ku kolíku na druhej strane.

Ak je všetko prispájkované správne, dve tlačidlá úplne vľavo vám umožnia zmeniť oktávy, zatiaľ čo tlačidlo úplne vpravo bude aktivovanéLDR senzor.

Krok 6: Spájkujte LDR a LED

Po prispájkovaní tlačidiel pokračujeme v inštalácii LDR, LED a zodpovedajúcich rezistorov. Predtým, ako to urobíte, bolo by rozumné experimentovať s hodnotami rezistorov, ktoré pôjdu na LED. Možno je moje hodnotenie príliš vysoké na zapnutie vašej LED. Trochu experimentujte, aby ste našli správnu hodnotu odporu.

Tip: Akýkoľvek odpor medzi 330Ohm a 5kOhmbolo by to dobré riešenie pre 5mmLED.

Teraz usporiadame LED, LDR a odpory ( 4.7 K preLDR) na správnych miestach. Dosku otočíme a všetko zaspájkujeme. Tretí obrázok vysvetlí rôzne spojenia, ktoré je potrebné vytvoriť:

  • hnedé bodky sú kolíky LDR, ktoré by mali byť prispájkované k doske;
  • ružová bodka je odporová noha, ktorá by mala byť prispájkovaná k doske;
  • oranžové bodky sú kolíky LED, ktoré je potrebné prispájkovať na dosku;
  • červený pruh - musíte spájať dva body do jedného spojenia;
  • čierny prúžok je drôt, ktorý pôjde z výstupu odporu cez otvor dosky, ktorý sa potom pripojí ku kolíku.

Poznámka: Pred spájkovaním LED sa uistite, že polarita LED je správna. Kladný pól LED by mal byť pripojený k odporu a záporný pól k zemi.

Krok 7: Otestujte všetky pripojenia

Teraz je vhodný čas vyskúšať, či sú spoje tlačidiel, LDR a LED úspešne zaspájkované. Toto je posledná príležitosť na opravu chýb, odporúčam vám stiahnuť si priložený kód a spustiť program. a stiahnuť Arduino_Test_Fixture_Code na dosku Arduino.

Ak je všetko úspešné a test je dokončený, môžete prejsť na ďalší krok. Ak nie, dvakrát skontrolujte spájkované spoje na doske. Je lepšie mať po ruke multimeter, hovorím to z vlastnej trpkej skúsenosti.

Krok 8: Dokončenie dosky

Začnime inštaláciou vodičov do otvorov, ako je vidieť na prvom obrázku. Pre tento krok je vhodné použiť dva drôty rôznych farieb.

Dosku otočíme a drôtiky odstrihneme na požadovanú dĺžku. Prispájkujte ich na kolíky, ktoré idú do konektorov Arduino. Skôr ako začnete používať MIDI ovládač, najprv musíte otestovať jeho pripojenia pomocou testovacieho náčrtu. Nahrajte náčrt, otvorte sériový port a dotknite sa „citlivých“ kolíkov na doske. Ak sa pri každom špendlíku zobrazí text „Poznámka x je aktívna“, všetky špendlíky fungujú správne.

Krok 9: Preveďte Arduino na zariadenie MIDI

Keď je doska pripravená, je čas previesť Arduino na MIDI kontrolér, ktorý rozpoznajú hudobné programy ako Ableton a Fl Studio alebo dokonca iné MIDI zariadenia. Proces pozostáva z dvoch krokov:

  1. Zmeňte aktuálny firmvér na Arduino Uno na programy kompatibilné s MIDI;
  2. Nahrajte MIDI skicu do Arduina.

Začnime od prvého bodu. Načítané do Arduina podľa stavu firmvéruUSB-sériový port, ktorý umožňuje Arduinu vymieňať si správy s PC a Arduino IDE. S novým programom DualMoco, pribudne druhý režim, ktorý umožní Arduinu fungovať ako MIDI zariadenia.

Použijeme program FLIP a podľa pokynov zmeníme firmvér Arduina. Pracovný súbor nájdete v archíve v priečinku Firmware – súbor DualMoco.hex.

Po stiahnutí nového firmvéru znova pripojte Arduino k PC. Ak všetko pôjde dobre, Arduino by nemalo byť detekované Arduino IDE, pretože nový program je v ( MIDIrežim). Otvorte hudobný program, ktorý je schopný nahrávať MIDI a skontrolujte, či je Arduino pomenované MIDI/ MOCOpreLUFA sa zobrazilo nad nastaveniami MIDI, ako môžete vidieť na 1. obrázku.

Krok 10: Urobte posledné prípravy

Zvláštnosť DualMocože má druhý režim - USB-sériový port, ktorý vám umožňuje nahrávať skice z Arduino IDE, rovnako ako s bežným firmvérom. Ak chcete uviesť Arduino do druhého režimu, pripojte dva kolíky ISCP dohromady, ako je znázornené na obrázku 1 a 2. Môžete použiť buď kúsok drôtu alebo malý prepojovací kábel, ako je znázornené na obrázkoch. Teraz odpojte USB kábel od Arduina na niekoľko sekúnd a znova ho pripojte, Arduino by sa malo objaviť v Arduino IDE.

Poznámka: Keď chcete prepnúť z režimuusb-sériový portVV režime MIDI odstráňte prepojkuKolíky ISCP, ako je znázornené na treťom obrázku, a znova ich pripojteArduino do PC.

Je čas nahrať aktuálnu skicu do Arduina, Arduino_Finálny, konečný_kód. Stiahnite si ho, skonvertujte Arduino na usbsériový port režim a stiahnite si kód. Ak potrebujete doladiť prah, experimentujte s hodnotami PRAH A OZE. Keď všetko funguje podľa očakávania, zmeňte aktuálny riadok 17 z:

booleovský midiMode = false; // ak midiMode = false, Arduino bude fungovať ako zariadenie usb-to-serial

booleovský midiMode = true;// ak midiMode = true, Arduino bude fungovať ako natívne MIDI zariadenie.

Po vykonaní posledných zmien v kóde je čas otestovať hudobný program, ktorý môže podporovať zariadenia MIDI. Najprv prepnime Arduino do režimu MIDI:

  1. Nahrajme finálny kód do Arduina.
  2. Odpojme USB kábel z Arduina.
  3. Prepnite Arduino do režimu MIDI odstránením prepojky z kolíkov ISCP.
  4. Nainštalujte kábel USB do Arduina.

Ak všetko prebehlo dobre, otvorte hudobný program a začnite sa dotýkať špendlíkov. Magické zvuky musia znieť...

Krok 11: Prispájkujte sponky na prepojky

Keď je doska Arduino úplne dokončená, je čas zamerať sa na klávesnicu a spôsob jej pripojenia k doske. Existuje milión spôsobov, ako to urobiť, ale vybral som kancelárske sponky, ktoré by boli pripevnené k maľovanému papieru (ľahko sa upevňujú a dajú sa znova použiť).

Proces spájkovania kancelárskych sponiek na drôty je pomerne jednoduchý:

  1. Odrežte zástrčku na jednej strane drôtu;
  2. Odizolujeme drôt o 5 mm;
  3. Spájkujte odizolovaný drôt na kancelársku sponku;
  4. Opakujte pre všetkých 12 sponiek.

Poznámka: Spony nesmú byť potiahnuté žiadnym náterom (farba alebo plast).

Krok 12: Maľovanie šablóny

Aj keď je možné hrať na klaviatúre Arduino MIDI jednoduchým dotykom sponiek, oveľa zábavnejšie je vyrobiť si vlastnú šablónu a používať ju. Vyfarbenú predlohu. Šablóna je v archíve projektu.

Vyfarbenie šablóny je celkom jednoduché, len dbajte na to, aby ste medzi riadkami nechali priestor a použili vhodné farby, inak to nebude fungovať. Po zaschnutí farby pripevnite sponky na „kľúče“ a môžete začať robiť hudbu.

Ďakujem za tvoju pozornosť!)

Klávesnica je určená na pripojenie k externému zvukovému modulu alebo počítaču (ak je k dispozícii vhodné rozhranie) pomocou protokolu MIDI - na nahrávanie hudby do programu sekvencera alebo živého vystúpenia. Počet kláves v navrhovanej verzii je 48, ale bez zmeny obvodu sa dá zvýšiť na 64. Charakteristickým znakom navrhovanej klávesnice je jej citlivosť na silu nárazu na kláves.

História zariadenia

Pred časom som bol v súvislosti s kúpou bytu nútený prísť o luxusný nástroj, ktorý mi slúžil ako MIDI keyboard - bola to legendárna YAMAHA DX-7. Keď smútok opadol, vyvstala otázka v celej svojej závažnosti a škaredosti: na čom pracovať? Práve v tomto momente sa mi vďaka úsiliu môjho priateľa dostal do rúk polozmontovaný obvod pre KR1816BE39 (v protivníkovi sa tento procesor nazýva 8048). Okruh sa ľahko zostavuje a nastavuje, a čo je najdôležitejšie, prišiel pod ruku v správnom čase. Klávesnicu som zostavil vo forme matice 8x6 pomocou KR1533ID7 a KR1533KP7. Bola tu aj mucha - dve nevýhody tejto schémy zabíjajú všetky jej výhody: nedostatočná citlivosť na rýchlosť stlačenia klávesov (reproduktory) a koliesko PITCH WEEL. Nuž, raz som programoval na Z-80 (a dokonca som si vyrobil funkčný sekvencer) a rozhodol som sa otriasť zo starých čias. Rozhodne som odmietol Z-80 ako CPU ako morálne zastaraný. Okrem toho som nechcel robiť veľa spájkovania a rozhodol som sa vziať to isté zariadenie na KR1816BE39 ako základ a vybaviť ho ďalším multiplexerom na prerušenie (horných) kontaktov kľúčov. Našiel som dokumentáciu (neuveríte - v knižnici knihu “Designing Digital Devices on Single-Chip Microprocessors”) k assembleru KR1816BE39 a načmáral som program... A potom sa ukázalo, že kamarátov programátor ROM mal zomrel a jednoducho nebolo čím program flashovať... Zo smútku som úplne stratil myseľ a rozhodol som sa prepísať rovnaký algoritmus pre PIC. Za pol dňa bol programátor (LUDIPIPO) zaspájkovaný, následne bol vyrobený prototyp zo zásuvky, KR1533ID7 a páru KR1533KP7 a celá inštalácia bola vykonaná MGTF bez akéhokoľvek razenia. A proces sa začal...

Najprv bola spustená nedynamická verzia programu (uvádzam aj pre tých, ktorí majú klávesnicu s jedným kontaktom na kláves). Potom začala dynamická verzia. A potom prišiel nápad pridať tlačidlá a indikátor. Faktom je, že WAVEBLASTER (dcérsky wavetable syntezátor pre veľmi staré zvukové systémy) ležal dlho nečinný. Prepojením s mojím výtvorom som získal niečo, na čom sa dá hrať (podľa svojich schopností a talentu) aj bez počítača, čo sa niekedy celkom hodí. Toto určilo sadu funkcií na tlačidlách - môže to byť užitočné pri pripájaní k zvukovým modulom počas „živého“ prehrávania. Funkcie tlačidiel sa dajú ľahko zmeniť napísaním vlastných obslužných programov a použitím mojich postupov hlasovania a zobrazenia. Nejako sa ukázalo, že klávesnica zostavená v železnom obale je pohodlnejšia ako YAMAHA PSS (stále klávesy v plnej veľkosti, pedál a čo je najdôležitejšie, dynamika!). Uprostred kreatívneho procesu vznikla ťažká túžba vyrobiť verziu MIDI klávesnice čisto pre počítač - indikátor a tlačidlá sú voliteľné, ale potrebné sú kolieska PITCH WEEL a MODULATION. Chvíľu som s tým bojoval, ale nakoniec som to vzdal a opäť som zapol spájkovačku. Elektronika nie je náročná na montáž, ale mechanika je o niečo náročnejšia a nad dizajnom kolies som začal krčiť čelo. Po chvíli rozmýšľania som sa rozhodol opustiť druhé koliesko – každopádne nikdy neroztáčam obe naraz, zvyčajne najprv píšem noty a výšku, potom pridám moduláciu. V neposlednom rade bolo zníženie objemu mechanickej práce, ktorú som tak miloval, na polovicu. Pre menej lenivých nižšie vysvetlím, ako vyrobiť dve kolesá takmer bez zložitosti. Aby som stále mohol písať moduláciu, rozhodol som sa zorganizovať tri prevádzkové režimy kolesa: výška tónu pre 2 poltóny, výška tónu pre 1 poltón (pohodlná) a modulácia. To všetko môžete prepínať jedným tlačidlom, režim indikovať dvojicou LED diód. Pre zjednodušenie obvodu som eliminoval zostávajúce tlačidlá a indikátory, to všetko nie je potrebné pre prácu s modernými programami sekvencera.

Koleso sa samozrejme musí dať na os potenciometra, to je pochopiteľné, ale s čím by malo byť spojené? Moja prvá myšlienka bola použiť jednorazový časovač 555. Výpočty však ukázali, že by bolo ťažké dosiahnuť presné a stabilné merania trvania impulzu pri snahe poskytnúť prijateľnú vzorkovaciu frekvenciu kolesa, pretože procesor je zaneprázdnený hlavne meraním prepínania. čas kontaktov klávesnice. Jediný spôsob, ktorý zostáva, je použiť analógovo-digitálny prevodník (ADC). Keďže som používal Pic16F84 bez vstavaného ADC, spomenul som si na svoje inžinierske zázemie (a moju rodnú továreň) a vyrobil som ADC z niekoľkých rezistorov s komparátorom (a kúskom programu). Ukázalo sa to jednoduché, lacné a celkom presné.

Uvádzam obe schémy - s tlačidlami aj s kolieskom, ako aj programy k nim. V prípade potreby je možné oba okruhy ľahko skombinovať miernou zmenou adries externých zariadení; stačí si uvedomiť, že režim CHORUS (STEREO) používa výšku tónu na získanie rozladenia a musíte ho buď odstrániť, alebo sa starať o prenos výšky tónu s rozladením cez kanály.

Takže - skutočná klávesnica

Schéma zariadenia

Ako prvá sa objavila nedynamická verzia, necitlivá na silu nárazu na kľúč – na testovanie funkčnosti rozloženia.

Použil som PIC16F84 ako procesor z niekoľkých dôvodov: tento čip je dostupný, lacný a ľahko programovateľný a bol to ten, ktorý som mal po ruke. Pozor: PIC16C84 nie je vhodný - má len 36 buniek RAM a program nebude fungovať. Obvod kolesa však využíva menej buniek RAM a jeho program je možné vtesnať do PIC16C84 zmenšením niekoľkých ďalších buniek, napríklad MIDCH (priradením konštantného MIDI kanálu všetkým prenášaným dátam).

Schéma dynamickej klávesnice s indikáciou je uvedená nižšie:

Okruh je v mnohých ohľadoch tradičný - je ťažké znovu vynájsť bicykel bez pedálov a kolies J Port B funguje na prenos - spodných 7 bitov vydáva kľúčovú adresu v matici alebo údaje pre externé zariadenia (indikátor a koleso DAC). Najvýznamnejší bit sa používa na výstup MIDI dát v sériovom kóde - konverzia a výstup sa vykonáva softvérovo. Preto by mal byť kryštál na frekvencii 4 MHz, pokiaľ nechcete prepísať rutinu výstupu bajtov MIDI. Dva najmenej významné bity portu A slúžia na príjem - prijímajú signály z multiplexerov „uvoľnených“ a „stlačených“ kontaktov klávesov a tri najvýznamnejšie bity určujú adresu externého zariadenia (cez ďalší dekodér KR1533ID7). V obvode s kolieskom som opustil dekodér adresy externého zariadenia, aby som obvod zjednodušil a uvoľnil vysoký bit portu PA4 pre vstup dát z komparátora, takže adresy klávesnice a tlačidiel sú odlišné. Pri kombinovaní obvodov bude potrebné tento mikroobvod vrátiť, na dešifrovanie adresy použite portové bity PA2 a PA3 a adresu 4 zariadení: klávesnicu, tlačidlá, register dynamických indikačných údajov a register dôvernosti dynamickej indikácie. Indikáciu režimu kolieska bude potrebné prepísať.

Okruh s kolieskom PITCH WEEL / MODULATION vyzerá takto:

Na každé tlačidlo je nainštalovaná jedna dióda na oddelenie. Rezistory na vstupoch multiplexerov by nemali byť väčšie ako 8k, inak sú možné chyby v dôsledku montážnej kapacity. Indikátor - ľubovoľný so spoločnou anódou pre 3 číslice, ak sú vývody segmentov každej číslice na výstupe oddelene, treba spojiť vývody segmentov s rovnakým názvom - indikácia je dynamická a číslice sa rozsvecujú postupne. Akékoľvek tlačidlá, bez uzamknutia, odskok kontaktu je riadený softvérom. LED diódy sú inštalované v blízkosti tlačidiel s rovnakým názvom a indikujú aktiváciu príslušných režimov; tlačidlá „+“ a „-“ nemajú LED. Tranzistory na indikátore sú akékoľvek nízkoenergetické, vysokofrekvenčné reverzné vedenie. Dva registre KR1533IR23 sa používajú na striedavé zachytenie adresy a kódu aktuálnej číslice indikátora (LED diódy sú tiež zoskupené do dvoch kvázi číslic). Použil som štandardnú klávesnicu zo sovietskych elektrických organov so 48 klávesmi (vyrábala sa aj samostatne ako rádiový dizajnér „ŠTART“ a je pomerne rozšírená). Aby sa zmenšila výška klaviatúry a hrúbka nástroja, boli ponechané dve zo šiestich kontaktných skupín pod každým klávesom a celé to bolo narezané a znovu zlepené. Vo všeobecnosti stačí jedna spínacia skupina na kľúč, ale bolo pohodlnejšie ju takto zlepiť. Prípojnice „uvoľnených“ a „stlačených“ kontaktov majú dĺžku 8 kláves. Na želanie možno použiť aj klávesnicu, kde sú namiesto spínacej skupiny kontaktov použité dva páry zapínacích kontaktov - jeden pár sa zopne na začiatku pohybu klávesy, druhý na konci (ako na nástrojoch YAMAHA). V tomto prípade musí byť signál do PA0 napájaný z inverzného výstupu multiplexora (pin 6). Bez zmien v obvode môžete použiť klávesnicu so 64 klávesmi (štandard – 61, t.j. 5 oktáv). V prípade potreby je možné počet kľúčov zvýšiť aspoň na 127, k tomu je potrebné zaviesť do obvodu ďalší dekodér KR1533ID7.

Veľmi dôležité je dobre nastaviť mechaniku – horné kontakty MUSIA pri uvoľnení kláves zovrieť. Ak sa tak nestane, program považuje takéto klávesy za stlačené a pokúsi sa ich spracovať, takže opätovné stlačenie týchto klávesov nevydá zvuk. Maximálny počet nôt, ktoré možno hrať súčasne, je navyše 10 (ak niekomu narástlo viac prstov na ruke, tento počet sa dá ľahko zmeniť) a neuvoľnením kláves sa tento počet znižuje. Z rovnakých dôvodov sa počet kláves špecifikovaný v procedúre dotazovania klávesnice MUSÍ zhodovať s počtom skutočných klávesov. Odskok kontaktu je potlačený softvérom.

Pre odporovú maticu R-2R ADC je vhodné vybrať odpory s presnosťou 1–2% a absolútne hodnoty sa môžu líšiť, pomer je dôležitý. Nemali by ste však výrazne zvyšovať nominálnu hodnotu, tým sa predĺži čas prevodu v dôsledku vstupnej kapacity komparátora. Použil som SMD odpory bez prispôsobenia, hoci merania ukázali, že v jednom montážnom páse sú odpory zvyčajne prispôsobené s presnosťou nad 1%. Som si istý, že obvod bude pracovať s nepresnými odpormi, ale linearita charakteristiky sa zhorší. Samotné koliesko je vyrobené z rukoväte zo starého televízora a na osi potenciometra má pružinu, ktorá ho vracia do strednej polohy. Pre pohodlie nastavenia mechaniky sa po zapnutí napájania so stlačeným tlačidlom režimu aktivuje program ladenia, ktorý rozsvieti LED diódu, keď je koleso v strednej polohe, čo vám umožní jemne doladiť nulovú polohu kolieska na osi potenciometra. Ak je potreba a želanie vyrobiť samostatné MODULačné koleso, je potrebné ho pripojiť k voľnému komparačnému prvku (sú štyri) a matica R-2R je spoločná pre obe kolesá. Na prepínanie výstupov komparátorov je lepšie použiť ďalší mikroobvod a ako riadiaci signál použiť PA2.

Na želanie si môžete zostaviť dynamickú verziu klávesnice bez indikácie, tlačidiel a kolieska PITCH WEEL / MODULATION - jednoducho bez montáže nepoužitej časti obvodu. Všetky meniteľné parametre sa po zapnutí nastavia na predvolené...

To všetko je možné napájať z čohokoľvek, spotreba prúdu závisí od konkrétneho indikátora a nepresahuje 100 mA. Stabilizátor 7805 mám priamo na doske bez chladiča (je to dobre vidieť na fotke). Malý radiátor je potrebný, ak sa do neho dodáva viac ako 9V. Komparátor je napájaný napätím 9 - 12 V, najlepšie stabilizovaným. Áno, použil som sovietske mikroobvody zo starých zásob - existuje veľké množstvo ich moderných analógov, výmena je možná a dokonca žiaduca - moderné analógy majú nižšiu spotrebu.

Program

Algoritmus na spracovanie stlačených klávesov pochádza z algoritmu navrhnutého v časopise „Microprocessor Tools and Systems“ č. 5, 1986. Bola to táto publikácia (alebo skôr chyba v navrhovanom programe), ktorá ma podnietila študovať assembler. V skutočnosti jedinou myšlienkou prevzatou odtiaľ bolo zaznamenať počet každého stlačeného klávesu do špeciálne pridelenej oblasti pamäte RAM (CHAN), takže keď je klávesnica znova vyzvaná, nespracúva znova už spracovaný kláves. Pre každé zo stlačených klávesov mám pridelené dve bunky RAM (celkom nie viac ako 10): v prvom je zaznamenané číslo stlačeného klávesu, v druhom - jeho RYCHLOSŤ (rýchlosť stláčania). Opakujem - týchto buniek je len 20 a počiatočná adresa je daná názvom CHAN. Znamienko voľného páru je nastavený najvýznamnejší bit prvej bunky. Najvýznamnejší bit druhej bunky, ktorá sa nastavuje, znamená, že NOTE ON pre tento kľúč už bol prenesený a nepotrebuje ďalšie spracovanie.

Nebudem podrobne popisovať celý program, zdrojový kód je plný komentárov a je celkom prístupný aj pre vyškoleného človeka. Pre ostatné poskytujem ihneď hotový firmware v súbore Dinamic.hex a Pitchmod.hex. Vysvetlím len niektoré veci, ktoré nie sú zrejmé. Najprv o dynamike: v okamihu otvorenia horných kontaktov kľúča sa jeho číslo zapíše do prvej bunky prvého voľného páru z oblasti CHAN, čím sa súčasne vynuluje znak voľného páru. Do druhej bunky sa zapíše počiatočná hodnota VELOCITY = 127. Citlivosť klávesnice je určená frekvenciou prerušenia, keďže spracovanie prerušenia znižuje hodnoty VELOCITY pre všetky klávesy, pre ktoré ešte nebol prenesený NOTE ON. Prerušenia sú spôsobené vstavaným časovačom. V momente, keď sú spodné kontakty kľúča zatvorené, v príslušnej bunke CHAN sa nastaví znak „prenesený“ a odošle sa NOTE ON s aktuálnou VELOCITY. Na zlepšenie krivky citlivosti sa hodnoty VELOCITY znižujú podľa logaritmického zákona: 1/16 jej časti zníženej o 1 sa odčíta od aktuálnej hodnoty VELOCITY. Kým sa teda kláves pohybuje od horného kontaktu k spodnému za prvé, hodnota VELOCITY v zodpovedajúcej bunke CHAN klesá podľa logaritmického zákona a čím rýchlejšie sa kľúč pohybuje, tým väčšia je VELOCITY v momente, keď sú spodné kontakty kľúča zatvorené a vysiela sa NOTE ON. Prerušenia ovládajú aj dynamické zobrazenie, aby sa eliminovalo blikanie indikátora.
Funkcie tlačidiel: TRANSPOSE - všetky klávesy sú zredukované na vaše obľúbené A mol: rozsah +/- 15 poltónov. PRG priradí timbre (nástroj) danej predvoľbe (UP1-UP5) a VOL priradí jej hlasitosť. Aktuálny parameter je zobrazený na indikátore a je možné ho zmeniť pomocou tlačidiel „+“ a „-.“ TWIN zobrazuje „dvojitý“ timbre – jednu z predvolieb (UP1-UP5) a zároveň predvoľbu LOWER zvuk súčasne. STEREO reprodukuje zvuk aktuálnej predvoľby do pravého a ľavého stereo kanála s miernym „rozladením“ (efekt „chorus“). Tlačidlo SPLIT nie je aktivované. Pedál SUSTAIN je obvodovo navrhnutý ako jedno z tlačidiel, kapacita jeho drôtu by nemala byť príliš veľká. Adresy ovládačov tlačidiel sú zhromaždené v tabuľke na začiatku programu, pri zmene funkcií tlačidiel ich môžete nahradiť vlastnými.

ADC kolesa je polovičný softvér, funguje pomocou postupného aproximačného algoritmu, matica R-2R vykonáva digitálno-analógový prevod. Najprv sa na maticu R-2R použije 1 z najvýznamnejšej číslice a komparátor určí, či je to veľa alebo málo. Ak je málo, 1 zostáva v najvýznamnejšom bite, ak je veľa - 0. Potom sa to isté stane s každým nasledujúcim bitom nízkeho rádu (celkovo 6 krokov) a dostaneme šesťbitové číslo zodpovedajúce uhol natočenia kolesa. Táto presnosť sa mi zdá dostatočná, ale môžete pridať ešte jeden bit zvýšením matice a konverzným programom.

Dizajn

Ako skutočnú klávesnicu som použil konštruktor „Start“ sovietskej výroby; teraz je možno jednoduchšie nájsť starú, nefunkčnú Yamahu alebo Casio, vyrieši to aj problém výroby puzdra - ak, samozrejme, starý nástroj je relatívne neporušený...

Doska plošných spojov nebola vyvinutá - považoval som za nevhodné tráviť čas zapojením a výrobou dosky na výrobu jednej kópie zariadenia a rozloženie bolo urobené na doske s plošnými spojmi pomocou prepojok MGTF. Ako konektor a kábel ku klávesnici sme použili kábel z disketových jednotiek z počítača s príslušným konektorom na každej strane - uľahčuje to montáž/demontáž hotového zariadenia.

V mojom prípade bolo telo ohnuté z tenkého oceľového plechu (čo bolo po ruke) - s drevenými bokmi (ako staré sovietske nástroje).

No to je skrátka všetko. Kreatívny úspech!

Zoznam rádioelementov

Označenie Typ Denominácia Množstvo PoznámkaObchodMôj poznámkový blok
Schéma č.1.
MikrokontrolérPIC16F841 Do poznámkového bloku
ČipKR1533ID71 Do poznámkového bloku
ČipKR1533KP71 Do poznámkového bloku
Lineárny regulátor

LM7805

1 Do poznámkového bloku
Dióda

KD522A

64 Do poznámkového bloku
Kondenzátor22 pF2 Do poznámkového bloku
Kondenzátor0,1 uF2 Do poznámkového bloku
100 uF2 Do poznámkového bloku
Rezistor

220 ohmov

2 Do poznámkového bloku
Rezistor

6,8 kOhm

8 Do poznámkového bloku
Kremenný rezonátor4 MHz1 Do poznámkového bloku
Tlačidlo klávesnice 64 Do poznámkového bloku
Schéma č.2.
MikrokontrolérPIC16F841 Do poznámkového bloku
ČipKR1533ID72 Do poznámkového bloku
ČipKR1533KP72 Do poznámkového bloku
ČipKR1533IR232 Do poznámkového bloku
Lineárny regulátor

LM7805

1 Do poznámkového bloku
Bipolárny tranzistor

KT315A

5 Do poznámkového bloku
Dióda

KD522A

80 Do poznámkového bloku
Kondenzátor22 pF2 Do poznámkového bloku
Kondenzátor0,1 uF2 Do poznámkového bloku
Elektrolytický kondenzátor100 uF2 Do poznámkového bloku
Rezistor

180 ohmov

7 Do poznámkového bloku
Rezistor

220 ohmov

2 Do poznámkového bloku
Rezistor

6,8 kOhm

16 Do poznámkového bloku
Rezistor

8 kOhm

1 Do poznámkového bloku
Kremenný rezonátor4 MHz1 Do poznámkového bloku
3-miestny digitálny LED indikátor so spoločnými anódami. 1 Do poznámkového bloku
Dióda vyžarujúca svetloČervená12 Do poznámkového bloku
Kľúčový spínač 64 Do poznámkového bloku
Tlačidlo 16 Do poznámkového bloku
Schéma č.3.
MikrokontrolérPIC16F841 Do poznámkového bloku
ČipKR1533ID71 Do poznámkového bloku
ČipKR1533KP72 Do poznámkového bloku
Porovnávač

Pre producentov a zvukových inžinierov sa MIDI ovládač stal už dlho dôležitým atribútom, ktorý pomáha vytvárať krásnu hudbu. Virtuálne nástroje znejú vždy špeciálne, preto sú ozdobou každej melódie.

Vzhľadom na to, že mnohí hudobníci sa veľmi zaujímajú o kvalitu svojich produktov, vyvstáva otázka: ako si vybrať ovládač typu MIDI? Tento článok popisuje tipy a základné kritériá výberu.

Čo je MIDI ovládač?

Ešte v 80. rokoch minulého storočia sa používalo zariadenie nazývané ovládač, ktoré umožňovalo hudobníkovi ovládať činnosť niekoľkých syntetizátorov naraz pomocou jednej klávesnice. Tento nápad mal úspech, takže zariadenia tohto typu sa okamžite rozšírili. Ak by si ich potom nemohol kúpiť každý, tak v súčasnosti ovládače výrazne zlacneli. Hudobníci, zvukári, skladatelia, interpreti, DJ - každý používa takéto zariadenia.

Čo je to zariadenie, ktoré má klávesnicu? Je to podobné ako klávesy klavíra a syntetizátora. Má pridané gombíky, rôzne tlačidlá a posúvače. Pri interakcii s nimi sa melódia prenáša do zvukových modulov, ktoré majú externý typ. Hovoríme o notebookoch a iných zariadeniach. Inými slovami, ovládače (väčšina z nich) nie sú schopné produkovať zvuk samostatne. Sú určené na reguláciu bitov, nôt a iných parametrov reprodukovaných z externého zariadenia (zvukového modulu).

Aké sú výhody MIDI ovládača? Najzrejmejšie: je všestranný a prenosný. Vďaka nemu môžete aplikovať všetky virtuálne efekty a ovládať moderný softvér. Dá sa ľahko prenášať napríklad pomocou tašky na notebook.

Čo hľadať pri nákupe?

Pred kúpou akéhokoľvek ovládača si treba premyslieť, na čo slúži. Bolo by užitočné odpovedať na nasledujúce otázky, ktoré poskytnú presnú predstavu o tom, ktorá možnosť z obrovského sortimentu je vhodná.

Na čo bude ovládač slúžiť? Zariadenie určené na scénické vystúpenia musí mať materiál odolný voči mechanickému namáhaniu. Vzhľadom na to, že väčšina ovládačov je vyrobená z plastu, musíte venovať pozornosť kovovým možnostiam. Musíte sa tiež rozhodnúť pre typ mechanizmu a počet kľúčov. Ak je ich priveľa, potom existuje možnosť zámeny účelu ktoréhokoľvek z nich počas živého vystúpenia.

Malý MIDI ovládač poslúži DJ-ovi. Nie je vôbec ťažké to urobiť vlastnými rukami, ak človek rozumie elektronike. To znamená, že DJi často používajú domáce vybavenie. Viac o tom si môžete prečítať nižšie. Takéto zariadenie si musíte kúpiť s prihliadnutím na skutočnosť, že potrebujete aj rukoväte a posúvače. Bez nich nebude program (MIDI ovládač pracuje len v tandeme s ním) vykonávať požadované funkcie.

Ak hudobník upravuje skladby v posteli, v lietadle, v aute alebo na inom mieste, hlavným hľadiskom pri výbere bude prenosnosť. Vzhľadom na to, že je zariadenie napájané, je potrebné venovať pozornosť tým, ktoré je možné nabíjať z USB zbernice.

MIDI ovládače od Pioneer

MIDI kontrolér Pioneer je zariadenie, ktoré bolo vždy žiadané. Tento výrobca už dlho patrí medzi troch najlepších lídrov na trhu s takýmito zariadeniami. Čo od seba odlišuje „príbuzné“ modely Pioneer? Len prítomnosť doplnkových funkcií, ktoré vyzerajú ako bežné mechanické tlačidlá na ovládacom paneli. Každý ovládač tejto značky má vynikajúce jog kolesá. Vzhľad je vážny a elegantný. Pôsobivá veľkosť zariadenia je kompenzovaná jeho maximálnou funkčnosťou.

Netreba sa čudovať, aký model si vybrať. Okamžite by ste sa mali bližšie pozrieť na DDJ-T1. Zariadenie je odporúčané mnohými.Pomer ceny a kvality je celkom dobrý. Ovládací panel je pohodlný, tlačidlá sa dajú bez problémov stlačiť a zariadenie sa ľahko prenáša.

Ovládač Novation Launchpad Controller

MIDI ovládač Novation Launchpad je navrhnutý špeciálne pre prácu s Ableton Live. Zariadenie je vhodné pre javiskové aj domáce štúdiové aktivity. Ľahko sa s ním budú organizovať aj diskotéky. Mriežka zariadenia pozostáva zo 64 tlačidiel. Je vybavený ďalšími efektmi, ako aj funkciami pre prácu so softvérom. Zariadenie je možné pripojiť k počítaču a funguje ako s rodinou Windows, tak aj s niektorými ďalšími operačnými systémami.

DIY MIDI ovládač - realita alebo mýtus?

Domáce MIDI ovládače sú už dlho žiadané. Čo je potrebné na to, aby sa váš nápad zrealizoval? Potrebujete schému, podľa ktorej bude zariadenie spájkované a zostavené, rozpočet, fyzika alebo elektrikára zbehlého v tejto oblasti.

Okrem znalosti technickej stránky si treba položiť aj otázku, koľko toho tvorca o ovládačoch vie. Ak chcete správne zostaviť zariadenie, ktoré splní všetky očakávania, musíte pochopiť, ktorá základňa je najlepšie použiť, prečo bude model zostavený a tiež, kam nainštalovať ovládací panel. Problém je pomerne zložitý, ale úplne riešiteľný. Dnes existuje veľa hotových obvodov, ktoré sa dajú použiť na zostavenie regulátora. Hlavná vec je dôvera vo vaše plány a trpezlivosť.

Model značky Akai

Akai nedávno vydal nový ovládač s názvom MPC Touch. Na rozdiel od príbuzných zariadení má tento 7-palcový displej. Vďaka tomu je práca s ním oveľa jednoduchšia. Na základe recenzií treba povedať, že práve opísaný model slúži ako príklad pri profesionálnych ovládačoch. Pri pohľade naň a zvážení funkčnosti hneď odpadá otázka, ako si takéto zariadenie vybrať. Softvér funguje pomerne rýchlo a efektívne, nevznikajú problémy a zlyhania sú extrémne zriedkavé.

Jedinou nevýhodou je, že ovládač nie je schopný fungovať bez zdroja energie, keďže nemá batériu. Značka Akai je na trhu známa už dlho. Jeho MIDI kontrolér je výkonným a kvalitným zariadením, ktoré znesie veľkú záťaž. Niektoré modely sa často používajú na javisku.

MIDI kontrolér je zariadenie, ktoré prevádza určitý fyzický proces na súbor digitálnych príkazov vo formáte MIDI. Fyzický proces môže byť čokoľvek od stlačenia klávesu prstom až po otočenie gombíka hlasitosti. Výsledný príkazový tok sa prenáša cez MIDI protokol do iných zariadení – počítača, hardvérových samplerov, syntetizátorov alebo externých sekvencerov a tam sa určitým spôsobom dešifruje. Najbežnejším typom MIDI ovládača je MIDI klaviatúra – elektronický ekvivalent klavírnej klaviatúry. Existuje aj mnoho ďalších typov ovládačov, vrátane elektronických bicích súprav.

Moderný trh ponúka obrovské množstvo rôznych MIDI ovládačov pre elektronické inštalácie, ktoré sa líšia rôznymi kritériami, ako je cena, kvalita, technické vlastnosti atď. Existuje aj niekoľko hotových užívateľských zariadení, ktoré sú implementované ako komerčné projekty (eDrum, megaDrum). Ale napriek tomu všetkému túžba vytvoriť takéto zariadenie vlastnými rukami stále žije v mysliach moderných Kulibinov.

A tak som sa pred pár rokmi, trochu oneskorene, začal zaujímať o vytvorenie takéhoto zariadenia, keďže som sa zúčastnil ťažkej hudobnej skupiny. Hrali sme hard rock, alebo skôr niečo ako brutaldeath, goregrind, grindcore. Hral som na elektrickej gitare. O niečo skôr sme kúpili biciu súpravu Sonor a po večeroch sme v garáži hučali. Neskôr sa nás garáž opýtala a vyvstala otázka ohľadom priestorov. Keďže sme nenašli nič, čo by stálo za to, rozhodli sme sa skúšať doma, čo okamžite viedlo ku konfliktu so susedmi. Tu vyvstala otázka elektronických bicích.

Paralelne s hraním na živé nástroje som písal elektronickú hudbu a používal VST nástroje a plug-iny, najmä na vytváranie bicích partov som uprednostňoval Addictive drums a ezDrums, ktoré majú schopnosť pracovať s MIDI rozhraním. Bez toho, aby som túto tému čo i len googlil, bezhlavo som sa vrhol do vývoja vlastného MIDI kontroléra na cenovo dostupnom mikrokontroléri ATMega32 v balení DIP, ktorý mal na palube 8 ADC kanálov. Nechcel som oplotiť okruh a rozhodol som sa obmedziť na 8 vstupov. Keďže ATMega32 nemá hardvérové ​​USB, použil som štandardné pripojenie k počítaču cez virtuálne usb. Po niekoľkých dňoch hrania sa s programovaním sa mi podarilo zariadenie spustiť. Predstavte si moje prekvapenie, keď som na internete objavil hotové zariadenie so schémou zapojenia a firmwarom (MegaDrum). Ale všetko, čo sa neurobí, je k lepšiemu.


Plné USB

Povolaním som programátor, ale povolaním programátor elektroniky, kandidát technických vied, a ako hovorieval môj bývalý vedúci, som Švajčiar, kosec a hráč na trúbku. Ako to už často býva, na AVR som sa zafixoval nie preto, že by som k nim niečo cítil, ale preto, že som bol úplne spokojný s ich výkonom a ich technickými vlastnosťami. Prišiel však čas, keď už nestačili. A potom ho nahradil stm32, okrem iného má na palube plnohodnotné USB rozhranie. Tu vznikol nápad vyrobiť plnohodnotný MIDI kontrolér. Okrem toho som už mal skúsenosti s prácou s MIDI rozhraním.

kde začať? Nemali sme stm32 v balíkoch DIP (ak vôbec existujú v prírode), takže myšlienka spájkovania na doske plošných spojov okamžite zmizla. Práve vtedy sa začali objavovať lacné vývojové dosky založené na mikrokontroléroch stm32, ako napríklad DISCOVERY. A teraz som šťastným majiteľom ladiacej dosky STM32F407DISCOVERY, ktorej súčasťou je aj programátor ST-Link. Procesor STM32F407 má 16 kanálov ADC, aj keď 4 kanály sú obsadené perifériami, ktorými je ladiaca doska jednoducho preplnená. Ale pre moje účely stačilo 12 kanálov.


Keď som strávil nejaký čas štúdiom programovacieho prostredia Keil, architektúry mikroprocesora STM32F407, ako aj štandardných periférnych knižníc na prácu s USB, vytvoril som program na dopytovanie všetkých kanálov ADC pomocou kanála priameho prístupu do pamäte, ako aj kompozitného USB. zariadenie, ktoré obsahuje MIDI Audio Device a HID na zmenu nastavení zariadenia.

Ako snímače pre bicie som použil piezo zvonček ZP-1, ktorý sa dá kúpiť v obchode za výhodnú cenu.


Vzal som schému zapojenia z MegaDrum.


Riadiaci program som napísal v Delphi s rezervou 16 kanálov. V zásade je možné počet kanálov zariadenia neobmedzene zvyšovať pridaním analógových multiplexerov do obvodu, ako sa to robí v Megadrum, ale pre naše účely stačí 16 kanálov, pretože nie sme tak pokročilí hudobníci. A pre začínajúceho bubeníka bude tento počet bubnov hračkou.


Zariadenie bolo testované v systéme Windows aj Linux pomocou sledovača Renoise. V práci neboli zistené žiadne zvláštne problémy.
Ale rozhodol som sa nezastaviť pri tomto výsledku. STM32F407 je pomerne sofistikovaný procesor, takže je pomerne drahý. Bolo lacnejšie vyrobiť zariadenie pomocou STM32F103. eBay prišiel na pomoc. Kúpil som si vývojovú dosku s STM32F103RBT6 na doske.


Je pravda, že nemá vstavaný programátor. Mal som šťastie, pretože som mal ešte programátora ST-Link z predchádzajúceho zamestnania.


Firmvér sme museli úplne prepísať, keďže princípy fungovania procesorov 407 a 103, aj keď nie radikálne, sú odlišné.
Potom som na internete narazil na ladiacu dosku, ktorá v skutočnosti stála cent a rozhodol som sa, že týmto spôsobom dokážem znížiť náklady na komponenty na minimum.

Väčšina článkov na internete sa týka výroby MIDI klávesníc, ovládačov, ovládačov atď. sú založené na použití MIDI konektorov, ktorých pripojenie k modernému počítaču môže byť problematické. Staršie zvukové karty mali herný port, ku ktorému ste mohli pripojiť joystick alebo MIDI zariadenie:

Všetky nové základné dosky sa však dodávajú so vstavaným ovládačom zvuku a zvukovým kartám často chýba možnosť pripojenia MIDI zariadení.
Ostáva už len kúpiť si modernú MIDI klávesnicu, DJ konzolu atď. s USB výstupom na pripojenie k počítaču, alebo dokúpiť/prispájkovať adaptér, alebo dokúpiť špeciálnu zvukovú kartu s možnosťou pripojenia MIDI zariadení. Nákup, samozrejme, nie je problém, ale nie preto sme prišli na túto stránku, však?

V tomto článku chcem ukázať, ako môžete použiť lacný ovládač Arduino na vytvorenie jednoduchej MIDI klávesnice s USB pripojením pre 8 kláves a rolovacím kolieskom.

Tak som použil:
Arduino UNO ovládač
8 ks. tlačidlá
8 odporov 10 kOhm
rotačný kódovač 25LB22-Q
doska a svetre

Schéma zapojenia je nasledovná:

Na pripojenie som použil najjednoduchšiu možnosť: 1 kľúč - 1 vstup. Pri väčšom počte klávesov, rôznych ovládačoch atď. Nemusí byť dostatok vstupov, takže budete musieť použiť čítanie dát buď cez analógové vstupy (pridaním odporov rôznych hodnôt) alebo cez multiplexovanie. Ak však k analógovému vstupu pripojíte niekoľko kláves, môžu pri súčasnom stlačení viacerých kláves nastať problémy s čítaním stavu. Preto je podľa mňa multiplex prijateľnejšia možnosť.

Softvér Arduino

Štruktúru MIDI dát nebudem uvažovať, pretože... je to popísané v článku:

Kodér je pripojený na vstupy hardvérového prerušenia, popis práce s ním nebudem uvažovať, pretože Program je jednoduchý a prevzatý z oficiálnej stránky Arduino.

V tomto projekte sa kodér používa ako rolovacie koliesko na zmenu modulačného kolieska, ale môže byť preradené na iné účely (pitch bend atď.).

MIDI dáta z kodéra, z Arduina, sa odosielajú s nasledujúcim riadkom:
noteOn(0xB0, 0x01, kodér0Pos);
kde 0xB0 je správa ovládača (zmena riadenia)
0x01 - kód ovládača (v našom prípade Modulácia)
encoder0Pos - hodnota regulátora (v našom prípade 0-127).
Zmenou kódov ovládačov môžete použiť rolovacie koliesko (kodér) pre rôzne ovládače.

Za zmienku stojí aj Pitch Bend. Zo špecifikácie MIDI vyplýva, že je potrebné poslať správu o veľkosti troch bajtov: 0xE0 (kód Pitch Bend), MSB (vysoký bajt), LSB (nízky bajt).

Dva vonkajšie bajty ukladajú 14-bitovú hodnotu rozstupu, ktorá môže byť v rozsahu od 0...16383 (0x3FFF). Stred je 0x2000, všetko nad touto hodnotou spôsobí zmenu výšky tónu smerom nahor, ak je nižšia, výška sa zmení smerom nadol.
V programovom kóde som zakomentoval riadky, ak zrazu chcete namiesto modulácie použiť Pitch Bend (stred hodnoty, rozklad na 2 bajty atď.)

Kód detekcie stlačenia klávesu obsahuje tri stavy: stlačenie klávesu, podržanie klávesu a uvoľnenie klávesu. Bolo to urobené tak, aby sa mohla preniesť hodnota trvania stlačenia klávesu. Ak to nie je potrebné, môžete ponechať iba jeden stav (stlačenie klávesu), program sa v tomto prípade výrazne zjednoduší.
Na spracovanie stavu každého z ôsmich kľúčov sa používa nasledujúci kód:

If (buttonState_C == HIGH && note_C_send_on == false) // Stlačený kláves ( noteOn(0x90, note_C, 0x7F); note_C_send_on = true; // príkaz Note On bol odoslaný note_C_send_off = false; // príkaz Note Off nebol odoslaný) inak (buttonState_C == HIGH && note_C_send_on == true) // Ak je kľúč podržaný ( noteOn(0x00, note_C, 0x7F); note_C_send_on = true; note_C_send_off = false; ) inak, ak (buttonState_C == LOW &_& note_C_s // Ak je kľúč uvoľnený ( noteOn(0x90, note_C, 0x00); note_C_send_on = false; note_C_send_off = true; encoder0Pos = 0; // Vráťte polohu kolieska na nulu ) ....... .. ... .... // Funkcia odosielania MIDI správy na sériový port void noteOn(int cmd, int pitch, int velocity) ( Serial.write(cmd); Serial.write(pitch); Serial. write(velocity); delay( 20); )

Upozorňujeme, že ak sa použije pitch bend, potom bude potrebné, aby sa kodér0Pos vrátil nie na nulu, ale na 0x2000 (alebo je lepšie nastaviť definovať na začiatku programu).

Takže obvod je zostavený, náčrt sa nahrá do ovládača, spustíme Serial Monitor, zmeníme prenosovú rýchlosť na 115200 a stlačíme klávesy alebo otočíme kódovač a pozrieme sa na hodnoty.
Ak je všetko v poriadku, prejdite na ďalšiu časť. Hneď poviem, že pre mňa sa to ukázalo ako najproblematickejšie, a keby som nenašiel virtuálny prevodník USB -> Midi, tento článok by neexistoval.

PC softvér (Windows)

Aby ste mohli prijímať dáta cez USB virtuálny COM port z Arduina a prenášať ich do akéhokoľvek programu MIDI sekvencera, potrebujete špeciálny nástroj: Serial MIDI Converter V2D (kancelária)

Program je multiplatformový, pod Windows 7 x64 mi fungoval, aj keď s istými problémami.

Spustíme ho, vyberieme USB port, prenosovú rýchlosť (115200) a MIDI Input Port a MIDI Output Port.

Teraz sú všetky MIDI dáta, ktoré prichádzajú do USB virtuálneho COM portu 12, presmerované do MIDI Yoke 6 portu (na vytvorenie virtuálnych MIDI portov som použil program MIDI Yoke). Môžete ich presmerovať na Microsoft GS Wavetable Synth a ďalšie porty.
Program musí byť vždy zapnutý. Keď stlačíte klávesy alebo otočíte gombíkom kódovača, indikátor Serial RX v spodnej časti by mal blikať.

Na vizuálne zobrazenie prichádzajúcich MIDI dát z portu sa mi veľmi hodil program MIDI-OX (kancelárska stránka):

Upozorňujeme, že v nastaveniach MIDI Devices musíte nastaviť port MIDI Input.

Teraz, keď stlačíte notové klávesy alebo otočíte kolieskom, uvidíte MIDI dáta v Monitor-Output.

To. Pomocou softvéru a hardvéru sme na ovládači Arduino dokázali vyrobiť jednoduchú MIDI klávesnicu s prenosom dát do počítača na následné spracovanie napríklad v Cubase atď. vrátane v reálnom čase.
Na základe tohto projektu si môžete vyrobiť DJ konzolu, plnohodnotnú MIDI klávesnicu atď.

Nižšie si môžete stiahnuť INO sketch, Serial MIDI Converter V2D, MIDI-OX a MIDI Yoke