Ṣe oludari MIDI tirẹ pẹlu Arduino

MIDI

Ti o ba jẹ ololufẹ orin tabi taara magbowo tabi olorin amọdaju, nit surelytọ ninu ile rẹ o ti ṣajọpọ ikojọpọ nla ti awọn ohun elo orin. Lati ṣe gbogbo idapọ wọnyi ni pipe, o dara julọ lati gba a Oluṣakoso MIDI. Laanu, awọn iru nkan wọnyi jẹ igbagbogbo gbowolori, nitorinaa o nira fun eniyan laisi ọpọlọpọ awọn orisun lati wọle si ohun gbogbo ti wọn le pese.

Lati loye dara julọ ohun ti oludari MIDI jẹ, sọ fun ọ pe ọrọ MIDI wa lati Ọlọpọọmídírọn Irinṣẹ Orin, iyẹn ni, iru adari kan ti o mu ki awọn ẹrọ orin itanna le ṣe ibaraẹnisọrọ pẹlu ara wọn. Ni ọran ti o ni bọtini itẹwe itanna ni ile, fun apẹẹrẹ, o ṣee ṣe diẹ sii ju pe o ni wiwo MIDI. Ṣaaju ki o to tẹsiwaju lati tẹsiwaju, laisi otitọ pe awọn alaye imọ-ẹrọ kan wa ti o le mu ki eniyan gbagbọ bibẹkọ, o gbọdọ jẹ kedere pe MIDI kii ṣe ohun afetigbọ.

Ṣẹda oludari MIDI tirẹ pẹlu ẹkọ itusilẹ yii

Ni kete ti a ba ṣalaye nipa eyi, yoo dajudaju yoo rọrun pupọ fun ọ lati loye pe MIDI kan rọrun Eto itọnisọna ti o lagbara lati ṣe atilẹyin to awọn ikanni ominira 16, eyiti o tumọ si pe awọn ẹrọ oriṣiriṣi 16 le wa ni ibaraẹnisọrọ ni ominira pẹlu ara wọn. Awọn ẹrọ wọnyi ni lati ni asopọ nipasẹ okun DIN 5-pin, eyiti o jẹ ipilẹ okun pẹlu awọn pinni marun inu asopọ kan. Gẹgẹbi alaye, o jẹ ohun ti o wọpọ lati lo USB dipo DIN 5-pin, ni idi lilo USB a gbọdọ ṣẹda wiwo USB-MIDI.

Lai siwaju Ado, Mo fi o pẹlu ọna asopọ ibi ti o ti le ri awọn tutorial igbese nipa igbese pẹlu ọpọlọpọ ti awọn aworan apejuwe nibiti a le ṣe gbogbo awọn iṣe to ṣe pataki lati ṣẹda oludari MIDI ti ara wa.

Nkan ti o jọmọ:
Bii o ṣe le yi orukọ olumulo Pi ati ọrọ igbaniwọle pada lori Rasipibẹri Pi wa

Bii o ṣe le ṣe oludari MIDI tirẹ pẹlu Arduino

midi asopọ

Ọpọlọpọ ni eniyan ti o nilo, fun awọn idi oriṣiriṣi mejeeji ti ara ẹni ati ti ọjọgbọn, lati lo a ni kikun aṣa MIDI adarí Nitori boya ati bi apẹẹrẹ, ni aaye kan ninu igbesi aye rẹ bi olorin, rira alabojuto MIDI ilamẹjọ le ma pade awọn ireti rẹ tabi awọn aini rẹ lakoko, nigbati akoko ba de, jijade fun ẹya ọjọgbọn le ti pọ ju ninu awọn orisun inawo mejeeji ti o nilo , bii nọmba nla ti awọn ẹya ti wọn le pese.

Nitori eyi, loni Mo fẹ lati fi gbogbo nkan ti o nilo han fun ọ ki o le ṣe oludari MIDI tirẹ, o n tọka ohun gbogbo ti o nilo fun ikole rẹ ati fifun ọ ni sọfitiwia ti iwọ yoo nilo lati fi sii. Gẹgẹbi apejuwe, fun iṣẹ yii lilo ọkọ Arduino jẹ pataki, oludari ti o lagbara to lati ṣe iṣẹ yii.

Nkan ti o jọmọ:
Bii o ṣe le ṣe robot: awọn aṣayan oriṣiriṣi 3

Kini oludari MIDI?

aṣalẹ

Ni ipilẹṣẹ, oludari MIDI jẹ iduro, ni sisọrọ gbooro, fun sisopọ awọn ẹrọ orin oriṣiriṣi si ara wọn. Ọpọlọpọ ni awọn ohun elo ti o ṣafikun wiwo MIDI kan, botilẹjẹpe eyi gbọdọ jẹ kedere pupọ nitori ọpọlọpọ awọn olumulo lo wa ti o dapo nigbagbogbo, MIDI kii ṣe faili ohun, ṣugbọn ṣeto awọn ilana ti o rọrun pupọ ti ohun-elo le gba. Lati ṣe iṣakoso oriṣiriṣi tabi awọn eto ohun.

Ninu MIDI awọn oriṣiriṣi oriṣiriṣi meji lo waNi apa kan a ni ọkan ti a pe ni Iṣakoso Iṣakoso ni ibiti o ni nọmba oludari ati iye laarin 0 ati 127. Ṣeun si eyi, a le ṣe agbejade awọn ifiranṣẹ nibiti awọn ipele oriṣiriṣi oriṣiriṣi bii iwọn didun tabi ohun orin le yipada. Awọn ohun elo oriṣiriṣi ti o gba MIDI yẹ ki o mu iwe ọwọ kan pẹlu wọn ti n ṣalaye iru awọn ikanni ati awọn ifiranṣẹ ti a ṣeto nipasẹ aiyipada ati bii o ṣe le yipada wọn.

Ni aaye keji a ni Iyipada Eto, lẹsẹsẹ awọn ifiranṣẹ ti o wa ni ọna ti o rọrun pupọ ju awọn ti o ṣe Iṣakoso Change. Awọn iru awọn ifiranṣẹ wọnyi ni a lo lati yi tito tẹlẹ tabi alemo ti ẹrọ kan pada. Gẹgẹ bi Iṣakoso Iṣakoso, pẹlu ohun elo rẹ olupese gbọdọ ṣe pẹlu itọnisọna ti n tọka eyiti awọn tito tẹlẹ ti yipada nipasẹ ifiranṣẹ kan pato.

Awọn apakan Nilo lati Kọ Olutọju MIDI ti ile Rẹ Ti ara Rẹ

Sikematiki asopọ asopọ

Lati ni anfani lati kọ oludari MIDI tirẹ o yoo nilo lẹsẹsẹ awọn ege ni afikun, bi a ti sọ tẹlẹ, si igbimọ Arduino kan. Ṣaaju ki o to tẹsiwaju, kan sọ fun ọ pe boya, ni ọjọ iwaju nitori o fẹ lati faagun iṣẹ naa, o nilo awọn ohun diẹ sii, botilẹjẹpe ni akoko yii pẹlu awọn ege diẹ iwọ yoo ni pupọ.

A yoo nilo okun DIN abo 5-pole, awọn alatako 2 oh oh 220, awọn iyipada asiko 2, awọn alailowaya 2 10k ohm, awọn okun onirin, ọkọ igbimọ kan, okun MIDI ati ẹrọ MIDI tabi wiwo USB. Pẹlu awọn ege wọnyi nikan o le bẹrẹ, ni atẹle awọn igbesẹ mi, lati ṣe oludari MIDI tirẹ.

Awọn igbesẹ akọkọ

Arduino midi sikematiki

Ṣaaju ki o to bẹrẹ Mo fi aworan kan silẹ fun ọ nibiti o ti le rii awọn pinni ti okun MIDI rẹ, ni ọna yii a le ṣe idanimọ awọn pinni ni deede ati paapaa ibiti o ti le sopọ mọ ọkọọkan. Ni gbogbogbo sọrọ, gbogbo ohun ti o ni lati ṣe ni aaye yii ni asopọ pin 5 ti okun si alatako 220 ohm ati lati ibẹ si Arduino Transmit 1, pin 4 si alatako 220 ohm ati lati ibẹ lọ si iho 5V ti Arduino lakoko pin 2 gbọdọ ni asopọ si asopọ Ilẹ ti oludari rẹ.

Lọgan ti igbesẹ yii ba ti ṣe, iwọ ko ni aworan atọka alaye ninu fọto ti o wa ni isalẹ ni isalẹ awọn ila wọnyi, o to akoko lati sopọ awọn bọtini naa. Ero ti o wa ninu apakan yii ni lati ṣaṣeyọri, ni lilo pinni digitalRead (o lagbara ti iṣawari nigbati folti ti o de ọdọ rẹ yipada) lati ni anfani lati lo transistor lati ṣaṣeyọri, pẹlu titẹ bọtini kan. Fun eyi a ni lati lo bọtini kan ki, ni apa osi rẹ a so o pọ si 5V, apa ọtun si resistance ti 220 ohms ati lati ibẹ si ilẹ nigba, ni ọna, a tun so apa ọtun pọ 6. Bọtini keji yoo fi sori ẹrọ ni ọna kanna botilẹjẹpe, bi o ti le rii ninu aworan atọka, dipo pin 6 a so pọ mọ 7.

Sọfitiwia lati lo fun oludari midi ile

Lọgan ti a ba ti pari pẹlu gbogbo ohun elo, o to akoko lati sopọ ohun-elo ati idanwo wa. Ṣaaju pe a nilo lati ni a Ni wiwo USB-MIDI ati okun MIDI kan lati sopọ mọ igbimọ, eyiti o nfiranṣẹ data, pẹlu kọnputa wa. Lati ṣaṣeyọri eyi, a ti yọkuro fun ile-ikawe MIDI v4.2 ti a ṣẹda nipasẹ awọn eniyan lati Awọn ipa Ipa ogoji ti a gbọdọ fi sori ẹrọ lori Arduino wa ti o wa ninu iṣẹ naa.

Ninu ọran ti kọnputa, a yoo nilo eto ti o lagbara lati ṣe abojuto gbogbo data MIDI ti o de ọdọ rẹ lati Arduino. Fun eyi a ni awọn aye oriṣiriṣi bi MIDI Monitor (OS X), MIDI-OX (Windows) tabi Kmidimon (Linux)

Lati ṣe idanwo kekere kan a ni lati sopọ Arduino si kọnputa wa ki o ṣiṣẹ koodu ti o tẹle:

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

Ti ohun gbogbo ba ti lọ daradara, o le lọ si idanwo bọtini, bi o ba jẹ pe idanwo yii ko ṣiṣẹ fun ọ o gbọdọ rii daju pe gbogbo awọn isopọ naa tọ, iyika naa jẹ deede kanna bi apẹrẹ ti tẹlẹ, iyika naa ti sopọ si wiwo USB-MIDI pẹlu okun MIDI kan, awọn kebulu ti ibudo MIDI wa ni asopọ ni deede, okun MIDI ti sopọ si igbewọle ti wiwo USB-MIDI, ọkọ Arduino ti sopọ ni deede si nẹtiwọọki itanna ati pe o ni agbara to ....

Idanwo pe awọn bọtini ṣiṣẹ ni deede

Ṣaaju ki o to tẹsiwaju si ifunni eto wa pẹlu awọn iṣẹ ṣiṣe tuntun ati koodu ti a le sọnu ninu, o tọ si iduro fun iṣẹju diẹ ati idanwo pe awọn bọtini ṣiṣẹ daradara. Fun wọn a ni lati fifuye koodu atẹle:

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

}

Koodu yii kan ni lati ṣajọ ati ṣiṣẹ ki, pẹlu okun USB ti a sopọ, eto naa sọ fun wa ti o ba ti tẹ eyikeyi awọn bọtini naa.

A ṣẹda oludari MIDI ti ile wa

Ni kete ti a ba ti ṣiṣe awọn idanwo wọnyi, o to akoko lati pejọ oludari MIDI tiwa fun iyẹn, iwọ yoo ni lati ṣajọ koodu wọnyi:

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

Gẹgẹbi apejuwe kan, sọ fun ọ pe o ko le lo aṣẹ Serial.println () pẹlu iṣẹjade MIDI ni akoko yii, ti o ba fẹ ṣe afihan iru ifiranṣẹ kan lori kọnputa naa, kan yipada:

midiOut.sendControlChange(42,127,1);

nipasẹ:

midiOut.sendControlChange(value, channel);

ibiti iye ati ikanni gbọdọ ni awọn iye ti o fẹ ti o fẹ lati han.

Apẹẹrẹ isẹ:


Awọn akoonu ti nkan naa faramọ awọn ilana wa ti awọn ilana olootu. Lati jabo aṣiṣe kan tẹ nibi.

Awọn asọye 4, fi tirẹ silẹ

Fi ọrọ rẹ silẹ

Adirẹsi imeeli rẹ yoo ko le ṣe atejade. O beere aaye ti wa ni samisi pẹlu *

*

*

  1. Lodidi fun data naa: Miguel Ángel Gatón
  2. Idi ti data naa: SPAM Iṣakoso, iṣakoso ọrọ asọye.
  3. Ofin: Iyọọda rẹ
  4. Ibaraẹnisọrọ data: Awọn data kii yoo ni ifọrọhan si awọn ẹgbẹ kẹta ayafi nipasẹ ọranyan ofin.
  5. Ibi ipamọ data: Alaye data ti o gbalejo nipasẹ Awọn nẹtiwọọki Occentus (EU)
  6. Awọn ẹtọ: Ni eyikeyi akoko o le ni opin, gba pada ki o paarẹ alaye rẹ.

  1.   Alfred wi

    Arduino nfun ọ ni ọpọlọpọ awọn aye lati ṣe awọn iṣẹ akanṣe funrararẹ https://www.juguetronica.com/arduino . Ọkan ninu awọn ohun ti o dara julọ ni pe o le bẹrẹ laisi jijẹ amoye ati tẹsiwaju ikẹkọ, nitorinaa ṣe iwuri fun ararẹ lati kọ ara ẹni.

  2.   Danel Roman wi

    Ẹ kí

    Mo n gbiyanju lati ṣe ikẹkọ ikọja yii… ṣugbọn awọn #includes ko pari….

    Ṣe o le sọ fun mi eyi ti o ṣe pataki?

    Mo ṣeun pupọ.

  3.   Uell wi

    Hi!
    Emi yoo fẹ ṣe modulu ilu ẹrọ itanna nipa rirọpo awọn bọtini pẹlu awọn igbewọle Jack eyiti ami ami pezoelectric yoo de.
    Ṣe yoo ṣee ṣe lati ṣe?

  4.   Eduardo Valenzuela wi

    Jọwọ ti o ba le fun pẹlu pẹlu koodu yii, Mo nifẹ si iṣẹ yii.