Isi kandungan:

Kenderaan Kapal Selam: 5 Langkah
Kenderaan Kapal Selam: 5 Langkah

Video: Kenderaan Kapal Selam: 5 Langkah

Video: Kenderaan Kapal Selam: 5 Langkah
Video: Pegawai Kanan TLDM Yang Kurang Ajar 2024, Julai
Anonim
Kenderaan Kapal Selam
Kenderaan Kapal Selam
Kenderaan Kapal Selam
Kenderaan Kapal Selam

**************** INSTRUCTABLE INI MASIH ADA KERJA DALAM PROGRAM ****************

Instructable ini dibuat untuk memenuhi keperluan projek Makecourse di University of South Florida (www.makecourse.com).

Instructable ini akan menjadi gambaran ringkas mengenai penciptaan kenderaan selam yang saya reka dan bina untuk kelas Makecourse saya di University of South Florida. Dalam Instructable ini saya akan memberikan sejumlah bahan, kod kawalan yang saya buat untuk Arduino Uno yang saya gunakan, dan gambaran keseluruhan mengenai cara memasang 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

Paparan medan 1x paparan 777

1x turnigy Marine 50A ESC (kawalan kelajuan elektronik)

Kad pengaturcaraan laut 1x turnigy

1x T-Motor Navigator 400kv

1x YEP 20A BEC (litar penghapusan bateri)

Servo kalis air 6x king hobi HK15139

Harness y penyambung T selari 2x

Wayar sambungan servo 2x18 inci

Wayar sambungan servo 6x6 inci

Bateri Lipo 2x 1300mah 3s

Bateri Lipo 2x 2500mah 4s

Papan agihan kuasa 1x dengan output tetap 5v dan 12v

Bahan binaan di mana:

Lapisan papan lapis 1x 3/16 inci

Tiub penghantaran ABS 1x 6 inci ID

Tiub silikon 1x

1x tin meterai lentur

4x gulungan filamen pencetak 3D 3D

Slaid laci 1x 24 inci

Tiub mengecut panas

Duraloc velcro jenama scotch 1x 10 kaki

1x JB Epoxy plastik kimpalan

Kubah kamera keselamatan akrilik berdiameter 1x 6.2 inci

Laluan ethernet 2x IP68

Kabel ethernet cat6 2x24 inci

Kabel ethernet cat kaki 1x 200 kaki

Perkakasan yang digunakan adalah:

Skru kayu tembaga 24x 1/2 inci

24x ------ skru (disertakan dengan servo)

Alat yang digunakan:

Pemacu skru kepala Philip dan Flat

Set kunci Allen

Besi pematerian

Pistol haba

Pencetak 3D (saya menggunakan Monoprice Maker Select Plus)

Langkah 2: Pengaturcaraan

Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan

Berikut adalah kod yang dibuat untuk mengawal kapal selam. Saya juga telah mendapatkan fail.ino sehingga boleh dimuat turun.

Kod ini dibuat untuk Arduino Uno menggunakan penyusun Arduino.

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

Pengarang: Jonah Powers Tarikh: 11/9/2018 Tujuan: Kod Kawalan untuk Kenderaan Kapal Selam yang Dikendalikan Jauh ****************************** ************************************************** ************************************************** ************************************ / #include // Termasuk Servo Library Servo roll1; // Menyatakan roll1 menjadi servo roll2 servo; // Menyatakan roll2 sebagai servo elev1 servo; // Menyatakan elev1 menjadi servo elev2 servo; // Menyatakan elev2 menjadi servo yaw1; // Menyatakan yaw1 sebagai servo yaw2 servo; // Menyatakan yaw2 sebagai servo esco servo; // Menyatakan esc sebagai servo

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

sia-sia persediaan () {// Peringkat permulaan Arduino Serial.begin (9600); // Memulakan siri moniter roll1.attach (2); // Melampirkan servo roll1 ke pin digital 2 roll2.attach (3); // Melampirkan servo roll2 ke pin digital 3 elev1. Attach (5); // Melampirkan servo elev1 ke pin digital 5 elev2.attach (6); // Melampirkan servo elev2 ke pin digital 6 yaw1.attach (8); // Melampirkan servo yaw1 ke pin digital 8 yaw2.attach (9); // Melampirkan servo yaw2 ke pin digital 9 esc.attach (11); // Melampirkan servo esc ke pin digital 11 roll1.write (90); // Menulis servo roll1 ke kedudukan berpusatnya roll2.write (90); // Menulis servo roll2 ke kedudukan berpusatnya elev1.write (90); // Menulis servo elev1 ke kedudukan berpusat elev2.write (90); // Menulis servo elev2 ke kedudukannya yang berpusat yaw1.write (90); // Menulis servo yaw1 ke kedudukannya yang berpusat yaw2.write (90); // Menulis servo yaw2 ke kedudukannya yang berpusat esc.write (180); // Menulis servo hingga kelewatan kedudukan berpusat (2500); // Menunggu esc.write 2 saat (90); kelewatan (5000); }

gelung void () {// Kod Utama untuk gelung tanpa had jika (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Memeriksa untuk melihat apakah "Joystick" (potensiometer) berpusat di roll1.write (90); // Menulis servo roll1 ke posisi tengah roll2.write (90); // Menulis servo roll2 ke posisi tengah} yang lain {// Apa yang perlu dilakukan jika "Joystick" tidak berpusat val1 = peta (val1, 0, 1023, 10, 170); // Memetakan val1 dari 10 hingga 170 dan menetapkan kepada val1 roll1.write (val1); // Menulis servo roll1 ke positon yang ditentukan oleh val1 roll2.write (val1); // Menulis servo roll2 ke positon yang ditentukan oleh val1}

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

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

val8 = analogRead (pot4); // Membaca pot4 (pin analog 5) dan menyimpan nilai sebagai val8 jika (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Memeriksa untuk melihat apakah motor hendak mengubah arah esc.write (80); kelewatan (1000); // Menunggu 1000 milisaat} esc.write (val8); // Menulis servo esc ke kelajuan yang ditentukan oleh val8 mspeed = val8; // Menyimpan kelajuan semasa untuk perbandingan}} Serial.print ("throttle"); // Menggunakan Serial Print untuk menunjukkan perkataan "Throttle" Serial.println (val8); // Menggunakan Serial Print untuk menunjukkan nilai bahawa pendikit ditetapkan ke Serial.print ("roll"); // Menggunakan Serial Print untuk menunjukkan perkataan "Roll" Serial.println (val1); // Menggunakan Serial Print untuk menunjukkan nilai roll yang ditetapkan ke Serial.print ("pitch"); // Menggunakan Serial Print untuk menunjukkan perkataan "Pitch" Serial.println (val3); // Menggunakan Serial Print untuk menunjukkan nilai bahawa pitch1 ditetapkan ke Serial.println (val4); // Menggunakan Serial Print untuk menunjukkan nilai bahawa pitch2 ditetapkan ke Serial.print ("yaw"); // Menggunakan Serial Print untuk menunjukkan perkataan "Yaw" Serial.println (val6); // Menggunakan Serial Print untuk menunjukkan nilai bahawa yaw1 ditetapkan ke Serial.println (val7); // Menggunakan Serial Print untuk menunjukkan nilai yaw2 diatur ke}

Langkah 3: Litar

Terlampir adalah gambar litar di atas kapal selam.

Saya membuat perisai khas untuk Arduino untuk memudahkan pendawaian saya. Saya telah memuat naik fail Eagle Schematic & Board untuk perisai. Saya menggunakan LPKF S63 untuk mengisar papan. Servos di bahagian depan yang roll kawalan akan dipasang ke Arduino

dilampirkan adalah gambar litar di dalam alat kawalan.

Langkah 4: Bahagian Bercetak 3D

Saya Mencetak semua Fail ini di Monoprice Maker Select Plus saya. Saya menggunakan Esun ABS 1.75mm Filament. Tetapan cetakan saya ialah 105 darjah C untuk suhu tempat tidur cetak dan dan 255 darjah C untuk suhu penyemperit. Hanya 1 bahagian yang diperlukan kecuali anda memerlukan 6 salinan sayap depan. Perhatikan bahagian-bahagian ini dicetak dengan ketebalan dinding hingga 1000mm. Ini dilakukan agar bahagian-bahagiannya akan dicetak dengan 100% isi sehingga mereka akan negatif.

Langkah 5: Perhimpunan

********************************* AKAN DATANG *************** *******************

Disyorkan: