Inhoudsopgave:

Bewegend raster met oneindige spiegel - Ajarnpa
Bewegend raster met oneindige spiegel - Ajarnpa

Video: Bewegend raster met oneindige spiegel - Ajarnpa

Video: Bewegend raster met oneindige spiegel - Ajarnpa
Video: H15.4: Relativiteit, De lorentztransformatie 2024, Juli-
Anonim
Image
Image

die video's maken video en bewegende video.

We wilden de wuivende ruimte laten zien door middel van bewegende rasters en de Infinity Mirror om het gevoel van ruimte effectiever te laten zien.

Ons werk bestaat uit twee acrylplaten, de voorkant en de achterplaten, die mensen laten zien hoe ze direct in beweging zijn, en de achterplaten hebben 25 stappenmotoren die daadwerkelijk beweging produceren.

Het werk bestaat uit een frontpaneel dat de sprankjes van de ruimte laat zien, een houten stok die de middenbeweging uitvoert, een geleider voor de stangen en een bord dat beweging creëert door 25 stappenmotoren.

De 25 pieken van het net aangesloten op de 25 stappenmotoren produceren verschillende patronen volgens de ingestelde codeerwaarden. Bovendien wilde het bedrijf de ruimte maximaliseren door transparant acryl te combineren met een halfspiegelfilm aan de voorkant, een achteruitkijkspiegel en een zwart verlichte Infinity-spiegel. Verschillende animatiepatronen zijn gemaakt op basis van golven en drabs die zijn gemaakt op basis van de golven van water.

Benodigdheden

Benodigdheden

1. UV-LED 12V 840cm

2. Rubber wit 12mm 750cm

3. Arduino mega 2560 x2

4. Motorbestuurder x25

5. stappenmotor x25

6. Bipolaire kabel voor stappenmotor x25

7. Wood cilinder x25

8.pvc (9mm) x25

9. Spring x 25

10. acryl 700 mm * 700 mm;

11. Halve spiegelfilm 1524 mm * 1M

12. Vislijn:

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

14. timing katrol (3d print) x 25

Stap 1: Plan een groot raamwerk

Plan een groot raamwerk
Plan een groot raamwerk

Als we beginnen, moeten we een groot kader plannen en tekenen. dus hebben we een pdf-bestand gemaakt voor een acryl algemeen frame en een stl-bestand van de timingpoelie (wat we voor de stappenmotor hebben geplaatst voor winddraad die een middenhouten staaf kan trekken).

met het acryl algehele frame en de timing katrol, moeten we eerst een stl-bestand maken en 3D-printen.

Stap 2: Hardware maken

Hardware maken
Hardware maken
Hardware maken
Hardware maken
Hardware maken
Hardware maken

doos1

1. Plaats 2T acryl zwart (nr. 1) op de vloer en bevestig 5T acryl zwarte zijde (nr. 2) bovenop. Voeg 5T acryl zwart raster (nr. 3) toe en bevestig het met acrylbinding.

doos2

2. Sprinkle water op acryl transparante plaat en top met semi-spiegelfilm. Een halve spiegel rolt een kaart om te voorkomen dat deze gaat borrelen. Bevestig de zijkant (2) en de acryl transparant (1). Zet het gecombineerde acryluitsteeksel en acrylspiegels (nr. 1) niet zijdelings vast. Zet het tijdelijk vast met tape (voor reparatie van de vislijn of renovatie van het interieur).

Stap 3: Raster maken

Raster maken
Raster maken
Raster maken
Raster maken
Raster maken
Raster maken

1. Een houten kolom is 12 mm groot. Boor een gat in het uiteinde zodat de vislijn erin kan.

2. Bevestig acrylplaten met lijm aan de andere kant van een geperforeerde houten kolom.

3. Steek een rubberen band door de achterkant van een houten pilaar en plaats er een veer in.

4. Algemene vorm:

Stap 4:

Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding

1. Arduino Mega 2560 Pin-verbindingsnummer:

2.verdeel de elektriciteit in twee delen:

3. Stappenmotor en motorbesturingscircuit

4. Twee Arduino mega2560's zijn verbonden door TX en RX te kruisen voor seriële communicatie.

Stap 5: Coderen

#erbij betrekken

StepperMultistepper(200, 2, 3, 4, 5); // stappenmotor nummering StepperMulti stepper2(200, 6, 7, 8, 9); StepperMultistepper3(200, 10, 11, 12, 13); StepperMultistepper4(200, A0, A1, A2, A3); StepperMultistepper5(200, A4, A5, A6, A7); StepperMultistepper6(200, 22, 23, 24, 25); StepperMultistepper7(200, 26, 27, 28, 29); StepperMultistepper8(200, 30, 31, 32, 33); StepperMultistepper9(200, 34, 35, 36, 37); StepperMultistepper10(200, 38, 39, 40, 41); StepperMultistepper11(200, 42, 43, 44, 45); StepperMultistepper12(200, 46, 47, 48, 49); StepperMultistepper13(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(); aantal int = 0; int init_set_speed

ongeldige setup()

Serieel1.begin(115200); //seriële communicatie 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 SNELHEID = 200; // motor snelheid void loop() { ///////////////////////////////////// if (millis() - set_timer1 < 6000) { // Stappenmotor 13 beweegt tussen 1500 en 6000 seconden. < if (millis () - on_timer < 1500) { stepper13.setStep (SPEED); } else if (millis() - on_timer < 3000) { stepper13.setStep(-SPEED); //(-SPEED) betekent omgekeerde rotatie} else if (millis() - on_timer <4500) { stepper13.setStep (SPEED); } else if (millis() - on_timer 1000) { Serial1.write(0x01); aantal = 1; } } /////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setStep (SNELHEID); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper12.setStep (SNELHEID); } else if (millis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); } else if (millis() - on_timer < 5500) { stepper7.setStep (SPEED); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper12.setStep (SNELHEID); } else if (millis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); } 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(-SNELHEID); stepper6.setStep (SNELHEID); stepper7.setStep (SNELHEID); } else if (millis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep (SNELHEID); stepper6.setStep(-SNELHEID); stepper7.setStep(-SNELHEID); } else if (millis() - on_timer < 5500) { stepper2.setStep (SPEED); stepper5.setStep(-SNELHEID); stepper6.setStep (SNELHEID); stepper7.setStep (SNELHEID); } else if (millis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep (SNELHEID); stepper6.setStep(-SNELHEID); stepper7.setStep(-SNELHEID); } 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); } /////////////////////////////////////////////// indien (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep (SPEED); stepper2.setStep (SNELHEID); stepper3.setStep (SNELHEID); stepper4.setStep (SNELHEID); stepper5.setStep (SNELHEID); stepper6.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); } else if (millis() - on_timer < 5000) { stepper.setStep(-SPEED); stepper2.setStep(-SNELHEID); stepper3.setStep(-SNELHEID); stepper4.setStep(-SNELHEID); stepper5.setStep(-SNELHEID); stepper6.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); } else if (millis() - on_timer <6500) { stepper.setStep(SPEED); stepper2.setStep (SNELHEID); stepper3.setStep (SNELHEID); stepper4.setStep (SNELHEID); stepper5.setStep (SNELHEID); stepper6.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); } else if (millis() - on_timer < 8000) { stepper.setStep(-SPEED); stepper2.setStep(-SNELHEID); stepper3.setStep(-SNELHEID); stepper4.setStep(-SNELHEID); stepper5.setStep(-SNELHEID); stepper6.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); } 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 (SNELHEID); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); stepper12.setStep (SNELHEID); stepper13.setStep (SNELHEID); } else if (millis() - on_timer < 5000) { stepper3.setStep(-SPEED); stepper4.setStep(-SNELHEID); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); stepper13.setStep(-SPEED); } else if (millis() - on_timer <6500) { stepper3.setStep(SPEED); stepper4.setStep (SNELHEID); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); stepper12.setStep (SNELHEID); stepper13.setStep (SNELHEID); } else if (millis() - on_timer < 8000) { stepper3.setStep(-SPEED); stepper4.setStep(-SNELHEID); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); 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(); }

eerste codering

en..

#erbij betrekken

StepperMultistepper(200, 2, 3, 4, 5); StepperMultistepper2(200, 6, 7, 8, 9); StepperMultistepper3(200, 10, 11, 12, 13); StepperMultistepper4(200, A0, A1, A2, A3); StepperMultistepper5(200, A4, A5, A6, A7); StepperMultistepper6(200, 22, 23, 24, 25); StepperMultistepper7(200, 26, 27, 28, 29); StepperMultistepper8(200, 30, 31, 32, 33); StepperMultistepper9(200, 34, 35, 36, 37); StepperMultistepper10(200, 38, 39, 40, 41); StepperMultistepper11(200, 42, 43, 44, 45); StepperMultistepper12(200, 46, 47, 48, 49); StepperMultistepper13(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(); aantal int = 0; int init_set_speed = 10; void setup() Serial1.begin(115200); Serieel.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 SNELHEID = 200; lege lus() {

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

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); aantal = 1; } } /////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setSte ㄴp(SNELHEID); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper12.setStep (SNELHEID); } else if (millis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); } else if (millis() - on_timer < 5500) { stepper7.setStep (SPEED); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper12.setStep (SNELHEID); } else if (millis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); } 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(-SNELHEID); stepper6.setStep (SNELHEID); stepper7.setStep (SNELHEID); } else if (millis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep (SNELHEID); stepper6.setStep(-SNELHEID); stepper7.setStep(-SNELHEID); } else if (millis() - on_timer < 5500) { stepper2.setStep (SPEED); stepper5.setStep(-SNELHEID); stepper6.setStep (SNELHEID); stepper7.setStep (SNELHEID); } else if (millis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep (SNELHEID); stepper6.setStep(-SNELHEID); stepper7.setStep(-SNELHEID); } 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); } /////////////////////////////////////////////// indien (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep (SPEED); stepper2.setStep (SNELHEID); stepper3.setStep (SNELHEID); stepper4.setStep (SNELHEID); stepper5.setStep (SNELHEID); stepper6.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); } else if (millis() - on_timer < 5000) { stepper.setStep(-SPEED); stepper2.setStep(-SNELHEID); stepper3.setStep(-SNELHEID); stepper4.setStep(-SNELHEID); stepper5.setStep(-SNELHEID); stepper6.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); } else if (millis() - on_timer <6500) { stepper.setStep(SPEED); stepper2.setStep (SNELHEID); stepper3.setStep (SNELHEID); stepper4.setStep (SNELHEID); stepper5.setStep (SNELHEID); stepper6.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); } else if (millis() - on_timer < 8000) { stepper.setStep(-SPEED); stepper2.setStep(-SNELHEID); stepper3.setStep(-SNELHEID); stepper4.setStep(-SNELHEID); stepper5.setStep(-SNELHEID); stepper6.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); } 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 (SNELHEID); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); stepper12.setStep (SNELHEID); stepper13.setStep (SNELHEID); } else if (millis() - on_timer < 5000) { stepper3.setStep(-SPEED); stepper4.setStep(-SNELHEID); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); stepper13.setStep(-SPEED); } else if (millis() - on_timer <6500) { stepper3.setStep(SPEED); stepper4.setStep (SNELHEID); stepper8.setStep (SNELHEID); stepper9.setStep (SNELHEID); stepper10.setStep (SNELHEID); stepper11.setStep (SNELHEID); stepper12.setStep (SNELHEID); stepper13.setStep (SNELHEID); } else if (millis() - on_timer < 8000) { stepper3.setStep(-SPEED); stepper4.setStep(-SNELHEID); stepper8.setStep(-SNELHEID); stepper9.setStep(-SNELHEID); stepper10.setStep(-SNELHEID); stepper11.setStep(-SNELHEID); stepper12.setStep(-SNELHEID); 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(); }

tweede codering

Stap 6: Voor het coderen…

Voor het coderen…
Voor het coderen…

U moet een nieuwe bibliotheek met betrekking tot stappenmotoren toevoegen.

Dus je gaat naar deze site en downloadt een nieuwe bibliotheek.

blog.danggun.net/2092

Stap 7: Seriële communicatie

Je moet twee arduino mega-telecommunicaties maken.

if (start_count == 0) {

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

Allereerst hebben we deze codering nodig op Maine Arduino Mega.

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

Arduino Mega, die seriële communicatie ontvangt, heeft deze codering nodig.

De eerste codering wordt geplaatst waar de tweede aduino moet bewegen.

Aanbevolen: