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

רשת נעה עם מראה אינסוף: 7 שלבים
רשת נעה עם מראה אינסוף: 7 שלבים

וִידֵאוֹ: רשת נעה עם מראה אינסוף: 7 שלבים

וִידֵאוֹ: רשת נעה עם מראה אינסוף: 7 שלבים
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, יולי
Anonim
Image
Image

הסרטונים האלה יוצרים וידיאו ומרגשים.

רצינו להציג את החלל המתנדנד באמצעות רשתות נעות והמראה אינסוף כדי להראות את תחושת המרחב ביעילות רבה יותר.

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

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

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

אספקה

אספקה

1. UV LED 12V 840 ס מ

2. גומי לבן 12 מ"מ 750 ס"מ

3. Arduino mega 2560 x2

4. נהג מנוע x25

5. מנוע צעד x25

6. כבל דו קוטבי עבור מנוע צעד x25

7. גליל עץ x25

8. PVC (9 מ מ) x25

9. אביב x 25

10. אקריליק 700 מ"מ*700 מ"מ

11. סרט חצי מראה 1524 מ מ * 1 מ '

12. חוט דייג

13. כוח 12V 12.5A, 12V 75A

14. גלגלת תזמון (הדפס תלת מימד) x 25

שלב 1: תכנן מסגרת גדולה

תכנן מסגרת גדולה
תכנן מסגרת גדולה

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

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

שלב 2: ייצור חומרה

ייצור חומרה
ייצור חומרה
ייצור חומרה
ייצור חומרה
ייצור חומרה
ייצור חומרה

תיבה 1

1. הניחו 2T אקריליק שחור (מס '1) על הרצפה והצמידו צד שחור אקרילי 5T (מס' 2) מלמעלה. הוסף רשת שחורה אקרילית 5T (מס '3) והצמיד אותה באמצעות חיבור אקרילי.

תיבה 2

2. מפזרים מים על צלחת שקופה אקרילית ומעליהם סרט חצי מראה. חצי מראה מגלגלת כרטיס כדי שלא יבעבע. חבר את הצד (2) ואת השקיפות האקרילית (1). אין לאבטח את בליטת האקריליק המשולבת והמראות האקריליות (מס '1) לרוחב. לתקן אותו באופן זמני עם סרט (לתיקון מחבל הדייג או לשיפוץ פנים).

שלב 3: הכנת רשת

ביצוע רשת
ביצוע רשת
ביצוע רשת
ביצוע רשת
ביצוע רשת
ביצוע רשת

1. גודל עץ בגודל 12 מ מ. לקדוח חור בסוף כדי לאפשר לחבל הדייג להיכנס.

2. צרף צלחות אקריליק לצד השני של עמוד עץ מחורר באמצעות דבק.

3. שים רצועת גומי בחלק האחורי של עמוד עץ ושם בה קפיץ.

4. צורה כוללת

שלב 4:

תמונה
תמונה
תמונה
תמונה
תמונה
תמונה

1. מספר חיבור Arduino Mega 2560 Pin

2. חלקו את החשמל לשני חלקים

3. מנוע צעד ומעגל נהג מנוע

4. שני Arduino mega2560s מחוברים באמצעות חציית TX ו- RX לתקשורת טורית.

שלב 5: קוד

#לִכלוֹל

Stepper Multi stepper (200, 2, 3, 4, 5); // מספור מנוע צעד StepperMulti stepper2 (200, 6, 7, 8, 9); Stepper Multi stepper3 (200, 10, 11, 12, 13); Stepper Multi stepper4 (200, A0, A1, A2, A3); Stepper Multi stepper5 (200, A4, A5, A6, A7); Stepper Multi stepper6 (200, 22, 23, 24, 25); Stepper Multi stepper7 (200, 26, 27, 28, 29); Stepper Multi stepper8 (200, 30, 31, 32, 33); Stepper Multi stepper9 (200, 34, 35, 36, 37); Stepper Multi stepper10 (200, 38, 39, 40, 41); Stepper Multi stepper11 (200, 42, 43, 44, 45); Stepper Multi stepper12 (200, 46, 47, 48, 49); Stepper Multi stepper13 (200, 50, 51, 52, 53); uint32_t on_timer = millis (); uint32_t set_timer1 = מיליס (); uint32_t set_timer2 = מיליס (); uint32_t set_timer3 = מיליס (); uint32_t set_timer4 = מיליס (); uint32_t set_timer5 = מיליס (); uint32_t set_timer6 = מיליס (); uint32_t set_timer7 = מיליס (); uint32_t set_timer8 = מיליס (); uint32_t set_timer9 = מיליס (); uint32_t set_timer10 = מיליס (); int count = 0; int init_set_speed

הגדרת חלל ()

סדרתי 1. התחל (115200); // תקשורת טורית Serial.begin (9600); stepper.setSpeed (init_set_speed); stepper2.setSpeed (init_set_speed); stepper3.setSpeed (init_set_speed); stepper4.setSpeed (init_set_speed); stepper5.setSpeed (init_set_speed); stepper6.setSpeed (init_set_speed); stepper7.setSpeed (init_set_speed); stepper8.setSpeed (init_set_speed); stepper9.setSpeed (init_set_speed); stepper10.setSpeed (init_set_speed); stepper11.setSpeed (init_set_speed); stepper12.setSpeed (init_set_speed); stepper13.setSpeed (init_set_speed); } int SPEED = 200; // לולאת חלל מהירות המנוע () {//////////////////////////////////////) - set_timer1 <6000) {// מנוע צעד 13 נע בין 1500 ל 6000 שניות. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) פירושו סיבוב הפוך} אחרת אם (millis () - on_timer <4500) {stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer 1000) {Serial1.write (0x01); ספירה = 1; }} //////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (מְהִירוּת); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } אחרת אם (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } אחרת אם (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } אחרת אם (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } אחר {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); } if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } אחרת אם (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } אחרת אם (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } אחרת אם (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } אחר {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////// אם (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } אחרת אם (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } אחרת אם (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } אחרת אם (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); } if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } אחרת אם (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } אחר {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} else {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); } /////////////////////////// stepper2.moveStep (); stepper3.moveStep (); stepper4.moveStep (); stepper5.moveStep (); stepper6.moveStep (); stepper7.moveStep (); stepper8.moveStep (); stepper9.moveStep (); stepper10.moveStep (); stepper11.moveStep (); stepper12.moveStep (); stepper13.moveStep (); }

קידוד פריסט

ו..

#לִכלוֹל

Stepper Multi stepper (200, 2, 3, 4, 5); Stepper Multi stepper2 (200, 6, 7, 8, 9); Stepper Multi stepper3 (200, 10, 11, 12, 13); Stepper Multi stepper4 (200, A0, A1, A2, A3); Stepper Multi stepper5 (200, A4, A5, A6, A7); Stepper Multi stepper6 (200, 22, 23, 24, 25); Stepper Multi stepper7 (200, 26, 27, 28, 29); Stepper Multi stepper8 (200, 30, 31, 32, 33); Stepper Multi stepper9 (200, 34, 35, 36, 37); Stepper Multi stepper10 (200, 38, 39, 40, 41); Stepper Multi stepper11 (200, 42, 43, 44, 45); Stepper Multi stepper12 (200, 46, 47, 48, 49); Stepper Multi stepper13 (200, 50, 51, 52, 53); uint32_t on_timer = millis (); uint32_t set_timer1 = מיליס (); uint32_t set_timer2 = מיליס (); uint32_t set_timer3 = מיליס (); uint32_t set_timer4 = מיליס (); uint32_t set_timer5 = מיליס (); uint32_t set_timer6 = מיליס (); uint32_t set_timer7 = מיליס (); uint32_t set_timer8 = מיליס (); uint32_t set_timer9 = מיליס (); uint32_t set_timer10 = מיליס (); int count = 0; int init_set_speed = 10; הגדרת void () Serial1.begin (115200); Serial.begin (9600); stepper.setSpeed (init_set_speed); stepper2.setSpeed (init_set_speed); stepper3.setSpeed (init_set_speed); stepper4.setSpeed (init_set_speed); stepper5.setSpeed (init_set_speed); stepper6.setSpeed (init_set_speed); stepper7.setSpeed (init_set_speed); stepper8.setSpeed (init_set_speed); stepper9.setSpeed (init_set_speed); stepper10.setSpeed (init_set_speed); stepper11.setSpeed (init_set_speed); stepper12.setSpeed (init_set_speed); stepper13.setSpeed (init_set_speed); } int SPEED = 200; לולאת חלל () {

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

if (millis () - set_timer1 <6000) {if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer <3000) {stepper13.setStep (-SPEED); } אחרת אם (millis () - on_timer <4500) {stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer 1000) {Serial1.write (0x01); ספירה = 1; }} //////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } אחרת אם (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } אחרת אם (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } אחרת אם (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } אחר {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); } if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } אחרת אם (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } אחרת אם (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } אחרת אם (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } אחר {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////// אם (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } אחרת אם (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } אחרת אם (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } אחרת אם (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); } if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } אחרת אם (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } אחרת אם (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } אחר {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} else {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); } /////////////////////////// stepper2.moveStep (); stepper3.moveStep (); stepper4.moveStep (); stepper5.moveStep (); stepper6.moveStep (); stepper7.moveStep (); stepper8.moveStep (); stepper9.moveStep (); stepper10.moveStep (); stepper11.moveStep (); stepper12.moveStep (); stepper13.moveStep (); }

קידוד שני

שלב 6: לפני קידוד…

לפני קידוד…
לפני קידוד…

עליך להוסיף ספרייה חדשה הקשורה למנועי צעד.

אז תיכנס לאתר הזה ותוריד ספרייה חדשה.

blog.danggun.net/2092

שלב 7: תקשורת סדרתית

אתה צריך לייצר שתי מגה-תקשורת ארדואינו.

אם (start_count == 0) {

int Data = Serial1.read (); Serial.println (נתונים); אם (נתונים == 0x01) {start_count = 1; }

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

if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); ספירה = 1; }

Arduino Mega, שמקבל תקשורת סדרתית, זקוק לקידוד זה.

הקידוד הראשון ממוקם למקום בו האדווינו השני צריך לזוז.

מוּמלָץ: