Kako vlastitim rukama napraviti jeftin MIDI kontroler baziran na Arduinu. Kako vlastitim rukama napraviti jeftin MIDI kontroler baziran na Arduinu Čitanje pozicija potenciometra

Odavno sam želeo da probudim kompozitora u sebi i počnem da stvaram sopstvenu elektronsku muziku. Međutim, bile su me (blago rečeno) obeshrabrene visoke cijene MIDI kontrolera. Ali nakon što sam pretražio internet, dobio sam ideju da napravim svoj vlastiti kontroler koristeći Arduino Uno i provodne boje!

Počnimo)

Korak 1: Izbor dijelova

Možete malo odstupiti od predstavljenog materijala i MIDI kontroler koji ste sastavili će i dalje raditi (pod "malo odstupiti" mislim da možete ugraditi otpornik sa malo drugačijom vrijednošću ili ostaviti jedan od pinova isključen).

Od elektronike nam je potrebno:

  • 1 Arduino Uno sa USB kablom;

  • 1 tegla provodljive boje;

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

  • 3 dugmeta;

  • otpornici sa otporom od 2,2 kOhm;

  • 1 LED;

  • otpornici sa otporom od 10 kOhm;

  • 1 LDR senzor;

  • otpornici sa otporom od 4,7 kOhm;

  • 1 džemper;

  • 12 kom otpornika 2,7 MΩ;

  • 30 ravnih igala;

  • 12 savijenih igala;

  • 12 adaptera;

  • 12 spajalica.

Osim elektronike, trebat će vam i sljedeći alati:

  • Lemilo i lemljenje;
  • Rezači žice;
  • Stalak za dijelove za lemljenje (treća ruka);
  • Multimeter;
  • Nekoliko žica i/ili tanka metalna žica.

Korak 2: Zalemite igle

Počnimo sa stvaranjem ploče lemljenjem pinova. Hajde da objavimo savijene igle u sredini prvog reda na tabli. Oni će naknadno služiti kao "osjetljivi" pinovi na koje će se spojiti tastatura.

Nakon ugradnje igle, primijetite da kratke igle vire iz ploče. Pritisnemo ih tako da sve bude u ravnini. Sada ih lemimo i odmah provjeravamo veze na kratke spojeve.

Napomena: Ne lemite igle predugo, inače će se zagrijati i otopiti plastiku.

Za sljedeći korak postavite ravne češljeve u utore Arduino. Postavimo ploču na vrh pinova koji su umetnuti u Arduino. Ova akcija je zahtijevala malo sile jer igle nisu savršeno poravnate s rupama na ploči.

Nakon što ste uspješno instalirali ploču na igle, provjerite jesu li igle u ravni s gornjom ivicom ploče. Nakon toga se mogu zalemiti.

Korak 3: Zalemite kratkospojnike

Sada izvadimo ploču iz Arduina i okrenite je na drugu stranu. Zalemimo kratkospojnike na koje će komponente kasnije biti pričvršćene. Postoje dva načina da to uradite:

  • Popunite sve potrebne rupe lemom, a zatim ih spojite jedan s drugim.
  • Koristite tanku žicu.

Savjetujem vam da koristite drugu metodu jer je jednostavnija i brža. Ako odaberete ovu metodu, postavite žicu na ploču kao što je prikazano na slici.

  • Crvena tačka znači lemiti žicu u rupu.
  • Žuta tačka - spojite tanku žicu na pin na drugoj strani ploče (kao na trećoj slici).

Kao što vidite, malo sam zabrljao donji lijevi ugao kada sam stavio previše lema, pa budite oprezni!

Savjet: Ako nemate tanku žicu, upotrijebite ostatke vodova otpornika koje koristite.

Korak 4: Zalemite kapacitivne otpornike na dodir

Ugrađujemo komponente, tj 2.7 MOhmotpornici, koji će obavljati senzorno-kapacitivne funkcije.

Napomena: Ako želite saznati više o teoretskim osnovama i praktičnim primjenama dodirnih kapacitivnih senzora, savjetujem vam da pogledate sljedeće linkove:

Hajde da postavimo jedan 2.7 MOhmotpornik sa dna krajnje desne savijene igle i gurnite noge kroz rupe (kao na prvoj slici). Sada okrenimo ploču i gurnimo jedan otpornik nazad u sljedeću rupu (kao što je prikazano na drugoj slici). Zalemite donju nogu otpornika na rupu, a gornju nogu otpornika na pin terminal. Zatim ćemo priložiti 7 cm žice na ovu iglu (kao što se vidi sa treće slike).

Ponovimo postupak sa svim otpornicima i žicama, lemimo ih na svoje mjesto. Donje noge otpornika trebale bi činiti jednu dugačku vezu.

Savjet: Odaberite naizmjenične boje za žice - ovo će olakšati povezivanje u kasnijim koracima.

Korak 5: Zalemite dugmad

Počnimo s postavljanjem dugmadi i otpornika na ploču, kao na prvoj i drugoj slici. U mom slučaju sam koristio 2.2 kOhm otpornici, ali možete koristiti bilo koji otpornik čija je vrijednost između 2kOhm i 10KOhm.

Okrenimo ploču i zalemimo sve na svoje mjesto. Slika 3 objašnjava različite veze koje ćete morati napraviti:

  • plava tačka – označava nogu dugmeta koju treba zalemiti na ploču;
  • ružičasta tačka – označava nogu otpornika, koja mora biti zalemljena na ploču;
  • crvena linija znači da trebate zalemiti dvije točke u jednu vezu;
  • crna linija označava žicu koja će ići od jedne noge dugmeta kroz rupu na ploči, koja će se zatim spojiti na pin na drugoj strani.

Ako je sve ispravno zalemljeno, dvije krajnje lijeve tipke će vam omogućiti promjenu oktava, dok će krajnje desno dugme omogućitiLDR senzor.

Korak 6: Zalemite LDR i LED

Nakon što su gumbi zalemljeni, nastavljamo s ugradnjom LDR-a, LED-a i odgovarajućih otpornika. Prije nego što to učinite, bilo bi mudro eksperimentirati s vrijednostima otpornika koji će ići na LED. Možda je moja ocjena previsoka da upalim vaš LED. Eksperimentirajte malo kako biste pronašli ispravnu vrijednost otpornika.

Savjet: Bilo koji otpornik između 330Ohm i 5kOhmbilo bi dobro rešenje za 5mmLED.

Sada ćemo urediti LED, LDR i otpornike ( 4.7 K zaLDR) na pravim mjestima. Okrenimo ploču i zalemimo sve. Treća slika će objasniti različite veze koje je potrebno napraviti:

  • smeđe tačke su LDR pinovi koje treba zalemiti na ploču;
  • ružičasta tačka je noga otpornika koju treba zalemiti na ploču;
  • narandžaste tačke su LED igle koje je potrebno zalemiti na ploču;
  • crvena traka - trebate zalemiti dvije točke u jednu vezu;
  • crna traka je žica koja će ići od izlaza otpornika kroz rupu na ploči, koja će se zatim spojiti na pin.

Napomena: Prije lemljenja LED, provjerite je li polaritet LED diode ispravan. Pozitivni terminal LED-a treba biti spojen na otpornik, a negativni terminal na masu.

Korak 7: Testirajte sve veze

Sada je pravo vrijeme da testirate da li su spojevi dugmadi, LDR-a i LED-a uspješno zalemljeni. Ovo je posljednja prilika da ispravite greške, savjetujem vam da preuzmete priloženi kod i pokrenete program. i preuzimanje Arduino_Test_Fixture_Code na Arduino ploču.

Ako je sve uspješno i test je završen, možete prijeći na sljedeći korak. Ako nije, još jednom provjerite zalemljene spojeve na ploči. Bolje je imati multimetar pri ruci, to govorim iz vlastitog gorkog iskustva.

Korak 8: Dovršavanje ploče

Počnimo s postavljanjem žica u rupe, kao što se vidi na prvoj slici. Za ovaj korak je prikladno koristiti dvije žice različitih boja.

Okrenimo ploču i izrežemo žice na potrebnu dužinu. Zalemite ih na pinove koji ulaze u Arduino konektore. Prije nego počnete koristiti MIDI kontroler, prvo morate testirati njegove veze pomoću probne skice. Otpremite skicu, otvorite serijski port i dodirnite "osjetljive" pinove na ploči. Ako vidite tekst 'Note x is active' za svaki pin kada ga dodirnete, sve igle rade ispravno.

Korak 9: Pretvorite Arduino u MIDI uređaj

Kada je ploča spremna, vrijeme je da Arduino pretvorite u MIDI kontroler koji će prepoznati muzički programi kao što su Ableton i Fl Studio ili čak drugi MIDI uređaji. Proces se sastoji od dva koraka:

  1. Promijenite trenutni firmver na Arduino Uno u MIDI kompatibilne programe;
  2. Prenesite MIDI skicu na Arduino.

Krenimo od prve tačke. Učitano u Arduino prema stanju firmwareUSB-serijski port, što omogućava Arduinu da razmjenjuje poruke s PC-om i Arduino IDE. Sa novim programom DualMoco, bit će dodat drugi način rada koji će omogućiti Arduinu da djeluje kao MIDI uređaji.

Koristit ćemo program FLIP i slijediti upute za promjenu Arduino firmvera. Pronaći ćete radni fajl u arhivi u folderu Firmware - fajl DualMoco.hex.

Nakon preuzimanja novog firmvera, ponovo povežite Arduino na PC. Ako sve prođe kako treba, Arduino IDE ne bi trebao otkriti jer je novi program u ( MIDInačin rada). Otvorite muzički program koji može snimati MIDI i provjerite da li je Arduino imenovan MIDI/ MOCOzaLUFA je prikazan iznad MIDI postavki, kao što možete vidjeti na 1. slici.

Korak 10: Završne pripreme

Posebnost DualMoco je da ima drugi mod - USB-serijski port, koji vam omogućava da otpremite skice iz Arduino IDE, baš kao i kod običnog firmvera. Da stavite Arduino u drugi način rada, povežite dva ISCP pina zajedno kao što je prikazano na slikama 1 i 2. Možete koristiti ili komad žice ili malu žicu za kratkospojnik kao što je prikazano na slikama. Sada isključite USB kabel iz Arduina na nekoliko sekundi i ponovo ga povežite, Arduino bi se trebao pojaviti u Arduino IDE.

Napomena: Kada želite da pređete iz režimaUSB-serijski portVMIDI mod, uklonite kratkospojnik izISCP pinove kao što je prikazano na trećoj slici i ponovo se povežiteArduino na PC.

Vrijeme je da prenesete trenutnu skicu na Arduino, Arduino_Final_Kod. Preuzmite ga, pretvorite Arduino u USBserijski port modu i preuzmite kod. Ako trebate fino podesiti prag, eksperimentirajte s vrijednostima PRAG I RES. Kada sve radi kako se očekuje, promijenite trenutni red 17, iz:

boolean midiMode = false; // ako je midiMode = false, Arduino će djelovati kao usb-serial uređaj

boolean midiMode = istina;// ako je midiMode = true, Arduino će djelovati kao izvorni MIDI uređaj.

Nakon što su konačne promjene u kodu napravljene, vrijeme je da se testira muzički program koji podržava MIDI uređaje. Prvo, prebacimo Arduino u MIDI način rada, za ovo:

  1. Učitajmo konačni kod u Arduino.
  2. Uklonimo USB kabl iz Arduina.
  3. Prebacite Arduino na MIDI mod uklanjanjem kratkospojnika sa ISCP pinova.
  4. Hajde da instaliramo USB kabl u Arduino.

Ako je sve prošlo kako treba, otvorite muzički program i počnite dodirivati ​​igle. Magični zvuci moraju zvučati...

Korak 11: Zalemite spajalice na kratkospojnike

Kada je Arduino ploča u potpunosti završena, vrijeme je da se fokusirate na tipkovnicu i kako je spojiti na ploču. Postoji milion načina da se to uradi, ali ja sam odabrao spajalice koje bi bile pričvršćene za obojeni papir (lako se pričvršćuju i mogu se ponovo koristiti).

Proces lemljenja spajalica na žice je prilično jednostavan:

  1. Odrežite utikač na jednoj strani žice;
  2. Skinemo izolaciju žice za 5 mm;
  3. Zalemite ogoljenu žicu na spajalicu;
  4. Ponovite za svih 12 spajalica.

Napomena: spajalice ne smiju biti premazane bilo kakvim premazom (bojom ili plastikom).

Korak 12: Slikanje šablona

Iako je Arduino MIDI tastaturu moguće svirati samo dodirivanjem spajalica, mnogo je zabavnije napraviti vlastitu šablonu i koristiti je. Obojili odštampani šablon. Šablon se nalazi u arhivi projekta.

Bojenje šablona je prilično jednostavno, samo pazite da ostavite razmak između redova i koristite odgovarajuće boje, inače neće raditi. Nakon što se boja osuši, pričvrstite spajalice na "ključeve" i možete početi s muzikom.

Hvala vam na pažnji!)

Tastatura je dizajnirana za povezivanje sa eksternim zvučnim modulom ili računarom (ako postoji odgovarajući interfejs) korišćenjem MIDI protokola - za snimanje muzike u program sekvencer ili nastup uživo. Broj tastera u predloženoj verziji je 48, ali se može povećati na 64 bez promene kola.

Istorijat uređaja

Prije nekog vremena, u vezi sa kupovinom stana, bio sam primoran da izgubim luksuzni instrument koji mi je služio kao MIDI klavijatura - bio je to legendarni YAMAHA DX-7. Kada je tuga splasnula, postavilo se pitanje u svoj svojoj ozbiljnosti i ružnoći: na čemu raditi? U tom trenutku je, trudom mog prijatelja, u moje ruke palo polusastavljeno kolo za KR1816BE39 (u suparničkim terminima ovaj procesor se zove 8048). Kolo je lako sastaviti i postaviti, i, što je najvažnije, došlo je pri ruci u pravo vrijeme. Sastavio sam tastaturu u obliku 8x6 matrice koristeći KR1533ID7 i KR1533KP7. Postojala je i muha u masti - dva nedostatka ove šeme na smrt ubijaju sve njene prednosti: nedostatak osjetljivosti na brzinu pritiska na tipku (zvučnici) i točak PITCH WEEL. Pa, jednom sam programirao na Z-80 (i čak napravio ispravan sekvencer) i odlučio da se otresem starih dana. Odlučno sam odbacio Z-80 kao CPU kao moralno zastario. Osim toga, nisam htio puno lemljivati ​​i odlučio sam uzeti ovaj isti uređaj na KR1816BE39 kao osnovu, opremivši ga još jednim multiplekserom za razbijanje (gornjih) kontakata tipki. Našao sam dokumentaciju (nećete vjerovati - u biblioteci, knjiga “Dizajniranje digitalnih uređaja na mikroprocesorima s jednim čipom”) za asembler KR1816BE39 i naškrabao program... A onda se ispostavilo da je prijateljov ROM programer imao umro, a program jednostavno nije bilo čime flešovati... Od tuge sam potpuno poludio i odlučio da prepišem isti algoritam za PIC. Za pola dana je zalemljen programator (LUDIPIPO), zatim je napravljen prototip od socketa KR1533ID7 i para KR1533KP7, a kompletnu instalaciju uradio je MGTF bez ikakvog pečata. I proces je počeo...

Prvo je pokrenuta nedinamička verzija programa (predstavljam je i za one koji imaju tastaturu sa jednim kontaktom po tipki). Tada je pokrenuta dinamička verzija. A onda je došla ideja da se dodaju dugmad i indikator. Činjenica je da sam imao WAVEBLASTER (kćerki talasni sintisajzer za veoma stare zvučne sisteme) koji je dugo ležao u praznom hodu. Povezujući to sa svojom kreacijom, dobio sam nešto na čemu možete igrati (koliko je u vašoj moći i talentu) bez kompjutera, što je ponekad prilično zgodno. Ovo je odredilo skup funkcija na dugmadima - može biti korisno pri povezivanju na zvučne module tokom reprodukcije "uživo". Funkcije dugmadi se lako mijenjaju pisanjem vlastitih rukovatelja i korištenjem mojih procedura za ispitivanje i prikaz. Nekako se pokazalo da je tastatura sastavljena u gvozdenom kućištu zgodnija od YAMAHA PSS (još uvijek tipke u punoj veličini, pedala i, što je najvažnije, dinamika!). Usred kreativnog procesa pojavila se teška želja da se napravi verzija MIDI tastature isključivo za računar - indikator i dugmad su opcioni, ali su potrebni točkići PITCH WEEL i MODULATION. Borio sam se s tim neko vrijeme, ali na kraju sam odustao i ponovo uključio lemilicu. Elektroniku nije teško sastaviti, ali je mehanika nešto teža, i počeo sam da mrzim obrvu preko dizajna točkova. Nakon malo razmišljanja, odlučio sam da napustim drugi točak - u svakom slučaju, nikada ne okrećem oba odjednom, obično prvo pišem note i tonu, pa dodam modulaciju. Nije najmanje važno da se prepolovi obim mehaničkog rada koji sam toliko volio. Za manje lijene, u nastavku ću objasniti kako napraviti dva točka bez ikakve složenosti. Da bih i dalje mogao da pišem modulaciju, odlučio sam da organizujem tri načina rada točka: visina tona za 2 polutona, visina tona za 1 poluton (pogodno) i modulacija. Sve ovo možete prebaciti jednim dugmetom, a način rada označiti parom LED dioda. Da bih pojednostavio sklop, eliminirao sam preostale tipke i indikatore, sve to nije potrebno za rad s modernim programima sekvencera.

Točak se, naravno, mora staviti na osu potenciometra, to je razumljivo, ali na šta ga treba povezati? Moja prva pomisao bila je da koristim jednokratni tajmer 555, ali proračuni su pokazali da bi bilo teško postići tačnost i stabilnost mjerenja širine impulsa kada se pokuša osigurati prihvatljiva brzina uzorkovanja, budući da je procesor uglavnom zauzet mjerenjem. vrijeme uključivanja kontakata na tastaturi. Jedini preostali način je korištenje analogno-digitalnog pretvarača (ADC). Pošto sam koristio Pic16F84 bez ugrađenog ADC-a, sjetio sam se svoje inženjerske pozadine (i svoje izvorne tvornice) i napravio ADC od nekoliko otpornika sa komparatorom (i dijelom programa). Ispalo je jednostavno, jeftino i prilično precizno.

Predstavljam oba dijagrama - i sa dugmadima i sa točkićima, kao i programe za njih. Ako želite, oba kola se mogu lako kombinovati blagim promenom adresa eksternih uređaja, samo treba da zapamtite da režim CHORUS (STEREO) koristi visinu tona da bi se dobio detuning i morate ga ili ukloniti, ili brinuti o odašiljanju visine tona sa detuningom; preko kanala.

Dakle - prava tastatura

Dijagram uređaja

Prva se pojavila nedinamička verzija, neosjetljiva na silu udara na tipku - za testiranje funkcionalnosti rasporeda.

Koristio sam PIC16F84 kao procesor iz nekoliko razloga: ovaj čip je dostupan, jeftin i lak za programiranje, a imao sam ga pri ruci. Pažnja: PIC16C84 nije prikladan - ima samo 36 ćelija RAM-a i program neće raditi. Međutim, kolo kotača koristi manje RAM ćelija i njegov program se može ugurati u PIC16C84 smanjenjem još nekoliko ćelija, na primjer MIDCH (dodjeljivanjem konstantnog MIDI kanala svim prenesenim podacima).

Dijagram dinamičke tastature sa indikacijom je prikazan u nastavku:

Kolo je tradicionalno u mnogim aspektima - teško je izmisliti bicikl bez pedala i kotača J Port B radi za prijenos - nižih 7 bitova daje ključnu adresu u matrici ili podatke za eksterne uređaje (indikator i DAC). Najznačajniji bit se koristi za izlaz MIDI podataka u serijskom kodu - konverzija i izlaz se obavljaju u softveru. Stoga bi kristal trebao biti na 4 MHz osim ako ne želite prepisati izlaznu rutinu MIDI bajta. Dva najmanje značajna bita porta A rade za prijem - oni primaju signale od multipleksera "otpuštenih" i "pritisnutih" ključnih kontakata, a tri najznačajnija bita određuju adresu vanjskog uređaja (putem drugog dekodera KR1533ID7). U krugu sa kotačićem, napustio sam dekoder adrese eksternog uređaja kako bih pojednostavio kolo i oslobodio visoki bit PA4 porta za unos podataka iz komparatora, tako da su adrese tastature i dugmadi različite. Prilikom kombinovanja kola, ovo mikrokolo će morati da se vrati, da se dešifruje adresa, koriste bitovi porta PA2 i PA3, i adresa 4 uređaja: tastatura, tasteri, registar podataka dinamičke indikacije i registar poznavanja dinamičkih indikacija. Indikacija načina rada kotača će se morati ponovo napisati.

Krug sa PITCH WEEL / MODULATION kotačićem izgleda ovako:

Na svaki ključ je instalirana jedna dioda za razdvajanje. Otpornici na ulazima multipleksora ne bi trebali biti veći od 8k, inače su mogući kvarovi zbog montažne kapacitivnosti. Indikator - bilo koji sa zajedničkom anodom za 3 znamenke, ako se terminali segmenata svake znamenke izlaze odvojeno, terminali segmenata istog imena moraju se kombinirati - indikacija je dinamička i cifre svijetle uzastopno. Bilo koji taster, bez zaključavanja, odbijanje kontakta se kontroliše softverom. LED diode su instalirane u blizini istoimenih tipki i označavaju aktivaciju odgovarajućih načina rada tipke "+" i "-" nemaju LED diode. Tranzistori na indikatoru su bilo koja reverzna provodljivost male snage, visoke frekvencije. Dva registra KR1533IR23 se koriste za naizmenično zaključavanje adrese i koda cifre tekućeg indikatora (LED su takođe grupisane u dve kvazi-cifre). Koristio sam standardnu ​​tastaturu od sovjetskih električnih orgulja sa 48 tipki (također je proizvedena zasebno kao dizajner radija „START“ i prilično je rasprostranjena). Da bi se smanjila visina klavijature i debljina instrumenta, ostavljene su dvije od šest kontaktnih grupa ispod svake tipke, te je cijela stvar izrezana i ponovo zalijepljena. Općenito, jedna grupa za prebacivanje po ključu je dovoljna, ali je bilo zgodnije zalijepiti je na ovaj način. Sabirnice "otpuštenih" i "pritisnutih" kontakata imaju 8 ključeva. Po želji možete koristiti i tastaturu gdje se umjesto sklopne grupe kontakata koriste dva para kontakata za zatvaranje - jedan par se zatvara na početku pokreta tipke, drugi na kraju (kao na YAMAHA instrumentima). U ovom slučaju, signal na PA0 mora biti napajan sa inverznog izlaza multipleksora (pin 6). Bez promjena u krugu, možete koristiti tastaturu sa 64 tipke (standardno – 61, tj. 5 oktava). Ako je potrebno, broj ključeva se može povećati na najmanje 127 da biste to učinili, potrebno je uvesti još jedan dekoder KR1533ID7 u krug.

Veoma je važno dobro postaviti mehaniku - gornji kontakti MORAJU da se zatvore kada se tasteri otpuste. Ako se to ne učini, program smatra da su takve tipke pritisnute i pokušava ih obraditi, tako da ponovni pritisak na ove tipke ne proizvodi zvuk. Osim toga, maksimalan broj nota koje se mogu svirati istovremeno je 10 (ako je neko povećao više prstiju na rukama, ovaj broj se lako može promijeniti), a nepuštanjem tipki se ovaj broj smanjuje. Iz istih razloga, broj tipki naveden u proceduri prozivanja tastature MORA odgovarati broju pravih tipki. Odbijanje kontakta je potisnuto softverom.

Za otpornu matricu R-2R ADC preporučljivo je odabrati otpornike s točnošću od 1-2%, a apsolutne vrijednosti mogu biti različite, omjer je važan. Međutim, ne biste trebali značajno povećati nominalnu vrijednost, ovo će povećati vrijeme konverzije zbog ulaznog kapaciteta komparatora. Koristio sam SMD otpornike bez uparivanja, iako su mjerenja pokazala da se u jednoj montažnoj traci otpornici obično podudaraju s tačnošću iznad 1%. Siguran sam da će krug raditi s nepreciznim otpornicima, ali će se linearnost karakteristike pogoršati. Sam točak je napravljen od ručke sa starog televizora i ima oprugu na osi potenciometra koja ga vraća u srednji položaj. Radi praktičnosti podešavanja mehanike, kada uključite napajanje sa pritisnutim dugmetom za režim, aktivira se program za otklanjanje grešaka koji pali LED kada je točak u srednjem položaju, što vam omogućava da fino podesite nultu poziciju točka na osi potenciometra. Ako postoji potreba i želja da se napravi poseban MODULACIONI kotač, potrebno ga je povezati sa slobodnim komparatorskim elementom (ima ih četiri), a R-2R matrica je zajednička za oba točka. Za prebacivanje izlaza komparatora, bolje je koristiti dodatni mikro krug i koristiti PA2 kao upravljački signal.

Ako želite, možete sastaviti dinamičku verziju klavijature bez indikacija, dugmadi i kotačića PITCH WEEL / MODULATION - jednostavno bez sastavljanja neiskorištenog dijela kola. Svi promjenjivi parametri će biti postavljeni na zadane vrijednosti kada se uključi...

Sve se to može napajati iz bilo čega, potrošnja struje ovisi o specifičnom indikatoru i ne prelazi 100 mA. Imam 7805 stabilizator tačno na ploči bez hladnjaka (to se jasno vidi na fotografiji). Mali radijator je potreban ako se na njega napaja više od 9v. Komparator se napaja naponom od 9 - 12 V, po mogućnosti stabiliziran. Da, koristio sam mikro krugove sovjetske proizvodnje iz starih zaliha - postoji veliki broj njihovih modernih analoga, zamjena je moguća i čak poželjna - moderni analozi imaju manju potrošnju.

Program

Algoritam za obradu pritisnutih tastera potiče iz onog predloženog u časopisu “Mikroprocesorski alati i sistemi” br. 5, 1986. godine. Upravo me ova publikacija (tačnije, greška u predloženom programu) navela da studiram asembler. Zapravo, jedina ideja preuzeta odatle je bila da se zabilježi broj svake pritisnute tipke u posebno dodijeljenoj oblasti RAM-a (CHAN), tako da kada se tastatura ponovo proziva, ne obrađuje ponovo već obrađenu tipku. Imam dvije RAM ćelije dodijeljene za svaku pritisnutu tipku (ne više od 10 ukupno): u prvoj se bilježi broj pritisnute tipke, u drugoj - njena BRZINA (brzina pritiska). Ponavljam - ovih ćelija ima samo 20 i početna adresa je data imenom CHAN. Znak slobodnog para je postavljeni najznačajniji bit prve ćelije. Najznačajniji bit druge ćelije koja se postavlja znači da je NAPOMENA ON za ovaj ključ već poslana i da nije potrebna dalja obrada.

Neću detaljno opisivati ​​cijeli program; izvorni kod je prepun komentara i prilično je dostupan obučenoj osobi. Za ostalo, odmah dajem gotov firmver u datoteci Dinamic.hex i Pitchmod.hex. Objasniću samo neke neočigledne tačke. Pa, prije svega, o dinamici: u trenutku kada se gornji kontakti ključa otvore, njegov se broj upisuje u prvu ćeliju prvog slobodnog para iz područja CHAN, istovremeno resetirajući znak slobodnog para. Početna vrijednost VELOCITY = 127 upisuje se u drugu ćeliju. Prekide uzrokuje ugrađeni tajmer. U trenutku kada su donji kontakti ključa zatvoreni, u odgovarajuću ćeliju CHAN se postavlja znak “preneseno” i NOTE ON se prenosi sa trenutnom VELOCITY. Da bi se poboljšala kriva osjetljivosti, vrijednosti VELOCITY se smanjuju prema logaritamskom zakonu: 1/16 njegovog dijela, smanjenog za 1, oduzima se od trenutne vrijednosti VELOCITY, dok se ključ pomiče od gornjeg kontakta do donjeg prvo, vrijednost VELOCITY u odgovarajućoj CHAN ćeliji se smanjuje prema logaritamskom zakonu, i što se ključ brže pomiče, veća je VELOCITY u trenutku kada se donji kontakti ključa zatvaraju i NOTE ON se prenosi. Prekidi takođe kontrolišu dinamički prikaz, ovo se radi kako bi se eliminisalo treperenje indikatora.
Funkcije dugmadi: TRANSPOSE - sve tipke su svedene na vaš omiljeni a-mol: opseg +/- 15 polutonova. PRG dodeljuje tembar (instrument) datoj unapred podešenoj vrednosti (UP1-UP5), a VOL dodeljuje njenu jačinu. Trenutni parametar se prikazuje na indikatoru i može se mijenjati pomoću tipki “+” i “-” TWIN prikazuje “dvostruki” tembar - jedan od unaprijed postavljenih (UP1-UP5) i, u isto vrijeme, NIŽI preset. zvuk istovremeno. STEREO emituje zvuk trenutno podešene postavke na desni i levi stereo kanal sa blagim „detuningom“ (efekat „horusa“). Dugme SPLIT nije aktivirano. SUSTAIN pedala je dizajnirana u obliku kruga jer jedna od dugmadi ne bi trebala biti jako velika. Adrese rukovalaca dugmadima skupljaju se u tabeli na početku programa, kada menjate funkcije dugmadi, možete zameniti svoje.

ADC kotača je pola softvera, radi koristeći algoritam uzastopne aproksimacije, R-2R matrica vrši digitalno-analognu konverziju. Prvo, 1 u najznačajnijoj cifri se primjenjuje na R-2R matricu, a komparator određuje da li je to puno ili malo. Ako je malo, 1 ostaje u najznačajnijoj cifri, ako ima puno - 0. Tada se ista stvar dešava sa svakom narednom cifrom nižeg reda (ukupno 6 koraka) i dobijamo šesto-bitni broj koji odgovara ugao rotacije točka. Ova preciznost mi se čini dovoljnom, ali možete dodati još jedan bit povećanjem matrice i programa konverzije.

Dizajn

Kao pravu tastaturu, koristio sam sovjetski “Start” konstruktor, sada je možda lakše pronaći staru, neispravnu Yamahu ili Casio, to će također riješiti problem izrade kućišta – ako je, naravno, kućište; stari instrument je relativno netaknut...

Štampana ploča nije razvijena - smatrao sam neprikladnim trošiti vrijeme na ožičenje i izradu ploče za proizvodnju jedne kopije uređaja, a raspored je napravljen na ploči pomoću MGTF džampera. Kao konektor i kabl za tastaturu koristili smo kabl od flopi drajvova sa računara sa odgovarajućim konektorom na svakoj strani - to olakšava sklapanje/demontažu gotovog uređaja.

U mom slučaju, tijelo je bilo savijeno od tankog čeličnog lima (ono što je bilo pri ruci) - sa drvenim stranicama (kao stari sovjetski instrumenti).

Pa, ukratko, to je sve. Kreativni uspjeh!

Spisak radioelemenata

Oznaka Tip Denominacija Količina BilješkaProdavnicaMoja beležnica
Šema br. 1.
MikrokontrolerPIC16F841 U notes
ČipKR1533ID71 U notes
ČipKR1533KP71 U notes
Linearni regulator

LM7805

1 U notes
Diode

KD522A

64 U notes
Kondenzator22 pF2 U notes
Kondenzator0,1 µF2 U notes
100 µF2 U notes
Otpornik

220 Ohm

2 U notes
Otpornik

6,8 kOhm

8 U notes
Kvarcni rezonator4 MHz1 U notes
Dugme tastature 64 U notes
Šema br. 2.
MikrokontrolerPIC16F841 U notes
ČipKR1533ID72 U notes
ČipKR1533KP72 U notes
ČipKR1533IR232 U notes
Linearni regulator

LM7805

1 U notes
Bipolarni tranzistor

KT315A

5 U notes
Diode

KD522A

80 U notes
Kondenzator22 pF2 U notes
Kondenzator0,1 µF2 U notes
Elektrolitički kondenzator100 µF2 U notes
Otpornik

180 Ohm

7 U notes
Otpornik

220 Ohm

2 U notes
Otpornik

6,8 kOhm

16 U notes
Otpornik

8 kOhm

1 U notes
Kvarcni rezonator4 MHz1 U notes
3-cifreni LED digitalni indikator, sa zajedničkim anodama. 1 U notes
Dioda koja emituje svetlostCrveni12 U notes
Prekidač sa ključem 64 U notes
Dugme 16 U notes
Šema br. 3.
MikrokontrolerPIC16F841 U notes
ČipKR1533ID71 U notes
ČipKR1533KP72 U notes
Comparator

Već duže vrijeme, za producente i inženjere zvuka, MIDI kontroler je postao važan atribut koji pomaže u stvaranju prekrasne muzike. Virtuelni instrumenti uvek zvuče posebno, pa su ukras svake melodije.

Zbog činjenice da su mnogi muzičari veoma zabrinuti za kvalitet svojih proizvoda, postavlja se pitanje: kako odabrati kontroler tipa MIDI? Ovaj članak će opisati savjete i osnovne kriterije odabira.

Šta je MIDI kontroler?

Još 1980-ih godina korišćen je uređaj nazvan kontroler kako bi se omogućilo muzičaru da kontroliše rad nekoliko sintisajzera odjednom koristeći jednu klavijaturu. Ova ideja je bila uspješna, pa su uređaji ovog tipa odmah postali široko rasprostranjeni. Ako ih tada nisu mogli kupiti svi, tada su u ovom trenutku kontrolori jako pojeftinili. Muzičari, tonski inženjeri, tekstopisci, izvođači, DJ-evi - svi koriste takve uređaje.

Šta je uređaj koji ima tastaturu? Slično je tipkama klavira i sintisajzera. Dodala je dugmad, razne tipke i klizače. Prilikom interakcije s njima, melodija se prenosi na zvučne module, koji imaju vanjski tip. Govorimo o laptopima i drugim uređajima. Drugim riječima, kontroleri (većina njih) nisu u stanju sami proizvesti zvuk. Oni su dizajnirani da regulišu bitove, note i druge parametre reprodukovane sa eksternog uređaja (zvučnog modula).

Koje su prednosti MIDI kontrolera? Najočiglednije: svestran je i prenosiv. Zahvaljujući njemu, možete primijeniti sve virtuelne efekte i kontrolirati savremeni softver. Može se lako nositi koristeći, na primjer, torbu za laptop.

Na šta treba obratiti pažnju prilikom kupovine?

Prije kupovine bilo kojeg kontrolera, morate razmisliti čemu služi. Bilo bi korisno odgovoriti na sljedeća pitanja koja će dati tačnu ideju koja je opcija iz ogromnog asortimana prikladna.

Za šta će se koristiti kontroler? Naprava namijenjena za scenske nastupe mora imati materijal koji je otporan na mehanička opterećenja. S obzirom da je većina kontrolera napravljena od plastike, morate obratiti pažnju na metalne opcije. Također morate odlučiti o vrsti mehanizma i broju ključeva. Ako ih ima previše, postoji mogućnost da se pomiješa svrha nekog od njih tokom nastupa uživo.

Mali MIDI kontroler će biti dobar za DJ-a. Uopće nije teško napraviti ga vlastitim rukama ako se osoba razumije u elektroniku. To znači da DJ-evi često koriste opremu domaće radinosti. Više o tome možete pročitati u nastavku. Morate kupiti takav uređaj uzimajući u obzir činjenicu da su vam također potrebne ručke i klizači. Bez njih, program (MIDI kontroler radi samo u tandemu s njim) neće obavljati željene funkcije.

Ako muzičar uređuje numere u krevetu, avionu, autu ili drugom mjestu, tada će glavna stvar pri odabiru biti prenosivost. S obzirom da je uređaj napajan, potrebno je obratiti pažnju na one koji se mogu puniti sa USB magistrale.

MIDI kontroleri iz Pioneer-a

Pioneer MIDI kontroler je uređaj koji je oduvijek bio tražen. Ovaj proizvođač je dugo bio među prva tri lidera na tržištu takve opreme. Šta razlikuje “srodne” Pioneer modele jedni od drugih? Samo prisustvo dodatnih funkcija koje liče na obične mehaničke tipke na kontrolnoj ploči. Svaki kontroler ove marke ima odlične kotače za trčanje. Izgled je ozbiljan i elegantan. Impresivna veličina uređaja kompenzirana je njegovom maksimalnom funkcionalnošću.

Nema potrebe da se pitate koji model odabrati. Trebali biste odmah pobliže pogledati DDJ-T1. Uređaj preporučuju mnogi. Odnos cene i kvaliteta je prilično dobar. Kontrolna tabla je zgodna, dugmad se mogu pritisnuti bez problema, a uređaj je jednostavan za nošenje.

Novation Launchpad kontroler

MIDI kontroler Novation Launchpad dizajniran je posebno za rad sa Ableton Live. Uređaj je pogodan za scenske i kućne studijske aktivnosti. Takođe će biti lako održavati diskoteke sa njim. Mreža uređaja se sastoji od 64 dugmeta. Opremljen je dodatnim efektima, kao i funkcijama za rad sa softverom. Uređaj se može povezati sa računarom i radi sa Windows porodicom i nekim drugim operativnim sistemima.

DIY MIDI kontroler - stvarnost ili mit?

Domaći MIDI kontroleri su dugo bili traženi. Šta je potrebno da svoju ideju oživite? Potreban vam je dijagram prema kojem će uređaj biti lemljen i sastavljen, proračun, fizičar ili električar upućen u ovu oblast.

Osim poznavanja tehničke strane, morate se zapitati i koliko kreator zna o kontrolerima. Da biste pravilno sastavili uređaj koji će ispuniti sva očekivanja, morate razumjeti koju bazu je najbolje koristiti, zašto će se model sastaviti, kao i gdje instalirati kontrolnu ploču. Problem je prilično složen, ali potpuno rješiv. Danas postoji mnogo gotovih sklopova koji se mogu koristiti za sastavljanje kontrolera. Glavna stvar je povjerenje u svoje planove i strpljenje.

Model marke Akai

Akai je nedavno objavio novi kontroler pod nazivom MPC Touch. Za razliku od srodnih uređaja, ovaj ima ekran od 7 inča. To znatno olakšava rad s njim. Na osnovu recenzija, mora se reći da je upravo opisani model korišten kao primjer kada su u pitanju profesionalni kontroleri. Gledajući to i s obzirom na funkcionalnost, pitanje kako odabrati takav uređaj odmah nestaje. Softver radi prilično brzo i efikasno, problemi se ne pojavljuju, a kvarovi su izuzetno rijetki.

Jedini nedostatak je što kontroler ne može raditi bez izvora napajanja, jer nema bateriju. Brend Akai je već dugo poznat na tržištu. Njegov MIDI kontroler je moćan i kvalitetan uređaj koji može izdržati velika opterećenja. Često se neki modeli koriste na pozornici.

MIDI kontroler je uređaj koji konvertuje određeni fizički proces u skup digitalnih komandi u MIDI formatu. Fizički proces može biti bilo šta, od pritiskanja tipke prstom do okretanja dugmeta za jačinu zvuka. Rezultirajući tok komandi se preko MIDI protokola prenosi na druge uređaje - kompjuter, hardverske uzorke, sintisajzere ili eksterne sekvencere i tamo se dešifruje na određeni način. Najčešći tip MIDI kontrolera je MIDI tastatura - elektronski ekvivalent klavirske klavijature. Postoje i mnoge druge vrste kontrolera, uključujući elektronske komplete bubnjeva.

Moderno tržište nudi ogroman broj različitih MIDI kontrolera za elektronske instalacije, koji se razlikuju po različitim kriterijima, kao što su cijena, kvalitet, tehničke karakteristike itd. Postoji i nekoliko gotovih korisničkih uređaja koji se realizuju kao komercijalni projekti (eDrum, megaDrum). Ali, unatoč svemu tome, želja za stvaranjem takvog uređaja vlastitim rukama i dalje živi u glavama modernih Kulibina.

Tako sam se prije nekoliko godina, sa malo zakašnjenja, zainteresovao za stvaranje takvog uređaja, jer sam učestvovao u grupi za tešku muziku. Svirali smo hard rock, odnosno nešto poput brutaldeatha, goregrind-a, grindcorea. Svirao sam električnu gitaru. Malo ranije smo kupili Sonor set bubnjeva i pravili buku uveče u garaži. Kasnije nas je garaža pitala i postavilo se pitanje o lokalu. Pošto nismo našli ništa vrijedno, odlučili smo da probamo kod kuće, što je odmah dovelo do sukoba sa komšijama. Tu se pojavilo pitanje elektronskih bubnjeva.

Paralelno sa sviranjem instrumenata uživo, pisao sam elektronsku muziku i posebno koristio VST instrumente i dodatke za kreiranje bubnjeva, preferirao sam Addictive bubnjeve i ezDrums, koji imaju mogućnost rada sa MIDI interfejsom. Čak i bez guglanja ove teme, zaronio sam glavom u razvoj vlastitog MIDI kontrolera na pristupačnom ATMega32 mikrokontroleru u DIP paketu, koji je imao 8 ADC kanala. Nisam želio ograđivati ​​krug i odlučio sam se ograničiti na 8 ulaza. Pošto ATMega32 nema hardverski USB, koristio sam standardnu ​​vezu sa računarom preko virtuelnog usb-a. Nakon nekoliko dana petljanja oko programiranja, uspio sam pokrenuti uređaj. Zamislite moje iznenađenje kada sam na internetu otkrio gotov uređaj sa dijagramom kola i firmverom (MegaDrum). Ali sve što se ne uradi je na bolje.


Pun USB

Po zanimanju sam programer, ali po zanimanju sam programer elektronike, kandidat tehničkih nauka, a kako je moj bivši mentor govorio, Švajcarac sam, kosac i trubač. Kao što je često slučaj, fiksirao sam se na AVR-e, ne zato što sam imao osjećaje prema njima, već zato što sam bio potpuno zadovoljan njihovim performansama sa njihovim tehničkim karakteristikama. Ali došlo je vrijeme kada više nisu bili dovoljni. A onda je stm32 došao da ga zameni, između ostalog, imajući punopravni usb interfejs na ploči. Tu je došla ideja da se napravi punopravni MIDI kontroler. Osim toga, već sam imao iskustva u radu sa MIDI interfejsom.

Gdje početi? Nismo imali stm32 u DIP paketima (ako uopće postoje u prirodi), pa je ideja o lemljenju na ploči odmah nestala. Upravo tada su se počele pojavljivati ​​jeftine razvojne ploče zasnovane na stm32 mikrokontrolerima, kao što je DISCOVERY. I sada sam sretan vlasnik STM32F407DISCOVERY ploče za otklanjanje grešaka, koja također uključuje ST-Link programator. Procesor STM32F407 ima 16 ADC kanala, iako su 4 kanala zauzeta periferijama, kojima je ploča za otklanjanje grešaka jednostavno napunjena. Ali za moje potrebe, 12 kanala je bilo dovoljno.


Provodeći neko vrijeme proučavajući Keil programsko okruženje, arhitekturu mikroprocesora STM32F407, kao i standardne periferne biblioteke za rad sa USB-om, napravio sam program za prozivanje svih ADC kanala koristeći kanal direktnog pristupa memoriji, kao i kompozitni USB uređaj koji uključuje MIDI audio uređaj i HID za promjenu postavki uređaja.

Kao senzore za bubnjeve koristio sam piezo zvono ZP-1, koje se moglo kupiti u trgovini po jeftinoj cijeni.


Uzeo sam dijagram ožičenja sa MegaDrum-a.


Napisao sam kontrolni program u Delphiju sa rezervom od 16 kanala. U principu, broj kanala uređaja se može neograničeno povećavati dodavanjem analognih multipleksora u kolo, kao što se radi u Megadrumu, ali za naše potrebe je dovoljno 16 kanala, pošto nismo tako napredni muzičari. A za bubnjara početnika, ovaj broj bubnjeva će biti lak.


Uređaj je testiran i na Windows i na Linux-u koristeći Renoise tracker. Posebni problemi u radu nisu pronađeni.
Ali odlučio sam da se ne zaustavim na ovom rezultatu. STM32F407 je prilično sofisticiran procesor, tako da je relativno skup. Bilo je jeftinije napraviti uređaj koristeći STM32F103. eBay je priskočio u pomoć. Kupio sam razvojnu ploču sa STM32F103RBT6 na ploči.


Istina, nema ugrađeni programator. Imao sam sreće jer sam još uvijek imao ST-Link programera sa prethodnog posla.


Morao sam potpuno prepisati firmver, jer su principi rada procesora 407 i 103, iako ne radikalno, drugačiji.
Tada sam na internetu naišao na ploču za otklanjanje grešaka, koja je zapravo koštala peni, i odlučio da na taj način mogu smanjiti troškove komponenti na minimum.

Većina članaka na internetu govori o izradi MIDI klavijatura, kontrolera, daljinskih upravljača, itd. baziraju se na upotrebi MIDI konektora čije povezivanje sa modernim računarom može biti problematično. Starije zvučne kartice su imale Game port na koji ste mogli povezati džojstik ili MIDI uređaj:

Međutim, sve nove matične ploče dolaze sa ugrađenim kontrolerom zvuka, a zvučne kartice često nemaju mogućnost povezivanja MIDI uređaja.
Ostaje samo da kupite modernu MIDI tastaturu, DJ konzolu itd. sa USB izlazom za povezivanje na kompjuter, ili kupiti/lemiti adapter, ili kupiti posebnu zvučnu karticu sa mogućnošću povezivanja MIDI uređaja. Kupovina, naravno, nije problem, ali nismo zbog toga došli na ovu stranicu, zar ne?

U ovom članku želim pokazati kako možete koristiti jeftin Arduino kontroler da napravite jednostavnu MIDI tastaturu s USB vezom za 8 tipki i kotačićem za pomicanje.

pa sam koristio:
Arduino UNO kontroler
8 kom. dugmad
8 otpornika 10 kOhm
rotacijski enkoder 25LB22-Q
matična ploča i džemperi

Dijagram povezivanja je sljedeći:

Za povezivanje koristio sam najjednostavniju opciju: 1 ključ - 1 ulaz. Međutim, sa većim brojem ključeva, različitim kontrolerima itd. Možda neće biti dovoljno ulaza, pa ćete morati koristiti čitanje podataka ili preko analognih ulaza (dodavanjem otpornika različitih vrijednosti) ili putem multipleksiranja. Međutim, ako priključite nekoliko tipki na analogni ulaz, tada mogu nastati problemi s čitanjem stanja kada se nekoliko tipki pritisne istovremeno. Prema tome, po mom mišljenju, multipleksiranje je prihvatljivija opcija.

Arduino softver

Neću razmatrati strukturu MIDI podataka, jer... ovo je opisano u članku:

Koder je povezan sa ulazima za hardverske prekide. Neću razmatrati opis rada sa njim, jer... Program je jednostavan i preuzet sa službene Arduino web stranice.

U ovom projektu, enkoder se koristi kao kotač za pomicanje za promjenu kotačića za modulaciju, ali se može preraspodijeliti za druge svrhe (pitch bend, itd.).

MIDI podaci iz enkodera, sa Arduina, šalju se sa sljedećim redom:
noteOn(0xB0, 0x01, encoder0Pos);
gdje je 0xB0 poruka kontrolera (promjena kontrole)
0x01 - kod kontrolera (u našem slučaju modulacija)
encoder0Pos - vrijednost kontrolera (u našem slučaju 0-127).
Promjenom kodova kontrolera možete koristiti kotačić za pomicanje (enkoder) za razne kontrolere.

Pitch Bend je također vrijedan spomena. Iz MIDI specifikacije proizilazi da je potrebno poslati poruku od tri bajta: 0xE0 (Pitch Bend kod), MSB (visoki bajt), LSB (niski bajt).

Dva vanjska bajta pohranjuju 14-bitnu vrijednost visine koja može biti u rasponu od 0...16383 (0x3FFF). Sredina je 0x2000, sve iznad ove vrijednosti uzrokuje promjenu tona naviše, ako je niži, visina tona se mijenja naniže.
U programskom kodu sam komentirao redove ako odjednom poželite koristiti Pitch Bend umjesto modulacije (sredina vrijednosti, dekompozicija na 2 bajta, itd.)

Kod za otkrivanje pritiska na taster uključuje tri stanja: taster je pritisnut, taster se drži i taster je otpušten. Ovo je urađeno kako bi se prenijela vrijednost trajanja pritiska na tipku. Ako to nije potrebno, tada možete ostaviti samo jedno stanje (pritisak tipke), program će u ovom slučaju biti značajno pojednostavljen.
Za upravljanje stanjem svakog od osam ključeva koristi se sljedeći kod:

If (buttonState_C == HIGH && note_C_send_on == false) // Tipka je pritisnuta ( noteOn(0x90, note_C, 0x7F); note_C_send_on = true; // Poslana naredba Napomena o note_C_send_off = false; // Note Off komanda nije poslana ) inače (buttonState_C == VISOKO && note_C_send_on == true) // Ako se ključ drži ( noteOn(0x00, note_C, 0x7F); note_C_send_on = true; note_C_send_off = false; ) inače ako (buttonState_C) je u suprotnom (buttonState_C note = false) // Ako je ključ otpušten ( noteOn(0x90, note_C, 0x00); note_C_send_on = false; note_C_send_off = true; encoder0Pos = 0; // Vratiti poziciju kotača na nulu) ....... ..... .. ... .... // Funkcija za slanje MIDI poruke na serijski port void noteOn(int cmd, int pitch, int velocity) ( Serial.write(cmd); Serial.write(pitch); Serial. write(brzina)(20);

Imajte na umu da ako se koristi pitch bend, onda će encoder0Pos morati biti vraćen ne na nulu, već na 0x2000 (ili je bolje postaviti define na početku programa).

Dakle, sklop je sastavljen, skica se učitava u kontroler, pokrećemo Serial Monitor, mijenjamo brzinu prijenosa na 115200 i pritiskamo tipke ili okrećemo enkoder i gledamo vrijednosti.
Ako je sve u redu, pređite na sljedeći dio. Odmah ću reći da se za mene to pokazalo najproblematičnijim, a da nisam pronašao virtualni USB -> Midi konverter, ovaj članak ne bi postojao.

PC softver (Windows)

Da biste primili podatke preko USB virtuelnog COM porta sa Arduina i prenijeli ih na bilo koji MIDI sekvencer program, potreban vam je poseban uslužni program: Serial MIDI Converter V2D (office site)

Program je multiplatformski, kod mene je radio pod Windowsom 7 x64, ali sa nekim problemima.

Pokrećemo ga, biramo USB port, brzinu prenosa (115200) i MIDI ulazni i MIDI izlazni port.

Sada se svi MIDI podaci koji dolaze na USB virtuelni COM port 12 preusmjeravaju na MIDI Yoke 6 port (koristio sam MIDI Yoke program za kreiranje virtualnih MIDI portova). Možete ih preusmjeriti na Microsoft GS Wavetable Synth i druge portove.
Program mora biti stalno uključen. Kada pritisnete tastere ili okrenete dugme enkodera, indikator serijskog RX na dnu treba da treperi.

Za vizuelni prikaz dolaznih MIDI podataka sa porta, smatrao sam da je program MIDI-OX (office site) veoma koristan:

Imajte na umu da u postavkama MIDI uređaja morate postaviti MIDI ulazni port.

Sada, kada pritisnete tastere za note ili okrenete točak, videćete MIDI podatke u Monitor-Izlazu.

To. Uz pomoć softvera i hardvera uspjeli smo napraviti jednostavnu MIDI tastaturu na Arduino kontroleru sa prijenosom podataka na kompjuter za naknadnu obradu, na primjer u Cubase-u itd. uklj. u realnom vremenu.
Na osnovu ovog projekta možete napraviti DJ konzolu, punopravnu MIDI tastaturu itd.

Ispod možete preuzeti INO skicu, serijski MIDI konverter V2D, MIDI-OX i MIDI Yoke