תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
ברוכים הבאים לכולם, אני רוצה להראות לך ממשק דיגיטלי מוזיקלי משלי. הצלחתי במהלך תואר הסאונד הטכני שלי, אלה עבודות המחקר שלי. כדי להתחיל, שאלתי אותי איך אני יכול להלחין מוזיקה ללא DAW, עם ציוד ממוחזר ונגינת אפשרות עצמאית.
במדריך זה, אלמד אותך כיצד להשתמש בתקשורת טורית לשליחת/קבלת מידע על חיישנים (אנלוגי ודיגיטלי) מ- Arduino ל- Raspberry pi לכיוון תוכנות טהרות לתוכנת צליל.
החומרים הנדרשים הם:
x1 פטל PI3
x1 Boîter de protection PI3
x1 מיקרו SD (32G)
x1 ארדואינו UNO
x1 חיישן IR Sharp GP2Y0E02B
x1 לחם
מד בדיקת לוחית x1 (0.2)
התנגדות x28 10MΩ
x2 התנגדות 1.8kΩ
x1 התנגדות 10kΩ
x20 עקבות מסוף זכר/נקבה
x1 נושא הלחמה
x1 סליל פח (1 מטר)
x1 מלחם
רצועות גמישות x25 זכר/זכר
שלב 1: חיישנים
השתמשתי ב -4 פיזואלקטרים שמגיעים מרחוק Harmonix XBOX 360 של "גיבור הגיטרה". השתמשתי בלחצן הפעלה/כיבוי כיוון שגיר מתג הקנים של השלט של גיבור הדוושה של גיטרת הרגל היה בחוץ.
השתמשתי בחיישן IR Sharp GP2Y0E02B. עבור כל החיישנים האלה, עשיתי הרכבה נפתחת להפעלה יעילה …
כך שמבחינה אמפירית מצאתי ערך התנגדות לחיישן כפתורים וחיישן IR. עם זאת בדקתי פיזואלקטרי על מנת לדעת את קנה המידה המלא של זה, וערך ההתנגדות הקבוע הנדרש והחל על 4 החיישנים האנלוגיים.
שלב 2: מונטאז 'משוך למעלה
לאחר בדיקת פיזואלקטרי עם מחולל מתח, תיקנתי את ערך ההתנגדות ב -7 MΩ.
משיכת ההתנגדות לכפתורים הייתה 10 kΩ.
עבור חיישן IR השתמשתי בשתי התנגדות 1, 8kΩ בין מתח אספקה בהתאמה ל- SDA (נתונים) ו- SCL (שעון).
היזהר כי ערכי ההתנגדות הללו מיועדים ל- RTX Arduino UNO; משהו לדעת על כניסת עכבה של Arduino: 10MΩ.
אתה יכול לראות את המונטאז 'הנפתח בתמונה האחרונה של שלב זה; תיקנתי רצועות פיזואלקטריות ב 0 1 2 3 פינים ב- UNO, רצועת כפתורים ב 2 פינים דיגיטליים אך מתקשרת את הערך על 6 פינים ברצועת חיישן UNO ו- IR ב -4 5 פינים ב- UNO, כל הכניסות האנלוגיות של ה- Arduino Uno.
שלב 3: קוד Arduino
כדי להבטיח שהפעולה יעילה, בדקתי לשלוח/לקבל מידע על חיישנים לארדואינו.
שמתי קבצים בתיאור אבל אתה יכול למצוא אותם בחלק הדוגמאות של התכנות של Arduino Genuino, למעט חיישן IR מכיוון שהוא לא שלם, שיניתי מעט מידע בסעיף "הגדר" כמו "shift" ושיניתי את חישוב המדידה להיות קבוע בוריאציות מרחק. כנראה שראית "חוט" בקוד חיישן IR. אכן השתמשתי בפרוטוקול I2C כדי לתקשר. אני מזמין אותך לראות את פרוטוקול I2C, מעניין מאוד, אתה יכול להשתמש בפרוטוקול זה כדי לשדר בזמן אמת את כל החיישנים הדיגיטליים שאתה רוצה.
שלב 4: שני תקשורת סדרתית של ארדואינו פטל
כן: D
כפי שניתן לראות בתמונה הראשונה, הקישור ארדואינו-פטל הוא תקע USB.
מצאתי דרך לקבל מידע של חיישנים ישירות על ידי PureData Extended המותקן ב- Raspberry PI. מדוע מורחבת PureData? מכיוון שגרסת הוניל אינה משתמשת באותה ספרייה מאשר יישום בסביבת Raspbian.
אז השק את StandardFirmata בארדואינו ג'נווינו כדי לתקן I/O ולערך וריאציות בדרך הנכונה!
כדי לקבל את המידע של ערך ב- Raspberry PI, קיימים 2 פרוטוקולים: Firmata ו- Msg.
אני בוחר ב- Firmata מסיבה אחת, היה פשוט יותר לקבל מידע ב- PureData באמצעות תיקון Pduino, סביבה אחת.
אני מזמין אותך לגלות את מס 'אם אתה משתמש בפרוטוקול OSC.
שלב 5: תיקון PureData התקבל
ואכן, לאחר שבועות של קידוד ב- Genuino, הצלחתי לקבל את כל המידע של החיישן שלי בעמוד אחד, זה איפשר לראות וריאציות בזמן אמת הודות ל- Pduino, תיקון ב- Puredata, תוספת מיומנויות.
משלב זה, איננו נוגעים יותר בקוד ארדואינו. המידע של Value קריא.
כפי ששמתי לב בשלב 3, קיבלתי מידע מכפתור דיגיטלי באנלוגי 6 פינים, היה פשוט לראות הפעלה יעילה של התקשורת. הכל בשורה אחת.
שלב 6: פיתוח PureData
PureData היא שפה ספציפית ועליך להקדיש את זמנך הפנוי כדי להצליח לעשות טלאים נחמדים.
חלק מהתיקונים של PureData יהיו זמינים ב- GitHub.
אני מקווה שמה שכתבתי כאן עזר לך להתחיל בפרויקט משלך קרוב שלי.