Daftar Isi:

Kendaraan Submersible: 5 Langkah
Kendaraan Submersible: 5 Langkah

Video: Kendaraan Submersible: 5 Langkah

Video: Kendaraan Submersible: 5 Langkah
Video: Bagaimana cara kerja Pompa submersible? 2024, Juli
Anonim
Kendaraan Submersible
Kendaraan Submersible
Kendaraan Submersible
Kendaraan Submersible

**************** INSTRUCTABLE INI MASIH KERJA DALAM PROGRES ****************

Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida (www.makecourse.com).

Instruksi ini akan menjadi gambaran singkat tentang pembuatan kendaraan selam yang saya rancang dan buat untuk kelas Makecourse saya di University of South Florida. Dalam Instruksi ini saya akan memberikan bill of material, kode kontrol yang saya buat untuk Arduino Uno yang saya gunakan, dan gambaran umum tentang cara merakit kapal selam.

Langkah 1: Bahan

Bahan
Bahan
Bahan
Bahan
Bahan
Bahan

Elektronik yang digunakan di mana:

1x Arduino Uno

1x kamera aksi mobius

1x kamera aksi mobius usb-b ke kabel A/V

1x tampilan bidang 777 tampilan layar

1x turnigy marine 50A ESC (kontrol kecepatan elektronik)

1x kartu pemrograman kelautan turnigy

1x T-Motor Navigator 400kv

1x YEP 20A BEC (sirkuit eliminasi baterai)

6x hobi raja HK15139 servos tahan air

2x paralel T-konektor y harness

Kabel ekstensi servo 2x 18 inci

Kabel ekstensi servo 6x6 inci

Baterai Lipo 2x 1300mah 3s

Baterai Lipo 2x 2500mah 4s

1x papan distribusi daya dengan output tetap 5v dan 12v

Bahan bangunan dimana:

1x3/16 inci lembar kayu lapis

1x6 inci ID ABS tabung pengiriman

1x tabung silikon

1x kaleng segel fleksibel

4x gulungan filamen printer 3D ABS

Slide laci 1x24 inci

Tabung panas menyusut

1x 10 kaki scotch merek duraloc velcro

1x JB Weld plastik epoksi

1x 6.2 inci diameter kubah kamera keamanan akrilik

2x passthrough ethernet IP68

2x24 inci kabel ethernet cat6

1x200 kaki kabel ethernet cat6

Perangkat keras yang digunakan adalah:

Sekrup kayu kuningan 24x 1/2 inci

24x ------ sekrup (disertakan dengan servos)

Alat yang digunakan:

Driver sekrup Philips dan Flat head

Set kunci Allen

Besi solder

Pistol panas

Printer 3D (saya menggunakan Monoprice Maker Select Plus)

Langkah 2: Pemrograman

Pemrograman
Pemrograman
Pemrograman
Pemrograman
Pemrograman
Pemrograman
Pemrograman
Pemrograman

Di bawah ini adalah kode yang dibuat untuk mengontrol kapal selam. Saya juga telah melampirkan file.ino agar dapat diunduh.

Kode ini dibuat untuk Arduino Uno menggunakan compiler Arduino.

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

Penulis: Jonah Powers Tanggal: 11/9/2018 Tujuan: Kode Kontrol untuk Kendaraan Submersible yang Dioperasikan dari Jarak Jauh ****************************** ************************************************** ************************************************** ************************************/ #include //Termasuk Servo Library Servo roll1; // Mendeklarasikan roll1 menjadi servo servo roll2; // Mendeklarasikan roll2 menjadi servo Servo elev1; // Mendeklarasikan elev1 menjadi servo Servo elev2; // Mendeklarasikan elev2 menjadi servo Servo yaw1; // Mendeklarasikan yaw1 sebagai servo Servo yaw2; // Mendeklarasikan yaw2 sebagai servo Servo esc; // Mendeklarasikan esc sebagai servo

int pot1 = 0; //Menginisialisasi variabel pot1 sebagai bilangan bulat dan menyetelnya sama dengan 0 int pot2 = 1; //Menginisialisasi variabel pot2 sebagai bilangan bulat dan menyetelnya sama dengan 2 int pot3 = 2; //Menginisialisasi variabel pot3 sebagai bilangan bulat dan menyetelnya sama dengan 4 int pot4 = 3; //Menginisialisasi variabel pot4 sebagai integer dan menyetelnya sama dengan 5 int val1; //Menginisialisasi variabel val1 sebagai integer int val2; //Menginisialisasi variabel val2 sebagai integer int val3; //Menginisialisasi variabel val3 sebagai integer int val4; //Menginisialisasi variabel val4 sebagai integer int val5; //Menginisialisasi variabel val5 sebagai integer int val6; //Menginisialisasi variabel val6 sebagai integer int val7; //Menginisialisasi variabel val7 sebagai integer int val8; //Menginisialisasi variabel val8 sebagai integer int mspeed; //Menginisialisasi variabel mspeed sebagai bilangan bulat

void setup() { //tahap inisialisasi Arduino Serial.begin(9600); //Menginisialisasi monitor serial roll1.attach(2); // Memasang servo roll1 ke pin digital 2 roll2.attach(3); // Memasang servo roll2 ke pin digital 3 elev1.attach(5); // Memasang servo elev1 ke pin digital 5 elev2.attach(6); // Memasang servo elev2 ke pin digital 6 yaw1.attach(8); //Memasang servo yaw1 ke pin digital 8 yaw2.attach(9); // Memasang servo yaw2 ke pin digital 9 esc.attach(11); // Memasang servo esc ke pin digital 11 roll1.write(90); //Menulis servo roll1 ke posisi tengahnya roll2.write(90); //Menulis servo roll2 ke posisi tengahnya elev1.write(90); //Menulis servo elev1 ke posisi tengahnya elev2.write(90); //Menulis servo elev2 ke posisi tengah yaw1.write(90); //Menulis servo yaw1 ke posisi tengahnya yaw2.write(90); //Menulis servo yaw2 ke posisi tengahnya esc.write(180); //Menulis servo esc ke posisi tengah delay(2500); //Menunggu 2 detik esc.write(90); penundaan(5000); }

void loop() { //Kode Utama untuk mengulang tanpa batas if(analogRead(pot1)<1 && analogRead(pot2)<1 && analogRead(pot3)<1 && analogRead(pot4)= 485 && val1<= 540){ // Memeriksa untuk melihat apakah "Joystick" (potensiometer) berada di tengah roll1.write(90); //Menulis servo roll1 ke posisi tengah roll2.write(90); //Menulis servo roll2 ke posisi tengah } else{ //Apa yang harus dilakukan jika "Joystick" tidak berada di tengah val1 = map(val1, 0, 1023, 10, 170); //Memetakan val1 dari 10 hingga 170 dan menetapkan ke val1 roll1.write(val1); //Menulis servo roll1 ke posisi yang ditentukan oleh val1 roll2.write(val1); //Menulis servo roll2 ke posisi yang ditentukan oleh val1 }

val2 = analogRead(pot2); //Membaca pot2 (pin analog 2) dan menyimpan nilai sebagai val2 if(val2>= 485 && val2<= 540){ //Memeriksa untuk melihat apakah "Joystick" (potensiometer) berada di tengah elev1.write(90); //Menulis servo elev1 ke posisi tengah elev2.write(90); //Menulis servo elev2 ke posisi tengah } else{ //Apa yang harus dilakukan jika "Joystick" tidak berada di tengah val3 = map(val2, 0, 1023, 10, 170); //Memetakan val2 dari 10 hingga 170 dan menetapkan ke val3 val4 = map(val2, 0, 1023, 170, 10); //Memetakan val2 dari 170 ke 10 dan menetapkan ke val4 elev1.write(val3); //Menulis servo elev1 ke posisi yang ditentukan oleh val3 elev2.write(val4); //Menulis servo elev2 ke posisi yang ditentukan oleh val4 }

val5 = analogRead(pot3); //Membaca pot3 (pin analog 4) dan menyimpan nilai sebagai val5 if(val5>= 485 && val5<= 540){ //Memeriksa untuk melihat apakah "Joystick" (potensiometer) berada di tengah yaw1.write(90); //Menulis servo yaw1 ke posisi tengah yaw2.write(90); //Menulis servo yaw2 ke posisi tengah } else{ //Apa yang harus dilakukan jika "Joystick" tidak berada di tengah val6 = map(val5, 0, 1023, 10, 170); //Memetakan val5 dari 10 hingga 170 dan menetapkan ke val6 val7 = map(val5, 0, 1023, 170, 10); //Memetakan val5 dari 10 hingga 170 dan menetapkan ke val7 yaw1.write(val6); //Menulis servo yaw1 ke posisi yang ditentukan oleh val6 yaw2.write(val7); //Menulis servo yaw2 ke posisi yang ditentukan oleh val7 }

val8 = analogRead(pot4); //Membaca pot4 (pin analog 5) dan menyimpan nilai sebagai val8 if(val8 > 470 && val8 80 && val8<80)||(mspeed80)){ //Memeriksa apakah motor akan berubah arah esc.write(80); penundaan (1000); //Menunggu 1000 milidetik } esc.write(val8); //Menulis servo esc ke kecepatan yang ditentukan oleh val8 mspeed=val8; //Menyimpan kecepatan saat ini untuk perbandingan } } Serial.print("throttle "); //Menggunakan Serial Print untuk menampilkan kata "Throttle" Serial.println(val8); //Menggunakan Serial Print untuk menunjukkan nilai throttle diatur ke Serial.print("roll "); //Menggunakan Serial Print untuk menampilkan kata "Roll" Serial.println(val1); //Menggunakan Serial Print untuk menunjukkan nilai roll yang diatur ke Serial.print("pitch "); //Menggunakan Serial Print untuk menampilkan kata "Pitch" Serial.println(val3); //Menggunakan Serial Print untuk menunjukkan nilai bahwa pitch1 diatur ke Serial.println(val4); //Menggunakan Serial Print untuk menunjukkan nilai bahwa pitch2 diatur ke Serial.print("yaw "); //Menggunakan Serial Print untuk menampilkan kata "Yaw" Serial.println(val6); //Menggunakan Serial Print untuk menunjukkan nilai bahwa yaw1 diatur ke Serial.println(val7); //Menggunakan Serial Print untuk menunjukkan nilai yaw2 disetel ke }

Langkah 3: Sirkuit

Terlampir adalah foto sirkuit di atas kapal selam.

Saya membuat perisai khusus untuk Arduino untuk menyederhanakan kabel saya. Saya telah mengunggah file Eagle Schematic & Board untuk perisai. Saya menggunakan LPKF S63 untuk menggiling papan. Servo di depan yang mengontrol gulungan akan dicolokkan ke Arduino

terlampir adalah foto sirkuit di dalam pengontrol.

Langkah 4: Bagian Cetak 3D

Saya Mencetak semua File ini di Monoprice Maker Select Plus saya. Saya menggunakan Filamen Esun ABS 1.75mm. Pengaturan cetak saya adalah 105 derajat C untuk suhu alas cetak dan dan 255 derajat C untuk suhu ekstruder. Hanya 1 dari setiap bagian yang diperlukan kecuali Anda akan membutuhkan 6 salinan sayap depan. Perhatikan bagian-bagian ini dicetak dengan ketebalan dinding diatur ke 1000mm. Hal ini dilakukan agar bagian-bagian akan dicetak dengan pengisi 100% sehingga akan apung negatif.

Langkah 5: Perakitan

********************************* SEGERA AKAN DATANG *************** **********************

Direkomendasikan: