შექმენით საკუთარი MIDI კონტროლერი Arduino– ს საშუალებით

MIDI

თუ მუსიკის მოყვარული ხართ ან უშუალოდ მოყვარული ან პროფესიონალი მუსიკოსი ხართ, აუცილებლად თქვენს სახლში დააგროვეთ მუსიკალური ინსტრუმენტების დიდი კოლექცია. იმისათვის, რომ ყველა ეს ნაზავი იდეალურად იყოს, უმჯობესია მიიღოთ MIDI კონტროლერი. სამწუხაროდ, ამ ტიპის ობიექტები, როგორც წესი, საკმაოდ ძვირი ჯდება, ამიტომ ადამიანს ძალიან ბევრი რესურსის გარეშე უჭირს ყველაფრის წვდომა.

იმის გასაგებად, თუ რა არის MIDI კონტროლერი, გითხრათ, რომ სიტყვა MIDI მომდინარეობს მუსიკალური ინსტრუმენტის ციფრული ინტერფეისი, ეს არის ერთგვარი კონტროლერი, რომელიც ელექტრონულ მუსიკალურ მოწყობილობებს ერთმანეთთან კომუნიკაციის შესაძლებლობას აძლევს. მაგალითად, თუ სახლში ელექტრონული კლავიატურა გაქვთ, სავარაუდოდ, მას აქვს MIDI ინტერფეისი. წინსვლის გაგრძელებამდე, მიუხედავად იმისა, რომ არსებობს გარკვეული ტექნიკური დეტალები, რამაც შეიძლება სხვას დააფიქროს, ეს გასაგები უნდა იყოს MIDI არ არის აუდიო.

შექმენით თქვენი საკუთარი MIDI კონტროლერი ამ მარტივი სამეურვეო პროგრამით

მას შემდეგ, რაც ამის გარკვევა გექნებათ, თქვენთვის გაცილებით ადვილი იქნება იმის გაგება, რომ MIDI მარტივია ინსტრუქციის ნაკრები, რომელსაც შეუძლია 16 დამოუკიდებელი არხის მხარდაჭერა, რაც ნიშნავს, რომ შეიძლება 16-მდე სხვადასხვა მოწყობილობა იყოს ერთმანეთთან დამოუკიდებლად კომუნიკაციური. ეს მოწყობილობები უნდა იყოს დაკავშირებული 5 პინიანი DIN კაბელის საშუალებით, რომელიც ძირითადად არის კაბელი, რომელსაც აქვს ხუთი ქინძი კონექტორის შიგნით. როგორც დეტალი, საკმაოდ ხშირია USB- ის გამოყენება 5-pin DIN- ის ნაცვლად, USB- ს გამოყენების შემთხვევაში ჩვენ უნდა შევქმნათ USB-MIDI ინტერფეისი.

დამატებითი გაფრთხილების გარეშე, მე გიტოვებთ ბმულს, სადაც შეგიძლიათ იპოვოთ სამეურვეო ეტაპობრივად ბევრი აღწერითი გამოსახულებები სადაც შეგვიძლია შევასრულოთ ყველა საჭირო მოქმედება საკუთარი MIDI კონტროლერის შესაქმნელად.

დაკავშირებული სტატია:
როგორ შევცვალოთ Pi მომხმარებლის სახელი და პაროლი ჩვენს Raspberry Pi- ზე

როგორ გააკეთოთ საკუთარი MIDI კონტროლერი Arduino– ს საშუალებით

მიდი კონექტორი

ბევრი არის ის ადამიანი, ვისაც, პირადი და პროფესიონალური მიზეზების გამო, სჭირდება ა სრულად მორგებული MIDI კონტროლერი იმიტომ, რომ ალბათ და როგორც მაგალითი, თქვენი ცხოვრების რომელიმე ეტაპზე, როგორც მხატვრის, იაფი MIDI კონტროლერის შეძენა შეიძლება არ აკმაყოფილებდეს თქვენს მოლოდინს ან მოთხოვნილებას, როდესაც დრო მოვა, პროფესიონალური ვერსიის არჩევა შეიძლება გადაჭარბებული იყოს როგორც ფინანსურ რესურსებში. საჭიროება, ისევე როგორც მათი შესაძლებლობების დიდი რაოდენობა.

ამის გამო, დღეს მინდა გაჩვენოთ ყველაფერი, რაც გჭირდებათ, რომ შეძლოთ საკუთარი MIDI კონტროლერი, სადაც მითითებული იქნება ყველაფერი, რაც გჭირდებათ მისი მშენებლობისთვის და შემოგთავაზებთ პროგრამულ უზრუნველყოფას, რომლის ინსტალაციაც დაგჭირდებათ. როგორც დეტალი, ამ პროექტისთვის აუცილებელია Arduino დაფის გამოყენება, კონტროლერი, რომელიც საკმარისად ძლიერია ამ ამოცანის შესასრულებლად.

დაკავშირებული სტატია:
როგორ გავაკეთოთ რობოტი: 3 განსხვავებული ვარიანტი

რა არის MIDI კონტროლერი?

midi

ძირითადად, MIDI კონტროლერი პასუხისმგებელია, ზოგადად რომ ვთქვათ, სხვადასხვა მუსიკალური მოწყობილობების ერთმანეთთან დაკავშირებაზე. ბევრი არის ინსტრუმენტი, რომელიც შეიცავს MIDI ინტერფეისს, თუმცა ეს გასაგები უნდა იყოს, რადგან ბევრი მომხმარებელი ხშირად იბნევა, MIDI არ არის აუდიო ფაილი, არამედ ინსტრუქციის ძალიან მარტივი ჯგუფია, რომელსაც შეუძლია მიიღოს ინსტრუმენტი. ან ხმის პარამეტრები.

შიგნით MIDI არსებობს ორი განსხვავებული ტიპიერთის მხრივ, ჩვენ გვაქვს ცვლილებების კონტროლი, სადაც მას აქვს კონტროლერის ნომერი და მნიშვნელობა 0-დან 127-მდე. ამის წყალობით შეიძლება გაიცეს შეტყობინებები, სადაც შეიძლება შეიცვალოს სხვადასხვა პარამეტრი, როგორიცაა მოცულობა ან ტონი. სხვადასხვა ინსტრუმენტები, რომლებიც იღებენ MIDI- ს, თან უნდა იქონიონ სახელმძღვანელო, რომელშიც განმარტებულია, თუ რომელი არხები და შეტყობინებები არის ნაგულისხმევად მითითებული და როგორ შეიძლება მათი შეცვლა.

მეორე ადგილზე გვაქვს პროგრამის ცვლილება, შეტყობინებების სერია, რომლებიც, თავის მხრივ, გაცილებით მარტივია, ვიდრე ცვლილებების კონტროლის შემცველი. ამ ტიპის შეტყობინებები გამოიყენება მოწყობილობის წინასწარ ან პაჩის შესაცვლელად. როგორც შეცვლის კონტროლში, თქვენს ინსტრუმენტთან ერთად, მწარმოებელმა უნდა შეიტანოს სახელმძღვანელო, რომელშიც მითითებულია, რომელი პარამეტრების შეცვლა ხდება კონკრეტული შეტყობინებით.

საჭირო ნაწილები თქვენი საკუთარი MIDI კონტროლერის შესაქმნელად

მიდი კონექტორის სქემა

იმისათვის, რომ შეძლოთ საკუთარი MIDI კონტროლერი ააწყოთ, დაგჭირდებათ მთელი რიგი ნაწილები გარდა Arduino დაფისა, როგორც უკვე აღვნიშნეთ. გაგრძელებამდე უბრალოდ გითხრათ, რომ შესაძლოა, მომავალში იმიტომ, რომ გსურთ პროექტის გაფართოება, თქვენ უფრო მეტი რამ გჭირდებათ, თუმცა ამ დროს რამდენიმე ნაწილისგან უამრავი გექნებათ.

ჩვენ დაგვჭირდება 5 პოლუსიანი ქალის DIN კაბელი, 2 220 ომიანი რეზისტორი, 2 წამიერი კონცენტრატორი, 2 10 კმ ომის რეზისტორი, კავშირის ხაზები, წრიული დაფა, MIDI კაბელი და MIDI მოწყობილობა ან USB ინტერფეისი. მხოლოდ ამ ნაწილებით შეგიძლიათ დაიწყოთ ჩემი ნაბიჯების შესრულება, გააკეთოთ საკუთარი MIDI კონტროლერი.

პირველი ნაბიჯები

Arduino midi სქემა

დაწყებამდე მე გიტოვებთ სურათს, სადაც შეგიძლიათ ნახოთ თქვენი MIDI კაბელის ქინძისთავები, ამ გზით ჩვენ შეგვიძლია სწორად გამოვყოთ ქინძისთავები და განსაკუთრებით სად უნდა დავაკავშიროთ ისინი. ზოგადად, ამ ეტაპზე თქვენ მხოლოდ უნდა დააკავშიროთ კაბელის მე –5 პინი 220 ომის რეზისტორთან და იქიდან Arduino Transmit 1 –თან, 4 – ის 220 ომ რეზისტორთან და იქიდან Arduino– ს 5V– ს ბუდესთან 2 უნდა იყოს დაკავშირებული თქვენი კონტროლერის სახმელეთო კავშირთან.

ამ ნაბიჯის დასრულების შემდეგ, თქვენ არ გაქვთ დეტალური დიაგრამა ფოტოზე, რომელიც მდებარეობს ამ ხაზების ქვემოთ, დროა დააკავშიროთ ღილაკები. ამ განყოფილებაში მოცემულია იდეა, რომ ციფრული წაკითხვის ქინძისთავის გამოყენებით (შესაძლებელია იმის დადგენა, თუ როდის იცვლება ძაბვა მასში) შეძლებთ ტრანზისტორის გამოყენებას, ღილაკის დაჭერით. ამისათვის მხოლოდ ღილაკი უნდა გამოვიყენოთ ისე, რომ მარცხენა მხარეს მივუერთოთ მას 5 ვ, მარჯვენა მხარეს 220 ომ წინააღმდეგობასთან და იქიდან მიწასთან, ხოლო, თავის მხრივ, მარჯვენა მხარეს 6 პინსაც დავაკავშირებთ მეორე ღილაკი დაინსტალირებული იქნება იმავე გზით, თუმცა, როგორც ხედავთ დიაგრამაზე, პინ 6-ის ნაცვლად, მას ვუკავშირდებით 7-ს.

პროგრამული უზრუნველყოფა, რომელიც გამოიყენება სახლის midi კონტროლერისთვის

მას შემდეგ, რაც ყველა ტექნიკით დავასრულებთ, დროა დავაკავშიროთ ჩვენი ინსტრუმენტი და გამოვცადოთ. მანამდე უნდა გვქონდეს ა USB-MIDI ინტერფეისი და MIDI კაბელი დავაბეჭდეთ დაფა, რომელიც აგზავნის მონაცემებს, ჩვენს კომპიუტერთან. ამის მისაღწევად, ჩვენ ვირჩევთ MIDI v4.2 ბიბლიოთეკას, რომელიც შეიქმნა Forty Seven Effect– ის ბიჭების მიერ, რომელიც უნდა დავაყენოთ ჩვენს Arduino– ს და შევიტანოთ პროექტში.

კომპიუტერის შემთხვევაში, დაგვჭირდება პროგრამა, რომელსაც შეუძლია ზედამხედველობა გაუწიოს ყველა MIDI მონაცემს, რომელიც მასზე Arduino- დან მოვა. ამისათვის ჩვენ გვაქვს სხვადასხვა შესაძლებლობები, როგორიცაა MIDI Monitor (OS X), MIDI-OX (Windows) ან Kmidimon (Linux)

პატარა ტესტის გასაკეთებლად, ჩვენ უბრალოდ უნდა დავუკავშიროთ Arduino ჩვენს კომპიუტერს და შევასრულოთ შემდეგი კოდი:

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

თუ ყველაფერი კარგად ჩაიარა, შეგიძლიათ გადახვიდეთ ღილაკის ტესტზე, იმ შემთხვევაში, თუ ამ ტესტმა არ იმუშავა თქვენთვის, დარწმუნდით, რომ ყველა კავშირი სწორია, სქემა ზუსტად იგივეა, რაც წინა დიაგრამა, წრე უკავშირდება USB-MIDI ინტერფეისს MIDI კაბელით, MIDI პორტის კაბელები სწორად არის დაკავშირებული, MIDI კაბელი უკავშირდება USB-MIDI ინტერფეისის შეყვანას, Arduino დაფა სწორად არის დაკავშირებული ელექტრო ქსელთან და მას აქვს საკმარისი სიმძლავრე ...

ღილაკების სწორად მუშაობის ტესტირება

სანამ გავაგრძელებთ ჩვენი პროგრამის ახალ ფუნქციონალობასა და კოდს მიწოდებას, რომელშიც შეგვიძლია დავიკარგოთ, ღირს შეჩერება ერთი წუთით და შეამოწმეთ, რომ ღილაკები სწორად მუშაობს. მათთვის შემდეგი კოდი უნდა ავტვირთოთ:

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

}

ეს კოდი მხოლოდ შედგენილი და შესრულებული უნდა იყოს ისე, რომ USB კაბელის ჩართვით, პროგრამა გვეუბნება, რომელიმე ღილაკი დააჭირეთ თუ არა.

ჩვენ ვქმნით ჩვენს ხელნაკეთი MIDI კონტროლერს

ამ ტესტების შესრულების შემდეგ, დროა შევადგინოთ ჩვენი საკუთარი MIDI კონტროლერი, თქვენ მხოლოდ შემდეგი კოდის შედგენა მოგიწევთ:

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

როგორც დეტალი, გითხრათ, რომ ამჯერად არ შეგიძლიათ გამოიყენოთ Serial.println () ბრძანება MIDI გამოსვლით, თუ გსურთ რაიმე ტიპის შეტყობინების ჩვენება კომპიუტერში, უბრალოდ შეცვალეთ:

midiOut.sendControlChange(42,127,1);

by:

midiOut.sendControlChange(value, channel);

სადაც მნიშვნელობასა და არხს უნდა ჰქონდეს სასურველი მნიშვნელობები, რომელთა ჩვენებაც გსურთ.

ოპერაციის მაგალითი:


სტატიის შინაარსი იცავს ჩვენს პრინციპებს სარედაქციო ეთიკა. შეცდომის შესატყობინებლად დააჭირეთ ღილაკს აქ.

4 კომენტარი დატოვე შენი

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

*

*

  1. მონაცემებზე პასუხისმგებელი: მიგელ ანგელ გატონი
  2. მონაცემთა მიზანი: სპამის კონტროლი, კომენტარების მართვა.
  3. ლეგიტიმაცია: თქვენი თანხმობა
  4. მონაცემთა კომუნიკაცია: მონაცემები არ გადაეცემა მესამე პირებს, გარდა სამართლებრივი ვალდებულებისა.
  5. მონაცემთა შენახვა: მონაცემთა ბაზა, რომელსაც უმასპინძლა Occentus Networks (EU)
  6. უფლებები: ნებისმიერ დროს შეგიძლიათ შეზღუდოთ, აღადგინოთ და წაშალოთ თქვენი ინფორმაცია.

  1.   ალფრედ დიჯო

    Arduino გთავაზობთ მრავალ შესაძლებლობას, რომ თავად განახორციელოთ პროექტები https://www.juguetronica.com/arduino . ერთ-ერთი საუკეთესო რამ არის ის, რომ შეგიძიათ დაიწყოთ ექსპერტი, რომ არ იყოთ ექსპერტი და გააგრძელოთ სწავლა, რითაც მოტივაციას ასწავლით საკუთარ თავს.

  2.   დანელ რომანი დიჯო

    ულოცავენ.

    ვცდილობ განვახორციელო ეს ფანტასტიკური სახელმძღვანელო… მაგრამ # არ შეიცავს სრულყოფილი.

    იქნებ მითხრათ რომელია საჭირო?

    ძალიან დიდი მადლობა.

  3.   უელი დიჯო

    Hello.
    მსურს ელექტრონული დრამის მოდულის გაკეთება, ღილაკების ჩანაცვლებით ბუდეების საშუალებით, სადაც პიეზოელექტრული სიგნალი მოვა.
    შესაძლებელი იქნებოდა ამის გაკეთება?

  4.   ედუარდო ვალენზუელა დიჯო

    თუ შეგიძლიათ მიუთითოთ ამ კოდის მითითებები, მე მაინტერესებს ამ პროექტით.