Isi kandungan:

Menggerakkan Grid Dengan Infinity Mirror: 7 Langkah
Menggerakkan Grid Dengan Infinity Mirror: 7 Langkah

Video: Menggerakkan Grid Dengan Infinity Mirror: 7 Langkah

Video: Menggerakkan Grid Dengan Infinity Mirror: 7 Langkah
Video: 8 Fitur Canggih & Keren 🔥 HANYA ADA DI INFINIX 2024, Julai
Anonim
Image
Image

video tersebut membuat video dan video bergerak.

Kami ingin menunjukkan ruang bergoyang melalui grid bergerak dan Infinity Mirror untuk menunjukkan rasa ruang dengan lebih berkesan.

Kerja kami terdiri daripada dua plat akrilik, bahagian depan dan plat belakang, yang menunjukkan kepada orang-orang cara mereka menggerakkan secara langsung, dan plat belakang mempunyai motor 25 langkah yang benar-benar menghasilkan pergerakan.

Karya ini terdiri dari panel depan yang akan memperlihatkan kilauan ruang, tongkat kayu yang melaksanakan pergerakan tengah, panduan untuk batang, dan papan belakang yang membuat pergerakan melalui motor 25 langkah.

25 puncak grid yang disambungkan ke motor 25 langkah menghasilkan corak yang berbeza mengikut nilai pengekodan yang ditetapkan. Di samping itu, syarikat ingin memaksimumkan ruang dengan menggabungkan akrilik telus dengan filem separuh cermin depan, cermin belakang, dan cermin Infinity bercahaya hitam. Pelbagai corak animasi dibuat berdasarkan gelombang dan joran yang dibuat berdasarkan gelombang air.

Bekalan

Bekalan

1. UV LED 12V 840cm

2. Karet putih 12mm 750cm

3. Arduino mega 2560 x2

4. Pemandu motor x25

5. Stepper motor x25

6. Kabel dwipolar untuk motor stepper x25

7. Silinder kayu x25

8.pvc (9mm) x25

9. Musim bunga x 25

10. akrilik 700mm * 700mm

11. Filem cermin separuh 1524mm * 1M

12. Talian penangkapan

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

14. takal masa (cetakan 3d) x 25

Langkah 1: Rancang Kerangka Besar

Rancang Kerangka Besar
Rancang Kerangka Besar

Semasa kita mula, kita perlu merancang dan membuat kerangka besar. jadi, kami menyiapkan fail pdf untuk kerangka keseluruhan akrilik dan fail stl pulley timing (apa yang kami letakkan di hadapan motor langkah untuk benang angin yang dapat menarik batang kayu tengah).

dengan kerangka keseluruhan akrilik dan takal masa, kita perlu membuat fail stl terlebih dahulu, dan percetakan 3d.

Langkah 2: Membuat Perkakasan

Membuat Perkakasan
Membuat Perkakasan
Membuat Perkakasan
Membuat Perkakasan
Membuat Perkakasan
Membuat Perkakasan

kotak1

1. Letakkan 2T hitam akrilik (No. 1) di lantai dan pasangkan sisi hitam akrilik 5T (No. 2) di atas. Tambahkan grid hitam akrilik 5T (No. 3) dan pasangkannya menggunakan ikatan akrilik.

kotak2

2. Taburkan air di atas plat lutsinar akrilik dan bahagian atas dengan filem separa cermin. Separuh cermin menggulung kad agar tidak menggelegak. Pasang sisi (2) dan ketelusan akrilik (1). Jangan pasangkan penonjolan akrilik gabungan dan cermin akrilik (No. 1) secara lateral. Selesaikannya dengan pita buat sementara waktu (untuk membaiki tali pancing atau mengubahsuai bahagian dalam).

Langkah 3: Membuat Grid

Membuat Grid
Membuat Grid
Membuat Grid
Membuat Grid
Membuat Grid
Membuat Grid

1. Tiang kayu berukuran 12mm. Gerudi lubang pada akhirnya untuk membiarkan pancing masuk.

2. Pasang piring akrilik ke sisi lain tiang kayu berlubang menggunakan pelekat.

3. Pasang gelang getah di bahagian belakang tiang kayu dan letakkan spring di dalamnya.

4. Bentuk keseluruhan

Langkah 4:

Imej
Imej
Imej
Imej
Imej
Imej

1. Nombor Sambungan Pin Arduino Mega 2560

2. bahagikan elektrik kepada dua bahagian

3. Litar pemacu motor dan pemacu motor

4. Dua mega2560 Arduino dihubungkan dengan menyeberangi TX dan RX untuk komunikasi bersiri.

Langkah 5: Kod

#sertakan

StepperMulti stepper (200, 2, 3, 4, 5); // penomboran motor stepper 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 = milis (); uint32_t set_timer2 = milis (); uint32_t set_timer3 = milis (); uint32_t set_timer4 = milis (); uint32_t set_timer5 = milis (); uint32_t set_timer6 = milis (); uint32_t set_timer7 = milis (); uint32_t set_timer8 = milis (); uint32_t set_timer9 = milis (); uint32_t set_timer10 = milis (); kiraan int = 0; int init_set_speed

persediaan tidak sah ()

Serial1.begin (115200); // komunikasi bersiri 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); } SPEED int = 200; // gelung kekosongan kelajuan motor () {///////////////////////////////////// jika (milis () - set_timer1 <6000) {// Motor stepper 13 bergerak antara 1500 hingga 6000 saat. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } lain jika (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) bermaksud putaran terbalik} yang lain jika (milis () - on_timer <4500) {stepper13.setStep (SPEED); } lain jika (millis () - on_timer 1000) {Serial1.write (0x01); kiraan = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setLangkah (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } lain jika (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } lain jika (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } lain jika (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } lain {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} lain {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); } lain jika (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } lain jika (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } lain jika (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } lain {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} lain {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////// jika (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); } lain jika (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); } lain jika (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); } lain jika (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); } lain {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} lain {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); } lain jika (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); } lain jika (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); } lain jika (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); } lain {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} lain {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 (); }

pengkodan frist

dan..

#sertakan

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 = milis (); uint32_t set_timer2 = milis (); uint32_t set_timer3 = milis (); uint32_t set_timer4 = milis (); uint32_t set_timer5 = milis (); uint32_t set_timer6 = milis (); uint32_t set_timer7 = milis (); uint32_t set_timer8 = milis (); uint32_t set_timer9 = milis (); uint32_t set_timer10 = milis (); kiraan int = 0; int init_set_speed = 10; persediaan kosong () 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); } SPEED int = 200; gelung kosong () {

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

if (millis () - set_timer1 <6000) {if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } lain jika (millis () - on_timer <3000) {stepper13.setStep (-SPEED); } lain jika (millis () - on_timer <4500) {stepper13.setStep (SPEED); } lain jika (millis () - on_timer 1000) {Serial1.write (0x01); kiraan = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } lain jika (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } lain jika (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } lain jika (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } lain {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} lain {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); } lain jika (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } lain jika (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } lain jika (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } lain {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} lain {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////// jika (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); } lain jika (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); } lain jika (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); } lain jika (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); } lain {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} lain {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); } lain jika (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); } lain jika (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); } lain jika (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); } lain {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} lain {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 (); }

pengekodan kedua

Langkah 6: Sebelum Pengekodan…

Sebelum Pengekodan…
Sebelum Pengekodan…

Anda harus menambah perpustakaan baru yang berkaitan dengan motor langkah.

Oleh itu, anda masuk ke laman web ini dan memuat turun perpustakaan baru.

blog.danggun.net/2092

Langkah 7: Komunikasi Bersiri

Anda harus membuat dua mega-telekomunikasi arduino.

jika (start_count == 0) {

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

Pertama sekali, kami memerlukan pengekodan ini di Maine Arduino Mega.

if (hitung == 0) {if (milis () - set_timer1> 1000) {Serial1.write (0x01); kiraan = 1; }

Arduino Mega, yang menerima komunikasi bersiri, memerlukan pengekodan ini.

Pengekodan pertama diletakkan di mana aduino kedua harus bergerak.

Disyorkan: