Sanya mai sarrafa MIDI naka tare da Arduino

MIDI

Idan kai masoyin kiɗa ne ko kuma kai tsaye mai son son ko kuma ƙwararren mawaƙa, tabbas a cikin gidanka ka tara tarin kayan kida. Don yin duk waɗannan haɗin daidai, yana da kyau a sami Mai kula da MIDI. Abun takaici, wadannan nau'ikan abubuwa galibi suna da tsada, saboda haka yana da wahala mutum ba shi da albarkatu da yawa don samun damar duk abin da za su iya bayarwa.

Don fahimtar mafi kyawun abin da mai sarrafa MIDI yake, gaya muku cewa kalmar MIDI ta fito ne Matsayin Kayan Musika Na Musika, ma'ana, wani nau'in mai sarrafawa wanda ke sanya na'urorin kiɗa na lantarki su iya sadarwa da juna. Idan kuna da madannin lantarki a gida, alal misali, ya fi dacewa cewa yana da haɗin MIDI. Kafin ci gaba da ci gaba, duk da cewa akwai wasu cikakkun bayanai na fasaha waɗanda zasu iya sa mutum yayi imani da akasin haka, dole ne ya kasance a bayyane yake cewa MIDI ba sauti bane.

Createirƙiri mai sarrafa MIDI naka tare da wannan koyawa mai sauƙi

Da zarar mun bayyana game da wannan, tabbas zai zama mafi sauƙi a gare ku ku fahimci cewa MIDI kawai mai sauƙi ne koyarwar da zata iya tallafawa tashoshi masu zaman kansu har 16, wanda ke nufin cewa za a iya samun na'urori daban-daban har 16 da ke sadarwa kai tsaye da juna. Dole ne a haɗa waɗannan na'urori ta hanyar kebul na DIN na 5-pin, wanda yake asali kebul ne tare da fil biyar a cikin mai haɗawa. A matsayin cikakken bayani, abu ne gama gari a yi amfani da USB maimakon 5 pin DIN, idan ana amfani da USB dole ne a ƙirƙiri kebul-MIDI.

Ba tare da bata lokaci ba, na bar muku hanyar haɗin inda zaku iya samun tutorial mataki-mataki tare da yawa hotuna masu siffantawa inda zamu iya aiwatar da duk abubuwan da ake buƙata don ƙirƙirar namu mai kula da MIDI.

Labari mai dangantaka:
Yadda zaka canza sunan mai amfani na Pi da kalmar sirri akan Rasberi Pi

Yadda ake keɓance mai sarrafa MIDI tare da Arduino

midi mai haɗawa

Mutane da yawa sune mutanen da suke buƙatar, saboda dalilai daban-daban na sirri da ƙwararru, don amfani da cikakken al'ada MIDI mai kula Domin wataƙila kuma a matsayin misali, a wani lokaci a rayuwar ku a matsayin mai zane, siyan mai kula da MIDI mai arha bazai cika biyan buƙatunku ko buƙatunku ba yayin da, idan lokaci ya yi, zaɓar sigar ƙwararru na iya wuce gona da iri a cikin dukiyar kuɗi. buƙata, kazalika da yawan fasalulluka waɗanda za su iya bayarwa.

Saboda wannan, a yau ina so in nuna muku duk abin da kuke buƙata don ku sami mai kula da MIDI na ku, yana nuna duk abin da kuke buƙata don ginin sa kuma ya ba ku software ɗin da za ku buƙaci girka. A matsayin daki-daki, don wannan aikin yin amfani da allon Arduino yana da mahimmanci, mai kula wanda yake da iko sosai don aiwatar da wannan aikin.

Yadda ake yin mutum-mutumi
Labari mai dangantaka:
Yadda ake yin mutum-mutumi: zaɓi daban-daban guda 3

Menene mai kula da MIDI?

midis

Asali, mai kula da MIDI yana da alhaki, yana faɗar magana, don haɗa na'urori daban-daban da juna. Da yawa suna kayan aikin da ke haɗa haɗin MIDI, kodayake wannan dole ne ya kasance a sarari sosai tunda akwai masu amfani da yawa waɗanda galibi suke rikicewa, MIDI ba fayil ɗin mai jiwuwa ba ne, amma saitunan umarni ne masu sauƙi waɗanda kayan aiki zasu iya karɓa. Don yin iko daban-daban ko saitunan sauti.

Cikin MIDI akwai nau'ikan iri biyuA gefe guda muna da wanda ake kira Canjin Canji inda yake da lambar mai sarrafawa da ƙima tsakanin 0 da 127. Godiya ga wannan, ana iya bayar da saƙonni inda za a iya canza sigogi daban-daban kamar ƙarar ko sauti. Daban-daban kayan aikin da suka yarda da MIDI yakamata su kawo jagora tare da su suna bayanin wane tashoshi da saƙonni an saita su ta tsohuwa da yadda za'a canza su.

A matsayi na biyu muna da Canjin Shirye-shirye, jerin saƙonni waɗanda kuma suka nuna sauƙin sauƙi fiye da waɗanda ke ƙunshe da Canjin Canji. Ana amfani da ire-iren waɗannan sakonni don canza saiti ko facin na'urar. Kamar yadda yake a cikin Canjin Canji, tare da kayan aikinku masu ƙira dole ne su haɗa da jagora wanda ke nuna wane saƙo ya canza saƙo ta musamman.

Sassan da ake Bukata don Gina Gidanku MIDI Mai Kulawa Na Gida

Midi mahaɗin makirci

Don samun damar gina mai kula da MIDI naka zaku buƙaci jerin guda ban da, kamar yadda muka ambata a baya, kwamitin Arduino. Kafin ci gaba, kawai gaya maka wataƙila, a nan gaba saboda kuna son faɗaɗa aikin, kuna buƙatar ƙarin abubuwa, kodayake, a wannan lokacin tare da aan 'yan kaɗan kuna da yawa.

Zamu buƙaci keɓaɓɓiyar ɗiyar DIN mata 5-pole, 2 220 ohm resistor, sauye sauye 2, 2 10k ohm resistor, wayoyin haɗi, kwamitin kewaye, MIDI na USB da na'urar MIDI ko kebul na USB. Da waɗannan thesean canannin kawai zaku iya farawa, bin matakai na, don yin mallakin MIDI naka.

Matakan farko

Arduino midi makirci

Kafin na fara na bar muku hoto inda zaku ga fil na kebul ɗin MIDI ɗinku, ta wannan hanyar ne za mu iya gano fil ɗin da kyau musamman ma inda za a haɗa kowannensu. A magana gabaɗaya, duk abin da za ku yi a wannan lokacin shine haɗa pin 5 na kebul ɗin zuwa mai tsayayya 220 ohm kuma daga can zuwa Arduino Transmit 1, pin 4 zuwa mai tsayayya 220 ohm kuma daga can zuwa soket 5V na Arduino yayin fil 2 dole ne a haɗa shi da connectionasa dangane da mai kula da ku.

Da zarar an gama wannan matakin, ba ku da cikakken zane a hoto wanda ke ƙasa da waɗannan layukan, lokaci ya yi da za a haɗa maɓallan. Ma'anar wannan sashin shine a cimma, ta amfani da fil din dijitalRead (mai iya ganowa lokacin da karfin wutar da ya kai shi ya canza) don iya amfani da transistor don cimmawa, tare da danna maballin. Don wannan kawai dole ne muyi amfani da maɓalli don haka, gefen hagu na shi mun haɗa shi zuwa 5V, gefen dama zuwa juriya 220 ohm kuma daga can zuwa ƙasa yayin da, bi da bi, muna kuma haɗa gefen dama don ƙulla 6 . Za'a shigar da maɓallin na biyu ta hanya iri ɗaya duk da cewa, kamar yadda kake gani a cikin zane, a maimakon sanya 6 sai mu haɗa shi zuwa 7

Software don amfani ga mai kula da midi na gida

Da zarar mun gama da dukkan kayan aikin, lokaci yayi da zamu haɗa kayan aikin mu da gwajin mu. Kafin haka muna bukatar samun Kebul na USB-MIDI da kebul na MIDI don haɗa kwamiti, wanda ke aika bayanai, tare da kwamfutarmu. Don cimma wannan, mun zaɓi ɗakin karatu na MIDI v4.2 wanda samari daga Arba'in da Tasiri suka kirkira wanda dole ne mu girka akan Arduino ɗinmu kuma an haɗa mu cikin aikin.

A halin komputa, zamu buƙaci wani shiri wanda zai iya sa ido kan duk bayanan MIDI da suka iso gare ta daga Arduino. A wannan muna da hanyoyi daban-daban kamar MIDI Monitor (OS X), MIDI-OX (Windows) ko Kmidimon (Linux)

Don yin ɗan gwajin kawai dole ne mu haɗa Arduino zuwa kwamfutar mu kuma aiwatar da lambar mai zuwa:

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

Idan komai ya tafi daidai, zaku iya zuwa gwajin maɓallin, idan har wannan gwajin bai muku aiki ba dole ne ku tabbatar cewa duk hanyoyin haɗin suna daidai, da'irar daidai take da zane na baya, da'irar an haɗa shi zuwa kebul na USB-MIDI tare da kebul na MIDI, igiyoyin tashar MIDI suna hade daidai, an haɗa kebul na MIDI zuwa shigarwar kebul na USB-MIDI, an haɗa jirgin Arduino daidai da cibiyar sadarwar lantarki kuma yana da isasshen ƙarfi ...

Gwadawa cewa maɓallan suna aiki daidai

Kafin ci gaba da ciyar da shirinmu da sabbin ayyuka da lambar da zamu iya ɓacewa a cikin su, yana da kyau mu tsaya na ɗan lokaci kuma gwada cewa maɓallan suna aiki daidai. A gare su dole ne mu ɗora lambar ta gaba:

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

}

Wannan lambar kawai dole ne a haɗa ta kuma a aiwatar don haka, tare da kebul ɗin USB ɗin da aka haɗa, shirin zai gaya mana idan an danna kowane maɓallin.

Mun ƙirƙiri mai sarrafa MIDI na gida

Da zarar mun aiwatar da waɗannan gwaje-gwajen, lokaci yayi da zamu tattara namu mai kula da MIDI don wannan, kawai zaku tattara lambar mai zuwa:

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

A matsayin cikakken bayani, gaya maka cewa ba za ka iya amfani da umarnin Serial.println () tare da fitowar MIDI a wannan lokacin ba, idan kana son nuna wani nau'in saƙo akan kwamfutar, kawai canza:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

inda ƙima da tashar dole ne su sami ƙa'idodin da ake so waɗanda kuke son nunawa.

Misali na aiki:


4 comments, bar naka

Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   Karin m

    Arduino yana ba ku dama da yawa don gudanar da ayyuka da kanku https://www.juguetronica.com/arduino . Ofaya daga cikin mafi kyawun abubuwa shine cewa zaka iya farawa ba tare da ƙwararre ba kuma ka ci gaba da koyo, don haka ke motsa kanka a koya maka kai.

  2.   Danel Roman m

    Na gode.

    Ina kokarin yin wannan kyakkyawar koyarwar… amma abubuwanda suka hada basu kammala ba….

    Za a iya gaya mani waɗanne ne ya zama dole?

    Na gode sosai.

  3.   wuta m

    Hello.
    Ina so in yi samfurin duriyar lantarki ta hanyar maye gurbin maballan tare da kayan aiki na jack wanda alamar siginar lantarki za ta isa wurin.
    Shin zai yiwu a yi shi?

  4.   Eduardo Valenzuela m

    Don Allah idan zaku iya ba da abubuwan da wannan lambar ta kunsa, Ina sha'awar wannan aikin.