Kako vlastitim rukama napraviti jeftini MIDI kontroler temeljen na Arduinu. Kako vlastitim rukama napraviti jeftini MIDI kontroler temeljen na Arduinu Očitavanje položaja potenciometra

Dugo sam želio probuditi skladatelja u sebi i početi stvarati vlastitu elektroničku glazbu. No, bio sam (blago rečeno) obeshrabren visokim cijenama MIDI kontrolera. Ali nakon pretraživanja interneta, došao sam na ideju da napravim vlastiti kontroler koristeći Arduino Uno i vodljive boje!

Počnimo)

Korak 1: Odabir dijelova

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

Od elektronike trebamo:

  • 1 Arduino Uno s USB kabelom;

  • 1 staklenka vodljive boje;

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

  • 3 gumba;

  • otpornici s otporom od 2,2 kOhm;

  • 1 LED;

  • otpornici s otporom od 10 kOhm;

  • 1 LDR senzor;

  • otpornici s otporom od 4,7 kOhm;

  • 1 skakač;

  • 12 kom otpornika 2,7 MΩ;

  • 30 ravnih igala;

  • 12 savijenih klinova;

  • 12 adaptera;

  • 12 spajalica.

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

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

Korak 2: Lemite igle

Počnimo stvarati ploču lemljenjem pinova. Objavimo savijene igle u sredini prvog reda na ploči. Oni će naknadno poslužiti kao “osjetljivi” pinovi na koje će se spojiti tipkovnica.

Nakon postavljanja igala, primijetite da kratke igle strše iz ploče. Pritisnemo ih tako da sve bude u ravnini. Sada ih lemimo i odmah provjeravamo spojeve na kratke spojeve.

Napomena: Nemojte lemiti igle predugo jer će se inače zagrijati i otopiti plastiku.

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

Nakon što ste uspješno postavili ploču na igle, provjerite jesu li igle u ravnini s gornjim rubom ploče. Nakon čega se mogu lemiti.

Korak 3: Zalemite kratkospojnike

Sada skinimo ploču s Arduina i okrenimo je na poleđinu. Zalemimo kratkospojnike na koje ćemo kasnije pričvrstiti komponente. Postoje dva načina za to:

  • Ispunite sve potrebne rupe lemom, a zatim ih međusobno spojite.
  • 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 točka znači zalemiti žicu u rupu.
  • Žuta točka - spojite tanku žicu na pin na drugoj strani ploče (kao na trećoj slici).

Kao što vidite, malo sam zabrljao u donjem lijevom kutu kada sam stavio previše lema, pa budite oprezni!

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

Korak 4: Zalemite dodirne kapacitivne otpornike

Ugrađujemo komponente, naime 2.7 MOhmotpornici, koji će obavljati senzorno-kapacitivnu funkciju.

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

Postavimo jednu 2.7 MOhmotpornik s dna krajnje desne savijene igle i gurnite noge kroz rupe (kao na prvoj slici). Sada preokrenimo ploču i gurnimo jedan vod otpornika natrag u sljedeću rupu (kao što je prikazano na drugoj slici). Zalemite donji krak otpornika na rupu, a gornji krak otpornika na pin terminal. Zatim ćemo priložiti 7 cm žice na ovu iglu (kao što se vidi na trećoj slici).

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

Savjet: Odaberite izmjenične boje za žice - to će olakšati spajanje u kasnijim koracima.

Korak 5: Zalemite gumbe

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

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

  • plava točka - označava nogu gumba koju treba zalemiti na ploču;
  • ružičasta toč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 gumba kroz rupu na ploči, koja će se zatim spojiti na pin na drugoj strani.

Ako je sve ispravno zalemljeno, dvije krajnje lijeve tipke omogućit će vam promjenu oktava, dok će krajnji desni gumb omogućitiLDR senzor.

Korak 6: Zalemite LDR i LED

Nakon što su gumbi zalemljeni, nastavljamo s ugradnjom LDR, LED 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 tvoj LED. Malo eksperimentirajte kako biste pronašli ispravnu vrijednost otpornika.

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

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

  • smeđe točkice su LDR pinovi koje treba zalemiti na ploču;
  • ružičasta točka je nožica otpornika koju treba zalemiti na ploču;
  • narančaste točkice su LED pinovi koje je potrebno zalemiti na ploču;
  • crvena traka - trebate lemiti dvije točke u jednu vezu;
  • crna pruga 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 diode, provjerite je li polaritet LED diode ispravan. Pozitivni priključak LED-a trebao bi biti spojen na otpornik, a negativni priključak na masu.

Korak 7: Testirajte sve veze

Sada je pravo vrijeme da testirate jesu li spojevi tipki, LDR-a i LED-a uspješno zalemljeni. Ovo je zadnja 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, ponovno provjerite zalemljene spojeve na ploči. Bolje je držati multimetar pri ruci, govorim to iz vlastitog gorkog iskustva.

Korak 8: Dovršavanje ploče

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

Okrenimo ploču i odrežimo žice na potrebnu duljinu. Zalemite ih na igle koje ulaze u Arduino konektore. Prije nego počnete koristiti MIDI kontroler, prvo morate testirati njegove veze pomoću probne skice. Učitajte skicu, otvorite serijski port i dodirnite "osjetljive" pinove na ploči. Ako vidite tekst 'Napomena x je aktivna' za svaku iglu kada je dodirnete, sve igle rade ispravno.

Korak 9: Pretvorite Arduino u MIDI uređaj

Nakon što je ploča spremna, vrijeme je za pretvaranje Arduina u MIDI kontroler koji će prepoznati glazbeni programi kao što su Ableton i Fl Studio ili čak drugi MIDI uređaji. Proces se sastoji od dva koraka:

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

Krenimo od prve točke. Učitano u Arduino prema uvjetima firmwareUSB-serijski priključak, koji Arduinu omogućuje razmjenu poruka s računalom i Arduino IDE. S novim programom DualMoco, bit će dodan drugi način, koji će omogućiti Arduinu da djeluje kao MIDI uređaji.

Koristit ćemo program FLIP i slijediti upute za promjenu Arduino firmware-a. Radnu datoteku pronaći ćete u arhivi u mapi Firmware - datoteku DualMoco.hex.

Nakon preuzimanja novog firmvera, ponovno povežite Arduino s računalom. Ako sve bude u redu, Arduino IDE ne bi trebao otkriti Arduino jer je novi program u ( MIDInačin rada). Otvorite glazbeni program koji može snimati MIDI i provjerite je li Arduino imenovan MIDI/ MOCOzaLUFA je prikazan iznad MIDI postavki, kao što možete vidjeti na prvoj slici.

Korak 10: Završne pripreme

Posebnost DualMoco je da ima drugi način - USB-serijski priključak, koji vam omogućuje učitavanje skica iz Arduino IDE, baš kao i s uobičajenim firmwareom. Za postavljanje Arduina u drugi način rada, spojite dva ISCP pina zajedno kao što je prikazano na slici 1 i 2. Možete upotrijebiti komad žice ili malu premosnu žicu kao što je prikazano na slikama. Sada odspojite USB kabel iz Arduina na nekoliko sekundi i ponovno ga spojite, Arduino bi se trebao pojaviti u Arduino IDE.

Napomena: Kada želite prijeći iz načina radausb-serijski priključakVMIDI mod, uklonite kratkospojnikISCP pinove kao što je prikazano na trećoj slici i ponovno spojiteArduino na PC.

Vrijeme je da prenesete trenutnu skicu na Arduino, Arduino_konačno_Kodirati. Preuzmite ga, pretvorite Arduino u usbserijski priključak način rada i preuzmite kod. Ako trebate fino podesiti prag, eksperimentirajte s vrijednostima PRAG I RES. Kada sve radi kako je očekivano, promijenite trenutni redak 17 iz:

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

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

Nakon što su unesene završne izmjene koda, vrijeme je za testiranje glazbenog programa koji podržava MIDI uređaje. Prvo, prebacimo Arduino u MIDI mod, za ovo:

  1. Učitajmo konačni kod na Arduino.
  2. Uklonimo USB kabel iz Arduina.
  3. Prebacite Arduino u MIDI mod uklanjanjem kratkospojnika s ISCP pinova.
  4. Instalirajmo USB kabel u Arduino.

Ako je sve prošlo dobro, otvorite glazbeni program i počnite dirati pribadače. Čarobni zvuci moraju zvučati...

Korak 11: Zalemite spajalice za papir na kratkospojnike

Nakon što je Arduino ploča u potpunosti dovršena, vrijeme je da se usredotočite na tipkovnicu i kako je spojiti na ploču. Postoji milijun načina za to, ali ja sam odabrao spajalice koje bi bile pričvršćene za oslikani papir (lako ih je pričvrstiti i mogu se ponovno koristiti).

Postupak lemljenja spajalica za papir na žice prilično je jednostavan:

  1. Odrežite utikač na jednoj strani žice;
  2. Skidamo žicu od izolacije za 5 mm;
  3. Zalijemite ogoljenu žicu na spajalicu;
  4. Ponovite za svih 12 spajalica.

Napomena: Spojnice ne smiju biti premazane nikakvim premazom (bojom ili plastikom).

Korak 12: Slikanje predloška

Iako je moguće svirati Arduino MIDI tipkovnicu samo dodirivanjem spajalica, mnogo je zabavnije napraviti vlastitu šablonu i koristiti je. Obojio ispisani predložak. Predložak se nalazi u arhivi projekta.

Bojanje predloška je vrlo jednostavno, samo pazite da ostavite prostor između redaka i koristite odgovarajuće boje, inače neće raditi. Nakon što se boja osuši, pričvrstite spajalice na "tipke" i možete početi stvarati glazbu.

Hvala na pažnji!)

Klavijatura je dizajnirana za povezivanje s vanjskim zvučnim modulom ili računalom (ako postoji odgovarajuće sučelje) korištenjem MIDI protokola - za snimanje glazbe u sekvencerski program ili nastup uživo. Broj tipki u predloženoj verziji je 48, ali se može povećati na 64 bez mijenjanja sklopa. Posebnost predložene tipkovnice je njezina osjetljivost na silu udarca na tipku.

Povijest uređaja

Prije nekog vremena, u vezi s kupnjom stana, bio sam prisiljen izgubiti luksuzni instrument koji mi je služio kao MIDI klavijatura - bila je to legendarna YAMAHA DX-7. Kad se tuga smirila, postavilo se pitanje u svoj svojoj žestini i ružnoći: na čemu raditi? Upravo u tom trenutku, zahvaljujući naporima mog prijatelja, polusklopljeni sklop za KR1816BE39 (u protivnom se ovaj procesor zove 8048) pao je u moje ruke. Strujni krug je jednostavan za sastavljanje i postavljanje, a što je najvažnije, došao je pri ruci u pravo vrijeme. Sastavio sam tipkovnicu u obliku matrice 8x6 koristeći KR1533ID7 i KR1533KP7. Tu je također bila muha u masti - dvije mane ove sheme ubijaju sve njene prednosti do smrti: nedostatak osjetljivosti na brzinu pritiska tipke (zvučnici) i kotačić PITCH WEEL. Eto, jednom sam programirao na Z-80 (i čak napravio radni sekvencer) i odlučio se otresti starih vremena. Odlučno sam odbacio Z-80 kao CPU kao moralno zastario. Osim toga, nisam želio puno lemiti i odlučio sam uzeti ovaj isti uređaj na KR1816BE39 kao osnovu, opremivši ga drugim multiplekserom za prekidanje (gornjih) kontakata tipki. Našao sam dokumentaciju (nećete vjerovati - u knjižnici knjiga “Projektiranje digitalnih uređaja na mikroprocesorima s jednim čipom”) za asembler KR1816BE39 i naškrabao program... A onda se ispostavilo da je prijateljov ROM programator imao umro, i jednostavno se nije imalo čime flashirati program... Od tuge sam potpuno poludio i odlučio prepisati isti algoritam za PIC. U pola dana je zalemljen programator (LUDIPIPO), zatim napravljen prototip od socketa, KR1533ID7 i para KR1533KP7, a cijelu instalaciju je odradio MGTF bez ikakvog žiga. I proces je krenuo...

Prvo je pokrenuta nedinamička verzija programa (predstavljam je i za one koji imaju tipkovnicu s jednim kontaktom po tipki). Zatim je krenula dinamička verzija. A onda je došla ideja dodati gumbe i indikator. Činjenica je da sam imao WAVEBLASTER (kćerki sintesajzer valne tablice za vrlo stare zvučne sustave) koji je dugo bio besposlen. Spajajući to sa svojom kreacijom, dobio sam nešto na čemu možete igrati (po svojim mogućnostima i talentu) bez računala, što je ponekad vrlo zgodno. To je odredilo skup funkcija na tipkama - može biti korisno pri povezivanju sa zvučnim modulima tijekom "live" reprodukcije. Funkcije gumba lako se mijenjaju pisanjem vlastitih rukovatelja i korištenjem mojih postupaka prozivanja i prikaza. Nekako se tipkovnica sastavljena u željeznom kućištu pokazala prikladnijom od YAMAHA PSS (još uvijek tipke pune veličine, pedala i, što je najvažnije, dinamika!). Usred kreativnog procesa javila se teška želja da se napravi verzija MIDI tipkovnice isključivo za računalo - indikator i gumbi su opcijski, ali su potrebni kotačići PITCH WEEL i MODULATION. Mučio sam se s tim neko vrijeme, ali na kraju sam odustao i ponovno uključio lemilo. Elektroniku nije teško sastaviti, ali je mehanika nešto teža, pa sam počeo naborati čelo nad dizajnom kotača. Nakon malo razmišljanja, odlučio sam odustati od drugog kotača - ionako, nikad ih ne vrtim oba odjednom, obično prvo pišem note i visinu, a zatim dodajem modulaciju. Najmanje važno bilo je prepolovljivanje obima mehaničkog rada koji sam toliko volio. Za one manje lijene, objasnit ću u nastavku kako napraviti dva kotača gotovo bez ikakve složenosti. Kako bih i dalje mogao pisati modulaciju, odlučio sam organizirati tri načina rada kotačića: visina za 2 polutona, visina za 1 poluton (prikladno) i modulacija. Sve to možete prebaciti jednim gumbom, a način rada označiti parom LED dioda. Kako bih pojednostavio sklop, eliminirao sam preostale gumbe i indikatore; sve to nije potrebno za rad s modernim programima za sekvenciranje.

Kotač, naravno, mora biti postavljen na os potenciometra, to je razumljivo, ali na što bi trebao biti povezan? Moja prva pomisao bila je koristiti jednokratni mjerač vremena na 555, ali izračuni su pokazali da bi bilo teško postići točna i stabilna mjerenja trajanja impulsa dok pokušavam osigurati prihvatljivu brzinu uzorkovanja, jer je procesor uglavnom zauzet mjerenjem prebacivanja. vrijeme kontakta tipkovnice. Jedini preostali način je korištenje analogno-digitalnog pretvarača (ADC). Budući da sam koristio Pic16F84 bez ugrađenog ADC-a, sjetio sam se svoje inženjerske pozadine (i svoje rodne tvornice) i napravio ADC od nekoliko otpornika s komparatorom (i dijelom programa). Ispalo je jednostavno, jeftino i prilično točno.

Predstavljam oba dijagrama - i s gumbima i s kotačićem, kao i programe za njih. Ako želite, oba se sklopa mogu lako kombinirati laganom promjenom adresa vanjskih uređaja, samo trebate zapamtiti da CHORUS (STEREO) način rada koristi visinu tona za postizanje deštimanja i trebate ga ili ukloniti ili brinuti o prijenosu tona s deštimanjem; preko kanala.

Dakle - stvarna tipkovnica

Dijagram uređaja

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

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

Dolje je prikazan dijagram dinamičke tipkovnice s indikacijom:

Krug je tradicionalan u mnogim aspektima - teško je ponovno izmisliti bicikl bez pedala i kotača J Port B radi za prijenos - nižih 7 bitova daje ključnu adresu u matricu ili podatke za vanjske uređaje (indikator i DAC kotača). Najvažniji bit se koristi za izlaz MIDI podataka u serijskom kodu - konverzija i izlaz se rade u softveru. Stoga bi kristal trebao biti na 4 MHz osim ako ne želite prepisati izlaznu rutinu MIDI bajta. Dva najmanje značajna bita priključka A rade za prijem - primaju signale iz multipleksera "otpuštenih" i "pritisnutih" kontakata tipki, a tri najznačajnija bita određuju adresu vanjskog uređaja (putem drugog dekodera KR1533ID7). U krugu s kotačićem, napustio sam dekoder adrese vanjskog uređaja kako bih pojednostavio krug i oslobodio visoki bit PA4 porta za unos podataka iz komparatora, tako da su adrese tipkovnice i tipki različite. Pri kombiniranju sklopova morat će se vratiti ovaj mikrosklop, za dešifriranje adrese koristiti bitove porta PA2 i PA3 i adresirati 4 uređaja: tipkovnicu, tipke, registar podataka dinamičke indikacije i registar familijarnosti dinamičke indikacije. Indikacija načina rada kotačića morat će se ponovno napisati.

Krug s kotačem PITCH WEEL / MODULATION izgleda ovako:

Jedna dioda je instalirana na svakom ključu za odvajanje. Otpornici na ulazima multipleksera ne bi trebali biti veći od 8k, inače su mogući kvarovi zbog montažnog kapaciteta. 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čna i znamenke svijetle uzastopno. Bilo koji gumbi, bez zaključavanja, odbijanje kontakta kontrolira softver. LED diode su ugrađene u blizini istoimenih tipki i označavaju aktivaciju odgovarajućih načina rada; tipke “+” i “-” nemaju LED diode. Tranzistori na indikatoru su bilo koje niske snage, visoke frekvencije obrnutog vodjenja. Dva registra KR1533IR23 koriste se za naizmjenično zaključavanje adrese i koda znamenke indikatora struje (LED diode su također grupirane u dvije kvazi-znamenke). Koristio sam standardnu ​​klavijaturu sovjetskih električnih orgulja s 48 tipki (također je proizvedena zasebno kao "START" radio dizajn, i prilično je raširena). Kako bi se smanjila visina tipkovnice i debljina instrumenta, ostavljene su dvije od šest kontakt grupa ispod svake tipke, te je cijela izrezana i ponovno zalijepljena. Općenito, dovoljna je jedna sklopna grupa po ključu, ali bilo je prikladnije zalijepiti je na ovaj način. Sabirnice "otpuštenih" i "pritisnutih" kontakata duge su 8 tipki. Po želji možete koristiti i tipkovnicu gdje se umjesto preklopne 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 isporučen iz inverznog izlaza multipleksora (pin 6). Bez promjena u sklopu, možete koristiti klavijaturu sa 64 tipke (standardno – 61, tj. 5 oktava). Ako je potrebno, broj ključeva se može povećati na najmanje 127; za to morate uvesti još jedan dekoder KR1533ID7.

Vrlo je važno dobro namjestiti mehaniku - gornji kontakti se MORAJU zatvoriti kada se tipke otpuste. Ako se to ne učini, program takve tipke smatra pritisnutim i pokušava ih obraditi, tako da ponovni pritisak na te tipke ne proizvodi zvuk. Osim toga, maksimalan broj nota koje se mogu svirati istovremeno je 10 (ako je nekome izraslo više prstiju na rukama, taj se broj lako može promijeniti), a nepuštanje tipki smanjuje taj broj. Iz istih razloga, broj tipki navedenih u postupku prozivanja tipkovnice MORA odgovarati broju stvarnih tipki. Odbijanje kontakta softverski je potisnuto.

Za rezistivnu 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 jako povećati nazivnu vrijednost; to će povećati vrijeme pretvorbe zbog ulaznog kapaciteta komparatora. Koristio sam SMD otpornike bez podudaranja, iako su mjerenja pokazala da su u jednoj montažnoj letvi otpornici obično usklađeni s točnošću većom od 1%. Siguran sam da će krug raditi s nepreciznim otpornicima, ali će se linearnost karakteristike pogoršati. Sam kotačić je napravljen od ručke od starog TV-a i ima oprugu na osi potenciometra koja ga vraća u srednji položaj. Za praktičnost postavljanja mehanike, kada uključite napajanje s pritisnutom tipkom za način rada, aktivira se program za otklanjanje pogrešaka koji svijetli LED kada je kotač u srednjem položaju, što vam omogućuje fino podešavanje nulte pozicije kotačića na osi potenciometra. Ako postoji potreba i želja da se napravi zasebni kotač MODULACIJE, potrebno ga je spojiti na slobodni komparatorski element (ima ih četiri), a matrica R-2R je zajednička za oba kotača. Za prebacivanje izlaza komparatora, bolje je koristiti dodatni mikro krug i koristiti PA2 kao upravljački signal.

Po želji možete sastaviti dinamičku verziju tipkovnice bez indikacija, tipki i kotačića PITCH WEEL / MODULATION - jednostavno bez sastavljanja neiskorištenog dijela sklopa. Svi promjenjivi parametri bit će postavljeni na zadane kada se napajanje uključi...

Sve to može se napajati iz bilo čega; trenutna potrošnja ovisi o specifičnom pokazatelju i ne prelazi 100 mA. Imam stabilizator 7805 odmah na ploči bez hladnjaka (jasno se vidi na fotografiji). Potreban je mali radijator ako se na njega dovodi više od 9 V. Komparator se napaja naponom od 9 - 12 v, po mogućnosti stabiliziranim. 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 tipki dolazi od onog predloženog u časopisu “Mikroprocesorski alati i sustavi” br. 5, 1986. Upravo me ta publikacija (točnije, pogreška u predloženom programu) potaknula da studiram asembler. Zapravo, jedina ideja preuzeta odatle bila je zabilježiti broj svake pritisnute tipke u posebno dodijeljenom području RAM-a (CHAN), tako da kada se tipkovnica ponovno prozove, ne obrađuje ponovno već obrađenu tipku. Imam dvije RAM ćelije dodijeljene za svaku od pritisnutih tipki (ukupno ne više od 10): u prvoj se bilježi broj pritisnute tipke, u drugoj - njezina BRZINA (brzina pritiska). Ponavljam - ima samo 20 ovih ćelija, a početna adresa je data imenom CHAN. Predznak slobodnog para je postavljeni najznačajniji bit prve ćelije. Najznačajniji bit druge ćelije koja se postavlja znači da je NOTE ON za ovaj ključ već poslan i ne treba mu daljnja obrada.

Neću detaljno opisivati ​​cijeli program; izvorni kod je prepun komentara i prilično je dostupan obučenoj osobi. Za ostalo, odmah nudim gotov firmware u datoteci Dinamic.hex i Pitchmod.hex. Objasnit ću samo neke neočite točke. Pa, prije svega, o dinamici: u trenutku kada se gornji kontakti ključa otvore, njegov broj se 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. Osjetljivost tipkovnice određena je frekvencijom prekida, budući da obrada prekida smanjuje vrijednosti VELOCITY za sve tipke za koje NOTE ON još nije poslana. Prekide uzrokuje ugrađeni mjerač vremena. U trenutku kada su donji kontakti tipke zatvoreni, u odgovarajućoj ćeliji CHAN postavlja se znak “preneseno” i prenosi se NOTE ON s trenutnom BRZINOM. Kako bi se poboljšala krivulja osjetljivosti, vrijednosti BRZINE se smanjuju prema logaritamskom zakonu: 1/16 njenog dijela, smanjenog za 1, oduzima se od trenutne vrijednosti BRZINE, dakle, dok se tipka pomiče od gornjeg kontakta prema donjem prvo, vrijednost BRZINE u odgovarajućoj ćeliji CHAN opada prema logaritamskom zakonu, a što se tipka brže pomiče, veća je BRZINA u trenutku kada su donji kontakti tipke zatvoreni i prenosi se NOTE ON. Prekidi također kontroliraju dinamički prikaz, to je učinjeno kako bi se eliminiralo treperenje indikatora.
Funkcije gumba: TRANSPOZE - sve su tipke reducirane na vaš omiljeni a-mol: raspon +/- 15 polutonova. PRG dodjeljuje ton (instrument) zadanoj unaprijed postavljenoj postavci (UP1-UP5), a VOL dodjeljuje njegovu glasnoću. Trenutni parametar je prikazan na indikatoru i može se mijenjati pomoću gumba "+" i "-" TWIN prikazuje "dvostruki" ton - jedan od unaprijed postavljenih (UP1-UP5) i, u isto vrijeme, LOWER unaprijed postavljen. zvuk istovremeno. STEREO emitira zvuk trenutne unaprijed postavljene postavke na desni i lijevi stereo kanal s blagim "deštimanjem" (efekt "refrena"). Tipka SPLIT nije aktivirana. SUSTAIN pedala je dizajnirana strujno kao jedna od tipki; kapacitet njene žice ne bi trebao biti jako velik. Adrese rukovatelja gumbima prikupljene su u tablici na početku programa; kada mijenjate funkcije gumba, možete ih zamijeniti vlastitima.

ADC kotača je napola softver, radi pomoću algoritma sukcesivne aproksimacije, R-2R matrica izvodi digitalno-analognu pretvorbu. Prvo se 1 u najznačajnijoj znamenki primjenjuje na R-2R matricu, a komparator određuje je li to puno ili malo. Ako je malo, 1 ostaje u najvažnijem bitu, ako je puno - 0. Zatim se ista stvar događa sa svakim sljedećim nižim bitom (ukupno 6 koraka) i dobivamo šest-bitni broj koji odgovara kut zakretanja kotača. Ova točnost mi se čini dostatnom, ali možete dodati još jedan bit povećanjem matrice i programa za pretvorbu.

Oblikovati

Kao stvarnu tipkovnicu koristio sam konstruktor "Start" sovjetske proizvodnje; 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, naravno, stari instrument je relativno netaknut...

Tiskana 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 izgled je napravljen na tiskanoj ploči pomoću MGTF skakača. Kao konektor i kabel za tipkovnicu koristili smo kabel od disketne jedinice s računala s pripadajućim konektorom sa svake strane - to olakšava sastavljanje/rastavljanje gotovog uređaja.

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

Pa, ukratko, to je sve. Kreativni uspjeh!

Popis radioelemenata

Oznaka Tip Vjeroispovijest Količina BilješkaDućanMoja bilježnica
Shema br. 1.
MikrokontrolerPIC16F841 U bilježnicu
ČipKR1533ID71 U bilježnicu
ČipKR1533KP71 U bilježnicu
Linearni regulator

LM7805

1 U bilježnicu
Dioda

KD522A

64 U bilježnicu
Kondenzator22 pF2 U bilježnicu
Kondenzator0,1 µF2 U bilježnicu
100 µF2 U bilježnicu
Otpornik

220 Ohma

2 U bilježnicu
Otpornik

6,8 kOhm

8 U bilježnicu
Kvarcni rezonator4 MHz1 U bilježnicu
Gumb tipkovnice 64 U bilježnicu
Shema br. 2.
MikrokontrolerPIC16F841 U bilježnicu
ČipKR1533ID72 U bilježnicu
ČipKR1533KP72 U bilježnicu
ČipKR1533IR232 U bilježnicu
Linearni regulator

LM7805

1 U bilježnicu
Bipolarni tranzistor

KT315A

5 U bilježnicu
Dioda

KD522A

80 U bilježnicu
Kondenzator22 pF2 U bilježnicu
Kondenzator0,1 µF2 U bilježnicu
Elektrolitički kondenzator100 µF2 U bilježnicu
Otpornik

180 Ohma

7 U bilježnicu
Otpornik

220 Ohma

2 U bilježnicu
Otpornik

6,8 kOhm

16 U bilježnicu
Otpornik

8 kOhm

1 U bilježnicu
Kvarcni rezonator4 MHz1 U bilježnicu
3-znamenkasti LED digitalni indikator, sa zajedničkim anodama. 1 U bilježnicu
Dioda koja emitira svjetloCrvena12 U bilježnicu
Prekidač na ključ 64 U bilježnicu
Dugme 16 U bilježnicu
Shema br. 3.
MikrokontrolerPIC16F841 U bilježnicu
ČipKR1533ID71 U bilježnicu
ČipKR1533KP72 U bilježnicu
Usporednik

Već dugo je za producente i inženjere zvuka MIDI kontroler postao važan atribut koji pomaže u stvaranju prekrasne glazbe. Virtualni instrumenti uvijek zvuče posebno, stoga su ukras svake melodije.

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

Što je MIDI kontroler?

Davnih 1980-ih godina korišten je uređaj nazvan kontroler koji je omogućio glazbeniku da upravlja radom nekoliko sintesajzera odjednom pomoću jedne tipkovnice. Ova je ideja bila uspješna, pa su uređaji ove vrste odmah postali široko rasprostranjeni. Ako ih tada ne bi svatko mogao kupiti, tada su u ovom trenutku kontroleri uvelike pojeftinili. Glazbenici, inženjeri zvuka, tekstopisci, izvođači, DJ-i - svi koriste takve uređaje.

Što je uređaj koji ima tipkovnicu? Slično je tipkama klavira i sintesajzera. Ima dodane gumbe, razne gumbe i klizače. Prilikom interakcije s njima, melodija se prenosi na zvučne module koji imaju vanjski tip. Govorimo o prijenosnim računalima i drugim uređajima. Drugim riječima, kontroleri (većina njih) nisu sposobni sami proizvesti zvuk. Dizajnirani su za reguliranje bitova, nota i drugih parametara reproduciranih s vanjskog uređaja (zvučni modul).

Koje su prednosti MIDI kontrolera? Najočitije: svestran je i prenosiv. Zahvaljujući njemu, možete primijeniti sve virtualne efekte i upravljati modernim softverom. Lako se prenosi pomoću, primjerice, torbe za prijenosno računalo.

Što tražiti pri kupnji?

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

Za što će se koristiti kontroler? Uređaj namijenjen scenskim nastupima mora biti izrađen od materijala koji je otporan na mehanička opterećenja. S obzirom da je većina kontrolera izrađena od plastike, morate obratiti pozornost na metalne opcije. Također morate odlučiti o vrsti mehanizma i broju ključeva. Ako ih je previše, postoji mogućnost da tijekom izvedbe uživo zbunite namjenu bilo koje od njih.

Mali MIDI kontroler sasvim će odgovarati DJ-u. Uopće ga nije teško napraviti vlastitim rukama ako se osoba razumije u elektroniku. To znači da DJ-i često koriste opremu domaće izrade. 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 glazbenik montira pjesme u krevetu, u avionu, automobilu ili na nekom drugom mjestu, tada će glavna stvar pri odabiru biti prenosivost. S obzirom da se uređaj napaja, morate obratiti pozornost na one koji se mogu puniti s USB sabirnice.

Pioneer MIDI kontroleri

Pioneer MIDI kontroler uređaj je koji je uvijek bio tražen. Ovaj proizvođač je dugo bio među prva tri lidera na tržištu takve opreme. Što razlikuje "srodne" Pioneer modele jedne od drugih? Samo prisutnost dodatnih funkcija koje izgledaju kao obični mehanički gumbi na upravljačkoj ploči. Svaki kontroler ove marke ima izvrsne kotače za trčanje. Izgled je ozbiljan i elegantan. Impresivna veličina uređaja nadoknađena je njegovom maksimalnom funkcionalnošću.

Nema potrebe da se pitate koji model odabrati. Trebali biste odmah pobliže pogledati DDJ-T1. Omjer cijene i kvalitete je prilično dobar. Upravljačka ploča je praktična, tipke se lako pritiskaju, a uređaj je jednostavan za nošenje.

Kontroler Novation Launchpad

Novation Launchpad MIDI kontroler dizajniran je posebno za rad s Ableton Live. Uređaj je prikladan i za pozornicu i za kućne studijske aktivnosti. S njim ćete također lako održavati diskoteke. Mreža uređaja sastoji se od 64 gumba. Opremljen je dodatnim efektima, kao i funkcijama za rad sa softverom. Uređaj se može spojiti na računalo i radi kako s obitelji Windows tako i s nekim drugim operativnim sustavima.

DIY MIDI kontroler - stvarnost ili mit?

Domaći MIDI kontroleri već su dugo traženi. Što je potrebno da svoju ideju oživite? Potreban vam je dijagram prema kojem će se uređaj lemiti i sastaviti, proračun, fizičar ili električar upućen u ovo područje.

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

Model marke Akai

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

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

MIDI kontroler je uređaj koji pretvara određeni fizički proces u skup digitalnih naredbi u MIDI formatu. Fizički proces može biti bilo što, od pritiskanja tipke prstom do okretanja gumba za glasnoću. Rezultirajući tok naredbi prenosi se putem MIDI protokola na druge uređaje - računalo, hardverske samplere, sintisajzere ili vanjske sekvencere i tamo se dekriptira na određeni način. Najčešći tip MIDI kontrolera je MIDI tipkovnica - elektronički ekvivalent klavirske tipkovnice. Postoje i mnoge druge vrste kontrolera, uključujući komplete elektroničkih bubnjeva.

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

Tako sam se prije nekoliko godina, s malim zakašnjenjem, zainteresirao za stvaranje takvog uređaja, jer sam sudjelovao u grupi teške glazbe. Svirali smo hard rock, odnosno nešto kao brutaldeath, goregrind, grindcore. Svirao sam električnu gitaru. Nešto ranije kupili smo set bubnjeva Sonor i navečer u garaži pravili buku. Kasnije nas je garaža pitala, a postavilo se i pitanje prostora. Kako nismo našli ništa vrijedno, odlučili smo vježbati kod kuće, što je odmah dovelo do sukoba sa susjedima. Tu se postavilo pitanje elektronskih bubnjeva.

Paralelno sa sviranjem instrumenata uživo, pisao sam elektronsku glazbu i posebno koristio VST instrumente i dodatke, za stvaranje dionica bubnjeva preferirao sam Addictive drums i ezDrums, koji imaju mogućnost rada s MIDI sučeljem. Čak i bez googlanja ove teme, bezglavo sam zaronio u razvoj vlastitog MIDI kontrolera na pristupačnom ATMega32 mikrokontroleru u DIP paketu, koji je imao 8 ADC kanala na ploči. Nisam želio ograditi krug i odlučio sam se ograničiti na 8 ulaza. Budući da ATMega32 nema hardverski USB, koristio sam standardnu ​​vezu s računalom preko virtualnog usb-a. Nakon što sam nekoliko dana petljao oko programiranja, uspio sam pokrenuti uređaj. Zamislite moje iznenađenje kada sam na Internetu otkrio gotov uređaj sa dijagramom strujnog kruga i firmverom (MegaDrum). Ali sve što se ne radi, sve je na bolje.


Puni USB

Po zanimanju sam programer, a po zanimanju sam programer elektroničar, kandidat tehničkih znanosti, a kako je govorio moj bivši voditelj, Švicarac sam, kosac i trubač. Kao što to često biva, fiksirao sam se na AVR-ove, ne zato što sam imao osjećaja za njih, već zato što sam bio potpuno zadovoljan njihovim performansama i njihovim tehničkim karakteristikama. Ali došlo je vrijeme kada više nisu bili dovoljni. A onda ga je zamijenio stm32, između ostalog, s punopravnim USB sučeljem na ploči. Tu je došla ideja da napravimo punopravni MIDI kontroler. Osim toga, već sam imao iskustva u radu s MIDI sučeljem.

Gdje početi? Nismo imali stm32 u DIP paketima (ako uopće postoje u prirodi), pa je ideja o lemljenju na pločici odmah nestala. Upravo tada su se počele pojavljivati ​​jeftine razvojne ploče bazirane na stm32 mikrokontrolerima, poput DISCOVERY-a. A sada sam sretni vlasnik STM32F407DISCOVERY debug ploče, 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 pogrešaka jednostavno napunjena. Ali za moje potrebe bilo je dovoljno 12 kanala.


Nakon što sam proveo neko vrijeme proučavajući programsko okruženje Keil, arhitekturu mikroprocesora STM32F407, kao i standardne periferne biblioteke za rad s USB-om, stvorio sam program za anketiranje svih ADC kanala koristeći kanal za izravni pristup 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 ZP-1 piezo zvono koje se moglo kupiti u trgovini po povoljnoj cijeni.


Skinuo sam dijagram ožičenja od MegaDruma.


Napisao sam upravljački program u Delphiju s rezervom od 16 kanala. U principu, broj kanala uređaja može se neograničeno povećavati dodavanjem analognih multipleksera u sklop, kao što je to učinjeno u Megadrumu, ali za naše potrebe dovoljno je 16 kanala, jer nismo tako napredni glazbenici. A za bubnjara početnika, ovaj broj bubnjeva bit će lak zalogaj.


Uređaj je testiran na Windowsima i Linuxu pomoću Renoise trackera. U radu nisu pronađeni posebni problemi.
Ali odlučio sam ne stati na ovom rezultatu. STM32F407 je prilično sofisticiran procesor, pa 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 programator s prethodnog posla.


Morali smo u potpunosti prepisati firmware, jer su principi rada procesora 407 i 103, iako ne radikalno, različiti.
Onda sam na internetu naišao na ploču za otklanjanje pogreš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 tipkovnica, kontrolera, daljinskih upravljača itd. temelje se na upotrebi MIDI konektora, čije povezivanje s modernim računalom može biti problematično. Starije zvučne kartice imale su priključak za igru ​​na koji ste mogli spojiti joystick ili MIDI uređaj:

Međutim, sve nove matične ploče dolaze s ugrađenim kontrolerom zvuka, a zvučne kartice često nemaju mogućnost povezivanja MIDI uređaja.
Ostaje samo kupiti modernu MIDI klavijaturu, DJ konzolu itd. s USB izlazom za spajanje na računalo, ili kupiti/lemiti adapter, ili kupiti posebnu zvučnu karticu s mogućnošću spajanja MIDI uređaja. Kupnja, naravno, nije problem, ali nismo zato došli na ovu stranicu, zar ne?

U ovom članku želim pokazati kako možete koristiti jeftin Arduino kontroler za izradu jednostavne MIDI tipkovnice s USB vezom za 8 tipki i kotačićem za pomicanje.

Pa sam koristio:
Arduino UNO kontroler
8 kom. gumbi
8 otpornika 10 kOhm
rotacijski enkoder 25LB22-Q
maketa i skakači

Dijagram povezivanja je sljedeći:

Za povezivanje sam koristio najjednostavniju opciju: 1 ključ - 1 ulaz. Međutim, s većim brojem tipki, 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 kroz multipleksiranje. Međutim, ako priključite nekoliko tipki na analogni ulaz, tada mogu nastati problemi s očitavanjem stanja kada se nekoliko tipki pritisne istovremeno. Stoga je, po mom mišljenju, multipleksiranje prihvatljivija opcija.

Arduino softver

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

Enkoder je spojen na hardverske ulaze prekida; neću razmatrati opis rada s njim, jer Program je jednostavan i preuzet sa službene Arduino stranice.

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

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

Pitch Bend je također vrijedan spomena. Iz MIDI specifikacije proizlazi da je potrebno poslati poruku od tri bajta: 0xE0 (Pitch Bend kod), MSB (high byte), LSB (low byte).

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 visine tona prema gore, ako je niža, visina tona se mijenja prema dolje.
U programskom kodu komentirao sam retke ako odjednom želite koristiti Pitch Bend umjesto modulacije (sredina vrijednosti, dekompozicija na 2 bajta itd.)

Kod za otkrivanje pritiska tipke uključuje tri stanja: tipka je pritisnuta, tipka je zadržana i tipka je otpuštena. To je učinjeno kako bi se mogla prenijeti vrijednost trajanja pritiska tipke. Ako to nije potrebno, tada možete ostaviti samo jedno stanje (pritisnite tipku), 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 pritisnuta ( noteOn(0x90, note_C, 0x7F); note_C_send_on = true; // Note On naredba poslana note_C_send_off = false; // Note Off naredba nije poslana ) inače ako (buttonState_C == HIGH && note_C_send_on == true) // Ako je tipka zadržana ( noteOn(0x00, note_C, 0x7F); note_C_send_on = true; note_C_send_off = false; ) else if (buttonState_C == LOW && note_C_send_off == false) // Ako se tipka otpusti ( noteOn(0x90, note_C, 0x00); note_C_send_on = false; note_C_send_off = true; encoder0Pos = 0; // Vraća položaj kotačića na nulu) ....... ..... .. ... .... // Funkcija za slanje MIDI poruke na serijski priključak void noteOn(int cmd, int pitch, int velocity) ( Serial.write(cmd); Serial.write(pitch); Serial. pisanje (brzina); kašnjenje (20);

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

Dakle, sklop je sastavljen, skica je učitana u kontroler, pokrećemo Serial Monitor, mijenjamo brzinu prijenosa na 115200 i pritisnemo tipke ili okrenemo enkoder i pogledamo vrijednosti.
Ako je sve u redu, prijeđ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 pretvarač, ovaj članak ne bi postojao.

PC softver (Windows)

Kako biste primili podatke putem USB virtualnog COM priključka od Arduina i prenijeli ih u bilo koji MIDI sekvencerski program, potreban vam je poseban uslužni program: Serial MIDI Converter V2D (uredsko mjesto)

Program je višeplatformski, radio mi je pod Windows 7 x64, iako uz neke probleme.

Pokrećemo ga, odabiremo USB port, brzinu prijenosa (115200) i MIDI Input Port i MIDI Output Port.

Sada se svi MIDI podaci koji dolaze na USB virtualni COM port 12 preusmjeravaju na MIDI Yoke 6 port (koristio sam MIDI Yoke program za stvaranje virtualnih MIDI portova). Možete ih preusmjeriti na Microsoft GS Wavetable Synth i druge priključke.
Program mora biti uključen cijelo vrijeme. Kada pritisnete tipke ili okrenete kotačić kodera, indikator Serial RX na dnu trebao bi treperiti.

Za vizualni prikaz dolaznih MIDI podataka iz priključka, program MIDI-OX (uredna stranica) smatram vrlo korisnim:

Imajte na umu da u postavkama MIDI uređaja morate postaviti MIDI ulazni priključak.

Sada, kada pritisnete tipke za note ili okrenete kotačić, vidjet ćete MIDI podatke u Monitor-Outputu.

Da. Uz pomoć softvera i hardvera uspjeli smo napraviti jednostavnu MIDI tipkovnicu na Arduino kontroleru s prijenosom podataka na računalo za naknadnu obradu npr. u Cubase-u itd. uklj. u stvarnom vremenu.
Na temelju ovog projekta možete napraviti DJ konzolu, potpunu MIDI tipkovnicu itd.

Ispod možete preuzeti INO skicu, Serial MIDI Converter V2D, MIDI-OX i MIDI Yoke