Daftar Isi:

Memindahkan Grid Dengan Infinity Mirror: 7 Langkah
Memindahkan Grid Dengan Infinity Mirror: 7 Langkah

Video: Memindahkan Grid Dengan Infinity Mirror: 7 Langkah

Video: Memindahkan Grid Dengan Infinity Mirror: 7 Langkah
Video: Cara Setting Kamera Hp Infinix - Pengaturan Camera Infinix 2024, Juli
Anonim
Image
Image

video-video itu membuat video dan video bergerak.

Kami ingin menunjukkan ruang yang bergoyang melalui kisi-kisi yang bergerak dan Cermin Infinity untuk menunjukkan rasa ruang secara lebih efektif.

Pekerjaan kami terdiri dari dua pelat akrilik, bagian depan, dan pelat belakang, yang menunjukkan kepada orang-orang cara mereka mengaduk secara langsung, dan pelat belakang memiliki 25 motor langkah yang benar-benar menghasilkan gerakan.

Karya tersebut terdiri dari panel depan yang akan menampilkan kerlap-kerlip ruang, tongkat kayu yang menjalankan gerakan tengah, pemandu untuk joran, dan backboard yang menciptakan gerakan melalui motor 25 langkah.

25 puncak grid yang terhubung ke motor 25 langkah menghasilkan pola yang berbeda sesuai dengan nilai pengkodean yang ditetapkan. Selain itu, perusahaan ingin memaksimalkan ruang dengan menggabungkan akrilik transparan dengan film setengah cermin depan, kaca spion belakang, dan cermin Infinity berlampu hitam. Berbagai pola animasi dibuat berdasarkan gelombang dan menjemukan yang dibuat berdasarkan gelombang air.

Perlengkapan

Perlengkapan

1. UV LED 12V 840cm

2. Karet putih 12mm 750cm

3. Arduino mega 2560x2

4. Pengemudi motor x25

5. Motor langkah x25

6. Kabel bipolar untuk motor stepper x25

7. Silinder kayu x25

8.pvc (9mm) x25

9. Musim semi x 25

10. akrilik 700mm * 700mm

11. Setengah film cermin 1524mm * 1M

12. Garis pancing

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

14. katrol waktu (cetak 3d) x 25

Langkah 1: Rencanakan Kerangka Besar

Rencanakan Kerangka Besar
Rencanakan Kerangka Besar

Ketika kita mulai, kita perlu merencanakan dan menggambar kerangka besar. jadi, kami menyiapkan file pdf untuk bingkai keseluruhan akrilik dan file stl katrol waktu (apa yang kami letakkan di depan motor langkah untuk ulir angin yang dapat menarik batang kayu tengah).

dengan frame akrilik keseluruhan dan katrol waktu, kita perlu membuat file stl terlebih dahulu, dan pencetakan 3d.

Langkah 2: Membuat Perangkat Keras

Membuat Perangkat Keras
Membuat Perangkat Keras
Membuat Perangkat Keras
Membuat Perangkat Keras
Membuat Perangkat Keras
Membuat Perangkat Keras

kotak1

1. Letakkan akrilik hitam 2T (No. 1) di lantai dan pasang sisi hitam akrilik 5T (No. 2) di atasnya. Tambahkan kisi hitam akrilik 5T (No. 3) dan tempelkan menggunakan ikatan akrilik.

kotak2

2. Taburkan air di atas piring transparan akrilik dan tutup dengan film semi-cermin. Setengah cermin menggulung kartu agar tidak menggelegak. Pasang sisi (2) dan transparansi akrilik (1). Jangan kencangkan tonjolan akrilik gabungan dan cermin akrilik (No. 1) secara lateral. Perbaiki sementara dengan selotip (untuk memperbaiki tali pancing atau merenovasi interior).

Langkah 3: Membuat Grid

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

1. Sebuah kolom kayu berukuran 12mm. Bor lubang di ujungnya untuk memungkinkan tali pancing masuk.

2. Tempelkan pelat akrilik ke sisi lain kolom kayu berlubang menggunakan perekat.

3. Pasang karet gelang melalui bagian belakang pilar kayu dan pasang pegas di dalamnya.

4. Bentuk keseluruhan

Langkah 4:

Gambar
Gambar
Gambar
Gambar
Gambar
Gambar

1. Nomor Koneksi Pin Arduino Mega 2560

2.bagi listrik menjadi dua bagian

3. Sirkuit motor stepper dan driver motor

4. Dua mega2560 Arduino dihubungkan dengan melintasi TX dan RX untuk komunikasi serial.

Langkah 5: Kode

#termasuk

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

batalkan pengaturan()

Serial1.begin(115200); //komunikasi serial 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 KECEPATAN = 200; // kecepatan motor void loop() { //////////////////////////////////// if (milis() - set_timer1 < 6000) { // Motor stepper 13 bergerak antara 1500 dan 6000 detik.< if (millis() - on_timer < 1500) { stepper13.setStep(SPEED); } else if (milis() - on_timer < 3000) { stepper13.setStep(-SPEED); //(-SPEED) berarti rotasi terbalik } else if (millis() - on_timer < 4500) { stepper13.setStep(SPEED); } else if (milis() - on_timer 1000) { Serial1.write(0x01); jumlah = 1; } } /////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setStep (KECEPATAN); stepper8.setStep(KECEPATAN); stepper9.setStep(KECEPATAN); stepper12.setStep(KECEPATAN); } else if (milis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper12.setStep(-SPEED); } else if (milis() - on_timer < 5500) { stepper7.setStep(SPEED); stepper8.setStep(KECEPATAN); stepper9.setStep(KECEPATAN); stepper12.setStep(KECEPATAN); } else if (milis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper12.setStep(-SPEED); } else { stepper7.setStep(0); stepper8.setLangkah (0); stepper9.setLangkah (0); stepper12.setStep(0); } } else { stepper7.setStep(0); stepper8.setLangkah (0); stepper9.setLangkah (0); stepper12.setStep(0); } if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper2.setStep(SPEED); stepper5.setStep(-SPEED); stepper6.setStep(KECEPATAN); stepper7.setStep(KECEPATAN); } else if (milis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep(KECEPATAN); stepper6.setStep(-SPEED); stepper7.setStep(-SPEED); } else if (milis() - on_timer < 5500) { stepper2.setStep(SPEED); stepper5.setStep(-SPEED); stepper6.setStep(KECEPATAN); stepper7.setStep(KECEPATAN); } else if (milis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep(KECEPATAN); stepper6.setStep(-SPEED); stepper7.setStep(-SPEED); } else { stepper2.setStep(0); stepper5.setLangkah (0); stepper6.setLangkah (0); stepper7.setLangkah (0); } } else { stepper2.setStep(0); stepper5.setLangkah (0); stepper6.setLangkah (0); stepper7.setLangkah (0); } /////////////////////////////////////////////// jika (milis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep(SPEED); stepper2.setStep(KECEPATAN); stepper3.setStep(KECEPATAN); stepper4.setStep(KECEPATAN); stepper5.setStep(KECEPATAN); stepper6.setStep(KECEPATAN); stepper10.setStep(KECEPATAN); stepper11.setStep(KECEPATAN); } else if (milis() - 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 (milis() - on_timer < 6500) { stepper.setStep(SPEED); stepper2.setStep(KECEPATAN); stepper3.setStep(KECEPATAN); stepper4.setStep(KECEPATAN); stepper5.setStep(KECEPATAN); stepper6.setStep(KECEPATAN); stepper10.setStep(KECEPATAN); stepper11.setStep(KECEPATAN); } else if (milis() - 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.setLangkah (0); stepper3.setLangkah (0); stepper4.setLangkah (0); stepper5.setLangkah (0); stepper6.setLangkah (0); stepper10.setLangkah (0); stepper11.setLangkah (0); } } else { stepper.setStep(0); stepper2.setLangkah (0); stepper3.setLangkah (0); stepper4.setLangkah (0); stepper5.setLangkah (0); stepper6.setLangkah (0); stepper10.setLangkah (0); stepper11.setLangkah (0); } if (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper3.setStep(SPEED); stepper4.setStep(KECEPATAN); stepper8.setStep(KECEPATAN); stepper9.setStep(KECEPATAN); stepper10.setStep(KECEPATAN); stepper11.setStep(KECEPATAN); stepper12.setStep(KECEPATAN); stepper13.setStep(KECEPATAN); } else if (milis() - 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 (milis() - on_timer < 6500) { stepper3.setStep(SPEED); stepper4.setStep(KECEPATAN); stepper8.setStep(KECEPATAN); stepper9.setStep(KECEPATAN); stepper10.setStep(KECEPATAN); stepper11.setStep(KECEPATAN); stepper12.setStep(KECEPATAN); stepper13.setStep(KECEPATAN); } 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.setLangkah (0); stepper8.setLangkah (0); stepper9.setLangkah (0); stepper10.setLangkah (0); stepper11.setLangkah (0); stepper12.setStep(0); stepper13.setLangkah (0); } } else { stepper3.setStep(0); stepper4.setLangkah (0); stepper8.setLangkah (0); stepper9.setLangkah (0); stepper10.setLangkah (0); stepper11.setLangkah (0); stepper12.setStep(0); stepper13.setLangkah (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(); }

pengkodean pertama

dan..

#termasuk

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 = milis(); 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(); int jumlah = 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 KECEPATAN = 200; lingkaran kosong() {

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

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

pengkodean kedua

Langkah 6: Sebelum Coding…

Sebelum Coding…
Sebelum Coding…

Anda harus menambahkan perpustakaan baru yang terkait dengan motor langkah.

Jadi, Anda masuk ke situs ini dan mengunduh perpustakaan baru.

blog.danggun.net/2092

Langkah 7: Komunikasi Serial

Anda harus membuat dua arduino mega-telekomunikasi.

if (jumlah_mulai == 0) {

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

Pertama-tama, kita membutuhkan pengkodean ini di Maine Arduino Mega.

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

Arduino Mega, yang menerima komunikasi serial, membutuhkan pengkodean ini.

Pengkodean pertama ditempatkan di mana aduino kedua harus bergerak.

Direkomendasikan: