INHOUDSOPGAWE:

Bewegingsrooster met oneindige spieël: 7 stappe
Bewegingsrooster met oneindige spieël: 7 stappe

Video: Bewegingsrooster met oneindige spieël: 7 stappe

Video: Bewegingsrooster met oneindige spieël: 7 stappe
Video: Chris Langan: IQ, vrije wil, psychedelica, CTMU en God 2024, Julie
Anonim
Image
Image

daardie video's maak video en bewegende video.

Ons wou die swaaiende ruimte wys deur bewegende roosters en die Infinity Mirror om die gevoel van ruimte meer effektief te toon.

Ons werk bestaan uit twee akrielplate, die voorkant en die agterplate, wat mense wys hoe hulle direk roer, en die agterplate het 25 trapmotors wat eintlik beweging veroorsaak.

Die werk bestaan uit 'n voorpaneel wat die glinsterende ruimte vertoon, 'n houtstok wat die middelste beweging uitvoer, 'n gids vir die stawe, en 'n agterplank wat deur 25 -stapmotors beweeg.

Die 25 pieke van die netwerk wat aan die 25-stapmotors gekoppel is, produseer verskillende patrone volgens die vasgestelde koderingswaardes. Boonop wou die onderneming die ruimte maksimeer deur deursigtige akriel te kombineer met voorste halfspieëlfilm, agterspieël en swart verligte Infinity-spieël. Verskeie animasiepatrone word gemaak op grond van golwe en drabs wat gemaak word op grond van die golwe van water.

Voorrade

Voorrade

1. UV LED 12V 840cm

2. Rubberwit 12mm 750cm

3. Arduino mega 2560 x2

4. Motorbestuurder x25

5. Stapmotor x25

6. Bipolêre kabel vir stapmotor x25

7. Hout silinder x25

8. PVC (9mm) x25

9. Lente x 25

10. akriel 700mm*700mm

11. Halwe spieëlfilm 1524mm * 1M

12. Vislyn

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

14. timing katrol (3d print) x 25

Stap 1: Beplan 'n groot raamwerk

Beplan 'n groot raamwerk
Beplan 'n groot raamwerk

As ons begin, moet ons 'n groot raamwerk beplan en teken. so, ons het 'n pdf-lêer voorberei vir die akriel-algehele raam en tydsberekening katrol stl-lêer (wat ons dit voor die stapmotor gesit het vir winddraad wat 'n middelhoutstaaf kan trek).

Met die algehele raam en die katrol van die akriel, moet ons eers 'n stl -lêer en 3D -drukwerk maak.

Stap 2: Maak hardeware

Die maak van hardeware
Die maak van hardeware
Die maak van hardeware
Die maak van hardeware
Die maak van hardeware
Die maak van hardeware

boks 1

1. Plaas 2T akriel swart (nr. 1) op die vloer en plak 5T akriel swart kant (nr. 2) bo -op. Voeg 5T akriel swart rooster (nr. 3) by en heg dit vas met behulp van akrielverband.

boks 2

2. Strooi water op 'n deursigtige plaat met akriel en bedek met 'n halfspieëlfilm. 'N Halwe spieël rol 'n kaart om te keer dat dit borrel. Bevestig die sy (2) en die deursigtigheid van akriel (1). Bevestig nie die gekombineerde akrieluitsteek- en akrielspieëls (nr. 1) lateraal nie. Maak dit tydelik met band vas (vir herstel van die vislyn of opknapping van die binnekant).

Stap 3: Maak rooster

Grid maak
Grid maak
Grid maak
Grid maak
Grid maak
Grid maak

1. 'n Houtkolom is 12 mm groot. Boor 'n gat aan die einde sodat die vislyn kan binnekom.

2. Bevestig akrielplate aan die ander kant van 'n geperforeerde houtkolom met kleefmiddel.

3. Steek 'n rekkie deur die agterkant van 'n houtpilaar en steek 'n veer daarin.

4. Algemene vorm

Stap 4:

Beeld
Beeld
Beeld
Beeld
Beeld
Beeld

1. Arduino Mega 2560 Pin Connection Number

2. verdeel die elektrisiteit in twee dele

3. Stapmotor en motorbestuurderbaan

4. Twee Arduino mega2560's word verbind deur die kruising van TX en RX vir seriële kommunikasie.

Stap 5: Kode

#insluit

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

leemte opstelling ()

Reeks1.begin (115200); // seriële kommunikasie 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; // motor spoed leegte lus () {/////////////////////////////////////////// if (millis () - set_timer1 <6000) {// Stappermotor 13 beweeg tussen 1500 en 6000 sekondes. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } anders if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) beteken omgekeerde rotasie} anders if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } anders if (millis () - on_timer 1000) {Serial1.write (0x01); telling = 1; }} ////////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (SPOED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } anders if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } anders if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } anders if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } anders {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} anders {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); } anders if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPOED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } anders if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } anders if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPOED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } anders {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} anders {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 (SPOED); stepper4.setStep (SPOED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPOED); stepper11.setStep (SPOED); } anders 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); } anders if (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPOED); stepper4.setStep (SPOED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPOED); stepper11.setStep (SPOED); } anders 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); } anders {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} anders {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 (SPOED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPOED); stepper11.setStep (SPOED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } anders 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); } anders if (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (SPOED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPOED); stepper12.setStep (SPOED); stepper13.setStep (SPEED); } anders 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); } anders {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} anders {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 kodering

en..

#insluit

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 telling = 0; int init_set_speed = 10; leemte opstelling () 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; leemte -lus () {

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

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

tweede kodering

Stap 6: Voor kodering …

Voor kodering…
Voor kodering…

U moet 'n nuwe biblioteek byvoeg wat verband hou met stapmotors.

U gaan dus na hierdie webwerf en laai 'n nuwe biblioteek af.

blog.danggun.net/2092

Stap 7: Seriële kommunikasie

U moet twee arduino mega-telekommunikasie maak.

as (start_count == 0) {

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

In die eerste plek benodig ons hierdie kodering op Maine Arduino Mega.

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

Arduino Mega, wat reekskommunikasie ontvang, benodig hierdie kodering.

Die eerste kodering word geplaas waar die tweede aduino moet beweeg.

Aanbeveel: