Բովանդակություն:

Անսահմանության հայելով շարժվող ցանց ՝ 7 քայլ
Անսահմանության հայելով շարժվող ցանց ՝ 7 քայլ

Video: Անսահմանության հայելով շարժվող ցանց ՝ 7 քայլ

Video: Անսահմանության հայելով շարժվող ցանց ՝ 7 քայլ
Video: 15 փաստ աչքերի մասին, որոնք կապշեցնեն ձեզ 2024, Հուլիսի
Anonim
Image
Image

այդ տեսանյութերը տեսանյութ են պատրաստում և շարժում:

Մենք ցանկանում էինք շարժվող ցանցերի միջոցով ցուցադրել ճոճվող տարածությունը և Infinity Mirror- ը `տարածության զգացումն ավելի արդյունավետ ցուցադրելու համար:

Մեր աշխատանքը բաղկացած է երկու ակրիլային սալերից `առջևի և հետևի սալերից, որոնք ցույց են տալիս մարդկանց ուղիղ գրգռման ձևը, իսկ հետևի սալիկներն ունեն 25 քայլ շարժիչներ, որոնք իրականում շարժում են առաջացնում:

Աշխատանքը բաղկացած է առջևի վահանակից, որը կցուցադրի տարածության փայլը, փայտե փայտ, որը կատարում է միջին շարժումը, ուղեցույց ձողերի համար և հետնամաս, որը շարժում է ստեղծում 25 քայլ շարժիչների միջոցով:

Stepանցի 25 գագաթները, որոնք միացված են 25 աստիճանի շարժիչներին, արտադրում են տարբեր նախշեր ՝ ըստ սահմանված կոդավորման արժեքների: Բացի այդ, ընկերությունը ցանկանում էր առավելագույնի հասցնել տարածությունը `համատեղելով թափանցիկ ակրիլը առջևի կիսահայելային ֆիլմի, հետևի հայելու և սև լուսավոր Infinity հայելու հետ: Շարժապատկերների տարբեր նախշեր ստեղծվում են ալիքների և թրթռանքների հիման վրա, որոնք ստեղծվում են ջրի ալիքների հիման վրա:

Պարագաներ

Պարագաներ

1. UV LED 12V 840 սմ

2. Ռետինե սպիտակ 12 մմ 750 սմ

3. Arduino մեգա 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. ժամանակացույցի ճախարակ (3d տպագիր) x 25

Քայլ 1: Պլանավորեք մեծ շրջանակ

Պլանավորեք մեծ շրջանակ
Պլանավորեք մեծ շրջանակ

Երբ մենք սկսում ենք, մենք պետք է պլանավորենք և գծենք մեծ շրջանակ: Այսպիսով, մենք պատրաստեցինք pdf ֆայլ `ակրիլային ընդհանուր շրջանակի և ժամանակացույցի ճախարակների համար

ակրիլային ընդհանուր շրջանակով և ժամանակացույցի ճախարակով, մենք պետք է նախ պատրաստենք stl ֆայլ և 3D տպագրություն:

Քայլ 2: Սարքավորումների պատրաստում

Սարքավորումների պատրաստում
Սարքավորումների պատրաստում
Սարքավորումների պատրաստում
Սարքավորումների պատրաստում
Սարքավորումների պատրաստում
Սարքավորումների պատրաստում

տուփ 1

1. Տեղադրեք 2T ակրիլ սև (թիվ 1) հատակին, իսկ վերևում ամրացրեք 5T ակրիլ սև կողմը (թիվ 2): Ավելացրեք 5T ակրիլային սև ցանց (թիվ 3) և ամրացրեք այն ՝ օգտագործելով ակրիլային կապ:

տուփ 2

2. waterուր ցողեք ակրիլային թափանցիկ ափսեի վրա, իսկ վերևը `կիսահայելային ֆիլմով: Կես հայելին գլորում է քարտը, որպեսզի այն չփչանա: Կցեք կողը (2) և ակրիլային թափանցիկությունը (1): Մի ամրացրեք ակրիլային ելուստը և ակրիլային հայելիները (թիվ 1) կողային կերպով: Rarilyամանակավորապես ամրացրեք այն ժապավենով (ձկնորսական գծից դուրս բերելու կամ ինտերիերը վերանորոգելու համար):

Քայլ 3: Mանց պատրաստելը

Akingանց պատրաստելը
Akingանց պատրաստելը
Akingանց պատրաստելը
Akingանց պատրաստելը
Akingանց պատրաստելը
Akingանց պատրաստելը

1. Փայտե սյունակի չափը 12 մմ է: Վերջում անցք բացեք, որպեսզի ձկնորսական գիծը ներս մտնի:

2. Կցեք ակրիլային թիթեղները փայտե սյունակի մյուս կողմում `սոսինձ օգտագործելով:

3. Փայտե սյան հետևի մասում ռետինե ժապավեն դրեք և դրա մեջ զսպանակ դրեք:

4. Ընդհանուր ձև

Քայլ 4:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

1. Arduino Mega 2560 կապի համար

2. էլեկտրաէներգիան բաժանել երկու մասի

3. Քայլ շարժիչի և շարժիչի վարորդի միացում

4. Երկու Arduino mega2560- ը միացված են TX և RX սերիական հաղորդակցության համար:

Քայլ 5: Կոդ

#ներառում

StepperMulti stepper (200, 2, 3, 4, 5); // stepper շարժիչի համարակալում StepperMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti stepper5 (200, A4, A5, A6, A7); StepperMulti stepper6 (200, 22, 23, 24, 25); StepperMulti stepper7 (200, 26, 27, 28, 29); StepperMulti stepper8 (200, 30, 31, 32, 33); StepperMulti stepper9 (200, 34, 35, 36, 37); StepperMulti stepper10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti stepper12 (200, 46, 47, 48, 49); StepperMulti stepper13 (200, 50, 51, 52, 53); uint32_t on_timer = millis (); uint32_t set_timer1 = միլիլ (); uint32_t set_timer2 = millis (); uint32_t set_timer3 = millis (); uint32_t set_timer4 = millis (); 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 հաշվարկ = 0; int init_set_speed

դատարկ կարգավորում ()

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; // շարժիչի արագության դատարկության հանգույց () {////////////////////////////////////// (եթե միլիարդ () - set_timer1 <6000) {// Stepper motor 13 շարժվում է 1500 -ից մինչև 6000 վայրկյան: <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) նշանակում է հակառակ պտույտ} այլ դեպքում, եթե (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); հաշվել = 1; }} //////////////////////// եթե (միլիլ () - set_timer2 1000) {եթե (միլիլ () - ժամանակաչափ <2500) {stepper7.setStep (Արագություն); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else {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); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else {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); } else if (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); } else if (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); } else if (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); } else if (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); } else if (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); } else if (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); } 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); }} 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); } //////////////////////////////// stepper.moveStep (); stepper2.moveStep (); stepper3.moveStep (); stepper4.moveStep (); stepper5.moveStep (); stepper6.moveStep (); stepper7.moveStep (); stepper8.moveStep (); stepper9.moveStep (); stepper10.moveStep (); stepper11.moveStep (); stepper12.moveStep (); stepper13.moveStep (); }

սկզբնական ծածկագրում

և..

#ներառում

StepperMulti stepper (200, 2, 3, 4, 5); StepperMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti stepper5 (200, A4, A5, A6, A7); StepperMulti stepper6 (200, 22, 23, 24, 25); StepperMulti stepper7 (200, 26, 27, 28, 29); StepperMulti stepper8 (200, 30, 31, 32, 33); StepperMulti stepper9 (200, 34, 35, 36, 37); StepperMulti stepper10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti stepper12 (200, 46, 47, 48, 49); StepperMulti stepper13 (200, 50, 51, 52, 53); uint32_t on_timer = millis (); uint32_t set_timer1 = միլիլ (); uint32_t set_timer2 = millis (); uint32_t set_timer3 = millis (); uint32_t set_timer4 = millis (); 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 հաշվարկ = 0; int init_set_speed = 10; void setup () 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); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); } else if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); հաշվել = 1; }} //////////////////////// եթե (միլիլ () - set_timer2 1000) {եթե (միլիլ () - ժամանակաչափ <2500) {stepper7.setSte ㄴ p (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else {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); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else {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); } else if (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); } else if (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); } else if (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); } else if (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); } else if (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); } else if (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); } 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); }} 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); } //////////////////////////////// stepper.moveStep (); 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: Սերիական հաղորդակցություն

Դուք պետք է պատրաստեք երկու arduino մեգահեռահաղորդակցություն:

եթե (start_count == 0) {

int Տվյալներ = Serial1.read (); Serial.println (Տվյալներ); if (Տվյալներ == 0x01) {start_count = 1; }

Առաջին հերթին, մեզ անհրաժեշտ է այս ծածկագրումը Maine Arduino Mega- ում:

if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); հաշվել = 1; }

Այս կոդավորման կարիքը ունի սերիական հաղորդումներ ստացող Արդուինո Մեգային:

Առաջին կոդավորումը տեղադրվում է այնտեղ, որտեղ պետք է շարժվի երկրորդ ադուինոն:

Խորհուրդ ենք տալիս: