Daftar Isi:
- Langkah 1: Bahan
- Langkah 2: Pemrograman
- Langkah 3: Sirkuit
- Langkah 4: Bagian Cetak 3D
- Langkah 5: Perakitan
Video: Kendaraan Submersible: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
**************** 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
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
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:
Kendaraan Efek Tanah RC Super CEPAT (Ekranoplan): 5 Langkah (dengan Gambar)
Super FAST RC Ground Effect Vehicle (Ekranoplan): Tahukah Anda bagaimana, saat mendarat, pesawat melayang beberapa kaki di atas tanah selama beberapa saat sebelum rodanya benar-benar menabrak landasan? Ini tidak hanya untuk memberikan penumpang pendaratan yang mulus tetapi juga hasil alami dari ground effect, di mana
Quad Hacking Anak Menjadi Kendaraan yang Mengemudi Sendiri, Mengikuti Garis, dan Mendeteksi Rintangan.: 4 Langkah
Quad Hacking Anak Menjadi Kendaraan yang Mengemudi Sendiri, Mengikuti Garis, dan Mendeteksi Rintangan.: Dalam Instruksi hari ini, kita akan mengubah kendaraan 1000Watt (Ya, saya tahu banyak!) Anak Listrik menjadi Kendaraan Mengemudi Sendiri, Mengikuti Garis, dan Menghindari Rintangan! Video demo:https://youtu.be/bVIsolkEP1kUntuk proyek ini kita membutuhkan bahan-bahan berikut
Gantungan Kunci Escape Kendaraan Darurat: 11 Langkah (dengan Gambar)
Gantungan Kunci Pelarian Kendaraan Darurat: Kecelakaan mobil. Astaga! Cara terbaik untuk menghindari kecelakaan adalah dengan menggunakan teknik mengemudi yang aman dan selalu memperhatikan ke mana Anda pergi dan mobil lain di sekitar Anda. Namun, terlepas dari upaya terbaik Anda, Anda tidak mengendalikan drive lain
Kendaraan Model RC Miring: 21 Langkah (dengan Gambar)
Kendaraan Model RC Miring: Model ini adalah kendaraan miring 1/10 dengan dua roda depan dan satu penggerak belakang; berasal dari model listrik RC Arrma Vortex 1/10 yang menggunakan sasis aluminium dan melepas seluruh bagian belakang tempat ia meletakkan motor listrik dan
PCB: Sistem Pelacakan Kendaraan Berbasis GPS dan GSM: 3 Langkah
PCB: Sistem Pelacakan Kendaraan Berbasis GPS dan GSM: Sistem Pelacakan Kendaraan Berbasis GPS dan GSM30 Juni 2016, Proyek Rekayasa Proyek Sistem Pelacakan Kendaraan berbasis GPS dan GSM menggunakan Global Positioning System (GPS) dan sistem global untuk komunikasi bergerak (GSM), yang membuat proyek ini lebih e