Mục lục:

Di chuyển lưới với gương vô cực: 7 bước
Di chuyển lưới với gương vô cực: 7 bước

Video: Di chuyển lưới với gương vô cực: 7 bước

Video: Di chuyển lưới với gương vô cực: 7 bước
Video: Go pro 7 Bước- Trở Thành Chuyên Gia Tiếp Thị Mạng Lưới (kỹ năng số #7 ) 2024, Tháng bảy
Anonim
Image
Image

những video đó đang làm video và video chuyển động.

Chúng tôi muốn thể hiện không gian lắc lư thông qua các lưới chuyển động và Gương vô cực để thể hiện cảm giác về không gian hiệu quả hơn.

Tác phẩm của chúng tôi bao gồm hai tấm acrylic, mặt trước và tấm sau, cho mọi người thấy cách họ đang trực tiếp kích động và tấm sau có 25 mô tơ bước thực sự tạo ra chuyển động.

Tác phẩm bao gồm một bảng điều khiển phía trước sẽ hiển thị những ánh sáng lấp lánh của không gian, một thanh gỗ thực hiện chuyển động ở giữa, thanh dẫn hướng cho các thanh và bảng điều khiển phía sau tạo ra chuyển động thông qua 25 động cơ bước.

25 đỉnh của lưới nối với động cơ 25 bước tạo ra các mẫu khác nhau theo các giá trị mã hóa đã đặt. Ngoài ra, công ty muốn tối đa hóa không gian bằng cách kết hợp acrylic trong suốt với phim nửa gương phía trước, gương hậu và gương vô cực chiếu sáng đen. Các mẫu hoạt hình khác nhau được tạo ra dựa trên sóng và những tia nước được tạo ra dựa trên sóng nước.

Quân nhu

Quân nhu

1. UV LED 12V 840cm

2. màu trắng trắng 12mm 750cm

3. Arduino mega 2560 x2

4. trình điều khiển động cơ x25

5. động cơ bước x25

6. cáp lưỡng cực cho động cơ bước x25

7. xi lanh gỗ x25

8. pvc (9mm) x25

9. Spring x 25

10.acrylic 700mm * 700mm

11. Half phim gương 1524mm * 1M

12. dây chuyền đánh bắt

13. Nguồn 12V 12.5A, 12V 75A

14. Ròng rọc thời gian (in 3d) x 25

Bước 1: Lập kế hoạch cho một khuôn khổ lớn

Lập kế hoạch cho một khuôn khổ lớn
Lập kế hoạch cho một khuôn khổ lớn

Khi bắt đầu, chúng ta cần lập kế hoạch và vẽ ra một khuôn khổ lớn. vì vậy, chúng tôi đã chuẩn bị một tệp pdf cho khung tổng thể acrylic và tệp stl ròng rọc thời gian (những gì chúng tôi đặt chúng trước động cơ bước cho sợi gió có thể kéo một thanh gỗ ở giữa).

với khung tổng thể acrylic và ròng rọc thời gian, trước tiên chúng ta cần tạo tệp stl và in 3d.

Bước 2: Chế tạo phần cứng

Chế tạo phần cứng
Chế tạo phần cứng
Chế tạo phần cứng
Chế tạo phần cứng
Chế tạo phần cứng
Chế tạo phần cứng

box1

1. Đặt acrylic đen 2T (số 1) trên sàn và gắn mặt đen acrylic 5T (số 2) lên trên. Thêm lưới đen acrylic 5T (số 3) và gắn nó bằng liên kết acrylic.

box2

2. Sprinkle nước trên tấm trong suốt acrylic và trên cùng với bộ phim bán gương. Một nửa gương cuộn một tấm thẻ để giữ cho nó không bị sủi bọt. Gắn mặt bên (2) và độ trong suốt của acrylic (1). Không cố định phần nhô ra kết hợp của acrylic và gương acrylic (số 1) ở phía bên. Cố định tạm thời bằng băng dính (để sửa chữa đứt dây câu hoặc cải tạo nội thất).

Bước 3: Tạo lưới

Tạo lưới
Tạo lưới
Tạo lưới
Tạo lưới
Tạo lưới
Tạo lưới

1. Một cột gỗ có kích thước 12mm. Khoan một lỗ ở cuối để cho dây câu vào.

2. Gắn các tấm acrylic vào mặt kia của cột gỗ đục lỗ bằng chất kết dính.

3. Luồn một sợi dây cao su qua mặt sau của một cột gỗ và đặt một lò xo vào đó.

4. hình dạng tổng thể

Bước 4:

Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh
Hình ảnh

1. Số kết nối chân Arduino Mega 2560

2. chia điện thành hai phần

3. động cơ bước và mạch điều khiển động cơ

4. Hai Arduino mega2560 được kết nối bằng cách kết nối TX và RX để giao tiếp nối tiếp.

Bước 5: Mã

#bao gồm

StepperMulti bước (200, 2, 3, 4, 5); // đánh số động cơ bước 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 bước6 (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 bước10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti bước12 (200, 46, 47, 48, 49); StepperMulti bước13 (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 count = 0; int init_set_speed

void setup ()

Serial1.begin (115200); // giao tiếp nối tiếp 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; // tốc độ động cơ void loop () {//////////////////////////////////////////// if (millis () - set_timer1 <6000) {// Động cơ bước 13 di chuyển trong khoảng 1500 đến 6000 giây. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) nghĩa là quay ngược lại} else if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); đếm = 1; }} ////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (TỐC ĐỘ, VẬN TỐC); stepper8.setStep (TỐC ĐỘ); stepper9.setStep (SPEED); stepper12.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper9.setStep (SPEED); stepper12.setStep (TỐC ĐỘ); } 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); } /////////////////////////////////////////////// nếu như (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (TỐC ĐỘ); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper8.setStep (TỐC ĐỘ); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); stepper12.setStep (TỐC ĐỘ); stepper13.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper8.setStep (TỐC ĐỘ); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); stepper12.setStep (TỐC ĐỘ); stepper13.setStep (TỐC ĐỘ); } 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 (); }

mã cổ tay

và..

#bao gồm

StepperMulti bước (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 bước6 (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 bước12 (200, 46, 47, 48, 49); StepperMulti bước13 (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 count = 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 SPEED = 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); đếm = 1; }} ////////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (TỐC ĐỘ); stepper8.setStep (TỐC ĐỘ); stepper9.setStep (SPEED); stepper12.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper9.setStep (SPEED); stepper12.setStep (TỐC ĐỘ); } 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); } /////////////////////////////////////////////// nếu như (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (TỐC ĐỘ); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper8.setStep (TỐC ĐỘ); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); stepper12.setStep (TỐC ĐỘ); stepper13.setStep (TỐC ĐỘ); } 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 (TỐC ĐỘ); stepper8.setStep (TỐC ĐỘ); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (TỐC ĐỘ); stepper12.setStep (TỐC ĐỘ); stepper13.setStep (TỐC ĐỘ); } 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 (); }

mã hóa thứ hai

Bước 6: Trước khi mã hóa…

Trước khi mã hóa…
Trước khi mã hóa…

Bạn nên thêm một thư viện mới liên quan đến động cơ bước.

Vì vậy, bạn vào trang web này và tải xuống một thư viện mới.

blog.danggun.net/2092

Bước 7: Giao tiếp nối tiếp

Bạn phải tạo ra hai siêu viễn thông arduino.

if (start_count == 0) {

int Data = Serial1.read (); Serial.println (Dữ liệu); if (Dữ liệu == 0x01) {start_count = 1; }

Trước hết, chúng ta cần mã hóa này trên Maine Arduino Mega.

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

Arduino Mega, người nhận thông tin liên lạc nối tiếp, cần mã hóa này.

Đoạn mã đầu tiên được đặt ở nơi mà aduino thứ hai phải di chuyển.

Đề xuất: