תוכן עניינים:

פסנתר פי אולטראסוני עם פקדי מחוות!: 10 שלבים (עם תמונות)
פסנתר פי אולטראסוני עם פקדי מחוות!: 10 שלבים (עם תמונות)

וִידֵאוֹ: פסנתר פי אולטראסוני עם פקדי מחוות!: 10 שלבים (עם תמונות)

וִידֵאוֹ: פסנתר פי אולטראסוני עם פקדי מחוות!: 10 שלבים (עם תמונות)
וִידֵאוֹ: שירים ישראליים/עבריים שקטים בפסנתר - Relaxing israeli/hebrew songs for piano 2024, יולי
Anonim
Image
Image
פסנתר פי אולטראסוני עם פקדי מחוות!
פסנתר פי אולטראסוני עם פקדי מחוות!

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

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

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

יצרתי את הפרויקט הזה בשיתוף עם The Gizmo Dojo (מרחב המייסדים המקומי שלי בברומפילד, CO) כדי להכין כמה תערוכות אינטראקטיביות שנוכל לקחת לאירועי STEM/STEAM מקומיים וליירי פייר.

אנא עיין גם בתיעוד ובהדרכות העדכניות ביותר בכתובת https://theotherandygrove.com/octasonic/ הכולל כעת מידע על גרסת Python של הפרויקט הזה (הוראה זו נכתבה לגרסת Rust).

שלב 1: מרכיבים

לשם הוראה זו תזדקק למרכיבים הבאים:

  • פטל פטל (2 או 3) עם כרטיס SD
  • 8 חיישנים אולטרסוניים HC-SR04
  • לוח פריצה אוקטוניק
  • ממיר רמה לוגי דו-כיווני
  • 32 x 12 "חוטי מגשר נקבה-נקבה לחיבור החיישנים האולטראסוניים
  • 13 x 6 "חוטי מגשר נקבה-נקבה לחיבור ה- Raspberry Pi, Octasonic, and Logic Converter Level.
  • ספק כוח מתאים ל- Raspberry Pi
  • רמקולים למחשב או משהו דומה

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

לחיישנים אולטרסוניים HC -SR04 יש 4 חיבורים - 5V, GND, טריגר ואקו. בדרך כלל, טריגר ואקו מחוברים לסיכות נפרדות במיקרו -בקר או Raspberry Pi אבל זה אומר שתצטרך להשתמש 16 סיכות לחיבור 8 חיישנים, וזה לא מעשי. כאן נכנס לוח הפריצה של אוקטוניק. לוח זה מתחבר לכל החיישנים ובעל מיקרו -בקר ייעודי המנטר את החיישנים ולאחר מכן מתקשר עם ה- Raspberry Pi באמצעות SPI.

HC-SR04 דורשים 5V ו- Raspberry Pi הוא רק 3.3V, ולכן זו הסיבה שאנו זקוקים גם לממיר הרמה הלוגית שתחבר את ה- Raspberry Pi ללוח הפריצה של אוקטוניק.

שלב 2: חבר את החיישנים האולטראסוניים ללוח האוקטוניק

חבר את החיישנים האולטראסוניים ללוח האוקטוניק
חבר את החיישנים האולטראסוניים ללוח האוקטוניק
חבר את החיישנים האולטראסוניים ללוח האוקטוניק
חבר את החיישנים האולטראסוניים ללוח האוקטוניק

השתמש ב -4 חוטי מגשר נקבה-נקבה כדי לחבר כל חיישן אולטרסאונד ללוח, היזהר בחיבורם בצורה הנכונה. הלוח מתוכנן כך שהסיכות יהיו באותו הסדר כמו הסיכות בחיישן הקולי. משמאל לימין על הלוח, הסיכות הן GND, Trigger, Echo, 5V.

שלב 3: חבר את ממיר הרמה הלוגית ללוח האוקטוניק

חבר את ממיר הרמה הלוגית ללוח האוקטוניק
חבר את ממיר הרמה הלוגית ללוח האוקטוניק

ה- Raspberry Pi ולוח אוקטוניק מתקשרים באמצעות SPI. SPI משתמש ב -4 חוטים:

  • Master In, Slave Out (MISO)
  • Master Out, Slave In (MOSI)
  • שעון סידורי (SCK)
  • בחירת עבדים (SS)

בנוסף, עלינו לחבר חשמל (5V ו- GND).

ממיר רמת הלוגיקה יש שני צדדים - מתח נמוך (LV) ומתח גבוה (HV). הפטל יתחבר לצד ה- LV מכיוון שהוא 3.3V. ה- Octasonic יתחבר לצד ה- HV מכיוון שהוא 5V.

שלב זה נועד לחיבור ה- Octasonic לצד ה- HV של ממיר רמת הלוגיקה

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

החיבורים מהאוקטוניק לממיר הרמה הלוגית צריכים להיות כדלקמן:

  • 5V עד HV
  • SCK ל- HV4
  • MISO ל- HV3
  • MOSI עד HV2
  • SS עד HV1
  • GND ל- GND

שלב 4: חבר את ממיר הרמה הלוגית ל- Raspberry Pi

חבר את ממיר הרמה הלוגית ל- Raspberry Pi
חבר את ממיר הרמה הלוגית ל- Raspberry Pi

ה- Raspberry Pi ולוח אוקטוניק מתקשרים באמצעות SPI. SPI משתמש ב -4 חוטים:

  • Master In, Slave Out (MISO)
  • Master Out, Slave In (MOSI)
  • שעון סידורי (SCK)
  • בחירת עבדים (SS)

בנוסף, עלינו לחבר מתח (3.3V ו- GND). ממיר רמת הלוגיקה יש שני צדדים - מתח נמוך (LV) ומתח גבוה (HV). הפטל יתחבר לצד ה- LV מכיוון שהוא 3.3V. ה- Octasonic יתחבר לצד ה- HV מכיוון שהוא 5V.

שלב זה נועד לחיבור ה- Raspberry Pi לצד ה- LV של ממיר רמת הלוגיקה

החיבורים מ- Raspbery Pi לממיר הרמה הלוגית צריכים להיות כדלקמן:

  • 3.3V עד LV
  • GPIO11 (SPI_SCLK) עד LV4
  • GPIO09 (SPI_MISO) ל- LV3
  • GPIO10 (SPI_MOSI) עד LV2
  • GPIO08 (SPI_CE0_N) SS ל- LV1
  • GND ל- GND

השתמש בתרשים המצורף לשלב זה כדי לאתר את הסיכות הנכונות ב- Raspberry Pi!

שלב 5: חבר את Raspberry Pi 5V ל- 5V אוקטוניק

חבר את Raspberry Pi 5V ל- 5V אוקטוניק
חבר את Raspberry Pi 5V ל- 5V אוקטוניק
חבר את Raspberry Pi 5V ל- 5V אוקטוניק
חבר את Raspberry Pi 5V ל- 5V אוקטוניק

יש חוט אחרון להוסיף. עלינו למעשה להפעיל את לוח האוקטוניק עם 5V, אז אנו עושים זאת על ידי חיבור אחד מסיכות ה- 5V של Raspberry ל- pin 5V בכותרת ה- AVR של Octasonic. זהו הסיכה השמאלית התחתונה בגוש הכותרת של AVR (זהו הבלוק 2 x 3 בפינה השמאלית העליונה של הלוח). עיין בתמונה המצורפת המציגה היכן נמצא בלוק ה- AVR.

עיין בתרשים המצורף האחר כדי למצוא את סיכת 5V ב- Raspberry Pi.

שלב 6: התקן תוכנה

התקן את Raspian

התחל בהתקנה נקייה של Raspbian Jessie ולאחר מכן עדכן אותה לגרסה העדכנית ביותר:

עדכון sudo apt-get

sudo apt-get upgrade

אפשר SPI

עליך להפעיל SPI ב- Raspberry Pi כדי שהפרויקט הזה יעבוד! השתמש בכלי התצורה של Raspberry Pi לשם כך.

חשוב גם לאתחל את ה- Pi לאחר שהוא מאפשר ל- SPI להיכנס לתוקפו

התקן את FluidSynth

Fluidsynth היא תוכנת MIDI חינם של תוכנת חינם. אתה יכול להתקין אותו משורת הפקודה באמצעות הפקודה הבאה:

sudo apt-get להתקין fluidsynth

התקן את שפת תכנות החלודה

פסנתר ה- Pi האולטראסוני מיושם בשפת תכנות החלודה מ- Mozilla (זה כמו C ++ אבל בלי החלקים הרעים). זה מה שמשתמשים כל הילדים המגניבים בימים אלה.

עקוב אחר ההוראות בכתובת https://rustup.rs/ להתקנת Rust. כדי לחסוך לך זמן, ההנחיות הן הפעלת פקודה אחת זו. אתה יכול לקבל את תשובות ברירת המחדל לכל שאלה במהלך ההתקנה.

הערה: מאז פרסום ההוראה הזו, יש כמה בעיות בהתקנת חלודה ב- Raspberry Pi. תזמון גרוע:-/ אבל שיניתי את הפקודה שלהלן כדי לעקוף את הבעיה. נקווה שהם יתקנו זאת בקרוב. אני עובד על יצירת תמונה שאנשים יכולים להוריד ולצרוב אותה על כרטיס SD. אם תרצה, אנא צור איתי קשר.

ייצוא RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | ש

הורד את קוד המקור של פסנתר אולטראסוני

קוד המקור של קוד המקור של פסנתר האולטרה סאונד מתארח ב- github. ישנן שתי אפשרויות לקבלת הקוד. אם אתה מכיר git ו- github, תוכל לשכפל את הריפו:

git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git

לחלופין, תוכל להוריד קובץ zip עם הקוד העדכני ביותר.

ערכו את קוד המקור

cd UltrasonicPiPiano

בניית מטען -שחרור

בדוק את הקוד

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

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

הפעלת מטען -שחרור

אם אתה סקרן, הדגל "-שחרור" אומר לרוסט לאסוף את הקוד ביעילות רבה ככל האפשר, בניגוד להגדרת ברירת המחדל של "--debug".

שלב 7: עשה קצת מוזיקה

וודא שאתה עדיין בספרייה שבה הורדת את קוד המקור והפעל את הפקודה הבאה.

סקריפט "run.sh" זה מוודא שהקוד נאסף ולאחר מכן מריץ את הקוד, ומביא את הפלט לצנרת נוזלים.

./run.sh

ודא שיש לך רמקולים מוגברים המחוברים לשקע האודיו 3.5 מ מ ב- Raspberry Pi וכדאי שתשמע מוזיקה תוך כדי העברת הידיים על החיישנים.

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

sudo amixer cset numid = 3 1

שינוי עוצמת הקול

עוצמת הקול (או "רווח") מצוינת עם הפרמטר "-g" ל- fluidsynth. באפשרותך לשנות את הסקריפט run.sh ולשנות ערך זה. שימו לב כי שינויים קטנים בפרמטר זה גורמים לשינוי גדול בנפח, לכן נסו להגדיל אותו בכמויות קטנות (כמו 0.1 או 0.2).

שלב 8: בקרת מחוות

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

הרעיון פשוט מאוד. התוכנה עוקבת אחר אילו חיישנים מכוסים (בתוך 10 ס"מ) ואילו לא. זה מתורגם ל -8 מספרים בינאריים (1 או 0). זה מאוד נוח, מכיוון שרצף של 8 מספרים בינאריים יוצר "בייט" שיכול לייצג מספרים בין 0 ל -255. אם אתם לא יודעים כבר על מספרים בינאריים אז אני ממליץ בחום לחפש הדרכה. מספרים בינאריים הם מיומנות בסיסית ללמוד אם אתה רוצה ללמוד עוד על תכנות.

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

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

שלב 9: הכנת מארז

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

שלב 10: פתרון בעיות והשלבים הבאים

פתרון תקלות

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

בעיה נפוצה נוספת היא כישלון הפעלת SPI והפעלה מחדש של ה- pi.

בקר בכתובת https://theotherandygrove.com/octasonic/ לתיעוד מלא הכולל טיפים לפתרון בעיות, עם מאמרים ספציפיים של Rust ו- Python, וגם מידע על איך לקבל תמיכה.

הצעדים הבאים

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

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

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

מוּמלָץ: