תוכן עניינים:
- שלב 1: רשימת אספקה
- שלב 2: עיצוב הכיפה הגיאודזית
- שלב 3: בניית כיפה באמצעות תמוכות ומחברים
- שלב 4: צלחות בסיס לחיתוך והרכבה בלייזר
- שלב 5: סקירת אלקטרוניקה
- שלב 6: הרכבת נוריות על הכיפה
- שלב 7: עיצוב הר ויישום הרכבה
- שלב 8: פלט חיישן מרבב
- שלב 9: פיזור אור עם אקריליק
- שלב 10: יצירת מוזיקה באמצעות הכיפה באמצעות MIDI
- שלב 11: הפעלת הכיפה
- שלב 12: בסיס כיפה מעגלית
- שלב 13: בסיס כיפת הפנטגון
- שלב 14: תכנות הכיפה
- שלב 15: תמונות של כיפה שהושלמה
וִידֵאוֹ: כיפת LED גיאודזית אינטראקטיבית: 15 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
בניתי כיפה גיאודזית המורכבת מ -120 משולשים עם נורית LED וחיישן בכל משולש. ניתן להתייחס לכל LED בנפרד וכל חיישן מכוון במיוחד למשולש יחיד. הכיפה מתוכנתת עם Arduino להדליק ולהפיק אות MIDI בהתאם למשולש שאתה מניח את היד שלך.
עיצבתי את הכיפה להיות תצוגה מהנה שמביאה אנשים להתעניין באור, אלקטרוניקה וצליל. מכיוון שהכיפה מתחלקת יפה לחמישה חלקים, עיצבתי את הכיפה כדי שיהיו לה חמישה יציאות MIDI נפרדות שיכולות לכל אחת להיות צליל שונה. זה הופך את הכיפה לכלי נגינה ענק, אידיאלי לנגינת מוסיקה עם מספר אנשים בו זמנית. בנוסף לנגינת מוזיקה, תיכננתי גם את הכיפה להצגות אור וניגון של סימון ופונג. הקוטר של המבנה הסופי הוא קצת יותר ממטר וגובהו 70 ס מ, והוא בנוי בעיקר מחלקי עץ, אקריליק ותלת -ממד.
ישנם כמה הוראות נהדרות על שולחנות LED וקוביות שהשרתו אותי להתחיל בפרויקט הזה. עם זאת, רציתי לנסות לסדר את הלדים בגיאומטריה אחרת. לא יכולתי לחשוב על מבנה טוב יותר לפרויקט מאשר כיפה גיאודזית, המתועדת היטב גם על Instructables. אז הפרויקט הזה הוא רמיקס/מיזוג של טבלאות LED וכיפות גיאודזיות. להלן קישורים לשולחן ה- LED ולמדריכי הכיפה הגיאודזית שבדקתי בתחילת הפרויקט.
שולחנות וקוביות LED:
www.instructables.com/id/RGB-LED-Pixel-Touc…
www.instructables.com/id/Touch-LED-Table-Re…
www.instructables.com/id/Led-Cube-8x8x8/
www.instructables.com/id/500-LED-Pixel-RGB-…
כיפה גיאודזית:
www.instructables.com/id/Folding-Geodesic-D…
www.instructables.com/id/Geodesic-dome-kit/
שלב 1: רשימת אספקה
חומרים:
1. עץ לתמוכות הכיפה ובסיס הכיפה (הכמות תלויה בסוג ובגודל הכיפה)
2. רצועת LED ניתנת להתייחסות (16.4ft/5m כתובת צבע LED פיקסל רצועת 160leds Ws2801 Dc5v)
3. Arduino Uno (Atmega328 - מורכב)
4. לוח אב טיפוס (פנטה אנג'ל דו צדדי אב טיפוס PCB אוניברסלי (7x9 ס מ))
5. אקריליק להפצת נוריות LED (גיליון אקרילי יצוק, שקוף, גודל 12 "x 12" x 0.118 ")
6. ספק כוח (Aiposen 110/220V עד DC12V 30A 360W מתג ספק כוח)
7. ממיר באק עבור Arduino (RioRand LM2596 ממיר באק DC-DC 1.23V-30V)
8. ממיר באק לנורות וחיישנים (DROK Mini ממיר מתח באק חשמלי 15A)
9. 120 חיישני IR (מודול חיישן להימנעות ממכשירי אינפרא אדום)
10. חמישה מרבבים של 16 ערוצים (פריצת MUX אנלוגי/דיגיטלי - CD74HC4067)
11. שישה מרבבים של 8 ערוצים (פריצת מרבב - 8 ערוצים (74HC4051))
12. חמישה מרבבים 2 ערוצים (MAX4544CPA+)
13. חוט עוטף חוט (הלחמה PCB 0.25 מ מ נחושת מצופה נחושת Dia חוט עוטף חוט 305M 30AWG אדום)
14. חוט חיבור (Core Solid, 22 AWG)
15. כותרות סיכה (Gikfun 1 x 40 פינים 2.54 מ מ כותרת סיכה אחת של פריצה)
16. חמישה שקעי MIDI (שקע MIDI ידידותי ללוח הלחם (DIN 5 פינים))
17. עשר נגדים של 220 אוהם לשקעי MIDI
18. מרווחי מעמד להרכבת אלקטרוניקה לכיפה (Stand-off Spacer Hex M3 זכר x M3 נקבה)
19. מתאמי חוט לחיבור סטנדאפים לעץ (E-Z Lok מושחל מושחל, פליז, חוט סכין)
20. דבק אפוקסי או גורילה
21. קלטת חשמל
22. הלחמה
כלים:
1. תחנת הלחמה
2. מקדחה כוח
3. מסור עגול
4. מלטשת מסלולית
5. ג'יג ראה
6. מסור מיטרה
7. מדד
8. מדפסת תלת מימד
9. חותכי חוטים
10. כלי לעטוף חוטים
11. חותך לייזר לחיתוך לוחות LED (אופציונלי)
12. חנות CNC לבסיס כיפה (אופציונלי)
שלב 2: עיצוב הכיפה הגיאודזית
כפי שציינתי במבוא, ישנם מספר מקורות מקוונים לבניית כיפה גיאודזית משלך. אתרים אלה מספקים מחשבוני כיפה הקובעים את אורך כל צד (כלומר תמוכת) ומספר המחברים הדרושים לכל סוג של כיפה שתרצו לבנות. המורכבות של כיפה גיאודזית (כלומר צפיפות המשולשים) מוגדרת לפי המעמד שלה (1V, 2V, 3V וכן הלאה), כאשר מורכבות גבוהה יותר הופכת לקירוב טוב יותר של משטח כדורית מושלם. כדי לבנות כיפה משלך, תחילה עליך לבחור קוטר כיתה ומעמד.
השתמשתי באתר בשם Domerama כדי לעזור לי לתכנן כיפה 4V שקטומה ל -5/12 של כדור עם רדיוס של 40 ס מ. עבור סוג זה של כיפה, ישנם שישה תמוכות באורך שונה:
30 X "A" - 8.9 ס"מ
30 X "B" - 10.4 ס"מ
50 X "C" - 12.4 ס"מ
40 X "D" - 12.5 ס"מ
20 X "E" - 13.0 ס"מ
20 X "F" - 13.2 ס"מ
זה סך של 190 תמוכות המוסיפות חומר של עד 2223 ס"מ (73 רגל). השתמשתי בעץ אורן 1x3 (3/4 "× 2-1/2") עבור התמוכות בכיפה זו. כדי לחבר את התמוכות, עיצבתי והדפסתי מחברים בתלת מימד באמצעות Autocad. ניתן להוריד את קבצי STL בסוף שלב זה. מספר המחברים לכיפה 4V 5/12 הוא:
מחבר 20 X 4
מחבר 6 X 5
מחבר 45 X 6
בשלב הבא, אני מתאר כיצד הכיפה הזו בנויה עם תמוכות העץ והמחברים המודפסים בתלת מימד שעיצבתי.
שלב 3: בניית כיפה באמצעות תמוכות ומחברים
בעזרת החישובים מדומרמה לכיפה 4V 5/12, חתכתי את התמוכות בעזרת מסור עגול. 190 התמוכות סומנו והונחו בקופסה לאחר החיתוך. 71 המחברים (20 מחברי ארבעה, 6 מחברים חמישה ו -45 מחברים שישה) הודפסו בתלת מימד באמצעות Makerbot. תמוכות העץ הוכנסו למחברים לפי התרשים שיצר דומרמה. התחלתי את הבנייה מלמעלה וזזתי החוצה באופן רדיאלי.
לאחר חיבור כל התמוכות, הסרתי בכל פעם תמוכת אחת והוספתי אפוקסי לעץ ולמחבר. למחברים תוכננה גמישות באופן חיבור המבנים, ולכן היה חשוב לבדוק את הסימטריה של הכיפה לפני הוספת אפוקסי כלשהו.
שלב 4: צלחות בסיס לחיתוך והרכבה בלייזר
כעת, כאשר שלד הכיפה בנוי, הגיע הזמן לחתוך את לוחות הבסיס המשולשים. לוחות בסיס אלה מחוברים לתחתית התמוכות, ומשמשים להרכבת הנורות לד הכיפה. בתחילה חתכתי את לוחות הבסיס מתוך דיקט בעובי 5 מ מ על ידי מדידת חמשת המשולשים השונים הנמצאים בכיפה: AAB (30 משולשים), BCC (25 משולשים), DDE (20 משולשים), CDF (40 משולשים)) ו- EEE (5 משולשים). הממדים של כל צד וצורת המשולשים נקבעו באמצעות מחשבון כיפה (דומרמה) וקצת גיאומטריה. לאחר שחתכתי לוחות בסיס עם פאזל, ציירתי את עיצוב המשולש באמצעות Coral Draw, וחתכתי את לוחיות הבסיס הנותרות בעזרת חותך לייזר (הרבה יותר מהר!). אם אין לך גישה לחותך לייזר, אתה יכול לצייר את לוחות הבסיס על דיקט בעזרת סרגל ומדחס ולחתוך את כולם בעזרת פאזל. לאחר חיתוך לוחיות הבסיס הופכים את הכיפה והצלחות מודבקות לכיפה באמצעות דבק עץ.
שלב 5: סקירת אלקטרוניקה
באיור לעיל מוצג סכמטי של האלקטרוניקה של הכיפה. Uno Arduino משמש לכתיבה וקריאה של אותות לכיפה. כדי להאיר את הכיפה, פס LED של RGB מועבר על הכיפה כך שמנורת LED תמוקם בכל אחד מ -120 המשולשים. למידע על אופן פעולת רצועת LED, עיין במדריך זה. ניתן להתייחס לכל LED בנפרד באמצעות ה- Arduino, המייצר נתונים סדרתיים ואות שעון לרצועה (ראו את הסיכה A0 ו- A1 בתרשים). רק עם הרצועה ושני האותות האלה בלבד, תוכל לקבל כיפת תאורה מדהימה. ישנן דרכים אחרות בכתיבת אותות להרבה נוריות מארדואינו, כגון צ'ארפילקס ורשימות משמרות.
על מנת ליצור אינטראקציה עם הכיפה, הקמתי חיישן IR מעל כל נורית. חיישנים אלה משמשים לזיהוי כאשר ידו של מישהו קרובה למשולש על הכיפה. מכיוון שלכל משולש בכיפה יש חיישן IR משלו ויש 120 משולשים, תצטרך לעשות איזו ריבוב לפני הארדואינו. החלטתי להשתמש בחמישה מרבבים של 24 ערוצים (MUX) ל -120 החיישנים בכיפה. לפניכם הוראה בנושא ריבוב, אם אינכם מכירים. MUX של 24 ערוצים דורש חמישה אותות בקרה. בחרתי בסיכות 8-12 בארדואינו, כדי שאוכל לבצע מניפולציה ביציאות (ראה מידע 10 על שלב 10). הפלט של לוחות ה- MUX נקרא באמצעות סיכות 3-7.
כללתי גם חמישה יציאות MIDI על הכיפה כדי שתוכל להפיק צליל (שלב 11). במילים אחרות, חמישה אנשים יכולים לנגן בכיפה בו זמנית כאשר כל פלט משמיע צליל אחר. יש רק סיכת TX אחת על ה- Arduino, כך שחמישה אותות MIDI דורשים demultiplexing. מכיוון שפלט ה- MIDI מיוצר בזמן שונה מקריאת חיישן ה- IR, השתמשתי באותות בקרה זהים.
אחרי שכל כניסות חיישן ה- IR נקראות לתוך הארדואינו, הכיפה יכולה להאיר ולהשמיע צלילים בכל זאת שתתכנת את הארדואינו. יש לי כמה דוגמאות בשלב 14 להוראה זו.
שלב 6: הרכבת נוריות על הכיפה
מכיוון שהכיפה כה גדולה, יש לחתוך את רצועת הלד על מנת להציב נורית אחת על כל משולש. כל LED מודבק על המשולש באמצעות דבק סופר. משני צידי הנורית, נקדח חור דרך לוח הבסיס כדי להעביר כבלים דרך הכיפה. לאחר מכן הלחמתי חוט חיבור בכל מגע על הנורית (5V, קרקע, שעון, אות) והזנתי את החוטים דרך לוח הבסיס. חוטים אלה נחתכים כך שהם ארוכים מספיק כדי להגיע לנורית הבאה על הכיפה. החוטים נמשכים אל הלד הבא, והתהליך נמשך. חיברתי את הנורות בתצורה שתמזער את כמות החוט הדרושה ועדיין הגיוני להתייחס לנורות באמצעות Arduino מאוחר יותר. כיפה קטנה יותר תבטל את הצורך בחיתוך הרצועה ותחסוך הרבה זמן הלחמה. אפשרות נוספת היא להשתמש בנורות RGB נפרדות עם רשמי משמרות.
תקשורת סדרתית לרצועה מושגת באמצעות שני סיכות (סיכת נתונים ושעון) מהארדואינו. במילים אחרות, הנתונים להארת הכיפה מועברים מנורית אחת לאחרת כשהיא עוזבת את סיכת הנתונים. להלן קוד דוגמה שונה מפורום ארדואינו זה:
// הגדל את כיפתו כולה וצמצם את עוצמת הצבע היחיד
#define numLeds 120 // מספר נוריות // OUTPUT PINS // int clockPin = A1; // הגדר סיכת שעון int dataPin = A0; // הגדר סיכת נתונים // VARIABLES // int red [numLeds]; // אתחל מערך עבור רצועת LED int ירוק [numLeds]; // אתחל מערך עבור רצועת LED int blue [numLeds]; // אתחל מערך לרצועת LED // קנה מידה כפול קבוע A = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1}; // חלק מעוצמת ההתקנה של חללי נוריות () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (אדום, 0, numLeds); memset (ירוק, 0, numLeds); memset (כחול, 0, numLeds); } void updatestring (int redA [numLeds], int greenA [numLeds], int blueA [numLeds]) {for (int i = 0; i <numLeds; i ++) {shiftOut (dataPin, clockPin, MSBFIRST, redA ); shiftOut (dataPin, clockPin, MSBFIRST, greenA ); shiftOut (dataPin, clockPin, MSBFIRST, blueA ); }} לולאת חלל () {for (int p = 0; p <20; p ++) // לולאה להגברת עוצמת האור של הכיפה {סולם כפול = סולם A [p]; עיכוב (20); for (int i = 0; i <numLeds; i ++) // לעבור בין כל נוריות LED {אדום = 255 * סולם; ירוק = 80 * קנה מידה; כחול = 0; } updatestring (אדום, ירוק, כחול); // עדכן רצועת LED}}
שלב 7: עיצוב הר ויישום הרכבה
החלטתי להשתמש בחיישני IR לכיפה. לחיישנים אלה יש נורית IR ומקלט. כאשר אובייקט מגיע אל מול החיישן, קצת קרינת IR ממנורת ה- IR משתקפת לעבר המקלט. התחלתי את הפרויקט הזה על ידי ייצור חיישני IR משלי, שהתבססו על ההנחיות של ריצ'רדובינה. כל ההלחמה ארכה יותר מדי זמן, אז רכשתי מאיביי 120 חיישני IR שכל אחד מהם מפיק פלט דיגיטלי. סף החיישן מוגדר עם פוטנציומטר על הלוח כך שהתפוקה גבוהה רק כאשר יד ליד המשולש ההוא.
כל משולש מורכב מלוח בסיס LED דיקט, יריעה של אקריליק מפוזר הרכוב כ -2.5 ס מ מעל לוח הלד וחיישן IR. החיישן לכל משולש הותקן על דף דיקט דק המעוצב כמו מחומש או משושה בהתאם למיקום על הכיפה (ראו האיור למעלה). קידחתי חורים בבסיס חיישן ה- IR כדי להרכיב את חיישני ה- IR, ולאחר מכן חיברתי את הקרקע ואת סיכות 5V בעזרת חוט גלישת חוט וכלי גלישת חוטים (חוטים אדומים ושחורים). לאחר חיבור קרקע ו- 5V, עטפתי חוט ארוך על גבי כל פלט (צהוב), אדמה ו- 5V כדי לעבור דרך הכיפה.
תושבות חיישן ה- IR המשושה או המחומש הוכנסו לאחר מכן לאפוקס אל הכיפה, ממש מעל המחברים המודפסים בתלת -ממד, כך שהחוט יכול לעבור דרך הכיפה. מכיוון שהחיישנים מעל המחברים, הצלחתי לגשת ולהתאים את הפוטנציומטרים בחיישני ה- IR השולטים ברגישות החיישנים. בשלב הבא אתאר כיצד מחברים את הפלט של חיישני ה- IR למכפילים ונקראים לתוך הארדואינו.
שלב 8: פלט חיישן מרבב
מכיוון של- Arduino Uno יש רק 14 סיכות קלט/פלט דיגיטליות ו -6 סיכות כניסה אנלוגיות ויש 120 אותות חיישן שחייבים לקרוא, הכיפה דורשת מרבבים לקרוא בכל האותות. בחרתי לבנות חמישה מרבבים של 24 ערוצים, שכל אחד מהם קורא 24 מחיישני ה- IR (ראו איור סקירת האלקטרוניקה). לוח ה- MUX בן 24 הערוצים מורכב מלוח פריצה מסוג MUX בעל 8 ערוצים, לוח פריצה מסוג MUX בן 16 ערוצים ו- MUX דו-ערוצי. כותרות סיכות מולחמו לכל לוח פריצה, כך שניתן יהיה לחבר אותן ללוח אב טיפוס. בעזרת כלי לעטוף חוט, חיברתי לאחר מכן את הקרקע, 5V ואת סיכות אות הבקרה של לוחות הפריצה של MUX.
MUX בן 24 ערוצים דורש חמישה אותות בקרה, אותם בחרתי לחבר לפין 8-12 בארדואינו. כל חמשת ה- MUX של 24 הערוצים מקבלים את אותם אותות הבקרה מהארדואינו ולכן חיברתי חוט מסיכות הארדואינו ל- MUX של 24 הערוצים. היציאות הדיגיטליות של חיישני ה- IR מחוברות לסיכות הקלט של ה- MUX בעל 24 הערוצים, כך שניתן לקרוא אותן באופן סדרתי ל- Arduino. מכיוון שיש חמישה סיכות נפרדות לקריאה בכל 120 יציאות החיישן, כדאי לדמיין את הכיפה מתחלקת לחמישה חלקים נפרדים המורכבים מ -24 משולשים (בדוק את צבעי הכיפה באיור).
באמצעות מניפולציה ביציאת Arduino, תוכל להגדיל במהירות את אותות הבקרה הנשלחים על ידי סיכות 8-12 למכפילים. צירפתי כאן קוד דוגמה להפעלת המרבבים:
int numChannel = 24;
// יציאות // int s0 = 8; // פקד MUX 0 - PORTbD int s1 = 9; // פקד MUX 1 - PORTb int s2 = 10; // בקרת MUX 2 - PORTb int s3 = 11; // בקרת MUX 3 - PORTb int s4 = 12; // MUX control 4 - PORTb // INPUTS // int m0 = 3; // קלט MUX 0 int m1 = 4; // קלט MUX 1 int m2 = 5; // קלט MUX 2 int m3 = 6; // קלט MUX 3 int m4 = 7; // קלט MUX 4 // VARIABLES // int arr0r; // קריאה דיגיטלית מתוך MUX0 int arr1r; // קריאה דיגיטלית מ- MUX1 int arr2r; // קריאה דיגיטלית מתוך MUX2 int arr3r; // קריאה דיגיטלית מתוך MUX3 int arr4r; // קריאה דיגיטלית מהתקנת חלל MUX4 () {// שים את קוד ההתקנה שלך כאן, להפעלה פעם אחת: DDRB = B11111111; // מגדיר את סיכות Arduino 8 עד 13 ככניסות pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } לולאת חלל () {// שים את הקוד הראשי שלך כאן, להפעלה שוב ושוב: PORTB = B00000000; // SET סיכות בקרה עבור mux low עבור (int i = 0; i <numChannel; i ++) {// פלט קריאה דיגיטלי של MUX0 - MUX4 עבור חיישן IR i // אם חיישן IR הוא LO, המשחק נוגע במשחק. arr0r = digitalRead (m0); // קריאה מתוך Mux 0, חיישן IR i arr1r = digitalRead (m1); // קריאה מתוך Mux 1, חיישן IR i arr2r = digitalRead (m2); // קריאה מתוך Mux 2, חיישן IR i arr3r = digitalRead (m3); // קריאה מתוך Mux 3, חיישן IR i arr4r = digitalRead (m4); // קריאה מתוך Mux 4, חיישן IR i // לעשות משהו עם כניסות MUX או לאחסן במערך כאן // PORTB ++; // אותות בקרת תוספת עבור MUX}}
שלב 9: פיזור אור עם אקריליק
כדי להפיץ את האור מנורות הלד, שיפשפתי אקריליק שקוף עם מלטשת מסלולית עגולה. המלטשת הועברה על שני צידי האקריליק בתנועה איור 8. מצאתי ששיטה זו טובה בהרבה מצבע ריסוס "זכוכית חלבית".
לאחר שיוף וניקוי האקריליק, השתמשתי בחותך לייזר כדי לחתוך משולשים כך שיתאימו לנורות הלדים. אפשר לחתוך את האקריליק בעזרת כלי חיתוך אקרילי או אפילו פאזל אם האקריליק לא נסדק. האקריליק הוחזק מעל הלדים על ידי מלבנים דיקט בעובי 5 מ מ שנחתכו גם עם חותך לייזר. קרשים קטנים אלה הודבקו לתמוכות שעל הכיפה, ומשולשי האקריליק הודבקו באפוקס על הקרשים.
שלב 10: יצירת מוזיקה באמצעות הכיפה באמצעות MIDI
רציתי שהכיפה תוכל להפיק צליל, אז הקמתי חמישה ערוצי MIDI, אחד לכל קבוצת משנה של הכיפה. תחילה עליך לרכוש חמישה שקעי MIDI ולחבר אותם כפי שמוצג בתרשים (עיין במדריך זה מתמיכת Arduino למידע נוסף).
מכיוון שיש רק סיכה סדרתית אחת לשידור ב- Arduino Uno (סיכה 2 המסומנת כסיכת TX), עליך לבטל את ריבוי האותות הנשלחים לחמשת שקעי ה- MIDI. השתמשתי באותות בקרה זהים (סיכה 8-12), מכיוון שאותות MIDI נשלחים בזמן אחר מאשר כאשר קוראים את חיישני ה- IR לתוך הארדואינו. אותות בקרה אלה נשלחים לדמפלקסלר בעל 8 ערוצים, כך שתוכל לשלוט באיזה שקע MIDI מקבל את אות ה- MIDI שנוצר על ידי הארדואינו. האותות MIDI נוצרו על ידי הארדואינו עם ספריית האיתות הנהדרת של MIDI שנוצרה על ידי פרנסואה בסט. להלן קוד דוגמא לייצור יציאות MIDI מרובות לשקעי MIDI שונים עם Uno Arduino:
#include // כלול ספריית MIDI
#define numChannel 24 // מספר IR למשולש #הגדרת numSections 5 // מספר מקטעים בכיפה, מספר MUX 24 ערוצים, מספר שקעי MIDI // OUTPUTS // int s0 = 8; // פקד MUX 0 - PORTbD int s1 = 9; // פקד MUX 1 - PORTb int s2 = 10; // בקרת MUX 2 - PORTb int s3 = 11; // בקרת MUX 3 - PORTb int s4 = 12; // MUX control 4 - PORTb // INPUTS // int m0 = 3; // קלט MUX 0 int m1 = 4; // קלט MUX 1 int m2 = 5; // קלט MUX 2 int m3 = 6; // קלט MUX 3 int m4 = 7; // קלט MUX 4 // VARIABLES // int arr0r; // קריאה דיגיטלית מתוך MUX0 int arr1r; // קריאה דיגיטלית מ- MUX1 int arr2r; // קריאה דיגיטלית מתוך MUX2 int arr3r; // קריאה דיגיטלית מתוך MUX3 int arr4r; // קריאה דיגיטלית מתוך MUX4 int midArr [numSections]; // אחסן אם אחד מהשחקנים int note2play [numSections] נלחץ או לא; // הערת חנות שישחקו אם נוגעים בחיישן int notes [numChannel] = {60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83}; int pauseMidi = 4000; // זמן הפסקה בין אותות midi MIDI_CREATE_DEFAULT_INSTANCE (); התקנת void () {// שים את קוד ההתקנה שלך כאן, להפעלה פעם אחת: DDRB = B11111111; // מגדיר את סיכות Arduino 8 עד 13 ככניסות MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } לולאת חלל () {// שים את הקוד הראשי שלך כאן, להפעלה שוב ושוב: PORTB = B00000000; // SET סיכות בקרה עבור mux low עבור (int i = 0; i <numChannel; i ++) {// פלט קריאה דיגיטלי של MUX0 - MUX4 עבור חיישן IR i // אם חיישן IR הוא LO, המשחק נוגע במשחק. arr0r = digitalRead (m0); // קריאה מתוך Mux 0, חיישן IR i arr1r = digitalRead (m1); // קריאה מתוך Mux 1, חיישן IR i arr2r = digitalRead (m2); // קריאה מתוך Mux 2, חיישן IR i arr3r = digitalRead (m3); // קריאה מתוך Mux 3, חיישן IR i arr4r = digitalRead (m4); // קריאה מתוך Mux 4, חיישן IR i אם (arr0r == 0) // חיישן בקטע 0 נחסם {midArr [0] = 1; // שחקן 0 פגע בפתק, הגדר HI כך שיהיה פלט MIDI עבור שחקן 0 note2play [0] = הערות ; // הערה לשחק לשחקן 0} אם (arr1r == 0) // חיישן בקטע 1 נחסם {midArr [1] = 1; // שחקן 0 פגע בפתק, הגדר HI כך שיהיה פלט MIDI עבור שחקן 0 note2play [1] = הערות ; // הערה לשחק לשחקן 0} אם (arr2r == 0) // חיישן בקטע 2 נחסם {midArr [2] = 1; // שחקן 0 פגע בפתק, הגדר HI כך שיהיה פלט MIDI עבור שחקן 0 note2play [2] = הערות ; // הערה לשחק לשחקן 0} אם (arr3r == 0) // חיישן בקטע 3 נחסם {midArr [3] = 1; // שחקן 0 פגע בפתק, הגדר HI כך שיהיה פלט MIDI עבור שחקן 0 note2play [3] = הערות ; // הערה לשחק לשחקן 0} אם (arr4r == 0) // חיישן בקטע 4 נחסם {midArr [4] = 1; // שחקן 0 פגע בפתק, הגדר HI כך שיהיה פלט MIDI עבור שחקן 0 note2play [4] = הערות ; // הערה למשחק עבור שחקן 0} PORTB ++; // אותות בקרת תוספת עבור MUX} updateMIDI (); } void updateMIDI () {PORTB = B00000000; // סיכות סיכות SET עבור mux low if (midArr [0] == 1) // פלט MIDI של שחקן 0 {MIDI.sendNoteOn (note2play [0], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [0], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // תוספת MUX אם (midArr [1] == 1) // פלט MIDI של שחקן 1 {MIDI.sendNoteOn (note2play [1], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [1], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // תוספת MUX אם (midArr [2] == 1) // פלט MIDI של שחקן 2 {MIDI.sendNoteOn (note2play [2], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [2], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // תוספת MUX אם (midArr [3] == 1) // פלט MIDI של שחקן 3 {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // תוספת MUX אם (midArr [4] == 1) // פלט MIDI של שחקן 4 {MIDI.sendNoteOn (note2play [4], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [4], 127, 1); delayMicroseconds (pauseMidi); } midArr [0] = 0; midArr [1] = 0; midArr [2] = 0; midArr [3] = 0; midArr [4] = 0; }
שלב 11: הפעלת הכיפה
ישנם מספר רכיבים שצריך להפעיל בכיפה. לכן יהיה עליך לחשב את המגברים שנמשכים מכל רכיב כדי לקבוע את ספק הכוח שאתה צריך לרכוש.
רצועת הלד: השתמשתי בכ- 3.75 מטר של רצועת הלד Ws2801, הצורכת 6.4 וואט/מטר. זה תואם 24W (3.75*6.4). כדי להמיר את זה לאמפר, השתמש בהספק = זרם*וולט (P = iV), כאשר V הוא המתח של רצועת ה- LED, במקרה זה 5V. לכן, הזרם שנמשך מהנוריות הוא 4.8A (24W/5V = 4.8A).
חיישני ה- IR: כל חיישן IR מצייר כ- 25mA, ובסך הכל 3A ל -120 חיישנים.
הארדואינו: 100mA, 9V
המרבבים: ישנם חמישה מרבבים של 24 ערוצים שכל אחד מהם מכיל 16 ערוצים ומכפיל 8 ערוצים. 8 הערוצים ו -16 הערוצים MUX צורכים כל אחד בערך 100mA. לכן, צריכת החשמל הכוללת של כל ה- MUX היא 1A.
אם מוסיפים רכיבים אלה, צריכת החשמל הכוללת צפויה להיות סביב 9A. רצועת ה- LED, חיישני ה- IR והמרבבים מכילים מתח כניסה ב- 5V, ול- Arduino יש מתח כניסה של 9V. לכן בחרתי ספק כוח 12V 15A, ממיר 15A buck להמרת 12V ל- 5V וממיר 3A buck להמרת 12V ל- 9V עבור הארדואינו.
שלב 12: בסיס כיפה מעגלית
הכיפה מונחת על פיסת עץ עגולה עם מחומש שנחתך מהאמצע לגישה נוחה לאלקטרוניקה. כדי ליצור בסיס עגול זה, גיליון דיקט בגודל 4x6 'נחתך באמצעות נתב CNC מעץ. ניתן להשתמש גם בפאזל לשלב זה. לאחר חיתוך הבסיס, הוצמדה אליו הכיפה באמצעות קוביות עץ קטנות בגודל 2x3 אינץ '.
על גבי הבסיס חיברתי את אספקת החשמל באפוקסי וממרי ה- MUX ו- Buck עם מרווחי סטנד-אפ של PCB. המרווחים הוצמדו לדיקט באמצעות מתאמי חוט E-Z Lok.
שלב 13: בסיס כיפת הפנטגון
בנוסף לבסיס העגול, בניתי גם בסיס מחומש לכיפה עם תחתית זכוכית מבט. בסיס זה וחלון המראה היו עשויים גם דיקט חתוך בעזרת נתב CNC מעץ. דפנות המחומש עשויות קרשים מעץ כאשר בצד אחד יש חור לתוכו לעבור את המחברים. באמצעות סוגרי מתכת ומפרקי בלוקים 2x3, קרשי העץ מחוברים לבסיס המחומש. מתג הפעלה, מחברי MIDI ומחבר USB מחוברים ללוח הקדמי שיצרתי באמצעות חותך לייזר. כל בסיס הפנטגון מוברג לבסיס המעגלי המתואר בשלב 12.
התקנתי חלון בתחתית הכיפה כך שכל אחד יכול להרים את מבטו אל הכיפה כדי לראות את האלקטרוניקה. הזכוכית למראה עשויה מחיתוך אקרילי עם חותך לייזר והיא אפוקסית לחתיכת דיקט עגולה.
שלב 14: תכנות הכיפה
יש אינסוף אפשרויות לתכנות הכיפה. כל מחזור של הקוד לוקח את האותות מחיישני ה- IR, המציינים את המשולשים שאדם נגע בהם. בעזרת מידע זה תוכלו לצבוע את הכיפה בכל צבע RGB ו/או לייצר אות MIDI. להלן מספר דוגמאות לתוכניות שכתבתי עבור הכיפה:
צבע את הכיפה: כל משולש עובר בין ארבעה צבעים כשנוגעים בו. כשהצבעים משתנים, משחקים ארפג'יו. בעזרת תוכנית זו אתה יכול לצבוע את הכיפה באלפי דרכים שונות.
מוזיקת כיפה: הכיפה צבועה בחמישה צבעים, כל קטע תואם לפלט MIDI אחר. בתוכנית, אתה יכול לבחור אילו תווים כל משולש משחק. בחרתי להתחיל באמצע C בחלק העליון של הכיפה, ולהגדיל את המגרש כשהמשולשים מתקרבים לבסיס. מכיוון שיש חמישה יציאות, תוכנית זו היא אידיאלית לריבוי אנשים שמשחקים את הכיפה בו זמנית. באמצעות מכשיר MIDI או תוכנת MIDI, ניתן לגרום לאותות MIDI אלה להישמע כמו כל מכשיר.
שמעון: כתבתי עיבוד לסיימון, משחק הארת הזיכרון הקלאסי. רצף אורות אקראי מואר אחד בכל פעם על הכיפה כולה. בכל סיבוב, השחקן חייב להעתיק את הרצף. אם השחקן תואם את הרצף בצורה נכונה, נוסף אור נוסף לרצף. הציון הגבוה מאוחסן באחד מקטעי הכיפה. המשחק הזה הוא גם כיף מאוד לשחק עם מספר אנשים.
פונג: מדוע לא לשחק פונג על כיפה? כדור מתפשט על פני הכיפה עד שפוגע בהנעה. כאשר הוא קורה, נוצר אות MIDI, המציין שהכדור פגע בכדור. לאחר מכן על השחקן השני לכוון את ההנעה לאורך החלק התחתון של הכיפה כך שהיא תפגע בכדור לאחור.
שלב 15: תמונות של כיפה שהושלמה
פרס גדול בתחרות ארדואינו 2016
פרס שני בתחרות הרמיקס 2016
פרס שני בתחרות זוהר זוהר 2016
מוּמלָץ:
כיפת LED אינטראקטיבית עם Fadecandy, עיבוד וקינקט: 24 שלבים (עם תמונות)
כיפת LED אינטראקטיבית עם Fadecandy, עיבוד וקינקט: WhatWhen in Dome היא כיפה גיאודזית 4.2 מ 'המכוסה 4378 נוריות LED. נוריות הלדים ממופות בנפרד וניתן להתייחס אליהן. הם נשלטים על ידי Fadecandy ועיבוד בשולחן העבודה של Windows. קינקט מחובר לאחת מתמוכות הכיפה, אז
כיפת אומנות המיתרים: 10 שלבים (עם תמונות)
כיפת אמנות מחרוזת: נכנסתי לאמנות מחרוזת UV לפני שנים אך הפרויקטים שלי המשיכו לגדול והעץ שבו השתמשתי למסגרות לא היה נבנה מחדש היטב. לאחר מכן גיליתי כמה קל לבנות כיפות ובכך התחיל כיפת תורת המיתרים. זה התקדם
טבלה מחזורית LED אינטראקטיבית: 12 שלבים (עם תמונות)
טבלה מחזורית LED אינטראקטיבית: לי ולחברה שלי יש אוסף אלמנטים - דוגמאות של פיסות החומר הייחודיות המרכיבות את כל היקום! לאוסף כה מעניין החלטתי לבנות ויטרינה המציגה את הדוגמאות בכל בניית העולם שלהן
כיצד ליצור כיפה גיאודזית בסגנון Temcor ב- Autodesk Inventor: 8 שלבים
כיצד ליצור כיפה גיאודזית בסגנון Temcor ב- Autodesk Inventor: מדריך זה יראה לך כיצד ליצור כיפה בסגנון Temcor באמצעות מעט מתמטיקה. רוב המידע במדריך זה נלקח מהנדסה הפוכה של TaffGoch של שיטת חלוקה של תחנת הקוטב הדרומי הישן של אמונדסן-סקוט
אור כיפת LED DIY (עודכן 9-15-09): 10 שלבים
אור כיפת LED DIY (עודכן 9-15-09): הונדה דל סול הקטנה שלי הייתה זקוקה לאור כיפה בהיר יותר. עברתי מנורה רגילה להחלפת לד מיוצרת ולבסוף לכזו בהירות גבוהה שאפילו אני יכול לקרוא איתה