Yenza isilawuli sakho se-MIDI ngeArduino

MIDI

Ukuba ungumthandi womculo okanye ngqo kwimvumi engahlawulwayo okanye eqeqeshiweyo, ngokuqinisekileyo ekhayeni lakho uqokelele ingqokelela enkulu yezixhobo zomculo. Ukwenza konke oku kuxubana ngokugqibeleleyo, kungcono ufumane Umlawuli we-MIDI. Ngelishwa, ezi ntlobo zezinto zihlala zibiza kakhulu ukuze umntu ongenazo izibonelelo ezininzi abe nokufikelela okunzima kuyo yonke into anokuyinikela.

Ukuqonda ngcono ngakumbi ukuba yintoni isilawuli se-MIDI, sikuxelele ukuba igama MIDI livela Isixhobo soMculo esiDijithaliOko kukuthi, uhlobo lwesilawuli esenza izixhobo zomculo zekhompyuter zinxibelelane nabanye. Ukuba unayo ikhibhodi ye-elektroniki ekhaya, umzekelo, kunokuba kunokwenzeka ukuba ine-interface ye-MIDI. Phambi kokuqhubela phambili, ngaphandle kwento yokuba kukho iinkcukacha ezithile zobuchwephesha ezinokukhokelela ekubeni umntu akholelwe ngenye indlela, kufuneka icace gca ukuba I-MIDI ayinasandi.

Yenza eyakho MIDI isilawuli ngesi sifundo silula

Nje ukuba sicace ngale nto, kuya kuba lula kakhulu kuwe ukuba uqonde ukuba i-MIDI ilula iseti yokufundisa enakho ukuxhasa ukuya kuthi ga kwi-16 yeendlela ezizimeleyo, oko kuthetha ukuba kunokubakho ukuya kwizixhobo ezili-16 ezahlukeneyo ezinxibelelana ngokuzimeleyo kunye nezinye. Ezi zixhobo kufuneka zixhunywe ngentambo ye-5-pin ye-DIN, esisiseko intambo enezikhonkwane ezintlanu ngaphakathi kwesinxibelelanisi. Njengeenkcukacha, kuyinto eqhelekileyo ukusebenzisa i-USB endaweni ye-5-pin DIN, kwimeko yokusebenzisa i-USB kufuneka senze ujongano lwe-USB-MIDI.

Ngaphandle kokuqhubeka, ndikushiya nekhonkco apho ungafumana khona tutorial inyathelo nenyathelo lininzi imifanekiso echazayo apho sinokwenza khona zonke izinto eziyimfuneko ukwenza isilawuli sethu se-MIDI.

Inqaku elidibeneyo:
Utshintsha njani igama lomsebenzisi wePi kunye negama lokugqitha kwiRaspberry Pi yethu

Uyenza njani eyakho MIDI isilawuli ngeArduino

isinxibelelanisi se midi

Baninzi abantu abafuna, ngezizathu ezahlukeneyo ezobuqu kunye nobungcali, ukusebenzisa i Isilawuli se-MIDI ngokupheleleyo Kuba mhlawumbi kwaye njengomzekelo, ngaxa lithile ebomini bakho njengomculi, ukuthenga isilawuli se-MIDI esinexabiso elingenakufikelela kulindelo okanye kwiimfuno zakho ngelixa, xa ixesha lifika, ukukhetha uhlobo lobuchwephesha kunokuba ngaphezulu kwezixhobo zombini zemali. imfuno, kunye nenani elikhulu leempawu abanokuthi bazinike.

Ngenxa yoku, namhlanje ndifuna ukukubonisa yonke into oyifunayo ukuze wenze isilawuli sakho se-MIDI sibonisa yonke into eyimfuneko kulwakhiwo lwaso kwaye sikunike nesoftware oya kuyidinga ukuyifaka. Njengeenkcukacha, kule projekthi ukusetyenziswa kwebhodi yeArduino kubalulekile, isilawuli esinamandla ngokwaneleyo ukwenza lo msebenzi.

Uyenza njani irobhothi
Inqaku elidibeneyo:
Uyenza njani irobhothi: 3 iindlela ezahlukeneyo

Yintoni umlawuli we-MIDI?

midi

Ngokusisiseko isilawuli se-MIDI sinoxanduva, sithetha ngokubanzi, ngokudibanisa izixhobo zomculo ezahlukeneyo komnye nomnye. Zininzi izixhobo ezibandakanya ujongano lwe-MIDI nangona, oku kufuneka kucace gca kuba baninzi abasebenzisi abadla ngokudideka, i-MIDI ayisiyifayile yeaudiyo, kodwa iseti elula yemiyalelo enokufunyanwa sisixhobo ukwenza ulawulo olwahlukileyo useto lwesandi.

Ngaphakathi kwe-MIDI zimbini iintlobo ezahlukeneyoKwelinye icala sinelinye elibizwa ngokuba nguTshintsho kuLawulo apho linenombolo yomlawuli kunye nexabiso phakathi kwe-0 ne-127. Ndiyabulela koku, imiyalezo inokukhutshwa apho iiparameter ezahlukeneyo ezinje ngevolumu okanye ithoni zinokutshintshwa. Izixhobo ezahlukileyo ezamkela i-MIDI kufuneka zize nemanyuwali echaza ukuba zeziphi iindlela kunye nemiyalezo emiselwe ngokwendalo kunye nendlela yokutshintsha.

Kwindawo yesibini sinoTshintsho lweNkqubo, uthotho lwemiyalezo elula kakhulu kunaleyo yenza uLawulo loTshintsho. Ezi ntlobo zemiyalezo zisetyenziselwa ukutshintsha ukucwangciswa kwangaphambili okanye isiqwenga sesixhobo. NjengakuTshintsho kuLawulo, kunye nesixhobo sakho umenzi kufuneka abandakanye incwadana ebonisa ukuba zeziphi izinto ezisetiweyo ezigqitywe ngumyalezo othile.

Amacandelo afunekayo ukwakha uMlawuli wakho we-MIDI ozenzele ngokwakho

Isidibanisi seMidi sesikimu

Ukuze ukwazi ukwakha isilawuli sakho se-MIDI uzakufuna uthotho lwamaqhekeza ukongeza, njengoko besesitshilo, kwibhodi yeArduino. Ngaphambi kokuqhubeka, yitsho nje ukuba mhlawumbi, kwixa elizayo kuba ufuna ukwandisa iprojekthi, ufuna izinto ezingaphezulu, nangona, ngeli xesha unamaqhekeza ambalwa uya kuba nokuninzi.

Siza kudinga intambo ye-5-pole ye-DIN cable, i-2 220 ohm resistors, ii-switch ezimbini zomzuzwana, i-2 2k ohm resistors, iingcingo zonxibelelwano, ibhodi yesekethe, intambo ye-MIDI kunye nesixhobo se-MIDI okanye i-USB interface. Ngalezi ziqwenga ungaqala, ulandele amanyathelo am, ukwenza eyakho i-MIDI isilawuli.

Amanyathelo okuqala

Isicwangciso seArduino midi

Ngaphambi kokuba ndiqale ndikushiye umfanekiso apho unokubona khona izikhonkwane zekhebula le-MIDI yakho, ngale ndlela sinokuchonga ngokuchanekileyo izikhonkwane ngakumbi ngakumbi apho unokudibanisa khona nganye. Ukuthetha ngokubanzi, konke okufuneka ukwenze kweli nqanaba kukudibanisa i-pin 5 yekhebula kwi-220 ohm resistor kwaye ukusuka apho uye kwi-Arduino Transmit 1, pin 4 ukuya kwi-220 ohm resistor kwaye ukusuka apho uye kwisokethi ye-5V ye-Arduino ngelixa iphini 2 kufuneka idityaniswe kunxibelelwano lomhlaba lomlawuli wakho.

Nje ukuba eli nyathelo lenziwe, awunaso isazobe esineenkcukacha kwifoto ebekwe nje ngezantsi kwale migca, lixesha lokuba uqhagamshele amaqhosha. Umbono kweli candelo kukufezekisa, usebenzisa ipini yedijithaliRead (ekwaziyo ukubona ukuba i-voltage efikelela kuyo itshintsha) ukuze ukwazi ukusebenzisa i-transistor ukufezekisa, ngokucofa nje iqhosha. Kule nto kufuneka sisebenzise kuphela iqhosha ukuze, icala lasekhohlo layo silidibanise ne-5V, icala lasekunene kwi-220 ohm ukumelana kwaye ukusuka apho ukuya emhlabeni ngelixa, nathi sidibanisa icala lasekunene lokuphina u-6 Iqhosha lesibini liya kufakwa ngendlela efanayo nangona, njengoko ubona kumzobo, endaweni yepini 6 siyidibanisa ku-7.

Isoftware oyisebenzisela isilawuli midi sasekhaya

Nje ukuba sigqibe ngayo yonke izixhobo zekhompyutha, lixesha lokuba sidibanise isixhobo kunye novavanyo. Ngaphambi koko kufuneka sibe ne Isinxibelelanisi se-USB-MIDI kunye nentambo ye-MIDI ukuqhagamshela ibhodi, ethumela idatha, kunye nekhompyuter yethu. Ukufezekisa oku, sikhethe ilayibrari ye-MIDI v4.2 eyenziwe ngamadoda avela kwiZiphumo ezingamashumi amane anesixhenxe ekufuneka simfakile kwiArduino yethu kwaye yabandakanywa kwiprojekthi.

Kwimeko yekhompyuter, siya kufuna inkqubo ekwaziyo ukujonga yonke idatha ye-MIDI efika ivela kwiArduino. Kule nto sinamathuba ahlukeneyo anje ngeMODI Monitor (OS X), MIDI-OX (Windows) okanye iKmidimon (Linux)

Ukwenza uvavanyo oluncinci kufuneka sixhume iArduino kwikhompyuter yethu kwaye senze le khowudi ilandelayo:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

Ukuba yonke into ihambe kakuhle, ungaya kuvavanyo lwamaqhosha, ukuba olu vavanyo alusebenzelanga wena kufuneka uqiniseke ukuba lonke unxibelelwano luchanekile, isekethe iyafana ncam nomzobo wangaphambili, isekethe iqhagamshelwe kwi-USB-MIDI ujongano ngentambo ye-MIDI, ii-MIDI port cables zixhunyiwe ngokuchanekileyo, intambo ye-MIDI iqhagamshelwe kwigalelo le-USB-MIDI ujongano, ibhodi yeArduino iqhagamshelwe ngokuchanekileyo kwinethiwekhi yombane kwaye inamandla ngokwaneleyo ...

Ukuvavanya ukuba amaqhosha asebenza ngokuchanekileyo

Ngaphambi kokuqhubeka nokondla inkqubo yethu ngokusebenza kunye nekhowudi esinokulahleka kuyo, kufanelekile ukumisa okomzuzwana kwaye vavanya ukuba amaqhosha asebenza ngokufanelekileyo. Kubo kufuneka silayishe le khowudi ilandelayo:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

Le khowudi kufuneka iqulunqwe kwaye yenziwe ukuze, ngentambo ye-USB iqhagamshelwe, inkqubo isixelela ukuba kukho na amaqhosha acinezelweyo.

Senza umlawuli we-MIDI owenziweyo

Nje ukuba senze olu vavanyo, lixesha lokuba siqokelele eyethu i-MIDI isilawuli sokwenza oko, kuya kufuneka uqokelele le khowudi ilandelayo:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

Njengeenkcukacha, ndikuxelele ukuba awukwazi ukusebenzisa i-serial.println () myalelo nge-MIDI imveliso ngeli xesha, ukuba ufuna ukubonisa uhlobo oluthile lomyalezo kwikhompyuter, tshintsha nje:

midiOut.sendControlChange(42,127,1);

ngu:

midiOut.sendControlChange(value, channel);

apho ixabiso kunye nejelo kufuneka libe namaxabiso owafunayo ofuna ukuwabonisa.

Umzekelo wokusebenza:


Izimvo ezi-4, shiya ezakho

Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   Alfred sitsho

    I-Arduino ikunika iindlela ezininzi zokwenza iiprojekthi ngokwakho https://www.juguetronica.com/arduino . Enye yezona zinto zibalaseleyo kukuba ungaqala ungakhange ube yingcali kwaye uqhubeke nokufunda, ngaloo ndlela uzikhuthaza ukuba uzifundise.

  2.   UDaniyeli waseRoma sitsho

    Ukubulisa

    Ndizama ukwenza le tutorial imnandi… kodwa #includes ayigqibanga….

    Ungandixelela ukuba zeziphi eziyimfuneko?

    Ndiyabonga kakhulu

  3.   Uel sitsho

    Sawubona!
    Ndingathanda ukwenza imodyuli yedrama yombane ngokufaka amaqhosha endaweni yegalelo eliza kuthi lifike kwisiginali ye-piezoelectric.
    Ngaba kunokwenzeka ukuyenza?

  4.   UEduardo Valenzuela sitsho

    Nceda ukuba unike okubandakanya le khowudi, ndinomdla kule projekthi.