Mee MIDI gi na Arduino

Midi

Ọ bụrụ na ị bụ onye hụrụ egwu n'anya ma ọ bụ na ọ bụ onye na-amu amu ma ọ bụ ọkachamara n'ịkụ egwu, n'ezie n'ụlọ gị ị chịkọtara ọtụtụ ngwa egwu. Iji mee ka ngwakọta ndị a zuru oke, ọ kachasị mma ịnweta a MIDI njikwa. N’ụzọ dị mwute, ụdị ihe ndị a na - abụkarị ihe dị oke ọnụ nke na onye na - enweghị ọtụtụ akụrụngwa nwere ihe isi ike inweta ihe niile ọ nwere ike inye.

Iji ghọta nke ọma ihe onye njikwa MIDI bụ, gwa gị na okwu MIDI sitere Igwe okwu Dijitalụ Egwu, nke ahụ bụ, ụdị njikwa nke na-eme ka ihe eji egwu igwe nwere ike ikwurịta okwu. Ọ bụrụ na ị nwere keyboard kọmputa n'ụlọ, dịka ọmụmaatụ, o yikarịrị ka ọ nwere interface MIDI. Tupu ịga n'ihu na-aga n'ihu, n'agbanyeghị eziokwu ahụ nwere ụfọdụ nkọwa teknụzụ nke nwere ike iduga mmadụ ikwere n'ụzọ ọzọ, ọ ga-abụrịrị nke ọma MIDI abụghị ọdịyo.

Mepụta onye MIDI nke gi na nkuzi a di mfe

Ozugbo anyị doro anya banyere nke a, ọ ga-adịrị gị mfe karị ịghọta na MIDI dị mfe Ntuziaka nwere ike ịkwado ọwa 16 nwere onwe ha, nke pụtara na enwere ike ịnwe ngwaọrụ 16 dị iche iche na-ekwurịta okwu na-enweghị onwe ha. Ekwesịrị ijikọ ngwaọrụ ndị a site na eriri 5-DIN USB, nke bụ isi eriri nwere ntụtụ ise n'ime njikọ. Dịka nkọwa, ọ bụ ihe a na-ahụkarị iji USB kama itinye DIN 5, ma ọ bụrụ na iji USB, anyị ga-emepụta interface USB-MIDI.

Enweghị oge ọzọ, ana m ahapụ gị njikọ ebe ị nwere ike ịchọta nkuzi nzọụkwụ site nzọụkwụ na ọtụtụ ihe oyiyi nkọwa ebe anyi nwere ike me ihe niile di nkpa iji mepụta onye MIDI anyi.

Ihe gbasara ya:
Olee otú ịgbanwe Pi aha njirimara na paswọọdụ na anyị Ras Pi

Etu ị ga-esi mee onye njikwa MIDI gị na Arduino

midi njikọ

Ọtụtụ ndị bụ ndị chọrọ, n'ihi dị iche iche ihe ma onye na ọkachamara, iji a n'ụzọ zuru ezu omenala MIDI njikwa N'ihi na ikekwe na dịka ọmụmaatụ, n'oge ụfọdụ na ndụ gị dị ka onye na-ese ihe, ịzụta onye njikwa MIDI dị ọnụ ala nwere ike ọ gaghị ezute atụmanya gị ma ọ bụ mkpa gị, mgbe oge ruru, ịhọrọ maka ụdị ọkachamara nwere ike ịba ụba na ego. mkpa, yana ọtụtụ atụmatụ ha nwere ike ịnye.

N'ihi nke a, taa achọrọ m igosi gị ihe niile ịchọrọ iji nwee ike ịme onwe gị MIDI na-egosi ihe niile dị mkpa maka iwu ya ma nye gị ngwanrọ ị ga-etinye. Dịka nkọwa zuru ezu, maka ọrụ a iji ogwe osisi Arduino dị mkpa, onye njikwa dị ike iji rụọ ọrụ a.

Ihe gbasara ya:
Otu esi eme robot: 3 dị iche iche nhọrọ

Kedu ihe bụ onye njikwa MIDI?

midi

N'ụzọ bụ isi, onye njikwa MIDI bụ ọrụ, na-ekwu okwu sara mbara, maka ijikọ ngwaọrụ dị iche iche na ibe ha. Ọtụtụ bụ akụrụngwa na-etinye interface MIDI, ọ bụ ezie na nke a ga-abụ nke doro anya ebe ọ bụ na ọtụtụ ndị ọrụ na-enwekarị mgbagwoju anya, MIDI abụghị faịlụ ọdịyo, mana usoro ntuziaka dị mfe nke akụrụngwa nwere ike ịnata. ma ọ bụ ntọala ụda.

N'ime MIDI e nwere ụdị abụọ dị iche icheN'otu aka anyị nwere nke a na-akpọ Change Change ebe o nwere nọmba njikwa na uru dị n'etiti 0 na 127. Ekele maka nke a, enwere ike ịnye ozi ebe a pụrụ ịgbanwe akụkụ dị iche iche dịka olu ma ọ bụ ụda. Ngwa dị iche iche na-anabata MIDI kwesịrị iweta akwụkwọ ntuziaka na ha na-akọwa nke ọwa na ozi edoziri na ndabara na otu esi agbanwe ha.

N'ebe nke abụọ anyị nwere Mmemme Mmemme, usoro ozi nke n'aka nke ya dị mfe karịa ndị mejupụtara Change Change. A na-eji ụdị ozi ndị a agbanwee ihe atọrọ ma ọ bụ mgbochi nke ngwaọrụ. Dị ka Mgbanwe Mgbanwe, tinyere ngwa gị onye nrụpụta ga-etinye akwụkwọ ntuziaka na-egosi nke atọrọ ntọala site na otu ozi.

Akụkụ dị mkpa iji wuo MIDI Controller nke Gị

Midi njikọ nkata

Iji nwee ike iru MIDI njikwa gị, ị ga-achọ usoro nke mpempe akwụkwọ na mgbakwunye, dịka anyị kwurula, gaa na bọọdụ Arduino. Tupu ịga n'ihu, dị na-agwa gị na ikekwe, n'ọdịnihu n'ihi na ịchọrọ ịgbasa ọrụ ahụ, ịchọrọ ọtụtụ ihe, ọ bụ ezie na n'oge a na ị ga-enwe ọtụtụ iberibe.

Anyị ga-achọ eriri DIN nwanyị 5-pole, 2 220 ohm na-eguzogide, ihe ntanye 2 oge, 2 10k ohm resistor, wires njikọ, bọọdụ sekit, eriri MIDI na ngwaọrụ MIDI ma ọ bụ interface USB. Naanị ndị a i nwere ike ịmalite, na-eso usoro m, iji mee MIDI gị njikwa.

Nzọụkwụ mbụ

Arduino midi nkata

Tupu ịmalite, m ga-ahapụrụ gị foto ebe ị nwere ike ịhụ mkpọ nke eriri MIDI gị, n'ụzọ a, anyị nwere ike ịmata mkpọ ahụ nke ọma yana ọkachasị ebe ị ga-esi jikọọ nke ọ bụla. N'ikwu okwu n'ụzọ sara mbara, ihe niile ị ga - eme n'oge a bụ jikọọ pin 5 nke eriri gaa na 220 ohm resistor ma site n'ebe ahụ gaa Arduino Transmit 1, pin 4 ka 220 ohm resistor ma site n'ebe ahụ gaa na 5V soket nke Arduino mgbe pin 2 ga-ejikọ ya na njikọ ala nke njikwa gị.

Ozugbo emere usoro a, ịnweghị eserese zuru ezu na foto nke dị n'okpuru usoro ndị a, oge eruola ka ijikọ bọtịnụ ahụ. Ebumnuche dị na nkebi a bụ iji nweta, site na iji pin digitalRead (nwere ike ịchọpụta mgbe voltage nke rutere ya gbanwere) iji nwee ike iji transistor nweta, site na ịpị bọtịnụ. Maka nke a naanị anyị ga-eji bọtịnụ nke mere na, n'akụkụ aka ekpe ya anyị jikọtara ya na 5V, n'akụkụ aka nri na nguzogide 220 ohm ma site n'ebe ahụ gaa n'ala mgbe, n'aka nke ya, anyị na-ejikọkwa n'akụkụ aka nri ka ịpị A ga-etinye bọtịnụ nke abụọ n'otu ụzọ ahụ ọ bụ ezie na, dị ka ị pụrụ ịhụ na eserese ahụ, kama ịpị 6 anyị jikọọ ya na 6.

Sọftụwia eji maka midi njikwa

Ozugbo anyị mecharachara akụrụngwa niile, ọ bụ oge ijikọ ngwa ọrụ anyị. Tupu nke ahụ, anyị kwesịrị inwe a Interface USB-MIDI na eriri MIDI ijikọ bọọdụ, nke na-ezipụ data, na kọmputa anyị. Iji mezuo nke a, anyị ahọrọla ọbá akwụkwọ MIDI v4.2 nke ụmụ okorobịa si na Forty Seven na-emetụta nke anyị ga-arụnyere na Arduino anyị ma tinye ya na ọrụ ahụ.

N'ihe banyere kọmputa ahụ, anyị ga-achọ mmemme nke nwere ike ịlele data MIDI niile sitere na Arduino. Maka nke a, anyị nwere ụzọ dị iche iche dịka MIDI Monitor (OS X), MIDI-OX (Windows) ma ọ bụ Kmidimon (Linux)

Iji mee obere ule, anyị ga - ejikọ Arduino na kọmpụta anyị ma mee koodu ndị a:

#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
}

Ọ bụrụ na ihe niile emeela nke ọma, ịnwere ike ịga na bọtịnụ bọtịnụ, ọ bụrụ na ule a arụghị ọrụ maka gị, ị ga-ahụrịrị na njikọ niile ziri ezi, sekit ahụ bụ otu ihe ahụ eserese gara aga ejikọrọ na interface USB-MIDI na eriri MIDI, eriri nke MIDI n'ọdụ ụgbọ mmiri ejikọrọ n'ụzọ ziri ezi, eriri MIDI ejikọrọ na ntinye nke interface USB-MIDI, a na-ejikọ Arduino n'ụzọ ziri ezi na netwọk eletriki na o nwere ike zuru ezu ...

Ule na mkpọchi ahụ na-arụ ọrụ nke ọma

Tupu ịga n'ihu na-eri nri mmemme anyị na arụmọrụ ọhụrụ na koodu anyị nwere ike ịfufu na ya, ọ bara uru ịkwụsị oge na nwalee na mkpọchi ndị ahụ na-arụ ọrụ nke ọma. Maka ha, anyị ga-eburu koodu ndị a:

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);
}
}

}

A ghaghị ịchịkọta koodu a ma gbue ya ka ọ bụrụ na, yana eriri USB ejikọrọ, usoro ihe omume ahụ na-agwa anyị ma agbanyeghị bọtịnụ ọ bụla.

Anyị mepụtara onye njikwa MIDI anyị ji eme ụlọ

Ozugbo anyị mechara ule ndị a, ọ bụ oge iji kpokọta onye njikwa MIDI anyị maka nke ahụ, naanị ị ga-achịkọta koodu ndị a:

#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);
}
}
}

Dịka nkọwa zuru ezu, gwa gị na ịnweghị ike iji iwu Serial.println () jiri MIDI rụpụta oge a, ọ bụrụ n'ịchọrọ igosi ụdị ozi na kọmputa ahụ, gbanwee:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

ebe uru na ọwa ga-enwerịrị ụkpụrụ ị chọrọ ịchọrọ.

Ọrụ ọrụ:


Ọdịnaya nke isiokwu agbaso ụkpụrụ anyị nke ụkpụrụ nduzi. Kpesa mmejọ pịa ebe a.

Ihe 4 kwuru, hapụ nke gị

Hapu okwu gi

Adreesị email gị agaghị bipụtara. Chọrọ ubi na-akara na *

*

*

  1. Rụ ọrụ maka data: Miguel Ángel Gatón
  2. Nzube nke data: Nchịkwa SPAM, njikwa okwu.
  3. Ikike: Nkwenye gị
  4. Nkwurịta okwu nke data: Agaghị agwa ndị ọzọ data ahụ ma ọ bụghị site na iwu.
  5. Nchekwa data: Ebe nchekwa data nke Occentus Networks (EU) kwadoro
  6. Ikike: Oge obula inwere ike igbachi, weghachite ma hichapụ ihe omuma gi.

  1.   Alfred dijo

    Arduino na-enye gị ọtụtụ ohere iji rụọ ọrụ na aka gị https://www.juguetronica.com/arduino . Otu n’ime ihe ndị kachasị mma bụ na ị nwere ike bido n’ebughị onye ọkachamara wee gaa n’ihu ịmụ ihe, si otua na-akpali onwe gị ka a kụzie gị.

  2.   Danel Roman dijo

    Ekele.

    Ana m agbali imezu nkuzi a mara mma… mana ihe ndị a gụnyere ezughi oke….

    Uld nwere ike ịgwa m ndị nke dị mkpa?

    Daalụ nke ukwuu.

  3.   ule dijo

    Hi!
    Ọ ga-amasị m ịme usoro modulu kọmputa site na dochie bọtịnụ ahụ na ntinye jaak nke akara pezoelectric ga-abata.
    Ọ ga-ekwe omume ime ya?

  4.   Eduardo Valenzuela dijo

    Biko ọ bụrụ na ị nwere ike inye nsonye nke koodu a, m nwere mmasị na ọrụ a.