תוכן עניינים:
- אספקה
- שלב 1: בניית לוח הלחם
- שלב 2: העלאת הסקיצה
- שלב 3: הבנת MIDI ללא שיער ולולאות MIDI פנימיות
- שלב 4: התחברות ל- DAW שלך
- שלב 5: שחק
וִידֵאוֹ: בקר Arduino MIDI בסיסי: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
הקדמה:
אני חדש בעבודה עם ארדואינו אבל אני מקווה להרחיב את הידע שלי על ידי לימוד אחרים וקבלת משוב. זהו בקר MIDI בסיסי ביותר עם 4 כפתורים ופוטנציומטר. המתווה לפרויקט זה נראה כך:
1. בנה את לוח הלחם
2. העלה את הסקיצה לארדואינו
3. הבנת MIDI ללא שיער ולולאת MIDI פנימית (loopbe1)
4. נתב את ה- MIDI שלך ל- DAW (Ableton)
אספקה
1 x ארדואינו מגה 2560
1 x לוח לחם
1 x כבל USB
1 x פוטנציומטר
4 x לחצני טאקט
נגדי 4 x 120 אוהם
14 x כבלי מגשר ללוח לחם
שלב 1: בניית לוח הלחם
חבר את לוח הלחם כך שכל הרכיבים יתאימו לתמונה 1 למעלה. כל כפתור צריך להיראות כמו תמונה 2. כניסות הכפתורים הן 2, 3, 4 ו- 5 על הארדואינו והסיכה האמצעית של הפוטנציומטר מחוברת לכניסת ANALOG A0.
שלב 2: העלאת הסקיצה
העתק והדבק את הקוד למטה ב- Arduino IDE. בחר את הלוח הנכון תחת "כלים" והעלה את הסקיצה לארדואינו.
byte noteON = 144; // הערה על הערת הפקודה; // אחסון להפעלת הפתק int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroage עבור מצב הכפתור הנוכחי boolean lastState = LOW; // אחסון להגדרת חלל מצב הכפתור האחרון () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // הפעם נקבע את הסיכה כ- INPUT Serial.begin (9600); // נתחיל חיבור סידורי} לולאת void () {int PotVal = analogRead (potPin); מהירות בתים = מפה (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); אם (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // הפעל את הערה 60 עם עיכוב מהירות של 127 (200); // צורה גסה של התנתקות כפתורים} אחרת אם (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // לכבות הערה 60 עיכוב (2); // צורה גסה של כפתור debouncing} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// אם לחצן זה עתה נלחץ MIDImessage (noteON, 61, מהירות); // הפעל את הערה 60 עם 127 עיכוב מהירות (200); // צורה גסה של כפתור debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // לכבות הערה 60 עיכוב (2); // צורה גסה של כפתור debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// אם רק לחצו על הלחצן MIDImessage (noteON, 62, מהירות); // הפעל את הערה 60 עם 127 עיכוב מהירות (200); // צורה גסה של כפתור debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // לכבות הערה 60 עיכוב (2); // צורה גסה של כפתור debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// אם רק לחצו על הלחצן MIDImessage (noteON, 63, מהירות); // הפעל הערה 60 עם 127 עיכוב מהירות (200); // צורה גסה של כפתור debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // לכבות הערה 60 עיכוב (2); // צורה גסה של כפתור debouncing} lastState = currentState; } // שלח הודעת MIDI חלל MIDImessage (פקודת בייט, בייט נתונים 1, בייט נתונים 2) {Serial.write (פקודה); Serial.write (data1); Serial.write (data2); }
אני עדיין מאוד חדש בכתיבת קוד באופן כללי … אנשים עם קצת יותר ניסיון יכולים כנראה לנקות את זה …
שלב 3: הבנת MIDI ללא שיער ולולאות MIDI פנימיות
ה- Arduino צריך לרוץ דרך גשר סדרתי כמו Hairless MIDI ואז דרך לולאת MIDI פנימית כגון loopbe1 (או אוטובוס IAC ל- Mac).
הערה: לא ניתן להעלות סקיצה ל- Arduino בזמן שהיא מחוברת לגשר הטורי MIDI חסר השיער.
בחר את הארדואינו שלך ביציאה הסידרית MIDI ללא שיער ובאוטובוס loopbe1 או IAC ביציאת MIDI החוצה.
הערה: ודא כי השתקה אינה מופעלת בעת שימוש ב- loopbe1.
שלב 4: התחברות ל- DAW שלך
אם אתה מקבל אות לאפליקציית MIDI ללא שיער כאשר אתה לוחץ על כפתור בלוח הלחם (האורות יהבהבו) אתה אמור להיות מסוגל לשלוח נתוני MIDI ל- DAW. השתמשתי באבלטון אבל כל DAW אמור לעבוד. וודא כי לולאת ה- MIDI הפנימית שלך (loopbe1) מופעלת בהעדפות DAW שלך (ב- Ableton אתה רוצה ש"טראק "יופעל). לאחר מכן, בחר אחת מכניסות מסילת MIDI שלך ללולאת MIDI (loopbe1) כפי שמוצג בתמונה למעלה.
שלב 5: שחק
הלחצנים יעבדו כעת כמו כל בקר MIDI אחר! הפוטנציומטר ישנה את מהירות הפתקים הנשלחים ל- DAW. הסרטון (החשוך מאוד) למעלה מציג צליל פסנתר כנף בפעולה!
מוּמלָץ:
בקר - בקר Vivarium: 6 שלבים
Freya - בקר Vivarium: Freya הוא קוד בקרה, מערכת בקרת vivarium מבוססת Raspberry Pi. במדריך זה אנו הולכים לעבור את השלבים של הכנת הבקר
בקר משחק DIY מבוסס Arduino - בקר משחקים Arduino PS2 - משחק Tekken עם לוח המשחקים Arduino DIY: 7 שלבים
בקר משחק DIY מבוסס Arduino | בקר משחקים Arduino PS2 | משחק Tekken עם DIY Arduino Gamepad: שלום חבר'ה, משחקים זה תמיד כיף, אבל משחק עם בקר DIY מותאם אישית משלך הוא יותר כיף. אז נכין בקר משחק באמצעות arduino pro micro במדריך זה
בקר בקר זלדה פנטזיה: 31 שלבים (עם תמונות)
בקר בקר זלדה פנטזיה: " היי, למישהו יש בקר שאני יכול לשנות? אין שום אחריות שאני לא אהרוס אותו. &Quot; אני אוהב להתעסק עם דברים, אז כשראיתי את תחרות המשחקים המחשבה הראשונה שלי הייתה לעשות מוד מגניב לבקר. לאחר התחננות, ניכסתי פצוע קל
YABC - עוד בקר Blynk - בקר טמפרטורה ולחות IoT בענן, ESP8266: 4 שלבים
YABC - עוד בקר Blynk - בקר טמפרטורה ולחות IoT בענן, ESP8266: היי מייקרים, לאחרונה התחלתי לגדל פטריות בבית, פטריות צדפות, אבל יש לי כבר 3x מהבקרים האלה בבית לבקרת טמפרטורה של תסיסה לבישול הביתי שלי, רעייתי הוא גם עושה את הדבר הזה בקומבוצ'ה עכשיו, וכתרמוסטט לחום
בקר אור רצועת MIDI 5V LED עבור Spielatron או סינתזת MIDI אחרת: 7 שלבים (עם תמונות)
בקר אור רצועת MIDI 5V LED עבור ה- Spielatron או סינתזת MIDI אחרת: בקר זה מהבהב אורות רצועות LED בשלושה צבעים עבור 50mS לכל הערה. כחול עבור G5 עד D#6, אדום עבור E6 עד B6 וירוק עבור C7 עד G7. הבקר הוא מכשיר ALSA MIDI כך שתוכנת MIDI יכולה לפלט לנורות במקביל למכשיר סינתטי MIDI