Mục lục:

Phương tiện lặn: 5 bước
Phương tiện lặn: 5 bước

Video: Phương tiện lặn: 5 bước

Video: Phương tiện lặn: 5 bước
Video: Đen - hai triệu năm ft. Biên (m/v) 2024, Tháng bảy
Anonim
Phương tiện lặn
Phương tiện lặn
Phương tiện lặn
Phương tiện lặn

**************** HƯỚNG DẪN NÀY VẪN LÀ CÔNG VIỆC ĐANG TIẾN TRÌNH ****************

Có thể hướng dẫn này được tạo ra để đáp ứng yêu cầu dự án của Makecourse tại Đại học Nam Florida (www.makecourse.com).

Có thể hướng dẫn này sẽ là một cái nhìn ngắn gọn về việc tạo ra phương tiện lặn mà tôi đã thiết kế và chế tạo cho lớp Makecourse của tôi tại Đại học Nam Florida. Trong Tài liệu hướng dẫn này, tôi sẽ cung cấp hóa đơn tài liệu, mã điều khiển tôi đã tạo cho Arduino Uno mà tôi đã sử dụng và tổng quan về cách lắp ráp tàu lặn.

Bước 1: Vật liệu

Vật liệu
Vật liệu
Vật liệu
Vật liệu
Vật liệu
Vật liệu

Các thiết bị điện tử được sử dụng ở đâu:

1x Arduino Uno

1x camera hành động mobius

1x camera hành động mobius cáp usb-b to A / V

1x màn hình hiển thị 777 field view

1x turnigy sea 50A ESC (điều khiển tốc độ điện tử)

1x thẻ lập trình biển turnigy

1x Bộ điều hướng động cơ chữ T 400kv

1x YEP 20A BEC (mạch loại bỏ pin)

6x sở thích king HK15139 Servos chống thấm nước

2x dây nịt nối chữ T song song

2x dây mở rộng servo 18 inch

Dây mở rộng servo 6x 6 inch

2x pin Lipo 1300mah 3 giây

2x pin Lipo 2500 mah 4s

Bảng phân phối điện 1x với cả đầu ra cố định 5v và 12v

Vật liệu xây dựng trong đó:

1x 3/16 inch tấm ván ép

1x 6 inch ID ABS ống vận chuyển

1x ống silicone

1x can của con dấu uốn

4x cuộn dây tóc máy in 3D ABS

1x 24 inch ngăn kéo trượt

Ống co nhiệt

1x 10 feet của khóa dán duraloc thương hiệu scotch

1x JB hàn nhựa epoxy

Mái vòm camera an ninh acrylic đường kính 1x 6,2 inch

2x đường truyền ethernet IP68

Cáp ethernet 2x 24 inch cat6

Cáp ethernet cat6 1x 200 foot

Phần cứng được sử dụng là:

Vít gỗ đồng thau 24x 1/2 inch

24x ------ vít (đi kèm với servo)

Các công cụ được sử dụng:

Máy vặn vít đầu phẳng và đầu phẳng của Philip

Bộ khóa Allen

Hàn sắt

Súng bắn nhiệt

Máy in 3D (Tôi đã sử dụng Monoprice Maker Select Plus)

Bước 2: Lập trình

Lập trình
Lập trình
Lập trình
Lập trình
Lập trình
Lập trình
Lập trình
Lập trình

Dưới đây là mã được tạo để điều khiển tàu lặn. Tôi cũng đã đính kèm tệp.ino để có thể tải xuống.

Mã này được tạo cho Arduino Uno bằng trình biên dịch Arduino.

/**********************************************************************************************************************************************************************

Tác giả: Jonah Powers Ngày: 11/9/2018 Mục đích: Mã điều khiển cho phương tiện lặn được điều khiển từ xa ****************************** ************************************************** ************************************************** ************************************ / #include // Bao gồm Thư viện Servo Servo roll1; // Khai báo roll1 là servo Servo roll2; // Khai báo roll2 là servo Servo elev1; // Khai báo elev1 là servo Servo elev2; // Khai báo elev2 là servo Servo yaw1; // Khai báo yaw1 là servo Servo yaw2; // Khai báo yaw2 là servo Servo esc; // Khai báo esc là servo

int pot1 = 0; // Định nghĩa biến pot1 dưới dạng số nguyên và đặt nó bằng 0 int pot2 = 1; // Nhập biến pot2 thành một số nguyên và đặt nó bằng 2 int pot3 = 2; // Nhập biến pot3 thành một số nguyên và đặt nó bằng 4 int pot4 = 3; // Định nghĩa biến pot4 thành một số nguyên và đặt nó bằng 5 int val1; // Nhập biến val1 thành một số nguyên int val2; // Nhập biến val2 thành một số nguyên int val3; // Nhập biến val3 thành một số nguyên int val4; // Nhập biến val4 thành một số nguyên int val5; // Nhập biến val5 thành một số nguyên int val6; // Nhập biến val6 thành một số nguyên int val7; // Mạo danh biến val7 thành một số nguyên int val8; // Tăng cường biến val8 thành một số nguyên int mspeed; // Tăng tốc độ biến mspeed thành một số nguyên

void setup () {// Giai đoạn khởi tạo Arduino Serial.begin (9600); // Khởi tạo moniter nối tiếp roll1.attach (2); // Gắn servo roll1 vào chân số 2 roll2.attach (3); // Gắn servo roll2 vào chân kỹ thuật số 3 elev1.attach (5); // Gắn servo elev1 vào chân kỹ thuật số 5 elev2.attach (6); // Gắn servo elev2 vào chân số 6 yaw1.attach (8); // Gắn servo yaw1 vào chân số 8 yaw2.attach (9); // Gắn servo yaw2 vào chân số 9 esc.attach (11); // Gắn servo esc vào chân số 11 roll1.write (90); // Viết servo roll1 vào vị trí chính giữa của nó roll2.write (90); // Ghi servo roll2 vào vị trí chính giữa elev1.write (90); // Ghi servo elev1 vào vị trí chính giữa elev2.write (90); // Ghi servo elev2 vào vị trí chính giữa yaw1.write (90); // Ghi servo yaw1 vào vị trí chính giữa yaw2.write (90); // Ghi servo yaw2 vào vị trí căn giữa của nó esc.write (180); // Ghi servo esc vào vị trí trung tâm của nó trì hoãn (2500); // Đang đợi 2 giây esc.write (90); chậm trễ (5000); }

void loop () {// Mã chính để lặp vô hạn if (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kiểm tra xem "Cần điều khiển" (chiết áp) có được căn giữa roll1.write (90) hay không; // Ghi servo roll1 vào vị trí trung tâm roll2.write (90); // Ghi servo roll2 vào vị trí giữa} else {// Phải làm gì nếu "Cần điều khiển" không được căn giữa val1 = map (val1, 0, 1023, 10, 170); // Ánh xạ val1 từ 10 đến 170 và gán cho val1 roll1.write (val1); // Ghi servo roll1 thành positon được xác định bởi val1 roll2.write (val1); // Ghi servo roll2 thành positon được xác định bởi val1}

val2 = analogRead (pot2); // Đọc pot2 (chân analog 2) và lưu giá trị dưới dạng val2 if (val2> = 485 && val2 <= 540) {// Kiểm tra xem "Joystick" (chiết áp) có được căn giữa không elev1.write (90); // Ghi servo elev1 vào vị trí trung tâm elev2.write (90); // Ghi servo elev2 vào vị trí giữa} else {// Phải làm gì nếu "Cần điều khiển" không được căn giữa val3 = map (val2, 0, 1023, 10, 170); // Ánh xạ val2 từ 10 đến 170 và gán cho val3 val4 = map (val2, 0, 1023, 170, 10); // Ánh xạ val2 từ 170 đến 10 và gán cho val4 elev1.write (val3); // Ghi servo elev1 thành positon được xác định bởi val3 elev2.write (val4); // Ghi servo elev2 thành positon được xác định bởi val4}

val5 = analogRead (pot3); // Đọc pot3 (chân tương tự 4) và lưu giá trị dưới dạng val5 if (val5> = 485 && val5 <= 540) {// Kiểm tra xem "Joystick" (chiết áp) có được căn giữa hay không yaw1.write (90); // Ghi servo yaw1 vào vị trí trung tâm yaw2.write (90); // Ghi servo yaw2 vào vị trí giữa} else {// Phải làm gì nếu "Cần điều khiển" không được căn giữa val6 = map (val5, 0, 1023, 10, 170); // Ánh xạ val5 từ 10 đến 170 và gán cho val6 val7 = map (val5, 0, 1023, 170, 10); // Ánh xạ val5 từ 10 đến 170 và gán cho val7 yaw1.write (val6); // Ghi servo yaw1 vào positon được xác định bởi val6 yaw2.write (val7); // Ghi servo yaw2 vào positon được xác định bởi val7}

val8 = analogRead (pot4); // Đọc pot4 (chân tương tự 5) và lưu giá trị dưới dạng val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kiểm tra xem động cơ sắp đổi hướng esc.write (80); chậm trễ (1000); // Đang đợi 1000 mili giây} esc.write (val8); // Ghi servo esc thành tốc độ được xác định bởi val8 mspeed = val8; // Lưu trữ tốc độ hiện tại để so sánh}} Serial.print ("ga"); // Sử dụng Serial Print để hiển thị từ "Throttle" Serial.println (val8); // Sử dụng Serial Print để hiển thị giá trị mà bướm ga được đặt thành Serial.print ("roll"); // Sử dụng Serial Print để hiển thị từ "Roll" Serial.println (val1); // Sử dụng Serial Print để hiển thị giá trị mà cuộn được đặt thành Serial.print ("pitch"); // Sử dụng Serial Print để hiển thị từ "Pitch" Serial.println (val3); // Sử dụng Serial Print để hiển thị giá trị mà pitch1 được đặt thành Serial.println (val4); // Sử dụng Serial Print để hiển thị giá trị mà pitch2 được đặt thành Serial.print ("yaw"); // Sử dụng Serial Print để hiển thị từ "Yaw" Serial.println (val6); // Sử dụng Serial Print để hiển thị giá trị mà yaw1 được đặt thành Serial.println (val7); // Sử dụng Serial Print để hiển thị giá trị mà yaw2 được đặt thành}

Bước 3: Nối mạch

Đính kèm là một bức ảnh của mạch điện trên bo mạch của máy chìm.

Tôi đã tạo một lá chắn tùy chỉnh cho Arduino để đơn giản hóa hệ thống dây của tôi. Tôi đã tải lên các tệp Eagle Schematic & Board cho tấm chắn. Tôi đã sử dụng LPKF S63 để nghiền bảng. Servos ở phía trước cuộn điều khiển sẽ được cắm vào Arduino

kèm theo là ảnh chụp mạch bên trong bộ điều khiển.

Bước 4: Các bộ phận in 3D

Tôi đã in tất cả các Tệp này trên Monoprice Maker Select Plus của tôi. Tôi đã sử dụng Esun ABS 1.75mm Filament. Cài đặt in của tôi là 105 độ C cho nhiệt độ giường in và 255 độ C cho nhiệt độ máy đùn. Chỉ cần 1 trong mỗi bộ phận ngoại trừ việc bạn sẽ cần 6 bản sao của cánh trước. Lưu ý rằng các bộ phận này được in với độ dày thành 1000mm. Điều này đã được thực hiện để các bộ phận sẽ được in bằng 100% mực in để chúng sẽ nổi một cách âm tính.

Bước 5: Lắp ráp

********************************* SẮP CÓ *************** *******************

Đề xuất: