אם אתה חובב מוזיקה או ישירות מוזיקאי חובב או מקצועי, בוודאי שבביתך צברת אוסף גדול של כלי נגינה. כדי להפוך את כל אלה לערבב בצורה מושלמת, עדיף להשיג בקר MIDI. לרוע המזל, חפצים מסוג זה הם בדרך כלל יקרים למדי, כך שקשה לאדם ללא יותר מדי משאבים לגשת לכל מה שהם יכולים להציע.
כדי להבין הרבה יותר טוב מהו בקר MIDI, אמור לך שהמילה MIDI באה ממשק דיגיטלי לכלי נגינהכלומר, סוג של בקר שגורם למכשירים מוזיקליים אלקטרוניים יכולים לתקשר זה עם זה. אם יש לך מקלדת אלקטרונית בבית, למשל, סביר להניח שיש לה ממשק MIDI. לפני שממשיכים להתקדם, למרות שיש פרטים טכניים מסוימים שעשויים לגרום להאמין אחרת, זה חייב להיות ברור מאוד MIDI אינו שמע.
צור בקר MIDI משלך בעזרת הדרכה פשוטה זו
ברגע שברור לנו זה, בוודאי יהיה לך הרבה יותר קל להבין ש- MIDI הוא פשוט פשוט מערך הוראות המסוגל לתמוך בעד 16 ערוצים עצמאייםכלומר, יכולים להיות עד 16 מכשירים שונים המתקשרים באופן עצמאי זה עם זה. יש לחבר את המכשירים הללו באמצעות כבל DIN פינים, שהוא בעצם כבל עם חמישה פינים בתוך מחבר. כפרט, זה די מקובל להשתמש ב- USB במקום DIN פינים, במקרה של שימוש ב- USB עלינו ליצור ממשק USB-MIDI.
ללא התייחסות נוספת, אני משאיר לך את הקישור שבו תוכל למצוא את הדרכה צעד אחר צעד עם הרבה תמונות תיאוריות שם אנו יכולים לבצע את כל הפעולות הדרושות ליצירת בקר MIDI משלנו.
כיצד ליצור בקר MIDI משלך עם Arduino
רבים הם האנשים הזקוקים, מסיבות שונות, הן אישית והן מקצועיות, להשתמש ב- בקר MIDI מותאם אישית לחלוטין מכיוון שאולי וכדוגמה, בשלב כלשהו בחייך כאמן, קניית בקר MIDI לא יקר עשויה שלא לענות על הציפיות או הצרכים שלך, בעוד שבבוא העת הבחירה בגרסה מקצועית עשויה להיות מוגזמת בשני המשאבים הכספיים. צורך, כמו גם המספר הגדול של התכונות שהם יכולים להציע.
בשל כך, היום אני רוצה להראות לך את כל מה שאתה צריך כדי שתוכל ליצור בקר 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);
כאשר הערך והערוץ חייבים להכיל את הערכים הרצויים שברצונך להציג.
דוגמה למבצע:
Arduino מציע לך אפשרויות רבות לבצע פרויקטים בעצמך https://www.juguetronica.com/arduino . אחד הדברים הטובים ביותר הוא שתוכל להתחיל בלי להיות מומחה ולהמשיך ללמוד, וכך להניע את עצמך להיות אוטודידקט.
ברכות.
אני מנסה לבצע את ההדרכה המופלאה הזו ... אבל # כלול אינו שלם ....
אתה יכול להגיד לי אילו נחוצים?
תודה רבה.
היי.
ברצוני להכין מודול תוף אלקטרוני על ידי החלפת הכפתורים בכניסות שקע אליהם יגיע אות פיזואלקטרי.
האם ניתן יהיה לעשות זאת?
אנא, אם אתה יכול לתת את כללי הקוד הזה, אני מעוניין בפרויקט זה.