Sadržaj:
- Pribor
- Korak 1: Planirajte veliki okvir
- Korak 2: Izrada hardvera
- Korak 3: Izrada mreže
- Korak 4:
- Korak 5: Kodirajte
- Korak 6: Prije kodiranja…
- Korak 7: Serijska komunikacija
Video: Pokretna rešetka s beskonačnim ogledalom: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
ti videozapisi stvaraju video zapise i pokreću video zapise.
Željeli smo pokazati njišući prostor kroz pokretne rešetke i beskonačno ogledalo kako bismo učinkovitije prikazali osjećaj prostora.
Naš rad sastoji se od dvije akrilne ploče, prednje i stražnje ploče, koje ljudima pokazuju način na koji se izravno miješaju, a stražnje ploče imaju 25 koračnih motora koji zapravo proizvode kretanje.
Rad se sastoji od prednje ploče koja će prikazati svjetlucanje prostora, drvenog štapa koji izvodi srednji pokret, vodiča za šipke i stražnje ploče koja stvara kretanje kroz motore s 25 koraka.
25 vrhova mrežno spojenih na 25 koračnih motora proizvodi različite uzorke prema postavljenim vrijednostima kodiranja. Osim toga, tvrtka je htjela povećati prostor kombinacijom prozirnog akrila s prednjim ogledalom, stražnjim ogledalom i crno osvijetljenim ogledalom Infinity. Razni uzorci animacije izrađeni su na temelju valova i naboja koji su izrađeni na temelju valova vode.
Pribor
Pribor
1. UV LED 12V 840cm
2. Guma bijela 12mm 750cm
3. Arduino mega 2560 x2
4. Upravljački program motora x25
5.koračni motor x25
6. Bipolarni kabel za koračni motor x25
7. Drveni cilindar x25
8.pvc (9 mm) x25
9. Proljeće x 25
10.akril 700 mm*700 mm
11. Poluzrcalna folija 1524 mm * 1M
12. Lica za pecanje
13. Napajanje 12V 12.5A, 12V 75A
14. razvodna remenica (3d ispis) x 25
Korak 1: Planirajte veliki okvir
Kad počnemo, moramo planirati i nacrtati veliki okvir. pa smo pripremili pdf datoteku za akrilni cjelokupni okvir i stl datoteku vremenske remenice (ono što smo stavili ispred koračnog motora za navoj za vjetar koji može povući šipku srednjeg drva).
s ukupnim akrilnim okvirom i remenicom za mjerenje vremena, prvo moramo napraviti stl datoteku i 3d ispis.
Korak 2: Izrada hardvera
kutija1
1. Postavite 2T akrilnu crnu (br. 1) na pod i pričvrstite 5T akrilnu crnu stranu (br. 2) na vrh. Dodajte 5T akrilnu crnu rešetku (br. 3) i pričvrstite je pomoću akrilne veze.
kutija 2
2. Poprskajte vodu na prozirnoj akrilnoj ploči i odozgo premažite zrcalnim filmom. Polu ogledalo kotrlja kartu kako ne bi zablistala. Pričvrstite bočnu stranu (2) i akrilnu prozirnicu (1). Ne pričvršćujte kombinirano akrilno izbočenje i akrilna ogledala (br. 1) bočno. Privremeno ga popravite trakom (za popravak s ribolovne linije ili obnovu unutrašnjosti).
Korak 3: Izrada mreže
1. Drveni stup velik je 12 mm. Na kraju izbušite rupu kako bi ribarska linija ušla.
2. Ljepilom pričvrstite akrilne ploče na drugu stranu perforiranog drvenog stupa.
3. Stavite gumicu kroz stražnju stranu drvenog stupa i stavite oprugu u nju.
4. Ukupni oblik
Korak 4:
1. Broj priključka za Arduino Mega 2560 pin
2.podijelite električnu energiju na dva dijela
3. Krug koračnog motora i upravljačkog programa motora
4. Dva Arduino mega2560 spojena su križanjem TX i RX radi serijske komunikacije.
Korak 5: Kodirajte
#uključi
StepperMulti stepper (200, 2, 3, 4, 5); // numeriranje koračnih motora 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 broj = 0; int init_set_speed
void setup ()
Serial1.begin (115200); // serijska komunikacija 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; // brzina motora void loop () {/////////////////////////////////////// if (millis () - set_timer1 <6000) {// Koračni motor 13 pomiče se između 1500 i 6000 sekundi. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) znači obrnutu rotaciju} 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 (UBRZATI); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } 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 (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } 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 (SPEED); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); 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); } ///////////////////////////////////////////////////// ako (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); } 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 (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } 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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } 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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } 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 (); }
kodiranje prstom
i..
#uključi
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 broj = 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 BRZINA = 200; void loop () {{100} {101}
/////////////////////////////////////
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 (BRZINA); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } 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 (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } 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 (SPEED); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); 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); } ///////////////////////////////////////////////////// ako (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); } 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 (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } 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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } 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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } 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 (); }
drugo kodiranje
Korak 6: Prije kodiranja…
Trebali biste dodati novu biblioteku vezanu za koračne motore.
Zato idite na ovu stranicu i preuzmite novu biblioteku.
blog.danggun.net/2092
Korak 7: Serijska komunikacija
Morate napraviti dvije arduino mega-telekomunikacije.
if (start_count == 0) {
int Podaci = Serial1.read (); Serial.println (Podaci); if (Podaci == 0x01) {start_count = 1; }
Prije svega, potrebno nam je ovo kodiranje na Maine Arduino Mega.
if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); count = 1; }
Arduino Mega, koji prima serijsku komunikaciju, treba ovo kodiranje.
Prvo kodiranje postavljeno je tamo gdje se drugi aduino mora kretati.
Preporučeni:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način stvaranja igre, osobito nečega poput zagonetke, vizualnog romana ili avanturističke igre
Pokretna gunpla: Gundam: 5 koraka
Pokretna gunpla: Gundam: Nakon što su modeli napravljeni, ne pomiču se. Stoga sam odlučio stvoriti način za kretanje modela Gundam. Osnovni plastični modeli nakon sastavljanja mogu stajati samo u postavljenim položajima. Htio sam od modela napraviti više od kipa. Zaključio sam da ako
Platformer s beskonačnim razinama na GameGo s Makecode Arcade: 5 koraka (sa slikama)
Platformer s beskonačnim razinama na GameGo -u S Makecode Arcade: GameGo je retro prijenosna igraća konzola kompatibilna s Microsoft Makecode -om koju je razvilo TinkerGen STEM obrazovanje. Temelji se na STM32F401RET6 ARM Cortex M4 čipu i napravljen je za STEM edukatore ili samo ljude koji se vole zabaviti stvarajući retro video igre
Moderna stolna svjetiljka s beskonačnim ogledalom: 19 koraka (sa slikama)
Moderna Led Infinity Mirror stolna svjetiljka: © 2017 techydiy.org Sva prava pridržanaNe smijete kopirati ili redistribuirati video zapise ili slike povezane s ovom instrukcijom. U ovoj uputi opisat ću kako izraditi moderno oblikovano beskonačno ogledalo, koje također stvarno radi kao i
Zidni sat s ogledalom Infinity u IKEA Okviru za slike: 4 koraka
Infinity Mirror zidni sat u IKEA Okviru za slike: Zdravo, oduvijek sam želio izgraditi zidni sat. U trgovinama poput IKEA -e ima puno prekrasnih zidnih satova. Imao sam problema s ovim komercijalnim satovima. Preglasni su za mene (kontinuirani tic-tac je dosadan), ne mogu vidjeti kazaljke sata