Kā ar savām rokām izveidot lētu MIDI kontrolieri uz Arduino bāzes. Kā ar savām rokām izveidot lētu MIDI kontrolieri, pamatojoties uz Arduino Potenciometra pozīciju nolasīšana

Jau sen esmu vēlējies pamodināt sevī komponistu un sākt veidot savu elektronisko mūziku. Tomēr mani (maigi izsakoties) atturēja augstās MIDI kontrolieru cenas. Bet pēc interneta pārlūkošanas man radās ideja izveidot savu kontrolieri, izmantojot Arduino Uno un vadošās krāsas!

Sāksim)

1. solis: detaļu izvēle

Jūs varat nedaudz novirzīties no piedāvātā materiāla, un jūsu samontētais MIDI kontrolieris joprojām darbosies (ar “nedaudz novirzīties” es domāju, ka varat uzstādīt rezistoru ar nedaudz atšķirīgu vērtību vai atstāt vienu no kontaktiem atvienotu).

No elektronikas mums ir nepieciešams:

  • 1 Arduino Uno ar USB kabeli;

  • 1 burka vadošas krāsas;

  • 1 montāžas plāksne ar izmēriem 5x7 cm;

  • 3 pogas;

  • rezistori ar pretestību 2,2 kOhm;

  • 1 LED;

  • rezistori ar pretestību 10 kOhm;

  • 1 LDR sensors;

  • rezistori ar pretestību 4,7 kOhm;

  • 1 džemperis;

  • 12 gab 2,7 MΩ rezistori;

  • 30 taisnas tapas;

  • 12 saliektas tapas;

  • 12 adapteri;

  • 12 saspraudes.

Papildus elektronikai jums būs nepieciešami arī šādi rīki:

  • Lodāmurs un lodmetāls;
  • Stiepļu griezēji;
  • Statīvs detaļu lodēšanai (trešā roka);
  • Multimetrs;
  • Vairāki vadi un/vai plāna metāla stieple.

2. darbība: pielodējiet tapas

Sāksim veidot dēli, pielodējot tapas. Ievietosim saliektas tapas pirmās rindas centrā uz tāfeles. Pēc tam tie kalpos kā “jutīgas” tapas, ar kurām tiks pievienota tastatūra.

Pēc tapu uzstādīšanas ievērojiet, ka īsās tapas izceļas no dēļa. Uzspiežam uz tiem, lai viss iet vienā līmenī. Tagad mēs tos pielodējam un nekavējoties pārbaudām savienojumus, vai nav īssavienojumu.

Piezīme: Nelodējiet tapas pārāk ilgi, pretējā gadījumā tās uzkarsīs un izkausēs plastmasu.

Nākamajā darbībā ievietojiet taisnās ķemmes spraugās Arduino. Uzliksim dēli virs tapām, kas ir ievietotas Arduino. Šī darbība prasīja nelielu spēku, jo tapas nav ideāli izlīdzinātas ar tāfeles caurumiem.

Kad esat veiksmīgi uzstādījis dēli uz tapām, pārliecinieties, vai tapas ir vienā līmenī ar dēļa augšējo malu. Pēc tam tos var pielodēt.

3. solis: lodējiet džemperus

Tagad noņemsim dēli no Arduino un pagriezīsim to uz otru pusi. Lodēsim džemperus, uz kuriem vēlāk tiks piestiprinātas sastāvdaļas. Ir divi veidi, kā to izdarīt:

  • Aizpildiet visus nepieciešamos caurumus ar lodmetālu un pēc tam savienojiet tos viens ar otru.
  • Izmantojiet plānu stiepli.

Iesaku izmantot otro metodi, jo tā ir vienkāršāka un ātrāka. Ja izvēlaties šo metodi, novietojiet vadu uz tāfeles, kā parādīts attēlā.

  • Sarkanais punkts nozīmē lodēt vadu caurumā.
  • Dzeltens punkts - savienojiet plāno vadu ar tapu tāfeles otrā pusē (kā trešajā attēlā).

Kā redzat, es nedaudz sabojāju apakšējo kreiso stūri, kad uzliku pārāk daudz lodēšanas, tāpēc esiet uzmanīgi!

Padoms: ja jums nav plānas stieples, izmantojiet izmantoto rezistoru vadu atgriezumus.

4. darbība: lodējiet skārienjutīgos rezistorus

Mēs uzstādām sastāvdaļas, proti 2.7 MOhmrezistori, kas pildīs sensoriski kapacitatīvās funkcijas.

Piezīme: Ja vēlaties uzzināt vairāk par pieskāriena kapacitatīvo sensoru teorētiskajiem pamatiem un praktisko pielietojumu, iesaku apskatīt šīs saites:

Novietosim vienu 2.7 MOhmrezistors no vislabāk saliektās tapas apakšas un izspiediet kājas caur caurumiem (kā pirmajā attēlā). Tagad apgriezīsim dēli un iespiedīsim vienu rezistora vadu atpakaļ nākamajā caurumā (kā parādīts otrajā attēlā). Pielodējiet rezistora apakšējo kāju pie cauruma un rezistora augšējo kāju pie tapas spailes. Tad pievienosim 7 cm vads uz šīs tapas (kā redzams no trešā attēla).

Atkārtosim procesu ar visiem rezistoriem un vadiem, pielodējot tos vietā. Rezistoru apakšējām kājām jāveido viens garš savienojums.

Padoms: izvēlieties mainīgas krāsas vadiem — tas atvieglos savienojumus turpmākajās darbībās.

5. solis: lodējiet pogas

Sāksim, novietojot pogas un rezistorus uz tāfeles, tāpat kā pirmajā un otrajā attēlā. Manā gadījumā es izmantoju 2.2 kOhm rezistori, bet jūs varat izmantot jebkuru rezistoru ar vērtību no 2kOhm līdz 10KOhm.

Apgriezīsim dēli un lodēsim visu savās vietās. 3. attēlā ir izskaidroti dažādie savienojumi, kas jums būs jāizveido:

  • zils punkts - norāda pogas kāju, kas jāpielodē pie dēļa;
  • rozā punkts – norāda rezistora kāju, kas jāpielodē pie dēļa;
  • sarkanā līnija nozīmē, ka jums vajadzētu pielodēt divus punktus vienā savienojumā;
  • melnā līnija norāda vadu, kas izies no vienas pogas kājas caur atveri dēlī, kas pēc tam savienosies ar tapu otrā pusē.

Ja viss ir pareizi pielodēts, divas kreisās puses pogas ļaus mainīt oktāvas, kamēr tiks iespējota galējā labā pogaLDR sensors.

6. darbība: lodējiet LDR un LED

Pēc pogu lodēšanas mēs turpinām uzstādīt LDR, LED un atbilstošos rezistorus. Pirms to izdarīt, būtu prātīgi eksperimentēt ar rezistoru vērtībām, kas nonāks LED. Varbūt mans vērtējums ir pārāk augsts, lai ieslēgtu jūsu LED. Nedaudz eksperimentējiet, lai atrastu pareizo rezistora vērtību.

Padoms: jebkurš rezistors no 330Om un 5kOhmbūtu labs risinājums 5mmLED.

Tagad mēs sakārtosim LED, LDR un rezistorus ( 4.7 K parLDR) pareizajās vietās. Apgriezīsim dēli un visu lodēsim. Trešajā attēlā ir izskaidroti dažādie savienojumi, kas jāizveido:

  • brūni punktiņi ir LDR tapas, kas jāpielodē pie tāfeles;
  • rozā punkts ir rezistora kāja, kas jāpielodē pie tāfeles;
  • oranži punktiņi ir LED tapas, kas jāpielodē uz tāfeles;
  • sarkana svītra - jums ir nepieciešams pielodēt divus punktus vienā savienojumā;
  • melnā svītra ir vads, kas iet no rezistora izejas caur dēļa caurumu, kas pēc tam tiks savienots ar tapu.

Piezīme: Pirms LED lodēšanas pārliecinieties, vai gaismas diodes polaritāte ir pareiza. Gaismas diodes pozitīvajai spailei jābūt savienotai ar rezistoru, bet negatīvajai - ar zemi.

7. darbība: pārbaudiet visus savienojumus

Tagad ir īstais brīdis pārbaudīt, vai pogu, LDR un LED savienojumi ir veiksmīgi pielodēti. Šī ir pēdējā iespēja izlabot kļūdas, iesaku lejupielādēt pievienoto kodu un palaist programmu. un lejupielādēt Arduino_Test_Fixture_Code uz Arduino dēli.

Ja viss ir veiksmīgs un pārbaude ir pabeigta, varat pāriet uz nākamo darbību. Ja nē, vēlreiz pārbaudiet pielodētos savienojumus uz tāfeles. Multimetru labāk turēt pie rokas, to saku no savas rūgtās pieredzes.

8. solis: tāfeles pabeigšana

Sāksim ar vadu uzstādīšanu caurumos, kā redzams pirmajā attēlā. Šim solim ir ērti izmantot divus dažādu krāsu vadus.

Apgriezīsim dēli un sagriežam vadus vajadzīgajā garumā. Pielodējiet tos pie tapām, kas nonāk Arduino savienotājos. Pirms sākat lietot MIDI kontrolieris, vispirms ir jāpārbauda tā savienojumi, izmantojot testa skici. Augšupielādējiet skici, atveriet seriālo portu un pieskarieties "jutīgajiem" tapām uz tāfeles. Ja katrai tapai pieskaroties redzat tekstu “Piezīme x ir aktīva”, visas tapas darbojas pareizi.

9. darbība: pārveidojiet Arduino par MIDI ierīci

Kad dēlis ir gatavs, ir pienācis laiks pārveidot Arduino par MIDI kontrolieri, ko atpazīs mūzikas programmas, piemēram, Ableton un Fl Studio, vai pat citas MIDI ierīces. Process sastāv no diviem posmiem:

  1. Mainiet pašreizējo Arduino Uno programmaparatūru uz MIDI saderīgām programmām;
  2. Augšupielādējiet MIDI skici vietnē Arduino.

Sāksim no pirmā punkta. Ielādēts Arduino pēc nosacījuma programmaparatūraUSB seriālais ports, kas ļauj Arduino apmainīties ar ziņojumiem ar datoru un Arduino IDE. Ar jaunu programmu DualMoco, tiks pievienots otrs režīms, kas ļaus Arduino darboties kā MIDI ierīces.

Mēs izmantosim programmu FLIP un izpildīsim norādījumus, lai mainītu Arduino programmaparatūru. Jūs atradīsiet darba failu arhīvā, kas atrodas mapē Programmaparatūra - fails DualMoco.hex.

Pēc jaunās programmaparatūras lejupielādes atkārtoti pievienojiet Arduino datoram. Ja viss iet labi, Arduino IDE nedrīkst atklāt Arduino, jo jaunā programma ir ( MIDIrežīmā). Atveriet mūzikas programmu, kas spēj ierakstīt MIDI, un pārbaudiet, vai Arduino ir nosaukts MIDI/ MOCOpriekšLUFA tika parādīts virs MIDI iestatījumiem, kā redzat 1. attēlā.

10. solis: pēdējo sagatavošanās darbu veikšana

Savdabība DualMoco ir tas, ka tam ir otrs režīms - USB seriālais ports, kas ļauj augšupielādēt skices no Arduino IDE, tāpat kā ar parasto programmaparatūru. Lai Arduino ieslēgtu otrajā režīmā, savienojiet kopā divus ISCP tapas, kā parādīts 1. un 2. attēlā. Varat izmantot vai nu stieples gabalu, vai nelielu džempera vadu, kā parādīts attēlos. Tagad uz dažām sekundēm atvienojiet USB kabeli no Arduino un atkal pievienojiet to, Arduino vajadzētu parādīties Arduino IDE.

Piezīme: ja vēlaties pārslēgties no režīmausb-seriālais portsVMIDI režīmā, noņemiet džemperi noISCP tapas, kā parādīts trešajā attēlā, un atkārtoti pievienojietArduino uz datoru.

Ir pienācis laiks augšupielādēt pašreizējo skici Arduino, Arduino_Fināls_Kods. Lejupielādējiet to, konvertējiet Arduino uz usbseriālais ports režīmā un lejupielādējiet kodu. Ja nepieciešams precīzi noregulēt slieksni, eksperimentējiet ar vērtībām Slieksnis Un RES. Kad viss darbojas, kā paredzēts, mainiet pašreizējo 17. rindu no:

Būla midiMode = false; // ja midiMode = false, Arduino darbosies kā usb-serial ierīce

Būla midiMode = patiess;// ja midiMode = true, Arduino darbosies kā vietējā MIDI ierīce.

Kad kodā ir veiktas pēdējās izmaiņas, ir pienācis laiks pārbaudīt mūzikas programmu, kas var atbalstīt MIDI ierīces. Vispirms pārslēgsim Arduino uz MIDI režīmu:

  1. Augšupielādēsim galīgo kodu Arduino.
  2. Noņemsim USB kabeli no Arduino.
  3. Pārslēdziet Arduino uz MIDI režīmu, noņemot džemperi no ISCP tapām.
  4. Instalēsim USB kabeli Arduino.

Ja viss noritēja labi, atveriet mūzikas programmu un sāciet pieskarties tapām. Maģiskām skaņām ir jāskan...

11. darbība: pielodējiet papīra saspraudes uz džemperiem

Kad Arduino tāfele ir pilnībā pabeigta, ir pienācis laiks pievērsties tastatūrai un tam, kā to savienot ar plati. Ir miljons veidu, kā to izdarīt, bet es izvēlējos saspraudes, kas būtu piestiprinātas pie krāsota papīra (tās ir viegli nostiprinātas un var tikt izmantotas atkārtoti).

Papīra saspraužu lodēšanas process pie vadiem ir diezgan vienkāršs:

  1. Nogrieziet kontaktdakšu vienā vada pusē;
  2. Mēs noņemam izolācijas vadu par 5 mm;
  3. Pielodējiet noņemto stiepli pie saspraudes;
  4. Atkārtojiet visas 12 saspraudes.

Piezīme: skavas nedrīkst pārklāt ar pārklājumu (krāsu vai plastmasu).

12. darbība: veidnes krāsošana

Lai gan ir iespējams spēlēt Arduino MIDI tastatūru, vienkārši pieskaroties papīra saspraudēm, ir daudz jautrāk izveidot savu trafaretu un to izmantot. Izkrāsoja drukāto veidni. Veidne atrodas projekta arhīvā.

Veidnes krāsošana ir pavisam vienkārša, tikai noteikti atstājiet atstarpi starp līnijām un izmantojiet atbilstošas ​​krāsas, pretējā gadījumā tas nedarbosies. Pēc krāsas nožūšanas piestipriniet saspraudes pie “taustiņiem” un var sākt muzicēt.

Paldies par jūsu uzmanību!)

Klaviatūra paredzēta pieslēgšanai ārējam skaņas modulim vai datoram (ja ir atbilstošs interfeiss), izmantojot MIDI protokolu - mūzikas ierakstīšanai sekvencera programmā vai dzīvajā izpildījumā. Taustiņu skaits piedāvātajā versijā ir 48, taču, nemainot ķēdi, to var palielināt līdz 64. Ierosinātās tastatūras īpatnība ir tās jutība pret taustiņa trieciena spēku.

Ierīces vēsture

Pirms kāda laika saistībā ar dzīvokļa iegādi biju spiests pazaudēt greznu instrumentu, kas man kalpoja kā MIDI klaviatūra - tā bija leģendārā YAMAHA DX-7. Kad skumjas norima, radās jautājums visā savā smagumā un neglītumā: pie kā strādāt? Tieši šajā brīdī mana drauga pūlēm manās rokās nonāca pussamontēta shēma KR1816BE39 (pretiniekam šo procesoru sauc par 8048). Shēmu ir viegli salikt un uzstādīt, un, pats galvenais, tā nonāca pie rokas īstajā laikā. Es saliku tastatūru 8x6 matricas formā, izmantojot KR1533ID7 un KR1533KP7. Bija arī muša – divi šīs shēmas trūkumi nogalina visas tās priekšrocības līdz nāvei: nejutīgums pret taustiņu nospiešanas ātrumu (skaļruņi) un PITCH WEEL ritenis. Nu, es reiz programmēju uz Z-80 (un pat uztaisīju darba sekvenceseri) un nolēmu atbrīvoties no vecajiem laikiem. Es apņēmīgi noraidīju Z-80 kā CPU kā morāli novecojušu. Turklāt es negribēju veikt daudz lodēšanas, un es nolēmu par pamatu ņemt šo pašu ierīci uz KR1816BE39, aprīkojot to ar citu multipleksoru atslēgu (augšējo) kontaktu pārraušanai. Atradu dokumentāciju (neticēsiet - bibliotēkā grāmatu “Digitālo ierīču projektēšana uz vienas mikroshēmas mikroprocesoriem”) KR1816BE39 montētājam un uzskricelēju programmu... Un tad izrādījās, ka drauga ROM programmētājs bija. nomira, un vienkārši nebija ar ko pazibināt programmu... No skumjām es pilnībā zaudēju prātu un nolēmu pārrakstīt to pašu algoritmu PIC. Pusdienas laikā programmētājs (LUDIPIPO) tika pielodēts kopā, tad no ligzdas tika izveidots prototips, KR1533ID7 un pāris KR1533KP7, un visu uzstādīšanu veica MGTF bez zīmoga. Un process sākās...

Pirmkārt, tika palaista programmas nedinamiskā versija (es to piedāvāju arī tiem, kam ir tastatūra ar vienu kontaktu katram taustiņam). Tad sākās dinamiskā versija. Un tad radās ideja pievienot pogas un indikatoru. Fakts ir tāds, ka man WAVEBLASTER (meitas viļņu sintezators ļoti vecām skaņas sistēmām) ilgu laiku nogulēja dīkstāvē. Savienojot to ar savu radījumu, es ieguvu kaut ko tādu, uz kura var spēlēt (pēc savām spējām un talanta) bez datora, kas dažreiz ir diezgan ērti. Tas noteica pogu funkciju kopumu - tas var būt noderīgi, savienojot ar skaņas moduļiem “tiešraides” atskaņošanas laikā. Pogu funkcijas ir viegli mainīt, rakstot savus apstrādātājus un izmantojot manas aptaujas un displeja procedūras. Kaut kā dzelzs korpusā saliktā klaviatūra izrādījās ērtāka par YAMAHA PSS (joprojām pilna izmēra taustiņi, pedālis un, galvenais, dinamika!). Pa vidu radošajam procesam radās grūta vēlme izgatavot MIDI klaviatūras versiju tīri datoram - indikators un pogas ir pēc izvēles, bet nepieciešami PITCH WEEL un MODULATION ritenīši. Es kādu laiku cīnījos ar to, bet galu galā padevos un atkal ieslēdzu lodāmuru. Elektroniku nav grūti salikt, bet mehāniku ir nedaudz grūtāk, un es sāku saraukt pieri pār riteņa dizainu. Pēc nelielām pārdomām nolēmu atteikties no otrā riteņa - vienalga, es nekad negriežu abus uzreiz, parasti vispirms rakstu notis un piķi, tad pievienoju modulāciju. Ne mazākais apsvērums bija mehāniskā darba apjoma samazināšana uz pusi, kas man tik ļoti patika. Mazāk slinkiem es tālāk paskaidrošu, kā izgatavot divus riteņus gandrīz bez sarežģītības. Lai joprojām varētu rakstīt modulāciju, es nolēmu organizēt trīs riteņa darbības režīmus: piķis 2 pustoņiem, piķis 1 pustoņiem (ērts) un modulācija. To visu var pārslēgt ar vienu pogu un norādīt režīmu ar LED pāri. Lai vienkāršotu shēmu, es likvidēju atlikušās pogas un indikatorus; tas viss nav nepieciešams, lai strādātu ar modernām sekvencēra programmām.

Ritenis, protams, jāliek uz potenciometra ass, tas ir saprotams, bet ar ko tas jāpievieno? Mana pirmā doma bija izmantot vienreizēju taimeri 555. Taču aprēķini parādīja, ka, mēģinot nodrošināt pieņemamu riteņu iztveršanas ātrumu, būs grūti sasniegt impulsa ilguma mērījuma precizitāti un stabilitāti, jo procesors galvenokārt ir aizņemts ar mērījumiem. tastatūras kontaktu pārslēgšanas laiks. Vienīgais palicis veids ir izmantot analogo-digitālo pārveidotāju (ADC). Tā kā es izmantoju Pic16F84 bez iebūvēta ADC, es atcerējos savu inženierzinātņu pieredzi (un savu dzimto rūpnīcu) un izveidoju ADC no vairākiem rezistoriem ar salīdzinājumu (un kādu programmu). Tas izrādījās vienkāršs, lēts un diezgan precīzs.

Es piedāvāju abas diagrammas - gan ar pogām, gan ar riteni, kā arī programmas tām. Ja vēlaties, abas shēmas var viegli apvienot, nedaudz mainot ārējo ierīču adreses; jums tikai jāatceras, ka CHORUS (STEREO) režīmā tiek izmantots tonis, lai iegūtu atskaņošanu, un jums tas ir vai nu jānoņem, vai jāuztraucas par toņa pārraidi ar atskaņošanu. pa kanāliem.

Tātad - faktiskā tastatūra

Ierīces diagramma

Pirmā parādījās nedinamiskā versija, kas nebija jutīga pret taustiņu trieciena spēku - lai pārbaudītu izkārtojuma funkcionalitāti.

Es izmantoju PIC16F84 kā procesoru vairāku iemeslu dēļ: šī mikroshēma ir pieejama, lēta un viegli programmējama, un tā man bija pa rokai. Uzmanību: PIC16C84 nav piemērots - tajā ir tikai 36 šūnas RAM un programma nedarbosies. Tomēr riteņu ķēde izmanto mazāk RAM šūnu, un tās programmu var iespiest PIC16C84, samazinot vēl pāris šūnas, piemēram, MIDCH (visiem pārraidītajiem datiem piešķirot pastāvīgu MIDI kanālu).

Dinamiskās tastatūras diagramma ar indikāciju ir parādīta zemāk:

Shēma ir tradicionāla daudzos aspektos - grūti izgudrot velosipēdu bez pedāļiem un riteņiem J Ports B darbojas pārraidei - apakšējie 7 biti izvada atslēgas adresi matricā vai datus ārējām ierīcēm (indikators un riteņa DAC). Nozīmīgākais bits tiek izmantots MIDI datu izvadīšanai sērijas kodā - konvertēšana un izvade tiek veikta programmatūrā. Tāpēc kristālam jābūt uz 4 MHz, ja vien nevēlaties pārrakstīt MIDI baitu izvades rutīnu. Divi vismazāk nozīmīgie porta A biti darbojas uztveršanai - tie saņem signālus no “atbrīvoto” un “nospiesto” taustiņu kontaktu multipleksoriem, un trīs nozīmīgākie biti nosaka ārējās ierīces adresi (caur citu KR1533ID7 dekodētāju). Ķēdē ar riteni es atteicos no ārējās ierīces adrešu dekodētāja, lai vienkāršotu ķēdi un atbrīvotu PA4 porta augsto bitu datu ievadei no salīdzinājuma, tāpēc tastatūras un pogu adreses ir atšķirīgas. Apvienojot shēmas, šī mikroshēma būs jāatdod, adreses atšifrēšanai jāizmanto porta biti PA2 un PA3 un jāadresē 4 ierīces: tastatūra, pogas, dinamiskās indikācijas datu reģistrs un dinamiskās indikācijas pazīšanas reģistrs. Riteņa režīma indikācija būs jāpārraksta.

Shēma ar PITCH WEEL / MODULACIJU riteni izskatās šādi:

Katrai atslēgai ir uzstādīta viena diode atsaistīšanai. Rezistori pie multipleksoru ieejām nedrīkst būt lielāki par 8k, pretējā gadījumā iespējamas kļūmes montāžas kapacitātes dēļ. Indikators - jebkurš ar kopīgu anodu 3 cipariem, ja katra cipara segmentu spailes izvada atsevišķi, ir jāapvieno viena nosaukuma segmentu spailes - indikācija ir dinamiska un cipari iedegas secīgi. Jebkuras pogas bez bloķēšanas, kontaktu atlēcienu kontrolē programmatūra. Gaismas diodes ir uzstādītas netālu no tāda paša nosaukuma pogām un norāda uz atbilstošo režīmu aktivizēšanu; pogām “+” un “-” nav gaismas diožu. Indikatora tranzistori ir jebkura mazjaudas augstfrekvences reversā vadītspēja. Tiek izmantoti divi KR1533IR23 reģistri, lai pārmaiņus fiksētu pašreizējā indikatora cipara adresi un kodu (arī gaismas diodes ir sagrupētas divos gandrīz ciparos). Es izmantoju standarta tastatūru no padomju elektriskajām ērģelēm ar 48 taustiņiem (tā arī tika ražota atsevišķi kā “START” radio dizainers, un ir diezgan izplatīta). Lai samazinātu tastatūras augstumu un instrumenta biezumu, zem katra taustiņa tika atstātas divas no sešām kontaktu grupām, visa lieta tika izgriezta un pārlīmēta. Vispār pietiek ar vienu komutācijas grupu uz vienu taustiņu, bet ērtāk bija līmēt šādi. “Atbrīvoto” un “nospiesto” kontaktu kopnes ir 8 taustiņus garas. Ja vēlaties, varat izmantot arī tastatūru, kur komutācijas kontaktu grupas vietā tiek izmantoti divi aizvēršanas kontaktu pāri - viens pāris aizveras taustiņa kustības sākumā, otrs beigās (kā uz YAMAHA instrumentiem). Šajā gadījumā signāls uz PA0 ir jāpiegādā no multipleksora apgrieztās izejas (6. kontakts). Bez izmaiņām shēmā var izmantot tastatūru ar 64 taustiņiem (standarta – 61, t.i., 5 oktāvas). Ja nepieciešams, atslēgu skaitu var palielināt līdz vismaz 127; lai to izdarītu, ķēdē jāievada vēl viens KR1533ID7 dekodētājs.

Ir ļoti svarīgi labi iestatīt mehāniku - augšējiem kontaktiem OBLIGĀTI jāaizveras, kad atslēgas tiek atlaistas. Ja tas nav izdarīts, programma uzskata, ka šādi taustiņi ir nospiesti un mēģina tos apstrādāt, tāpēc, vēlreiz nospiežot šos taustiņus, skaņa netiek atskaņota. Turklāt maksimālais vienlaicīgi atskaņojamo nošu skaits ir 10 (ja kādam ir uzaudzēti vairāk pirkstu uz rokām, šo skaitli var viegli mainīt), un taustiņu neatlaišana šo skaitli samazina. To pašu iemeslu dēļ tastatūras aptaujas procedūrā norādītajam taustiņu skaitam OBLIGĀTI jāsakrīt ar reālo taustiņu skaitu. Kontaktpersonu atlēcienu nomāc programmatūra.

Rezistīvajai matricai R-2R ADC ir ieteicams izvēlēties rezistorus ar precizitāti 1–2%, un absolūtās vērtības var atšķirties, attiecība ir svarīga. Tomēr jums nevajadzētu ievērojami palielināt nominālvērtību; tas palielinās pārveidošanas laiku salīdzinājuma ieejas kapacitātes dēļ. Es izmantoju SMD rezistorus bez saskaņošanas, lai gan mērījumi parādīja, ka vienā montāžas sloksnē rezistori parasti tiek saskaņoti ar precizitāti virs 1%. Esmu pārliecināts, ka ķēde darbosies ar neprecīziem rezistoriem, bet raksturlieluma linearitāte pasliktināsies. Pats ritenis ir izgatavots no vecā televizora roktura, un uz potenciometra ass ir atspere, kas to atgriež vidējā pozīcijā. Mehānikas iestatīšanas ērtībai, ieslēdzot barošanu ar nospiestu režīma pogu, tiek aktivizēta atkļūdošanas programma, kas iedegas LED, kad ritenis atrodas vidējā stāvoklī, tas ļauj precīzi noregulēt nulles pozīciju. riteņa uz potenciometra ass. Ja ir nepieciešamība un vēlme izgatavot atsevišķu MODULĀCIJAS riteni, tas ir jāsavieno ar brīvu salīdzinājuma elementu (tie ir četri), un R-2R matrica ir kopīga abiem riteņiem. Lai pārslēgtu komparatoru izejas, labāk ir izmantot papildu mikroshēmu un izmantot PA2 kā vadības signālu.

Ja vēlaties, varat samontēt tastatūras dinamisko versiju bez indikācijas, pogām un PITCH WEEL / MODULACIJAS riteņa - vienkārši nesaliekot neizmantoto ķēdes daļu. Visi maināmie parametri tiks iestatīti pēc noklusējuma, kad tiks ieslēgta barošana...

To visu var darbināt no jebko, strāvas patēriņš ir atkarīgs no konkrētā indikatora un nepārsniedz 100 mA. Man ir 7805 stabilizators tieši uz tāfeles bez radiatora (to var skaidri redzēt fotoattēlā). Neliels radiators ir nepieciešams, ja tam tiek piegādāts vairāk nekā 9 V. Salīdzinātājs tiek darbināts ar 9–12 V spriegumu, vēlams stabilizētu. Jā, es izmantoju padomju laikā ražotas mikroshēmas no veciem krājumiem - to moderno analogu ir liels skaits, nomaiņa ir iespējama un pat vēlama - mūsdienu analogiem ir mazāks patēriņš.

Programma

Nospiesto taustiņu apstrādes algoritms nāk no žurnālā “Mikroprocesoru rīki un sistēmas” Nr.5, 1986. gada piedāvātā. Tieši šī publikācija (pareizāk sakot, kļūda piedāvātajā programmā) pamudināja mani apgūt montētāju. Faktiski vienīgā ideja, kas tika ņemta no turienes, bija ierakstīt katra nospiestā taustiņa numuru īpaši atvēlētajā RAM (CHAN) apgabalā, lai, atkārtoti aptaujājot tastatūru, tā vairs neapstrādātu jau apstrādāto taustiņu. Man ir divas RAM šūnas, kas ir piešķirtas katram nospiestajam taustiņam (kopā ne vairāk kā 10): pirmajā tiek ierakstīts nospiestā taustiņa numurs, otrajā - tā ĀTRUMS (spiešanas ātrums). Atkārtoju - šīs šūnas ir tikai 20 un sākuma adresi dod nosaukums CHAN. Brīvā pāra zīme ir iestatītais nozīmīgākais pirmās šūnas bits. Nozīmīgākais otrās šūnas bits, kas tiek iestatīts, nozīmē, ka PIEZĪME IESLĒGTA šai atslēgai jau ir pārsūtīta un tai nav nepieciešama turpmāka apstrāde.

Es neaprakstīšu visu programmu sīkāk; pirmkods ir pilns ar komentāriem un ir diezgan pieejams apmācītai personai. Par pārējo es nekavējoties sniedzu gatavu programmaparatūru failā Dinamic.hex un Pitchmod.hex. Es paskaidrošu tikai dažus nepārprotamus punktus. Nu, pirmkārt, par dinamiku: brīdī, kad atveras atslēgas augšējie kontakti, tās numurs tiek ierakstīts pirmā brīvā pāra pirmajā šūnā no CHAN zonas, vienlaikus atiestatot brīvā pāra zīmi. Otrajā šūnā tiek ierakstīta sākotnējā vērtība VELOCITY = 127. Tastatūras jutīgumu nosaka pārtraukuma frekvence, jo pārtraukuma apstrāde samazina VELOCITY vērtības visiem taustiņiem, kuriem vēl nav pārsūtīts NOTE ON. Pārtraukumus izraisa iebūvētais taimeris. Tajā brīdī, kad atslēgas apakšējie kontakti ir aizvērti, attiecīgajā CHAN šūnā tiek iestatīta zīme “pārsūtīts” un tiek pārraidīta PIEZĪME IESLĒGTA ar pašreizējo ĀTRUMU. Lai uzlabotu jutības līkni, VELOCITY vērtības samazinās saskaņā ar logaritmisko likumu: 1/16 tās daļas, kas samazināta par 1, tiek atņemta no pašreizējās VELOCITY vērtības. Tādējādi, kamēr taustiņš pārvietojas no augšējā kontakta uz apakšējo viens, VELOCITY vērtība attiecīgajā CHAN šūnā samazinās saskaņā ar logaritmisko likumu, un, jo ātrāk kustas atslēga, jo lielāks ir VELOCITY brīdī, kad tiek aizvērti atslēgas apakšējie kontakti un tiek pārraidīts NOTE ON. Pārtraukumi kontrolē arī dinamisko displeju, tas tiek darīts, lai novērstu indikatora mirgošanu.
Pogu funkcijas: TRANSPOSE - visi taustiņi ir samazināti līdz jūsu iecienītākajam A minor: diapazons +/- 15 pustoņi. PRG piešķir tembru (instrumentu) noteiktam iepriekšējam iestatījumam (UP1-UP5), un VOL piešķir tā skaļumu. Pašreizējais parametrs tiek parādīts uz indikatora, un to var mainīt, izmantojot pogas "+" un "-" TWIN parāda "dubulto" tembru - vienu no iepriekšējiem iestatījumiem (UP1-UP5) un tajā pašā laikā LOWER preset skaņa vienlaicīgi. STEREO izvada pašreizējā iepriekš iestatītā skaņu labajā un kreisajā stereo kanālā ar nelielu “atskaņošanu” (“kora” efekts). Poga SPLIT nav aktivizēta. SUSTAIN pedālis ir izveidots ķēdes veidā kā viena no pogām, tā vada kapacitātei nevajadzētu būt ļoti lielai. Pogu apstrādātāju adreses tiek apkopotas tabulā programmas sākumā, mainot pogu funkcijas, tās var aizstāt ar savām.

Riteņa ADC ir puse programmatūras, tas darbojas, izmantojot secīgu tuvināšanas algoritmu, R-2R matrica veic digitālo-analogo konvertēšanu. Pirmkārt, R-2R matricai tiek piemērots 1 nozīmīgākajā ciparā, un salīdzinājums nosaka, vai tas ir daudz vai maz. Ja ir maz, nozīmīgākajā bitā paliek 1, ja daudz - 0. Tad tas pats notiek ar katru nākamo zemas kārtas bitu (kopā 6 soļi) un iegūstam sešu bitu skaitli, kas atbilst riteņa griešanās leņķis. Šī precizitāte man šķiet pietiekama, taču jūs varat pievienot vēl vienu bitu, palielinot matricu un konvertēšanas programmu.

Dizains

Kā īsto tastatūru es izmantoju padomju laikā ražotu “Start” konstruktoru, tagad, iespējams, ir vieglāk atrast vecu, nederīgu Yamaha vai Casio, tas atrisinās arī korpusa izgatavošanas problēmu - ja, protams, vecais instruments ir samērā neskarts...

Iespiedshēmas plate netika izstrādāta - es uzskatīju par nepiemērotu tērēt laiku elektroinstalācijai un plates izgatavošanai, lai izveidotu vienu ierīces eksemplāru, un izkārtojums tika izveidots uz shēmas plates, izmantojot MGTF džemperus. Kā savienotāju un kabeli tastatūrai izmantojām kabeli no disketēm no datora ar atbilstošu savienotāju katrā pusē - tas atvieglo gatavās ierīces salikšanu/izjaukšanu.

Manā gadījumā korpuss bija izliekts no plānas lokšņu tērauda (kas bija pa rokai) - ar koka sāniem (kā veciem padomju instrumentiem).

Nu, īsumā, tas arī viss. Radoši panākumi!

Radioelementu saraksts

Apzīmējums Tips Denominācija Daudzums PiezīmeVeikalsMans piezīmju bloks
Shēma Nr.1.
MikrokontrollerisPIC16F841 Uz piezīmju grāmatiņu
MikroshēmaKR1533ID71 Uz piezīmju grāmatiņu
MikroshēmaKR1533KP71 Uz piezīmju grāmatiņu
Lineārais regulators

LM7805

1 Uz piezīmju grāmatiņu
Diode

KD522A

64 Uz piezīmju grāmatiņu
Kondensators22 pF2 Uz piezīmju grāmatiņu
Kondensators0,1 µF2 Uz piezīmju grāmatiņu
100 µF2 Uz piezīmju grāmatiņu
Rezistors

220 omi

2 Uz piezīmju grāmatiņu
Rezistors

6,8 kOhm

8 Uz piezīmju grāmatiņu
Kvarca rezonators4 MHz1 Uz piezīmju grāmatiņu
Tastatūras poga 64 Uz piezīmju grāmatiņu
Shēma Nr.2.
MikrokontrollerisPIC16F841 Uz piezīmju grāmatiņu
MikroshēmaKR1533ID72 Uz piezīmju grāmatiņu
MikroshēmaKR1533KP72 Uz piezīmju grāmatiņu
MikroshēmaKR1533IR232 Uz piezīmju grāmatiņu
Lineārais regulators

LM7805

1 Uz piezīmju grāmatiņu
Bipolārais tranzistors

KT315A

5 Uz piezīmju grāmatiņu
Diode

KD522A

80 Uz piezīmju grāmatiņu
Kondensators22 pF2 Uz piezīmju grāmatiņu
Kondensators0,1 µF2 Uz piezīmju grāmatiņu
Elektrolītiskais kondensators100 µF2 Uz piezīmju grāmatiņu
Rezistors

180 omi

7 Uz piezīmju grāmatiņu
Rezistors

220 omi

2 Uz piezīmju grāmatiņu
Rezistors

6,8 kOhm

16 Uz piezīmju grāmatiņu
Rezistors

8 kOhm

1 Uz piezīmju grāmatiņu
Kvarca rezonators4 MHz1 Uz piezīmju grāmatiņu
3 ciparu LED digitālais indikators, ar parastiem anodiem. 1 Uz piezīmju grāmatiņu
Gaismas diodesarkans12 Uz piezīmju grāmatiņu
Atslēgas slēdzis 64 Uz piezīmju grāmatiņu
Poga 16 Uz piezīmju grāmatiņu
Shēma Nr.3.
MikrokontrollerisPIC16F841 Uz piezīmju grāmatiņu
MikroshēmaKR1533ID71 Uz piezīmju grāmatiņu
MikroshēmaKR1533KP72 Uz piezīmju grāmatiņu
Salīdzinātājs

Jau ilgu laiku producentiem un skaņu inženieriem MIDI kontrolleris ir kļuvis par svarīgu atribūtu, kas palīdz radīt skaistu mūziku. Virtuālie instrumenti vienmēr izklausās īpaši, tāpēc tie ir jebkuras melodijas rotājums.

Sakarā ar to, ka daudzi mūziķi ir ļoti nobažījušies par savu produktu kvalitāti, rodas jautājums: kā izvēlēties MIDI tipa kontrolieri? Šajā rakstā tiks aprakstīti padomi un galvenie atlases kritēriji.

Kas ir MIDI kontrolieris?

Vēl 1980. gados tika izmantota ierīce, ko sauc par kontrolieri, lai mūziķis, izmantojot vienu tastatūru, varētu kontrolēt vairāku sintezatoru darbību vienlaikus. Šī ideja bija veiksmīga, tāpēc šāda veida ierīces nekavējoties kļuva plaši izplatītas. Ja tad visi tos nevarēja iegādāties, tad šobrīd kontrolieriem ir stipri samazinājušās cenas. Mūziķi, skaņu inženieri, dziesmu autori, izpildītāji, dīdžeji – šādas ierīces izmanto visi.

Kas ir ierīce, kurai ir tastatūra? Tas ir līdzīgs klavieru un sintezatora taustiņiem. Tam ir pievienotas pogas, dažādas pogas un slīdņi. Mijiedarbojoties ar tiem, melodija tiek pārraidīta uz skaņas moduļiem, kuriem ir ārējs tips. Mēs runājam par klēpjdatoriem un citām ierīcēm. Citiem vārdiem sakot, kontrolieri (lielākā daļa no tiem) nespēj radīt skaņu paši. Tie ir paredzēti, lai regulētu bitus, notis un citus parametrus, kas tiek reproducēti no ārējās ierīces (skaņas moduļa).

Kādas ir MIDI kontrollera priekšrocības? Pats acīmredzamākais: tas ir daudzpusīgs un pārnēsājams. Pateicoties tam, jūs varat lietot visus virtuālos efektus un kontrolēt moderno programmatūru. To var viegli pārnēsāt, izmantojot, piemēram, klēpjdatora somu.

Ko meklēt, pērkot?

Pirms jebkura kontroliera iegādes jums ir jādomā, kam tas ir paredzēts. Būtu lietderīgi atbildēt uz šādiem jautājumiem, tie sniegs precīzu priekšstatu par to, kurš variants no milzīgā sortimenta ir piemērots.

Kam tiks izmantots kontrolieris? Skatuves izrādēm paredzētai ierīcei jābūt materiālam, kas ir izturīgs pret mehānisko spriegumu. Ņemot vērā, ka lielākā daļa kontrolieru ir izgatavoti no plastmasas, jums jāpievērš uzmanība metāla iespējām. Jums arī jāizlemj par mehānisma veidu un atslēgu skaitu. Ja to ir pārāk daudz, tad dzīvās uzstāšanās laikā ir iespēja sajaukt mērķi jebkuram no tiem.

Neliels MIDI kontrolieris lieliski noderēs dīdžejam. Pavisam nav grūti to izgatavot ar savām rokām, ja cilvēks saprot elektroniku. Tas nozīmē, ka dīdžeji bieži izmanto paštaisītu aprīkojumu. Vairāk par to varat lasīt zemāk. Šāda ierīce ir jāiegādājas, ņemot vērā to, ka jums ir nepieciešami arī rokturi un slīdņi. Bez tiem programma (MIDI kontrolleris darbojas tikai tandēmā ar to) nepildīs vēlamās funkcijas.

Ja mūziķis skaņdarbus rediģē gultā, lidmašīnā, automašīnā vai citā vietā, tad galvenais apsvērums, izvēloties, būs pārnesamība. Ņemot vērā, ka ierīce tiek darbināta, jums jāpievērš uzmanība tiem, kurus var uzlādēt no USB kopnes.

Pioneer MIDI kontrolieri

Pioneer MIDI kontrolieris ir ierīce, kas vienmēr ir bijusi pieprasīta. Šis ražotājs jau sen ir bijis starp trim labākajiem līderiem šādu iekārtu tirgū. Kas atšķir “saistītos” Pioneer modeļus vienu no otra? Tikai papildu funkciju klātbūtne, kas izskatās kā parastas mehāniskas pogas uz vadības paneļa. Jebkuram šī zīmola kontrollerim ir lieliski skriešanas riteņi. Izskats ir nopietns un elegants. Ierīces iespaidīgo izmēru kompensē tās maksimālā funkcionalitāte.

Nav jādomā, kuru modeli izvēlēties. Jums nekavējoties vajadzētu tuvāk apskatīt DDJ-T1. Ierīci iesaka daudzi.Cenas un kvalitātes attiecība ir diezgan laba. Vadības panelis ir ērts, pogas var nospiest bez problēmām, un ierīci ir viegli pārnēsāt.

Novation Launchpad kontrolieris

Novation Launchpad MIDI kontrolieris ir īpaši izstrādāts darbam ar Ableton Live. Ierīce piemērota gan skatuves, gan mājas studijas aktivitātēm. Ar to būs viegli rīkot arī diskotēkas. Ierīces režģis sastāv no 64 pogām. Tas ir aprīkots ar papildu efektiem, kā arī funkcijām darbam ar programmatūru. Ierīci var savienot ar datoru un tā darbojas gan ar Windows saimi, gan ar dažām citām operētājsistēmām.

DIY MIDI kontrolieris - realitāte vai mīts?

Pašdarināti MIDI kontrolieri ir bijuši pieprasīti jau ilgu laiku. Kas nepieciešams, lai īstenotu savu ideju? Jums ir nepieciešama shēma, saskaņā ar kuru ierīce tiks lodēta un salikta, budžets, fiziķis vai elektriķis, kas pārzina šo jomu.

Papildus tehniskās puses pārzināšanai jums arī jāuzdod sev jautājums, cik daudz radītājs zina par kontrolieriem. Lai pareizi saliktu ierīci, kas attaisnos visas cerības, jums ir jāsaprot, kuru bāzi vislabāk izmantot, kāpēc modelis tiks salikts, kā arī, kur uzstādīt vadības paneli. Jautājums ir diezgan sarežģīts, bet pilnībā atrisināms. Mūsdienās ir daudz gatavu shēmu, kuras var izmantot, lai saliktu kontrolieri. Galvenais ir pārliecība par saviem plāniem un pacietība.

Akai zīmola modelis

Akai nesen izlaida jaunu kontrolieri ar nosaukumu MPC Touch. Atšķirībā no saistītajām ierīcēm, šai ierīcei ir 7 collu displejs. Tas ievērojami atvieglo darbu ar to. Pamatojoties uz atsauksmēm, jāsaka, ka tieši aprakstītais modelis tiek izmantots kā piemērs, runājot par profesionāliem kontrolieriem. Apskatot to un ņemot vērā funkcionalitāti, jautājums par to, kā izvēlēties šādu ierīci, nekavējoties pazūd. Programmatūra darbojas diezgan ātri un efektīvi, problēmas nerodas, un kļūmes ir ārkārtīgi reti.

Vienīgais trūkums ir tas, ka kontrolieris nevar darboties bez strāvas avota, jo tam nav akumulatora. Akai zīmols tirgū ir pazīstams jau ilgu laiku. Tā MIDI kontrolleris ir jaudīga un kvalitatīva ierīce, kas spēj izturēt lielas slodzes. Bieži uz skatuves tiek izmantoti daži modeļi.

MIDI kontrolleris ir ierīce, kas pārvērš noteiktu fizisko procesu ciparu komandu komplektā MIDI formātā. Fiziskais process var būt jebkas, sākot no taustiņa nospiešanas ar pirkstu līdz skaļuma pogas pagriešanai. Iegūtā komandu straume caur MIDI protokolu tiek pārsūtīta uz citām ierīcēm – datoru, aparatūras paraudzītājiem, sintezatoriem vai ārējiem sekvenceriem un tiek tur noteiktā veidā atšifrēta. Visizplatītākais MIDI kontrollera veids ir MIDI tastatūra – klavieru klaviatūras elektroniskais ekvivalents. Ir arī daudzi citi kontrolieru veidi, tostarp elektroniskie bungu komplekti.

Mūsdienu tirgus piedāvā milzīgu skaitu dažādu MIDI kontrolieru elektroniskām instalācijām, kas atšķiras pēc dažādiem kritērijiem, piemēram, cenas, kvalitātes, tehniskajiem parametriem utt. Ir arī vairākas gatavas lietotāju ierīces, kas tiek realizētas kā komerciāli projekti (eDrum, megaDrum). Bet, neskatoties uz to visu, vēlme izveidot šādu ierīci ar savām rokām joprojām dzīvo mūsdienu Kuļibiņu prātos.

Tā nu pirms dažiem gadiem, nedaudz novēloti, radās interese par šādas iekārtas izveidi, jo piedalījos smagās mūzikas grupā. Spēlējām hārdroku, pareizāk sakot, kaut ko līdzīgu brutaldeath, goregrind, grindcore. Es spēlēju elektrisko ģitāru. Nedaudz agrāk nopirkām Sonor bungu komplektu un vakaros garāžā trokšņojām. Vēlāk mums jautāja garāža, un radās jautājums par telpām. Neko vērtīgu neatraduši, nolēmām uz mēģinājumu mājās, kas uzreiz izraisīja konfliktu ar kaimiņiem. Šeit radās jautājums par elektroniskajām bungām.

Paralēli dzīvo instrumentu spēlēšanai es rakstīju elektronisko mūziku un izmantoju VST instrumentus un spraudņus, jo īpaši bungu partiju veidošanai es devu priekšroku Addictive drums un ezDrums, kuriem ir iespēja strādāt ar MIDI interfeisu. Pat nemeklējot googlē šo tēmu, es ar galvu ķēros pie sava MIDI kontroliera izstrādes par pieejamu ATMega32 mikrokontrolleru DIP pakotnē, kurā bija 8 ADC kanāli. Es negribēju norobežot ķēdi, un es nolēmu ierobežot sevi līdz 8 ieejām. Tā kā ATMega32 nav aparatūras USB, tad izmantoju standarta savienojumu ar datoru caur virtuālo usb. Pēc vairāku dienu programmēšanas man izdevās iedarbināt ierīci. Iedomājieties manu pārsteigumu, kad internetā atklāju gatavu ierīci ar shēmas shēmu un programmaparatūru (MegaDrum). Bet viss, kas nav izdarīts, ir uz labu.


Pilna USB

Pēc profesijas esmu programmētājs, bet pēc nodarbošanās elektronikas programmētājs, tehnisko zinātņu kandidāts un, kā mēdza teikt mans bijušais darba vadītājs, esmu šveicietis, pļāvējs, trompetists. Kā tas bieži notiek, es pieķēros AVR nevis tāpēc, ka man būtu jūtas pret tiem, bet gan tāpēc, ka biju pilnībā apmierināts ar to darbību ar to tehniskajām īpašībām. Taču pienāca laiks, kad ar tiem vairs nepietika. Un tad stm32 nāca, lai to aizstātu, cita starpā ar pilnvērtīgu usb interfeisu. Šeit radās ideja izveidot pilnvērtīgu MIDI kontrolieri. Turklāt man jau bija pieredze darbā ar MIDI interfeisu.

Kur sākt? Mums nebija stm32 DIP pakotnēs (ja tādas vispār pastāv dabā), tāpēc doma par lodēšanu uz shēmas plates uzreiz pazuda. Tieši tobrīd sāka parādīties lētas izstrādes plates uz stm32 mikrokontrolleru bāzes, piemēram, DISCOVERY. Un tagad es esmu laimīgs īpašnieks STM32F407DISCOVERY atkļūdošanas platei, kurā ir iekļauts arī ST-Link programmētājs. STM32F407 procesoram ir 16 ADC kanāli, lai gan 4 kanālus aizņem perifērijas ierīces, ar kurām atkļūdošanas panelis ir vienkārši piepildīts. Bet maniem nolūkiem pietika ar 12 kanāliem.


Pavadījis kādu laiku, pētot Keil programmēšanas vidi, mikroprocesora STM32F407 arhitektūru, kā arī standarta perifērijas bibliotēkas darbam ar USB, izveidoju programmu visu ADC kanālu aptaujai, izmantojot tiešās atmiņas piekļuves kanālu, kā arī salikto USB. ierīce, kas ietver MIDI audio ierīci un HID, lai mainītu ierīces iestatījumus.

Kā sensorus bungām izmantoju ZP-1 pjezo zvaniņu, ko par lētu cenu varēja nopirkt veikalā.


Elektroinstalācijas shēmu paņēmu no MegaDrum.


Vadības programmu uzrakstīju Delfos ar 16 kanālu rezervi. Ierīces kanālu skaitu principā var palielināt bezgalīgi, pievienojot ķēdei analogos multipleksorus, kā tas tiek darīts Megadrumā, taču mūsu vajadzībām pietiek ar 16 kanāliem, jo ​​mēs neesam tik progresīvi mūziķi. Un iesācējam bundziniekam šāds bungu skaits būs īsts vējš.


Ierīce tika pārbaudīta gan operētājsistēmā Windows, gan Linux, izmantojot Renoise izsekotāju. Īpašas problēmas darbā netika konstatētas.
Bet es nolēmu neapstāties pie šī rezultāta. STM32F407 ir diezgan sarežģīts procesors, tāpēc tas ir salīdzinoši dārgs. Lētāk bija izgatavot ierīci, izmantojot STM32F103. eBay nāca palīgā. Es nopirku izstrādes plati ar STM32F103RBT6.


Tiesa, tajā nav iebūvēta programmētāja. Man paveicās, jo man vēl bija ST-Link programmētājs no iepriekšējā darba.


Man bija pilnībā jāpārraksta programmaparatūra, jo 407 un 103 procesoru darbības principi, lai arī ne radikāli, atšķiras.
Tad es uzgāju internetā atkļūdošanas dēli, kas patiesībā maksāja santīmu, un nolēmu, ka tādā veidā varu samazināt komponentu izmaksas līdz minimumam.

Lielākā daļa rakstu internetā ir par MIDI tastatūru, kontrolleru, tālvadības pulšu izgatavošanu utt. ir balstīti uz MIDI savienotāju izmantošanu, kuru savienošana ar modernu datoru var būt problemātiska. Vecākām skaņas kartēm bija spēļu ports, kuram varēja pievienot kursorsviru vai MIDI ierīci:

Tomēr visām jaunajām mātesplatēm ir iebūvēts skaņas kontrolieris, un skaņas kartēm bieži trūkst iespēju savienot MIDI ierīces.
Atliek tikai vai nu iegādāties modernu MIDI klaviatūru, DJ pulti utt. ar USB izeju, lai pieslēgtu datoram, vai nopirktu/lodētu adapteri, vai nopirktu speciālu skaņas karti ar iespēju pieslēgt MIDI ierīces. Pirkšana, protams, nav problēma, bet ne tāpēc mēs ieradāmies šajā vietnē, vai ne?

Šajā rakstā es vēlos parādīt, kā jūs varat izmantot lētu Arduino kontrolieri, lai izveidotu vienkāršu MIDI tastatūru ar USB savienojumu 8 taustiņiem un ritināšanas ritenīti.

Tāpēc es izmantoju:
Arduino UNO kontrolieris
8 gab. pogas
8 rezistori 10 kOhm
rotējošais kodētājs 25LB22-Q
maizes dēlis un džemperi

Savienojuma shēma ir šāda:

Lai izveidotu savienojumu, es izmantoju vienkāršāko iespēju: 1 atslēga - 1 ieeja. Taču ar lielāku atslēgu skaitu, dažādiem kontrolieriem utt. Iespējams, ka nav pietiekami daudz ieeju, tāpēc jums būs jāizmanto datu nolasīšana caur analogajām ieejām (pievienojot dažādu vērtību rezistorus), vai izmantojot multipleksēšanu. Tomēr, ja analogajai ievadei pievienojat vairākus taustiņus, var rasties problēmas ar stāvokļa nolasīšanu, kad tiek nospiesti vairāki taustiņi vienlaikus. Tāpēc, manuprāt, multipleksēšana ir pieņemamāka iespēja.

Arduino programmatūra

Neņemšu vērā MIDI datu struktūru, jo... tas ir aprakstīts rakstā:

Kodētājs ir savienots ar aparatūras pārtraukumu ieejām; es neapskatīšu aprakstu par darbu ar to, jo Programma ir vienkārša un ņemta no oficiālās Arduino vietnes.

Šajā projektā kodētājs tiek izmantots kā ritināšanas ritenītis, lai mainītu modulācijas riteni, bet to var piešķirt citiem mērķiem (slīkuma līkums utt.).

MIDI dati no kodētāja, no Arduino, tiek nosūtīti ar šādu rindu:
noteOn(0xB0, 0x01, kodētājs0Pos);
kur 0xB0 ir kontrollera ziņojums (vadības maiņa)
0x01 - kontroliera kods (mūsu gadījumā modulācija)
encoder0Pos - kontrollera vērtība (mūsu gadījumā 0-127).
Mainot kontrolleru kodus, varat izmantot ritināšanas ritenīti (kodētāju) dažādiem kontrolleriem.

Pieminēšanas vērts ir arī Pitch Bend. No MIDI specifikācijas izriet, ka nepieciešams nosūtīt trīs baitu ziņojumu: 0xE0 (Pitch Bend kods), MSB (augsts baits), LSB (zems baits).

Divos ārējos baitos tiek saglabāta 14 bitu piķa vērtība, kas var svārstīties no 0...16383 (0x3FFF). Vidējais ir 0x2000, viss, kas pārsniedz šo vērtību, izraisa augstuma izmaiņas uz augšu, ja zemāks, tonis mainās uz leju.
Programmas kodā es komentēju rindiņas, ja pēkšņi vēlaties izmantot Pitch Bend, nevis modulāciju (vērtības vidusdaļa, sadalīšana 2 baitos utt.)

Taustiņu nospiešanas noteikšanas kods ietver trīs stāvokļus: taustiņš tiek nospiests, taustiņš tiek turēts un taustiņš tiek atbrīvots. Tas tika darīts, lai varētu pārsūtīt taustiņu nospiešanas ilguma vērtību. Ja tas nav nepieciešams, varat atstāt tikai vienu stāvokli (taustiņu nospiešana), programma šajā gadījumā tiks ievērojami vienkāršota.
Lai apstrādātu katra no astoņu taustiņu stāvokli, tiek izmantots šāds kods:

If (buttonState_C == HIGH && note_C_send_on == false) // Taustiņš nospiests ( noteOn(0x90, note_C, 0x7F); note_C_send_on = true; // Piezīme On komanda nosūtīta note_C_send_off = false; // Note Off komanda nav nosūtīta ) else if (buttonState_C == AUGSTS && note_C_send_on == true) // Ja taustiņš tiek turēts ( noteOn(0x00, note_C, 0x7F); note_C_send_on = true; note_C_send_off = false; ) else if (buttonState_C == LOWs &_ off) =_ piezīme // Ja atslēga tiek atlaista ( noteOn(0x90, note_C, 0x00); note_C_send_on = false; note_C_send_off = true; encoder0Pos = 0; // Atgriezt riteņa pozīciju uz nulli ) ....... ..... .. ... .... // Funkcija MIDI ziņojuma nosūtīšanai uz seriālo portu void noteOn(int cmd, int pitch, int velocity) ( Serial.write(cmd); Serial.write(pitch); Serial. rakstīt (ātrums); aizkave (20); )

Lūdzu, ņemiet vērā, ka, ja tiek izmantots pitch bend, tad encoder0Pos būs jāatgriež nevis uz nulli, bet gan uz 0x2000 (vai arī programmas sākumā labāk iestatīt define).

Tātad, ķēde ir samontēta, skice tiek augšupielādēta kontrolierī, mēs palaižam Serial Monitor, mainām pārraides ātrumu uz 115200 un nospiediet taustiņus vai pagriežam kodētāju un skatāmies vērtības.
Ja viss ir kārtībā, pārejiet pie nākamās daļas. Es teikšu uzreiz, ka man tas izrādījās visproblemātiskākais, un, ja es nebūtu atradis virtuālo USB -> Midi pārveidotāju, šī raksta nebūtu.

Datora programmatūra (Windows)

Lai saņemtu datus no Arduino caur USB virtuālo COM portu un pārsūtītu uz jebkuru MIDI sekvencēra programmu, nepieciešama īpaša utilīta: Serial MIDI Converter V2D (biroja vietne)

Programma ir vairāku platformu, tā man darbojās operētājsistēmā Windows 7 x64, lai gan ar dažām problēmām.

Mēs to palaižam, atlasiet USB portu, bodu ātrumu (115200) un MIDI ievades portu un MIDI izejas portu.

Tagad visi MIDI dati, kas nonāk USB virtuālajā COM portā 12, tiek novirzīti uz MIDI Yoke 6 portu (es izmantoju MIDI Yoke programmu, lai izveidotu virtuālos MIDI portus). Varat tos novirzīt uz Microsoft GS Wavetable Synth un citiem portiem.
Programmai vienmēr jābūt ieslēgtai. Nospiežot taustiņus vai pagriežot kodētāja pogu, Serial RX indikatoram apakšā vajadzētu mirgot.

Lai vizuāli parādītu ienākošos MIDI datus no porta, es atklāju, ka MIDI-OX programma (biroja vietne) ir ļoti noderīga:

Lūdzu, ņemiet vērā, ka MIDI ierīču iestatījumos ir jāiestata MIDI ievades ports.

Tagad, nospiežot piezīmju taustiņus vai pagriežot riteni, monitora izvadē redzēsit MIDI datus.

Tas. Ar programmatūras un aparatūras palīdzību uz Arduino kontrollera varējām izveidot vienkāršu MIDI tastatūru ar datu pārsūtīšanu uz datoru turpmākai apstrādei, piemēram, Cubase u.c. t.sk. reālajā laikā.
Pamatojoties uz šo projektu, jūs varat izveidot dīdžeja pulti, pilnvērtīgu MIDI tastatūru utt.

Zemāk varat lejupielādēt INO skici, Serial MIDI Converter V2D, MIDI-OX un MIDI Yoke