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

להאיר אותי !: 20 שלבים (עם תמונות)
להאיר אותי !: 20 שלבים (עם תמונות)

וִידֵאוֹ: להאיר אותי !: 20 שלבים (עם תמונות)

וִידֵאוֹ: להאיר אותי !: 20 שלבים (עם תמונות)
וִידֵאוֹ: אל תיגע לבחורה באיפור בחייםםם !!!! don't do that !!! 2024, נוֹבֶמבֶּר
Anonim
להדליק אותי!
להדליק אותי!
להדליק אותי!
להדליק אותי!
להדליק אותי!
להדליק אותי!
להדליק אותי!
להדליק אותי!

חברי צוות הפרויקט

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

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

אספקה

חומרה: Arduino (השתמשתי ב- arduino mega 2560), אקריליק (שקוף, לבן), רצועת LED (NeoPixel), סרט מפזר, כפתור, מחבר 4 פינים, חוט, לוח מעגלים, ספק כוח

כלים: מכונת חיתוך מונחית לייזר, מדפסת תלת מימד

שלב 1: בואו נגמור

בוא נעשה את זה!
בוא נעשה את זה!
בוא נעשה את זה!
בוא נעשה את זה!
בוא נעשה את זה!
בוא נעשה את זה!

בואו להכין איתי את הקטע המשושה החמוד הזה!

ה- Light Me Up מיוצר באמצעות 312 משולשים, אך אפילו 6 משולשים יכולים לעצב אור נפלא. אם אתה רוצה לעשות את זה בקנה מידה גדול יותר, אתה יכול לעשות את זה על ידי הפניה לקובץ המצורף להלן.

שלב 2: הכנת חומרים

הכנת חומר
הכנת חומר

שלב 3: חיתוך אקריליק

חיתוך אקריליק
חיתוך אקריליק
חיתוך אקריליק
חיתוך אקריליק
חיתוך אקריליק
חיתוך אקריליק
חיתוך אקריליק
חיתוך אקריליק

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

שלב 4: צרו צדדים עם מדפסות תלת מימד

עשה צד לצד מדפסות תלת מימד
עשה צד לצד מדפסות תלת מימד
עשה צד לצד מדפסות תלת מימד
עשה צד לצד מדפסות תלת מימד
עשה צד לצד מדפסות תלת מימד
עשה צד לצד מדפסות תלת מימד

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

שלב 5: צילום

הַסרָטָה
הַסרָטָה
הַסרָטָה
הַסרָטָה
הַסרָטָה
הַסרָטָה

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

שלב 6: צרף רצועת LED + רצועת LED הלחמה (NeoPixel) עם חוטים

צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים
צרף רצועת LED + רצועת הלחמה (NeoPixel) עם חוטים

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

הגיע זמן הלחמה! הכינו רצועות LED, מחברים 4 פינים (מחבר או חוטים) ואת מה שאתם צריכים להלחמה. השתמשתי בנורות LED בשלוש יחידות. אתה יכול להשתמש באחד או שניים נוריות אם אתה רוצה, אבל אני ממליץ להשתמש בשלושה. כאשר כל החומרים מוכנים, הלחם את החוטים בשני נתונים, קווי 5v וקווי קרקע של רצועת ה- LED.

שלב 7: מתג טאקט הלחמה עם חוטים

מתג הלחמה עם חוטים
מתג הלחמה עם חוטים
מתג הלחמה עם חוטים
מתג הלחמה עם חוטים

שלב 8: הרכבה -הכנס בורג בצד = ①

הרכבה -הכנס בורג בצד = ①
הרכבה -הכנס בורג בצד = ①
הרכבה -הכנס בורג בצד = ①
הרכבה -הכנס בורג בצד = ①

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

שלב 9: חבר את Ⓛⓣ ל- Ⓒ = ②

חבר את Ⓛⓣ ל- Ⓒ = ②
חבר את Ⓛⓣ ל- Ⓒ = ②
חבר את Ⓛⓣ ל- Ⓒ = ②
חבר את Ⓛⓣ ל- Ⓒ = ②

שלב 10: הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③

הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③
הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③
הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③
הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③
הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③
הרכבה -השתמש ב- Ⓦ ו- Ⓝ לשילוב ① ו- ② = ③

שלב 11: הרכבה -הצמד Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④

הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④
הרכבה -הצמדו Ⓐⓔ ו- ③ באמצעות חיבור אקרילי = ④

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

שלב 12: חבר את Ⓢ ל- Ⓓ = ⑤

חבר את Ⓢ ל- Ⓓ = ⑤
חבר את Ⓢ ל- Ⓓ = ⑤
חבר את Ⓢ ל- Ⓓ = ⑤
חבר את Ⓢ ל- Ⓓ = ⑤

שלב 13: הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥

הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥
הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥
הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥
הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥
הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥
הרכבה -שלב ④ ו- ⑤ באמצעות Ⓦ ו- Ⓝ = ⑥

שלב 14: הרכבת חלקה מלאה

הרכבה מלאה
הרכבה מלאה
הרכבה מלאה
הרכבה מלאה
הרכבה מלאה
הרכבה מלאה

שלב 15: מראה העבודה של פרויקט

Image
Image

שלב 16: NeoPixel, חיווט מחברים

NeoPixel, חיווט מחברים
NeoPixel, חיווט מחברים
NeoPixel, חיווט מחברים
NeoPixel, חיווט מחברים
NeoPixel, חיווט מחברים
NeoPixel, חיווט מחברים

שלב 17: חיווט NeoPixel ו- Arduino

חיווט NeoPixel ו- Arduino
חיווט NeoPixel ו- Arduino

שלב 18: תכנת את הארדואינו

טיימר חיצוני נדיף חיצוני ארוך_0 מיליס;

#לִכלוֹל

#define MODEBTNNUM 3 int ani_mode = 0; preM1, preM2, preM3 לא חתום;

הגדרת בטל () {

Wire.begin (); for (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.begin(9600); }

לולאת חלל () {

עבור (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } עבור (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); while (Wire.available ()) {int x = Wire.read (); // Serial.println (x); אם (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} /////////////////////////// /////// if (ani_mode == 0) {for (int i = 1; i 3000) {preM1 = current1; עבור (int i = 1; i 5000) {preM2 = current2; עבור (int i = 1; i 3000) {preM3 = current3; // טיימר0_מיליס = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("איפוס טיימר"); עבור (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

שלב 19:

טיימר חיצוני נדיף חיצוני ארוך_0 מיליס;

#לִכלוֹל

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int colors [num] [3]; int hue [num]; int sat [num]; int בהיר [מספר]; int pNumber = 0; int gValue [num] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; const int btnPin [num] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 54, 55, 56, 57, 58, 59}; int btnState [num]; btnMode בוליאני; int hueV [num] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; #include #define BTNNUM 1 int f_v = 1; preMillis1 לא חתום ארוך; preM ארוך ללא חתימה; int ani_mode = 0; int ani2_Counter = 0; מונה int = 0; /////////////////////////////////////////////////>/ begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (ReceiveEvent); עבור (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } ////////////////////////////////////

לולאת חלל () {

אם (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; ישב = 95; בהיר = 100; } f_v = 0; } ////////////////////////////////////////////// שֶׁקֶר; עבור (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); //////////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); לשבור; מקרה 1: ani1 (); ani_mode = 0; ani2_Counter = 0; לשבור; מקרה 2: ani2_Counter = 1; ani_mode = 0; לשבור; מקרה 3: ani3 (); ani_mode = 0; ani2_Counter = 0; לשבור; ברירת מחדל: readyState (); לשבור; } אם (ani2_Counter == 1) {ani2 (); } setPixels (num); }

///////////////////////////////////////////

void ReceiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("קיבל 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } /////////////////////////////

אם (btnMode == true) {

Wire.write (5); // Serial.println ("5 보냄"); } אחר {Wire.write (0); }

}

void ani0 () {

// Serial.println ("0"); }

void ani1 () {

// Serial.println ("1"); אם (pNumber == 0) {for (int i = 0; i <num; i ++) {בהיר = 0; gValue = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; עבור (int a = 0; a <2; a ++) {hue [a1 [a] = 100; ישב [a1 [a] = 95; בהיר [a1 [a] = 100; } עבור (int b = 0; b <2; b ++) {hue [b1 = 200; ישב [b1 = 95; בהיר [b1 = 100; } עבור (int c = 0; c <2; c ++) {hue [c1 [c] = 300; ישב [c1 [c] = 95; בהיר [c1 [c] = 100; } // Serial.println ("0"); } אחרת אם (pNumber == 1) {for (int i = 0; i <num; i ++) {בהיר = 0; gValue = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; עבור (int a = 0; a <8; a ++) {hue [a2 [a] = 26; ישב [a2 [a] = 95; בהיר [a2 [a] = 100; } עבור (int d = 0; d <4; d ++) {hue [d2 [d] = 63; ישב [d2 [d] = 95; בהיר [d2 [d] = 100; } // Serial.println ("1"); } אחרת אם (pNumber == 2) {// תבנית קוביות ענק עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // צהוב 06 עבור (int a = 0; a <6; a ++) {hue [a14 [a] = 35; ישב [a14 [a] = 95; בהיר [a14 [a] = 100; }} אחרת אם (pNumber == 3) {עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // צהוב עבור (int a = 0; a <6; a ++) {hue [a3 [a] = 53; ישב [a3 [a] = 95; בהיר [a3 [a] = 100; }} אחרת אם (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a4 = {34, 35}; // צהוב int b4 = {47}; // כחול int c4 = {48}; // סגול

עבור (int a = 0; a <2; a ++) {hue [a4 [a] = 53; ישב [a4 [a] = 95; בהיר [a4 [a] = 100; }

עבור (int b = 0; b <1; b ++) {hue [b4 = 210; ישב [b4 = 95; בהיר [b4 = 100; } עבור (int c = 0; c <1; c ++) {hue [c4 [c] = 307; ישב [c4 [c] = 95; בהיר [c4 [c] = 100; }} אחרת אם (pNumber == 5) {עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a5 = {34, 35, 46, 47, 48, 49};

עבור (int a = 0; a <6; a ++) {hue [a5 [a] = 100; ישב [a5 [a] = 95; בהיר [a5 [a] = 100; }} אחרת אם (pNumber == 6) {עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // צהוב עבור (int a = 0; a <6; a ++) {hue [a6 [a] = 53; ישב [a6 [a] = 95; בהיר [a6 [a] = 100; }} אחרת אם (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // סגול עבור (int c = 0; c <6; c ++) {hue [c7 [c] = 307; ישב [c7 [c] = 95; בהיר [c7 [c] = 100; }} אחרת אם (pNumber == 8) {עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // סגול עבור (int c = 0; c <6; c ++) {hue [c8 [c] = 307; ישב [c8 [c] = 95; בהיר [c8 [c] = 100; }} אחרת אם (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // סגול עבור (int c = 0; c <6; c ++) {hue [c9 [c] = 307; ישב [c9 [c] = 95; בהיר [c9 [c] = 100; }} אחרת אם (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // סגול עבור (int c = 0; c <6; c ++) {hue [c10 [c] = 307; ישב [c10 [c] = 95; בהיר [c10 [c] = 100; }} אחרת אם (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // סגול עבור (int c = 0; c <6; c ++) {hue [c11 [c] = 307; ישב [c11 [c] = 95; בהיר [c11 [c] = 100; }} אחרת אם (pNumber == 12) {עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // סגול עבור (int c = 0; c <6; c ++) {hue [c12 [c] = 307; ישב [c12 [c] = 95; בהיר [c12 [c] = 100; }} אחרת אם (pNumber == 13) {עבור (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a13 = {34, 35}; // צהוב int b13 = {47}; // כחול int c13 = {48}; // סגול עבור (int a = 0; a <2; a ++) {hue [a13 [a] = 53; ישב [a13 [a] = 95; בהיר [a13 [a] = 100; } עבור (int b = 0; b <1; b ++) {hue [b13 = 210; ישב [b13 = 95; בהיר [b13 = 100; } עבור (int c = 0; c <1; c ++) {hue [c13 [c] = 307; ישב [c13 [c] = 95; בהיר [c13 [c] = 100; }} pNumber = pNumber + 1;

אם (pNumber == 14) {

pNumber = 0; }}

void ani2 () {

// Serial.println ("2"); curM ארוך ללא סימן = millis ();

if (curM - preM> = 10) {

preM = curM; עבור (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } גוון = גוון + gValue ; } מונה ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (מונה); // Serial.println (curM); מונה = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } /////////////////////////////// / Serial.println ("מוכן"); } ///////////////////////////////// {curMillis1 לא חתום ארוך = millis ();

for (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }

if (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1; עבור (int i = 0; i = 360) {hueV = -1; } אחרת אם (גוון <= 0) {hueV = 1; } גוון = גוון + hueV ; בהיר = 100; }}}} /////////////////////////////////// int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (גוון , שבת , בהיר , צבעים ); int num1 = i * 3; strip.setPixelColor (num1, צבעים [0], צבעים [1], צבעים [2]); strip.setPixelColor (num1 + 1, צבעים [0], צבעים [1], צבעים [2]); strip.setPixelColor (num1 + 2, צבעים [0], צבעים [1], צבעים [2]); } strip.show (); }

שלב 20: דפוסים

דפוסים!
דפוסים!
דפוסים!
דפוסים!

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

מוּמלָץ: