Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Planlæg en stor ramme
- Trin 2: Fremstilling af hardware
- Trin 3: Lav gitter
- Trin 4:
- Trin 5: Kode
- Trin 6: Inden kodning…
- Trin 7: Seriel kommunikation
Video: Moving Grid With Infinity Mirror: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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
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
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
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:
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…
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:
Lav en let Infinity Mirror Cube - INGEN 3D -udskrivning og INGEN programmering: 15 trin (med billeder)
Lav en let Infinity Mirror Cube | INGEN 3D -udskrivning og INGEN programmering: Alle kan lide en god uendelig terning, men de ser ud til at være svære at lave. Mit mål for denne Instructable er at vise dig trin for trin, hvordan du laver en. Ikke kun det, men med de instruktioner, jeg giver dig, kan du lave en
Infinity Mirror Illusion Magic: 3 trin
Infinity Mirror Illusion Magic: Hej venner, lad os lave et Infinity -spejl, som er en illusionsmagi
En galakse i din hånd! Infinity Mirror Box: 3 trin (med billeder)
En galakse i din hånd! Infinity Mirror Box: Denne vejledning handler om at lave en lille form, der skaber mange refleksioner indeni. Med huller i alle vinkler for lys og et lille vindue at se igennem, kan du se denne uendelige proces i din hånd! Ideen kom fra at se uendelig mirr
Infinity Mirror Coaster: 8 trin (med billeder)
Infinity Mirror Coaster: I dette projekt vil jeg vise dig, hvordan du bygger en uendelig spejlcoaster med en brugerdefineret 3D -trykt kabinet
Lav en Infinity Mirror Cube: 12 trin (med billeder)
Lav en Infinity Mirror Cube: Da jeg ledte efter oplysninger, da jeg lavede mit første uendelige spejl, stødte jeg på nogle billeder og videoer af uendelige terninger, og ville bestemt lave en af mine egne. Det vigtigste, der holdt mig tilbage, var, at jeg ville gøre det anderledes