Innholdsfortegnelse:

Moving Grid With Infinity Mirror: 7 trinn
Moving Grid With Infinity Mirror: 7 trinn

Video: Moving Grid With Infinity Mirror: 7 trinn

Video: Moving Grid With Infinity Mirror: 7 trinn
Video: Trin-I-Tee 5:7 - God's Grace (Official Video) 2024, November
Anonim
Image
Image

disse videoene lager video og beveger seg video.

Vi ønsket å vise det svaiende rommet gjennom bevegelige rutenett og Infinity Mirror for å vise romfølelsen mer effektivt.

Arbeidet vårt består av to akrylplater, fronten og bakplatene, som viser folk hvordan de agiterer direkte, og bakplatene har 25 trinnsmotorer som faktisk produserer bevegelse.

Verket består av et frontpanel som viser glimmer av plass, en trepinne som utfører midtbevegelsen, en guide for stengene og et bakplate som skaper bevegelse gjennom 25 trinnsmotorer.

De 25 toppene i nettet koblet til 25-trinnsmotorene produserer forskjellige mønstre i henhold til de angitte kodingsverdiene. I tillegg ønsket selskapet å maksimere plassen ved å kombinere gjennomsiktig akryl med halvspeilfilm foran, bakspeil og svart opplyst Infinity-speil. Ulike animasjonsmønstre er laget basert på bølger og drabs som er laget basert på bølger av vann.

Rekvisita

Rekvisita

1. UV LED 12V 840cm

2. gummihvit 12mm 750cm

3. Arduino mega 2560 x2

4. Motor driver x25

5. trinnmotor x25

6. bipolar kabel for trinnmotor x25

7. Tresylinder x25

8. PVC (9 mm) x25

9. vår x 25

10. akryl 700mm*700mm

11. Halv speilfilm 1524mm * 1M

12. fiskesnøre

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

14. timing remskive (3d print) x 25

Trinn 1: Planlegg et stort rammeverk

Planlegg et stort rammeverk
Planlegg et stort rammeverk

Når vi starter, må vi planlegge og tegne et stort rammeverk. så, vi forberedte en pdf-fil for akryl-generell ramme og timing-remskive stl-fil (hva vi la dem foran trinnmotor for vindtråd som kan trekke en mellomstang).

med den generelle akrylrammen og timingskiven må vi først lage stl -fil og 3d -utskrift.

Trinn 2: Lag maskinvare

Å lage maskinvare
Å lage maskinvare
Å lage maskinvare
Å lage maskinvare
Å lage maskinvare
Å lage maskinvare

boks 1

1. Legg 2T akryl svart (nr. 1) på gulvet og fest 5T akryl svart side (nr. 2) på toppen. Tilsett 5T akryl svart rutenett (nr. 3) og fest det ved hjelp av akrylbinding.

boks 2

2. Dryss vann på en gjennomsiktig akrylplate og topp med halvspeilfilm. Et halvt speil ruller et kort for å forhindre at det bobler. Fest siden (2) og akrylgjennomsiktigheten (1). Ikke fest det kombinerte akrylspissen og akrylspeilene (nr. 1) sidelengs. Fest det midlertidig med tape (for reparasjon av fiskesnoren eller renovering av interiøret).

Trinn 3: Lage rutenett

Making Grid
Making Grid
Making Grid
Making Grid
Making Grid
Making Grid

1. En trekolonne er 12 mm stor. Bor et hull i enden for å la fiskelinjen komme inn.

2. Fest akrylplater på den andre siden av en perforert trekolonne med lim.

3. Sett et gummibånd gjennom baksiden av en trekolonne og legg en fjær i den.

4. samlet form

Trinn 4:

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

1. Arduino Mega 2560 Pin -tilkoblingsnummer

2. dele strømmen i to deler

3. trinnmotor og motor driver krets

4. To Arduino mega2560s er koblet til ved å krysse TX og RX for seriell kommunikasjon.

Trinn 5: Kode

#inkludere

StepperMulti stepper (200, 2, 3, 4, 5); // trinnmotor 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 count = 0; int init_set_speed

ugyldig oppsett ()

Seriell1.begynner (115200); // seriell kommunikasjon 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; // tomgangsløyfe for motorhastighet () {///////////////////////////////////////////) - set_timer1 <6000) {// Steppermotor 13 beveger seg mellom 1500 og 6000 sekunder. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } annet hvis (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) betyr omvendt rotasjon} ellers if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } annet hvis (millis () - on_timer 1000) {Serial1.write (0x01); telle = 1; }} ////////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (HASTIGHET); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } annet hvis (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-HASTIGHET); stepper9.setStep (-HASTIGHET); stepper12.setStep (-HASTIGHET); } annet hvis (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } annet hvis (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-HASTIGHET); stepper9.setStep (-HASTIGHET); stepper12.setStep (-HASTIGHET); } annet {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 (-HASTIGHET); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } annet hvis (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-HASTIGHET); stepper7.setStep (-HASTIGHET); } annet hvis (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-HASTIGHET); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } annet hvis (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-HASTIGHET); stepper7.setStep (-HASTIGHET); } annet {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); } annet hvis (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-HASTIGHET); stepper3.setStep (-HASTIGHET); stepper4.setStep (-HASTIGHET); stepper5.setStep (-HASTIGHET); stepper6.setStep (-HASTIGHET); stepper10.setStep (-HASTIGHET); stepper11.setStep (-HASTIGHET); } annet hvis (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); } annet hvis (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-HASTIGHET); stepper3.setStep (-HASTIGHET); stepper4.setStep (-HASTIGHET); stepper5.setStep (-HASTIGHET); stepper6.setStep (-HASTIGHET); stepper10.setStep (-HASTIGHET); stepper11.setStep (-HASTIGHET); } annet {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); } annet hvis (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-HASTIGHET); stepper8.setStep (-HASTIGHET); stepper9.setStep (-HASTIGHET); stepper10.setStep (-HASTIGHET); stepper11.setStep (-HASTIGHET); stepper12.setStep (-HASTIGHET); stepper13.setStep (-HASTIGHET); } annet hvis (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); } annet hvis (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-HASTIGHET); stepper8.setStep (-HASTIGHET); stepper9.setStep (-HASTIGHET); stepper10.setStep (-HASTIGHET); stepper11.setStep (-HASTIGHET); stepper12.setStep (-HASTIGHET); stepper13.setStep (-HASTIGHET); } annet {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 -koding

og..

#inkludere

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

andre koding

Trinn 6: Før koding…

Før koding…
Før koding…

Du bør legge til et nytt bibliotek relatert til trinnmotorer.

Så du går inn på dette nettstedet og laster ned et nytt bibliotek.

blog.danggun.net/2092

Trinn 7: Seriell kommunikasjon

Du må lage to arduino megatelekommunikasjon.

if (start_count == 0) {

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

Først og fremst trenger vi denne kodingen på Maine Arduino Mega.

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

Arduino Mega, som mottar seriell kommunikasjon, trenger denne kodingen.

Den første kodingen plasseres der den andre aduinoen må bevege seg.

Anbefalt: