INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
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
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
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
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:
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 …
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:
Maklike oneindige spieël met Arduino Gemma en NeoPixels: 8 stappe (met foto's)
Maklike oneindige spieël met Arduino Gemma en NeoPixels: Kyk! Kyk diep in die betowerende en bedrieglik eenvoudige oneindige spieël! 'N Enkele strook LED's skyn na binne op 'n spieëlbroodjie om die effek van eindelose refleksie te skep. Hierdie projek pas die vaardighede en tegnieke van my intro Arduin toe
Oneindige spieël met LCD en IR -sensor: 5 stappe
Infinity Mirror Met LCD en IR Sensor: Hierdie projek gaan u wys hoe u 'n Infinity Mirror kan maak. Die basiese konsep is dat die LED's op die spieël lig skep wat van die agterste spieël na die voorspieël spring, waar 'n bietjie lig ontsnap sodat ons binne kan sien
Maak 'n tweesydige, oneindige spieël op die lessenaar: 14 stappe (met foto's)
Maak 'n tweesydige, oneindige spieël op die tafel: die meeste oneindige spieëls wat ek gesien het, is eensydig, maar ek wou 'n bietjie anders bou. Hierdie een is tweesydig en so ontwerp dat dit op 'n tafelblad of op 'n rak vertoon kan word. Dit is 'n maklike, baie cool projek om te maak
Oneindige spieël en tafel (met toevallige gereedskap): 7 stappe (met foto's)
Infinity Mirror and Table (Met toevallige gereedskap): Hallo almal, 'n rukkie gelede het ek hierdie instruksies teëgekom en is dadelik daarmee saamgeneem en wou dit self maak, maar ek kon dit nie in die hande kry nie 1) Een-rigting plexiglas spieël 2) 'n CNC -router. Na 'n bietjie rondgesoek het, kom ek op
Maak 'n kleurvolle oneindige spieël: 12 stappe (met foto's)
Maak 'n kleurvolle oneindige spieël: in my laaste instruksie het ek 'n oneindige spieël met wit ligte gemaak. Hierdie keer gaan ek een maak met kleurvolle ligte, met 'n LED -strook met adresbare LED's. Ek sal dieselfde stappe volg as die laaste instruksies, so ek is nie