Sisällysluettelo:

Ruudukon siirtäminen ääretön peili: 7 vaihetta
Ruudukon siirtäminen ääretön peili: 7 vaihetta

Video: Ruudukon siirtäminen ääretön peili: 7 vaihetta

Video: Ruudukon siirtäminen ääretön peili: 7 vaihetta
Video: Matematiikan ihmeitä: kosinimuunnos ja jpg-kuva 2024, Marraskuu
Anonim
Image
Image

nämä videot tekevät videota ja liikkuvat videot.

Halusimme näyttää heiluvan tilan liikkuvien ristikkojen ja Infinity Mirrorin kautta, jotta avaruuden tunne olisi tehokkaampi.

Työmme koostuu kahdesta akryylilevystä, etu- ja takalevyistä, jotka osoittavat ihmisille, miten he sekoittavat suoraan, ja taustalevyissä on 25 askelmoottoria, jotka todella tuottavat liikettä.

Teos koostuu etupaneelista, jossa näkyy avaruuden loistoja, puinen sauva, joka suorittaa keskiliikkeen, ohjaimen tankoille ja taustalevyn, joka luo liikkeen 25 askelmoottorin kautta.

25 porrasmoottoriin yhdistetyn verkon 25 huippua tuottavat erilaisia kuvioita asetettujen koodausarvojen mukaisesti. Lisäksi yritys halusi maksimoida tilan yhdistämällä läpinäkyvän akryylin etupuolipeilikalvoon, takapeiliin ja mustaksi valaistuun Infinity-peiliin. Erilaisia animaatiokuvioita tehdään aaltojen ja vedosten perusteella.

Tarvikkeet

Tarvikkeet

1. UV LED 12V 840cm

2. Kumi valkoinen 12mm 750cm

3. Arduino mega 2560 x2

4. moottorin ohjain x25

5. askelmoottori x25

6. kaksisuuntainen kaapeli askelmoottorille x25

7. puusylinteri x25

8. PVC (9 mm) x25

9. kevät x 25

10. akryyli 700mm*700mm

11. puolipeili elokuva 1524mm * 1M

12. siima

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

14. jakopyörä (3D -tulostus) x 25

Vaihe 1: Suunnittele iso kehys

Suunnittele iso kehys
Suunnittele iso kehys

Kun aloitamme, meidän on suunniteltava ja piirrettävä suuri kehys. niin, valmistelimme pdf-tiedoston akryylikehykselle ja ajoituspyörän stl-tiedostolle (mitä laitoimme ne askelmoottorin eteen tuulikierteelle, joka voi vetää keskipuuta.

Akryylikehyksen ja jakopyörän kanssa meidän on ensin tehtävä stl -tiedosto ja 3D -tulostus.

Vaihe 2: Laitteiston valmistus

Laitteiston valmistus
Laitteiston valmistus
Laitteiston valmistus
Laitteiston valmistus
Laitteiston valmistus
Laitteiston valmistus

laatikko 1

1. Aseta 2T akryylimusta (nro 1) lattialle ja kiinnitä 5T akryylimusta puoli (nro 2) päälle. Lisää 5T musta akryyliristikko (nro 3) ja kiinnitä se akryylisidoksella.

laatikko 2

2. Ripottele vettä läpinäkyvälle akryylilevylle ja päälle puolipeilikalvo. Puolipeili rullaa korttia, jotta se ei kuplisi. Kiinnitä sivu (2) ja akryylikalvo (1). Älä kiinnitä yhdistettyjä akryyliulokkeita ja akryylipeilejä (nro 1) sivusuunnassa. Kiinnitä se tilapäisesti teipillä (siiman korjaamiseksi tai sisätilan kunnostamiseksi).

Vaihe 3: Ruudukon tekeminen

Ruudukon tekeminen
Ruudukon tekeminen
Ruudukon tekeminen
Ruudukon tekeminen
Ruudukon tekeminen
Ruudukon tekeminen

1. Puupylväs on kooltaan 12 mm. Poraa reikä päähän, jotta siima pääsee sisään.

2. Kiinnitä akryylilevyt rei'itetyn puupylvään toiselle puolelle liimalla.

3. Laita kuminauha puupylvään takaosan läpi ja aseta siihen jousi.

4. yleinen muoto

Vaihe 4:

Kuva
Kuva
Kuva
Kuva
Kuva
Kuva

1. Arduino Mega 2560 -nastainen liitäntänumero

2. jaa sähkö kahteen osaan

3. askelmoottori ja moottorin ohjainpiiri

4. Kaksi Arduino mega2560: ta on kytketty risteämällä TX ja RX sarjaliikennettä varten.

Vaihe 5: Koodi

#sisältää

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

mitätön asennus ()

Sarja1.alku (115200); // sarjaliikenne 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 NOPEUS = 200; // moottorin nopeuden mitätöity silmukka () {/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////) - set_timer1 <6000) {// Askelmoottori 13 liikkuu 1500 ja 6000 sekunnin välillä. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) tarkoittaa käänteistä kiertoa} else if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); count = 1; }} ///////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (NOPEUS); stepper8.setStep (NOPEUS); stepper9.setStep (NOPEUS); stepper12.setStep (NOPEUS); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (NOPEUS); stepper9.setStep (NOPEUS); stepper12.setStep (NOPEUS); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } 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 (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (NOPEUS); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (NOPEUS); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (NOPEUS); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (NOPEUS); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } 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); } ////////////////////////////////////////////////////////////////////////////////////////// millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (NOPEUS); stepper3.setStep (NOPEUS); stepper4.setStep (NOPEUS); stepper5.setStep (NOPEUS); stepper6.setStep (SPEED); stepper10.setStep (NOPEUS); stepper11.setStep (NOPEUS); } else 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); } else if (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (NOPEUS); stepper3.setStep (NOPEUS); stepper4.setStep (NOPEUS); stepper5.setStep (NOPEUS); stepper6.setStep (SPEED); stepper10.setStep (NOPEUS); stepper11.setStep (NOPEUS); } else 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); } 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 (NOPEUS); stepper8.setStep (NOPEUS); stepper9.setStep (NOPEUS); stepper10.setStep (NOPEUS); stepper11.setStep (NOPEUS); stepper12.setStep (NOPEUS); stepper13.setStep (NOPEUS); } else 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); } else if (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (NOPEUS); stepper8.setStep (NOPEUS); stepper9.setStep (NOPEUS); stepper10.setStep (NOPEUS); stepper11.setStep (NOPEUS); stepper12.setStep (NOPEUS); stepper13.setStep (NOPEUS); } else 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); } 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 (); }

frist -koodaus

ja..

#sisältää

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 -luku = 0; int init_set_speed = 10; void setup () Serial1.begin (115200); Sarja.alku (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 NOPEUS = 200; void loop () {

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

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

toinen koodaus

Vaihe 6: Ennen koodausta…

Ennen koodausta…
Ennen koodausta…

Lisää uusi askelmoottoreihin liittyvä kirjasto.

Joten mene tälle sivustolle ja lataa uusi kirjasto.

blog.danggun.net/2092

Vaihe 7: Sarjaliikenne

Sinun on tehtävä kaksi arduino-mega-tietoliikennettä.

jos (aloitusluku == 0) {

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

Ensinnäkin tarvitsemme tämän koodauksen Maine Arduino Megassa.

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

Arduino Mega, joka vastaanottaa sarjaliikennettä, tarvitsee tämän koodauksen.

Ensimmäinen koodaus sijoitetaan sinne, missä toisen aduinon on siirryttävä.

Suositeltava: