Indholdsfortegnelse:

Moving Grid With Infinity Mirror: 7 trin
Moving Grid With Infinity Mirror: 7 trin

Video: Moving Grid With Infinity Mirror: 7 trin

Video: Moving Grid With Infinity Mirror: 7 trin
Video: My hotel mirror was TWO SIDED 😱 2024, Juli
Anonim
Image
Image

disse videoer laver video og flytter video.

Vi ville vise det svajende rum gennem bevægelige gitre og Infinity Mirror for at vise rumfølelsen mere effektivt.

Vores arbejde består af to akrylplader, fronten og bagpladerne, som viser folk, hvordan de er direkte omrørende, og bagpladerne har 25 trinmotorer, der faktisk producerer bevægelse.

Værket består af et frontpanel, der viser pladsens glimter, en træpind, der udfører den midterste bevægelse, en guide til stængerne og et bagplade, der skaber bevægelse gennem 25 trins motorer.

De 25 toppe af nettet, der er forbundet til 25-trinsmotorerne, producerer forskellige mønstre i henhold til de indstillede kodningsværdier. Derudover ønskede virksomheden at maksimere pladsen ved at kombinere gennemsigtig akryl med forreste halvspejlfilm, bagspejl og sortbelyst Infinity-spejl. Forskellige animationsmønstre er lavet baseret på bølger og drabs, der er lavet baseret på vandets bølger.

Forbrugsvarer

Forbrugsvarer

1. UV LED 12V 840cm

2. gummihvid 12mm 750cm

3. Arduino mega 2560 x2

4. Motor driver x25

5. trinmotor x25

6. Bipolært kabel til stepper motor x25

7. Træcylinder x25

8.pvc (9 mm) x25

9. fjeder x 25

10. akryl 700 mm*700 mm

11. halv spejlfilm 1524mm * 1M

12. fiskelinje

13. Magt 12V 12.5A, 12V 75A

14. timing remskive (3d print) x 25

Trin 1: Planlæg en stor ramme

Planlæg en stor ramme
Planlæg en stor ramme

Når vi starter, skal vi planlægge og tegne en stor ramme. Så vi forberedte en pdf-fil til akryloverordnet ramme og timing remskive stl-fil (hvad vi lagde dem foran trinmotor til vindtråd, der kan trække en mellemtræ).

med den samlede akrylramme og timingskive skal vi først lave stl -fil og 3d -print.

Trin 2: Fremstilling af hardware

Fremstilling af hardware
Fremstilling af hardware
Fremstilling af hardware
Fremstilling af hardware
Fremstilling af hardware
Fremstilling af hardware

kasse 1

1. Læg 2T akrylsort (nr. 1) på gulvet, og fastgør 5T akrylsort side (nr. 2) ovenpå. Tilføj 5T akryl sort gitter (nr. 3), og fastgør det ved hjælp af akrylbinding.

boks 2

2. Drys vand på en gennemsigtig akrylplade og top med halvspejlfilm. Et halvt spejl ruller et kort for at forhindre, at det bobler. Fastgør siden (2) og akrylgennemsigtigheden (1). Fastgør ikke det kombinerede akrylfremspring og akrylspejle (nr. 1) sideværts. Fix det midlertidigt med tape (til reparation af fiskesnoren eller renovering af interiøret).

Trin 3: Lav gitter

At lave gitter
At lave gitter
At lave gitter
At lave gitter
At lave gitter
At lave gitter

1. En træsøjle er 12 mm i størrelse. Bor et hul i enden, så fiskelinjen kan komme ind.

2. Fast akrylplader på den anden side af en perforeret træsøjle ved hjælp af klæbemiddel.

3. Sæt et gummibånd gennem bagsiden af en træstolpe og sæt en fjeder i den.

4. samlet form

Trin 4:

Billede
Billede
Billede
Billede
Billede
Billede

1. Arduino Mega 2560 Pin Connection Number

2. opdel elektriciteten i to dele

3. trinmotor og motor driver kredsløb

4. To Arduino mega2560'er er forbundet ved at krydse TX og RX for seriel kommunikation.

Trin 5: Kode

#omfatte

StepperMulti stepper (200, 2, 3, 4, 5); // trinmotor nummerering 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 = millis (); uint32_t set_timer2 = millis (); uint32_t set_timer3 = millis (); uint32_t set_timer4 = millis (); uint32_t set_timer5 = millis (); uint32_t set_timer6 = millis (); uint32_t set_timer7 = millis (); uint32_t set_timer8 = millis (); uint32_t set_timer9 = millis (); uint32_t set_timer10 = millis (); int tæller = 0; int init_set_speed

ugyldig opsætning ()

Seriel1.begyndt (115200); // seriel kommunikation 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; // motorhastigheds tomrumsløkke () {///////////////////////////////////////////// (millis () - set_timer1 <6000) {// Steppermotor 13 bevæger sig mellem 1500 og 6000 sekunder. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } ellers if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) betyder omvendt rotation} ellers if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } ellers hvis (millis () - on_timer 1000) {Serial1.write (0x01); count = 1; }} ////////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (HASTIGHED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } ellers if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); } ellers if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } ellers if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); } ellers {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 (-HASTIGHED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } ellers if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-HASTIGHED); stepper7.setStep (-HASTIGHED); } ellers if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-HASTIGHED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } ellers if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-HASTIGHED); stepper7.setStep (-HASTIGHED); } ellers {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); } ellers if (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-HASTIGHED); stepper3.setStep (-HASTIGHED); stepper4.setStep (-HASTIGHED); stepper5.setStep (-HASTIGHED); stepper6.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); } ellers 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); } ellers hvis (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-HASTIGHED); stepper3.setStep (-HASTIGHED); stepper4.setStep (-HASTIGHED); stepper5.setStep (-HASTIGHED); stepper6.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); } ellers {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); } ellers if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-HASTIGHED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); stepper13.setStep (-HASTIGHED); } ellers 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); } ellers if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-HASTIGHED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); stepper13.setStep (-HASTIGHED); } ellers {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 (); }

frist -kodning

og..

#omfatte

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 = millis (); uint32_t set_timer2 = millis (); uint32_t set_timer3 = millis (); uint32_t set_timer4 = millis (); uint32_t set_timer5 = millis (); uint32_t set_timer6 = millis (); uint32_t set_timer7 = millis (); uint32_t set_timer8 = millis (); uint32_t set_timer9 = millis (); uint32_t set_timer10 = millis (); int tæller = 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; void loop () {

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

if (millis () - set_timer1 <6000) {if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } ellers if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); } ellers if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } ellers hvis (millis () - on_timer 1000) {Serial1.write (0x01); count = 1; }} ////////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (HASTIGHED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } ellers if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); } ellers if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } ellers if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); } ellers {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 (-HASTIGHED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } ellers if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-HASTIGHED); stepper7.setStep (-HASTIGHED); } ellers if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-HASTIGHED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } ellers if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-HASTIGHED); stepper7.setStep (-HASTIGHED); } ellers {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); } ellers if (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-HASTIGHED); stepper3.setStep (-HASTIGHED); stepper4.setStep (-HASTIGHED); stepper5.setStep (-HASTIGHED); stepper6.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); } ellers 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); } ellers hvis (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-HASTIGHED); stepper3.setStep (-HASTIGHED); stepper4.setStep (-HASTIGHED); stepper5.setStep (-HASTIGHED); stepper6.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); } ellers {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); } ellers if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-HASTIGHED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); stepper13.setStep (-HASTIGHED); } ellers 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); } ellers if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-HASTIGHED); stepper8.setStep (-HASTIGHED); stepper9.setStep (-HASTIGHED); stepper10.setStep (-HASTIGHED); stepper11.setStep (-HASTIGHED); stepper12.setStep (-HASTIGHED); stepper13.setStep (-HASTIGHED); } ellers {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 (); }

anden kodning

Trin 6: Inden kodning…

Inden kodning…
Inden kodning…

Du bør tilføje et nyt bibliotek relateret til trinmotorer.

Så du går ind på dette websted og downloader et nyt bibliotek.

blog.danggun.net/2092

Trin 7: Seriel kommunikation

Du skal lave to arduino megatelekommunikationer.

hvis (start_count == 0) {

int Data = Serial1.read (); Serial.println (Data); hvis (Data == 0x01) {start_count = 1; }

Først og fremmest har vi brug for denne kodning på Maine Arduino Mega.

if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); count = 1; }

Arduino Mega, der modtager seriel kommunikation, har brug for denne kodning.

Den første kodning placeres, hvor den anden aduino skal bevæge sig.

Anbefalede: