הכינו בקר MIDI משלכם עם Arduino

MIDI

אם אתה חובב מוזיקה או ישירות מוזיקאי חובב או מקצועי, בוודאי שבביתך צברת אוסף גדול של כלי נגינה. כדי להפוך את כל אלה לערבב בצורה מושלמת, עדיף להשיג בקר MIDI. לרוע המזל, חפצים מסוג זה הם בדרך כלל יקרים למדי, כך שקשה לאדם ללא יותר מדי משאבים לגשת לכל מה שהם יכולים להציע.

כדי להבין הרבה יותר טוב מהו בקר MIDI, אמור לך שהמילה MIDI באה ממשק דיגיטלי לכלי נגינהכלומר, סוג של בקר שגורם למכשירים מוזיקליים אלקטרוניים יכולים לתקשר זה עם זה. אם יש לך מקלדת אלקטרונית בבית, למשל, סביר להניח שיש לה ממשק MIDI. לפני שממשיכים להתקדם, למרות שיש פרטים טכניים מסוימים שעשויים לגרום להאמין אחרת, זה חייב להיות ברור מאוד MIDI אינו שמע.

צור בקר MIDI משלך בעזרת הדרכה פשוטה זו

ברגע שברור לנו זה, בוודאי יהיה לך הרבה יותר קל להבין ש- MIDI הוא פשוט פשוט מערך הוראות המסוגל לתמוך בעד 16 ערוצים עצמאייםכלומר, יכולים להיות עד 16 מכשירים שונים המתקשרים באופן עצמאי זה עם זה. יש לחבר את המכשירים הללו באמצעות כבל DIN פינים, שהוא בעצם כבל עם חמישה פינים בתוך מחבר. כפרט, זה די מקובל להשתמש ב- USB במקום DIN פינים, במקרה של שימוש ב- USB עלינו ליצור ממשק USB-MIDI.

ללא התייחסות נוספת, אני משאיר לך את הקישור שבו תוכל למצוא את הדרכה צעד אחר צעד עם הרבה תמונות תיאוריות שם אנו יכולים לבצע את כל הפעולות הדרושות ליצירת בקר MIDI משלנו.

Artaculo relacionado:
כיצד לשנות את שם המשתמש והסיסמה ב- Pi Raspberry Pi שלנו

כיצד ליצור בקר MIDI משלך עם Arduino

מחבר מידי

רבים הם האנשים הזקוקים, מסיבות שונות, הן אישית והן מקצועיות, להשתמש ב- בקר MIDI מותאם אישית לחלוטין מכיוון שאולי וכדוגמה, בשלב כלשהו בחייך כאמן, קניית בקר MIDI לא יקר עשויה שלא לענות על הציפיות או הצרכים שלך, בעוד שבבוא העת הבחירה בגרסה מקצועית עשויה להיות מוגזמת בשני המשאבים הכספיים. צורך, כמו גם המספר הגדול של התכונות שהם יכולים להציע.

בשל כך, היום אני רוצה להראות לך את כל מה שאתה צריך כדי שתוכל ליצור בקר MIDI משלך, המציין את כל מה שאתה צריך לבנייתו ומציע לך את התוכנה שתצטרך להתקין. כפרט, לפרויקט זה השימוש בלוח ארדואינו הוא חיוני, בקר בעל עוצמה מספקת לביצוע משימה זו.

איך מכינים רובוט
Artaculo relacionado:
איך מכינים רובוט: 3 אפשרויות שונות

מהו בקר MIDI?

midi

בעיקרון, בקר MIDI אחראי, באופן רחב, על חיבור מכשירים מוזיקליים שונים זה לזה. רבים הם המכשירים המשלבים ממשק MIDI, אם כי זה חייב להיות ברור מאוד מכיוון שישנם משתמשים רבים שלעתים קרובות מבולבלים, MIDI אינו קובץ שמע, אלא סט הוראות פשוט מאוד אותו מכשיר יכול לקבל. או הגדרות קול.

בתוך MIDI ישנם שני סוגים שוניםמצד אחד יש לנו את זה שנקרא Change Control, שם יש לו את מספר הבקר ואת הערך בין 0 ל- 127. הודות לכך, ניתן להוציא הודעות בהן ניתן לשנות פרמטרים שונים כגון נפח או צליל. מכשירים שונים המקבלים MIDI צריכים להביא עימם מדריך המסביר אילו ערוצים והודעות מוגדרים כברירת מחדל וכיצד לשנותם.

במקום השני יש לנו את Change Program, סדרת מסרים שבתורם הם פשוטים בהרבה מאלה המרכיבים את Control Change. סוגים אלה של הודעות משמשים לשינוי הגדרה קבועה מראש או תיקון של מכשיר. כמו בבקרת שינוי, יחד עם המכשיר שלך על היצרן לכלול מדריך המציין אילו הגדרות קבועות מוגדרות מראש משתנות על ידי הודעה מסוימת.

חלקים הדרושים לבניית בקר Midi ביתי משלך

סכמטי מחבר מידי

כדי להיות מסוגל לבנות בקר MIDI משלך תזדקק לסדרת חלקים בנוסף, כפי שכבר הזכרנו, ללוח Arduino. לפני שתמשיך, רק אמור לך שאולי, בעתיד בגלל שאתה רוצה להרחיב את הפרויקט, אתה צריך עוד דברים, אם כי בשלב זה עם כמה חלקים יהיה לך הרבה.

נצטרך כבל DIN 5-מוט נקבי, 2 נגדי 220 אוהם, 2 מתגים רגעיים, 2 נגדי אוהם 10k, חוטי חיבור, לוח מעגל, כבל MIDI ומכשיר MIDI או ממשק USB. רק עם החלקים האלה תוכלו להתחיל, לפי השלבים שלי, ליצור בקר Midi משלכם.

צעדים ראשונים

סכמטי מידי של ארדואינו

לפני שמתחיל אני משאיר לך תמונה שבה אתה יכול לראות את הפינים של כבל ה- MIDI שלך, בצורה זו נוכל לזהות נכון את הפינים ובעיקר היכן לחבר כל אחד מהם. באופן כללי, כל שעליך לעשות בשלב זה הוא לחבר את סיכה 5 של הכבל לנגד 220 אוהם ומשם לארדואינו שידור 1, סיכה 4 לנגד 220 אוהם ומשם לשקע 5V של ארדואינו בזמן סיכה 2 חייב להיות מחובר לחיבור הקרקע של הבקר שלך.

לאחר סיום שלב זה, אין לך תרשים מפורט בתצלום הנמצא ממש מתחת לשורות אלה, הגיע הזמן לחבר את הכפתורים. הרעיון בסעיף זה הוא להשיג באמצעות הפין digitalRead (המסוגל לזהות מתי המתח המגיע אליו משתנה) להיות מסוגל להשתמש בטרנזיסטור להשגה, בלחיצת כפתור בלבד. לשם כך עלינו להשתמש רק בכפתור כך שצד שמאל שלו נחבר אותו ל -5 וולט, הצד הימני להתנגדות של 220 אוהם ומשם לקרקע ואילו, בתורו, נחבר את הצד הימני לסיכה 6 הכפתור השני יותקן באותו אופן אם כי, כפי שניתן לראות בתרשים, במקום סיכה 6 אנו מחברים אותו ל- 7.

תוכנה לשימוש עבור בקר Midi ביתי

לאחר שסיימנו עם כל החומרה, הגיע הזמן לחבר את המכשיר שלנו ולבדוק. לפני כן צריך שיהיה לנו ממשק USB-MIDI וכבל MIDI לחבר את הלוח, ששולח נתונים, למחשב שלנו. כדי להשיג זאת, בחרנו בספריית MIDI v4.2 שנוצרו על ידי החבר'ה מארבעים שבע אפקטים שבוודאי התקנו בארדואינו שלנו ונכלל בפרויקט.

במקרה של המחשב, נצטרך תוכנית המסוגלת לפקח על כל נתוני ה- MIDI שמגיעים אליה מארדואינו. לשם כך יש לנו אפשרויות שונות כגון MIDI Monitor (OS X), MIDI-OX (Windows) או Kmidimon (Linux)

כדי לבצע בדיקה קטנה עלינו רק לחבר את הארדואינו למחשב שלנו ולבצע את הקוד הבא:

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

por:

midiOut.sendControlChange(value, channel);

כאשר הערך והערוץ חייבים להכיל את הערכים הרצויים שברצונך להציג.

דוגמה למבצע:


4 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   אלפרד דיג'ו

    Arduino מציע לך אפשרויות רבות לבצע פרויקטים בעצמך https://www.juguetronica.com/arduino . אחד הדברים הטובים ביותר הוא שתוכל להתחיל בלי להיות מומחה ולהמשיך ללמוד, וכך להניע את עצמך להיות אוטודידקט.

  2.   דנאל רומן דיג'ו

    ברכות.

    אני מנסה לבצע את ההדרכה המופלאה הזו ... אבל # כלול אינו שלם ....

    אתה יכול להגיד לי אילו נחוצים?

    תודה רבה.

  3.   אול דיג'ו

    היי.
    ברצוני להכין מודול תוף אלקטרוני על ידי החלפת הכפתורים בכניסות שקע אליהם יגיע אות פיזואלקטרי.
    האם ניתן יהיה לעשות זאת?

  4.   אדוארדו ולנצואלה דיג'ו

    אנא, אם אתה יכול לתת את כללי הקוד הזה, אני מעוניין בפרויקט זה.