תוכן עניינים:
- שלב 1: המרת הציון המוזיקלי לתווים דיגיטליים: ערכי עיכוב
- שלב 2: המרת הציון המוזיקלי לתווים דיגיטליים: ערכי הרץ
- שלב 3: עיצוב מעגלים
- שלב 4: העלאת קוד: כיצד לעשות זאת
- שלב 5: העלאת קוד: מה המשמעות של כל זה?
- שלב 6: סיים !
וִידֵאוֹ: דיגיטציה של שיר עם ארדואינו: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
רציתי ליצור פרויקט המשלב שניים מהנושאים האהובים עלי: מדע ומוסיקה. חשבתי על כל הדרכים שבהן אני יכול לשלב בין שני התחומים האלה, וחשבתי שיהיה מעניין להכין מחזה של ארדואינו Fur Elise תוך הצגת המגרש של הפתק בהרץ. עכשיו, נתחיל לבנות!
תזדקק ל- Arduino Uno או Mega אחד, הרבה כבלי מגשר, זמזם פיז'ו, קרש לחם, מסך LCD בגודל 16*2 עם כל סיכות המגבים במקום ופוטנציומטר 10k (ייתכן שתשמע גם שהם מכונים קדרות). עדיף לאחד את כל החומרים האלה לפני שנתחיל בבנייה.
שלב 1: המרת הציון המוזיקלי לתווים דיגיטליים: ערכי עיכוב
ישנם שני שלבים לתעתיק דיגיטלי של פתק מהניקוד לשקולתו הדיגיטלית. ראשית, נצטרך לכתוב את משך הזמן שההערה נמשכת באלפיות השנייה. השתמשתי בתרשים שנמצא ברשת למשימה זו. בהתבסס על האם פתק היה שטר, חצי תו, שטר שמיני וכו ', תמללתי את אורך הפתק לאלפיות השנייה. אתה יכול לראות את המספרים האלה בקוד שלי כעיכוב (); הפונקציה והמספר בתוך הסוגריים יהיה ערך העיכוב באלפיות השנייה שקבענו בשלב זה.
שלב 2: המרת הציון המוזיקלי לתווים דיגיטליים: ערכי הרץ
לפני תחילת שלב זה, הרשה לי להגדיר כמה מונחים טכניים. ניתן להשתמש לסירוגין ב"ערך "של פתק עם המילים" גובה "," ערך "ו"פתק". כעת, עליך לקרוא כל תו של השיר מתוך הניקוד. לאחר מכן יהיה עליך לתרגם כל תו להרץ באמצעות מוזיקה לשולחן הרץ, אותו תוכל למצוא בקלות באינטרנט. דבר אחד שכדאי לזכור הוא שאמצע C רשום כ- C4 על השולחן, ואוקטבה גבוהה יותר הוא C5 וכן הלאה. לאחר שכול התווים האלה יועתקו להרץ, תמקם את הערכים בטון הפונקציה (x, y, z); כאשר X הוא מספר הסיכה או const int, דרך להגדיר משתנים שאסביר בהמשך. Y יהיה ערך הרץ שאותו תעתקת, ו- Z יהיה משך הפתק באלפיות השנייה מעוגל למאה הקרובה ביותר. העיכוב(); הערכים יהיו משך ההערה. עכשיו, בואו לעצב את המעגל שיכול לנגן את המוזיקה.
שלב 3: עיצוב מעגלים
כעת, לאחר שתרגמנו את כל ההערות לערכים דיגיטליים שמחשב יכול להבין, הגיע הזמן לבנות את המעגל. התחל בלקיחת לוח לחם והנח את מסך ה- LCD עם הסיכה הראשונה (GND) בשורה 14. הנח את הבאזר בכל מקום שתרצה, והנח לידו פוטנציומטר. המטרה היא ליישר הכל, למזער את עומס החוטים. הנח את הארדואינו ליד לוח הלחם, וחבר את סיכת 5V למעקה החיובי של לוח הלחם, ואת סיכת הטחון למעקה השלילי. כעת, אנו מוכנים לחבר מגשרים בין הארדואינו לרכיבים.
עכשיו, בואו נדבר על הסיכות בתצוגת ה- LCD וכיצד לחבר אותן.
GND מייצג קרקע, זהו החוט השלילי בזרם ישיר. חברו את GND למעקה השלילי של לוח הלחם.
VCC מייצג מתח ב- Collector Common, וכאן אתה מחבר את מקור הכוח שלך (5 רכבת החשמל החיובית).
VO מייצג ניגודיות, חוט אותו לסיכה האמצעית של הפוטנטיומטר. חבר את הסיכה השמאלית של הפוטנציומטר למסילת הכוח החיובית, ואת הסיכה הימנית למעקה החשמל הקרקע.
RS מייצג Register Select, וזה משמש את Arduino כדי לספר לתצוגה היכן לאחסן נתונים. חבר את הסיכה לסיכה 12 בארדואינו.
RW מייצג סיכת קריאה/כתיבה, שבה משתמש Arduino כדי לבדוק אם המסך מראה את מה שתכנת אותו להציג. חבר את הסיכה למעקה השלילי בלוח הלחם.
E מייצג Enable, המספר ל- LCD אילו פיקסלים יש להפעיל (להדליק) או להשבית (לכבות). חבר את הסיכה לסיכה 11 של Arduino.
D4, D5, D6 ו- D7 הם סיכות תצוגה השולטות בתווים ובאותיות המוצגות. חבר אותם לסיכות Arduino 5, 4, 3 ו- 2, בהתאמה.
סיכה A, שלעתים מסומנת על LED, היא אנודת ה- LED לתאורה האחורית. חבר את זה למעקה החשמל החיובי בעזרת חוט או עם נגד של 220 אוהם. הנגד טוב יותר לשימוש ארוך יותר מכיוון שהוא חוסך את ה- LCD, אך אם המכשיר לא ישמש יום ולילה, אינך צריך את הנגד.
Pin K, לפעמים גם (בלבול) המסומן LED, הוא סיכת הקרקע LED. חבר את זה למסילת הכוח הקרקעית.
שלב 4: העלאת קוד: כיצד לעשות זאת
חבר את ה- Arduino שלך ל- USB של המחשב. העלה את הקוד הבא באמצעות מתכנת Arduino IDE.
#לִכלוֹל
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
הגדרת בטל () {
// הגדר את מספר העמודות והשורות של ה- LCD: lcd.begin (16, 2); // הדפס הודעה ל- LCD. lcd.print ("הרץ פיץ ':!"); עיכוב (1000); לולאת void () {// play e4 delay (600); // השהה במשך 0.6 שניות צליל (10, 329.63, 300); // play e לזמזם בסיכה 10, האחרון למשך 0.3 שניות lcd.print (" 329.63 "); // הצג הודעה על LCD" 329.63"
עיכוב (350); // עיכוב למשך.35 שניות
lcd.clear (); // נקה LCD ואיפס להודעה הבאה // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (350); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (350); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (350); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (350); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.66, 300); lcd.print ("293.66"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 900); lcd.print ("220.0"); עיכוב (1000); lcd.clear (); // line60 // helpsave // avrdude.failure.eeprom // play d3 tone (10, 146.83, 300); lcd.print ("146.63"); עיכוב (350); lcd.clear (); // הפעל צליל f3 (10, 174.61, 300); lcd.print ("174.61"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 300); lcd.print ("220"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 900); lcd.print ("246.94"); עיכוב (1000); lcd.clear ();
// לשחק e3
טון (10, 164.81, 300); lcd.print ("164.81"); עיכוב (400); lcd.clear (); // הפעל צליל g3# (10, 207.65, 300); lcd.print ("207.65"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 900); lcd.print ("261.63"); עיכוב (1000); lcd.clear (); // נגן טון (10, 164.81, 300); lcd.print ("164.81"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.66, 300); lcd.print ("293.66"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 900); lcd.print ("220.0"); עיכוב (1000); lcd.clear (); // הפעל צליל d3 (10, 146.83, 300); lcd.print ("146.83"); עיכוב (400); lcd.clear (); // הפעל צליל f3 (10, 174.61, 300); // eeprom 20-6 yesno, flash 65--0 noyes lcd.print ("174.61"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 300); lcd.print ("220.0"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 900); lcd.print ("246.94"); עיכוב (1000); lcd.clear (); // הפעל צליל f3 (10, 174.61, 300); lcd.print ("174.61"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 900); lcd.print ("220.0"); עיכוב (1000); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.66, 300); lcd.print ("293.66"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 900); lcd.print ("329.63"); עיכוב (1000); lcd.clear (); // צליל g3 (10, 196, 300); lcd.print ("196.0"); עיכוב (400); lcd.clear (); // הפעל צליל f4 (10, 349.23, 300); lcd.print ("349.23"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.23, 300); lcd.print ("329.23"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.63, 900); lcd.print ("293.63"); עיכוב (1000); lcd.clear (); // הפעל צליל e3 (10, 164.81, 300); lcd.print ("164.81"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.63, 300); lcd.print ("293.63"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 900); lcd.print ("261.63"); עיכוב (1000); lcd.clear (); // הפעל צליל d3 (10, 146.83, 300); lcd.print ("146.83"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.63, 300); lcd.print ("293.63"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 900); lcd.print ("246.94"); עיכוב (1000); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (350); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (350); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (350); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (350); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.66, 300); lcd.print ("293.66"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 900); lcd.print ("220.0"); עיכוב (1000); lcd.clear (); // הפעל צליל d3 (10, 146.83, 300); lcd.print ("146.83"); עיכוב (350); lcd.clear (); // הפעל צליל f3 (10, 174.61, 300); lcd.print ("174.61"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 300); lcd.print ("220.0"); עיכוב (400); // לשחק b3 lcd.clear (); טון (10, 246.94, 900); lcd.print ("246.94"); עיכוב (1000); lcd.clear (); // הפעל צליל e3 (10, 164.81, 300); lcd.print ("164.81"); עיכוב (400); lcd.clear (); // הפעל צליל g#3 (10, 207.65, 300); lcd.print ("207.65"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 900); lcd.print ("261.63"); עיכוב (1000); עיכוב (300); lcd.clear (); // הפעל צליל e3 (10, 164.81, 300); lcd.print ("164.81"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל d4# (10, 311.13, 300); lcd.print ("311.13"); עיכוב (400); lcd.clear (); // הפעל צליל e4 (10, 329.63, 300); lcd.print ("329.63"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // הפעל צליל d4 (10, 293.66, 300); lcd.print ("293.66"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 900); lcd.print ("220.0"); עיכוב (1000); lcd.clear (); // הפעל צליל d3 (10, 146.83, 300); lcd.print ("146.83"); עיכוב (400); lcd.clear (); // הפעל צליל f3 (10, 174.61, 300); lcd.print ("174.61"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 300); lcd.print ("220.0"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 900); lcd.print ("246.94"); עיכוב (1000); lcd.clear (); // הפעל צליל f3 (10, 174.61, 300); lcd.print ("174.61"); עיכוב (400); lcd.clear (); // הפעל צליל c4 (10, 261.63, 300); lcd.print ("261.63"); עיכוב (400); lcd.clear (); // הפעל צליל b3 (10, 246.94, 300); lcd.print ("246.94"); עיכוב (400); lcd.clear (); // נגן צליל a3 (10, 220, 900); lcd.print ("220.0"); עיכוב (1000); lcd.clear (); }
שלב 5: העלאת קוד: מה המשמעות של כל זה?
בואו נגדיר כמה פונקציות באנגלית, כך שתוכלו להבין את הקוד.
טון (x, y, z); = נגן צליל עם צליל של y הרץ, לזמזם בסיכה x, למשך z אלפיות השנייה.
lcd.print ("XYZ"); = הדפס הודעה עם התווים XYZ למסך LCD. (למשל הצג את גובה הרץ)
עיכוב (x); = הפסקה למשך x אלפיות השנייה.
const int X = Y = הגדר משתנה קבוע X לסיכה Y, והשתמש ב- X או Y כדי להקצות משימות למכשיר.
lcd.clear (); = לנקות את מסך ה- LCD ולאפס לתצוגה חדשה
pinMode (X, OUTPUT); = הגדר סיכה X למצב פלט
לאחר שתבין את כל הפונקציות הללו, תוכל להחליף בקלות את המשתנים בנתונים שאתה אוסף בעת תרגום שיר, ולאחר מכן תוכל לקוד שיר משלך!
שלב 6: סיים !
או שיש לך ארדואינו שמנגן את Fur Elise ומציג את ערכי התווים בהרץ, או שיצרת ארדואינו שמנגן את הלחן של השיר שבחרת, ומציג טקסט שרצית להציג. תודה שביקרת במדריך זה, ואני מקווה לך את הפרויקט הזה על Arduino.
מוּמלָץ:
כיצד לבצע דיגיטציה של שקופיות ושלילי סרטים באמצעות DSLR: 12 שלבים (עם תמונות)
כיצד לעשות דיגיטציה לשקופיות ולסרטים שליליים באמצעות DSLR: מערך רב תכליתי ויציב לדיגיטציה של שקופיות ושליליות באמצעות DSLR או כל מצלמה עם אפשרות מאקרו. מדריך זה הוא עדכון של כיצד לבצע דיגיטציה של 35 מ"מ שליליות (הועלה ביולי 2011) עם מספר שיפורים להרחבת
Money Heist BELLA CIAO שיר ב- Arduino Uno: 9 שלבים (עם תמונות)
Money Heist BELLA CIAO שיר ב- Arduino Uno: במדריך זה אראה לך כיצד תוכל לשחק את Money Heist Song Bella Ciao בכל ארדואינו בעזרת זמזם פיאזואלקטרי. הפרויקט המגניב הזה מוקדש לכל אוהדי Money Heist בכל רחבי העולם. אז בואו נתחיל
שיר נושא PUBG+אנימציה עם Arduino !: 13 שלבים (עם תמונות)
שיר נושא PUBG+אנימציה עם ארדואינו !: שלום לכם וברוכים הבאים להדרכה המהנה הזו! אני מקווה שכולכם בריאים ונשארים בריאים. הפרויקט הקטן אך המדהים הזה עוסק בהשמעת שיר הנושא של PUBG ואפילו ביצירת כמה אנימציות משחק באמצעות arduino. המרכיבים בהם משתמשים הם מאוד
כיצד לנגן שיר ב- Yamaha EZ-220 שלך: 5 שלבים
כיצד לנגן שיר ב- Yamaha EZ-220 שלך: שלבים אלה יעזרו לך לנגן את השיר שלך באמצעות ספר השירים
מדריך Arduino Uno #2 - שיר הבאזר: 4 שלבים (עם תמונות)
Arduino Uno Tutorial #2 - שיר הבאזר: שלום לכולם, כשראיתי שההדרכה הראשונה שלי הייתה הימור טוב, החלטתי שאני הולך לעשות סדרת הדרכות של Arduino Uno בשבילכם