בפרויקט זה אנו הולכים לבנות חתיכת בידור באמצעות ארדואינו. לכולנו יש הרגל זה להקיש על שולחן או עט ליצירת מוזיקה אקראית כלשהי. כמובן שזה אולי לא ייחשב לגינניות טובה, אבל כולנו נהנים לעשות את זה לפחות פעם אחת. לפיכך חשבתי לקחת את זה לשלב הבא על ידי שימוש ביכולתו של ארדואינו לנגן צלילים. ברגע שאתה בונה פרויקט זה תוכל ליצור טונים על ידי הקשה על האצבעות על כל דבר מוליך וליצור מקצבים משלך, כמו לנגן בפסנתר על כף היד שלך. נשמע מגניב ממש אז, תן לנו לבנות את זה.
רכיבים נדרשים:
החומרים הנדרשים לפרויקט זה מפורטים להלן, ואין חובה להיצמד לאותו דבר. ברגע שאתה תופס את הרעיון אתה יכול להשתמש בדרך שלך לבנות אותו.
- ארדואיני פרו מיני
- רמקול פייזו
- חיישן להגמיש
- כפפות אצבע
- נגדים 10K
- טרנזיסטורים BC547
- סוללה 9V
תרשים מעגל והסבר:
תרשים המעגל לפסנתר דקלים זה של ארדואינו מוצג להלן.
הפרויקט משתמש בסך הכל בארבעה חיישנים, כלומר שני חיישני פלקס ושני זוגות דרלינגטון הפועלים כחיישן מגע. השתמשנו גם בשני נגדים נפתחים R1 ו- R2 בערך 10k כל אחד, אשר ישמש כנגד נפתח למטה עבור חיישן ה- Flex. כאן נעשה שימוש בחיישן ה- Flex ליצירת שלוש גוונים שונים באמצעות אצבע אחת, בהתבסס על כמה שהוא התכופף. כך שנוכל להפיק 6 צלילים בעזרת שתי אצבעות. למד כאן אודות חיישן ה- Flex.
זוג דרלינגטון:
לפני שנמשיך חשוב לדעת מה זה דרלינגטון ואיך זה בדיוק עובד בפרויקט שלנו. ניתן להגדיר את זוג דרלינגטון כשני טרנזיסטורים דו קוטביים המחוברים באופן שהזרם המוגבר על ידי הראשון מוגבר עוד יותר על ידי הטרנזיסטור השני. זוג דרלינגטון מוצג בתמונה למטה:
כפי שמוצג לעיל השתמשנו בשני טרנזיסטורים BC547 שאספיהם קשורים לאיסוף והפולט של הטרנזיסטור הראשון מחובר לבסיס הטרנזיסטור השני. מעגל זה משמש כמגבר עם רווח, כלומר כל אות קטן הניתן לבסיס הטרנזיסטור הראשון מספיק בכדי להטות את בסיס הטרנזיסטור השני. גופנו משמש כאן כקרקע ולכן בכל פעם שאנו נוגעים בבסיס הטרנזיסטור הטרנזיסטור השני נהיה מוטה. באמצעות זאת לטובתנו בנינו את חיישן המגע לפרויקט זה.
סיכה מספר 2 ו -3 הם סיכות ההפרעה בארדואינו אשר ימשכו גבוה באמצעות נגדי משיכה פנימיים ואז סיכות אלה יוחזקו לקרקע בכל פעם שמתג דרלינגטון ייסגר. בדרך זו כל פעם שאנחנו נוגעים החוט (מהבסיס של 1 st טרנזיסטור) פסיקה תופעל מן Arduino.
שימוש בשתי אצבעות יכול לייצר רק שני סוגים של גוונים ולכן הוספתי גם חיישן כושר שיאפשר לשנות את הטון על סמך כמה שהוא כפוף. תכננתי לייצר שלוש גוונים שונים לכל אצבע בהתבסס על מידת הכפיפה של האצבע (חיישן הגמיש). אתה יכול להגדיל את המספר אם תרצה לקבל יותר גוונים בקצות האצבעות שלך.
הכנתי את הלוח השלם על לוח פרפ כך שהוא ישתלב בקלות בכפות הידיים שלי, אבל אתה יכול להשתמש גם בקרש לחם. רק וודא שגופך נוגע בקרקע של המעגל בשלב כלשהו. ברגע שאתה מלחם הכל זה צריך להראות בערך ככה
השתמשתי בשתי כפפות אצבעות כדי לאבטח את החוטים מזוג דרלינגטון ואת חיישן הגמיש במצב כפי שמוצג לעיל. אתה יכול להמציא רעיון משלך (טוב יותר אם אפשר) לאבטח אותם במקום בזמן שאתה מנגן את הטונים שלך.
תכנות ארדואינו:
התוכנית עבור מחולל טון הברז Arduino זה די ישר קדימה. עלינו רק לשים לב להפרעות מחוטי דרלינגטון ואם נמצא אחד כזה אנחנו צריכים לנגן טון שתלוי בכמה חיישן הגמיש כפוף. הקוד השלם ניתן בסוף ההודעה הזו, אך הסברתי להלן על כמה נתחים חשובים.
הערה: תוכנית זו פועלת בעזרת הספרייה "pitches.h". אז וודא שהוספת את קובץ הכותרת לתוכנית שלך לפני שאתה מרכיב אותה. תוכלו להוריד את קובץ הכותרת pitches.h מכאן.
ב התקנת הפונקציה, אנו לאתחל להצמיד 2 ו 3 כמו קלט עם נגדים למשוך למעלה. אנו מכריזים עליהם גם כסיכות הפסקה ומבצעים את הטון 1 () כאשר יש הפרעה בסיכה 2 ופונקציית הטון 2 () כאשר יש הפרעה בסיכה השלישית. הפרעות אלה יופעלו בכל פעם שסיכות אלה יימצאו נמוכות ממצבן הנמשך.
הגדרת חלל () {pinMode (2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (2), טון 1, LOW); attachInterrupt (digitalPinToInterrupt (3), tone2, LOW); Serial.begin (9600); }
בתוך פונקציית הלולאה , אנו כל הזמן בודקים עד כמה חיישן הגמיש כפוף. ה- FlexSensor 1 שלי למשל נתן ערכים בסביבות 200 כשנשאר שטוח וירד עד 130 כשכופפתי אותו עד למקסימום, אז מיפיתי את הערך בין 200 ל -130 כ -1 ל -3 מכיוון שאני צריך לשחק 3 סוגים שונים של צלילים. עליך לשנות את שתי השורות הללו על סמך ערכי חיישני ה- Flex ומספר הגוונים שלך.
לולאה בטלה () {flexSensor1 = מפה (analogRead (A0), 200,130,1,3); // מיפה עם הערכים שלך בהתבסס על חיישן הגמיש שלך FlexSensor2 = מפה (analogRead (A1), 170,185,1,3); // מיפה עם הערכים שלך בהתבסס על חיישן הגמיש שלך}
כפי שראינו קודם, פונקציית הטון 1 () תבוצע כאשר זוהה הפרעה בסיכה 2. מה שקורה בתוך פונקציית הטון 1 () מוצג לעיל. אנו בוחנים את הערכים של FlexSensor1 ומשמיעים צליל המבוסס על ערך flexSesnor. צלילים יושמעו באמצעות פונקציית הטון של Arduino. הסברנו על פונקציית הטון () בפרויקט הקודם שלנו.
טון בטל 1 () {אם (flexSensor1 == 1) טון (8, NOTE_D4,50); אחרת אם (flexSensor1 == 2) צליל (8, NOTE_A3,50); אחרת אם (flexSensor1 == 3) טון (8, NOTE_G4,50); טון אחר (8, NOTE_D4,50); }
השורה הבאה משמשת לנגינת הטון. אתה יכול לנגן כל צליל הזמין בקובץ הכותרת "pitches.h". השורה הנ"ל למשל מנגנת את ה- NOTE_A3 על הסיכה למשך 50 מילי שניות.
טון (8, NOTE_A3,50); // טון (PinNum, שם הערה, משך זמן);
עובד:
לאחר שהחומרה שלך מוכנה, העלה את הקוד והרכיב אותם על האצבעות. ודא שגופך נוגע בקרקע המעגל בשלב כלשהו. עכשיו פשוט גע בכל חומר מוליך או בגופך ואתה אמור להיות מסוגל לשמוע את הטון בהתאמה. אתה יכול לנגן מנגינה או מוזיקה משלך על ידי הקשה על פרקי זמן שונים ומיקומים שונים.
הוידאו שלמטה מראה את העבודה המלאה של ה פרויקט. מקווה שנהניתם לבנות את הפרויקט, כל הצעה ושאלה ניתן לפרסם בקטע ההערות למטה. בדוק גם את נגן האודיו של Arduino ופרויקט מחולל הטונים של Arduino.