Mundarija:

Suv osti transport vositasi: 5 qadam
Suv osti transport vositasi: 5 qadam

Video: Suv osti transport vositasi: 5 qadam

Video: Suv osti transport vositasi: 5 qadam
Video: Transport turlari. Suv transporti bilan tanishamiz. 2024, Iyul
Anonim
Suv osti transport vositasi
Suv osti transport vositasi
Suv osti transport vositasi
Suv osti transport vositasi

**********

Bu ko'rsatma Janubiy Florida universitetining Makecourse loyihasi talablarini bajarish uchun yaratilgan (www.makecourse.com).

Bu ko'rsatma men Janubiy Floridadagi universitetdagi Makecourse sinfim uchun mo'ljallangan va suv osti transport vositasining yaratilishi haqida qisqacha ma'lumot bo'ladi. Ushbu yo'riqnomada men hisob -kitob materiallarini, men ishlatgan Arduino Uno uchun boshqaruv kodini va suv osti suvini qanday yig'ish haqida umumiy ma'lumotni taqdim etaman.

1 -qadam: materiallar

Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
Materiallar

Bu erda ishlatiladigan elektronika:

1 marta Arduino Uno

1x mobius harakat kamerasi

1x mobius harakat kamerasi usb-b to a/V kabeli

1 x maydon ko'rinishi 777 displeyi

1x turnik dengiz 50A ESC (elektron tezlikni boshqarish)

1x turnik dengiz dasturlash kartasi

1x T-motorli Navigator 400kv

1x YEP 20A BEC (batareyani o'chirish davri)

6x sevimli mashg'ulotlari qiroli HK15139 suv o'tkazmaydigan servolar

2x parallel T-ulagichi j jabduqlar

2x18 dyuymli servo uzatma simlari

6x6 dyuymli servo uzatma simlari

2x 1300 mah 3s Lipo batareyalari

2x 2500 mah 4s Lipo batareyalari

5x va 12v qattiq chiqadigan 1x quvvat taqsimlash kartasi

Qurilish materiallari:

1x 3/16 dyuymli kontrplak varag'i

1x6 dyuymli ABS yuk tashish trubkasi

1 x silikon naycha

1x banka egiluvchan muhr

ABS 3D printerining 4x g'altaklari

1x24 dyuymli tortma slayd

Issiqlikni pasaytiradigan quvur

1x10 fut skotch markali duraloc velcro

1x JB Weld plastik epoksi

1x 6,2 dyuymli akril xavfsizlik kamerasi gumbazi

2 marta IP68 chekilgan o'tishi

2x24 dyuymli cat6 chekilgan kabeli

1x 200 futlik cat6 chekilgan kabeli

Amaldagi uskunalar quyidagilar edi:

24x 1/2 dyuymli guruchli yog'och vintlardek

24x ------ vintlar (servo bilan birga)

Amaldagi vositalar:

Filipp va tekis boshli tornavidalar

Allen kalitlari to'plami

Lehimlash temir

Issiq qurol

3D printer (men Monoprice Maker Select Plus -dan foydalanganman)

2 -qadam: dasturlash

Dasturlash
Dasturlash
Dasturlash
Dasturlash
Dasturlash
Dasturlash
Dasturlash
Dasturlash

Quyida suv osti kemasini boshqarish uchun yaratilgan kod keltirilgan. Men ham.ino faylini yukladim, shuning uchun uni yuklab olish mumkin.

Bu kod Arduino Uno uchun Arduino kompilyatori yordamida yaratilgan.

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

Muallif: Yunus Pauers Sana: 9/11/2018 Maqsad: Masofadan boshqariladigan suv osti transport vositasining nazorat kodi ****************************** ************************************************ ************************************************ **********************************/#include // shu jumladan Servo kutubxonasi Servo roll1; // Roll1ni servo rulonli deb e'lon qilish2; // roll2 ni servo servo deb e'lon qilish Servo elev1; // elev1ni servo servo balandligi deb e'lon qilish2; // elev2 ni servo Servo yaw1 deb e'lon qilish; // yaw1 ni servo deb e'lon qilish Servo yaw2; // yaw2 ni Servo esc servo deb e'lon qilish; // escni servo deb e'lon qilish

int pot1 = 0; // pot1 o'zgaruvchisini butun son sifatida ishga tushirish va uni 0 ga tenglashtirish int pot2 = 1; // pot2 o'zgaruvchisini butun son sifatida ishga tushirish va uni 2 int pot3 = 2 ga tenglashtirish; // pot3 o'zgaruvchisini butun son sifatida ishga tushirish va uni 4 int pot4 = 3 ga tenglashtirish; // pot4 o'zgaruvchisini butun son sifatida ishga tushirish va uni 5 int val1 ga tenglashtirish; // val1 o'zgarmaydiganini butun sonli int val2 sifatida boshlash; // o'zgarmaydigan val2 o'zgaruvchisini butun son sifatida int val3; // o'zgarmaydigan val3 o'zgaruvchini butun son sifatida int val4; // o'zgarmaydigan val4 o'zgaruvchini int val5 tamsayı sifatida; // o'zgarmaydigan val5 o'zgaruvchini butun son sifatida int val6; // o'zgarmaydigan val6 o'zgaruvchini butun son sifatida int val7; // o'zgarmaydigan val7 o'zgaruvchini butun son sifatida int val8; // val8 o'zgaruvchisini int mspeed tamsayı sifatida ishga tushirish; // mspeed o'zgaruvchisini butun son sifatida boshlash

void setup () {// Arduino ishga tushirish bosqichi Serial.begin (9600); // Seriya monitori rolini ishga tushirish1.attach (2); // 2 -raqamli pin 2 -gachasi servo rulonni biriktirish (3); // Servo rulonni 2 raqamli pin 3 elev1.attach (5) ga ulash; // servo elev1 raqamli pin 5 elev2.attach (6) ga ulanishi; // servo elev2 raqamli pin 6 yaw1.attach (8) ga ulanishi; // Servo yaw1 raqamli pin 8 yaw2.attach (9) ga ulanishi; // servo yaw2 raqamli pin 9 esc.attach (11) ga ulanishi; // Servo esc raqamli pin 11 roll1.write (90) ga biriktirish; // Servo roll1ni markazlashtirilgan holatiga yozish roll2.write (90); // servo roll2 ni markazlashtirilgan holatiga yozish elev1.write (90); // servo elev1ni markazlashtirilgan holatiga yozish elev2.write (90); // servo elev2 ni markazlashtirilgan holatiga yozish yaw1.write (90); // servo yaw1ni markazlashtirilgan holatiga yozish yaw2.write (90); // servo yaw2 ni markazlashtirilgan holatiga yozish esc.write (180); // yozish servo esc markazlashtirilgan holatiga kechikish (2500); // 2 soniya esc.write kutilmoqda (90); kechikish (5000); }

void loop () {// Asosiy kod cheksiz aylansa, agar (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// "Joystick" (potentsiometr) markazlashtirilgan roll1.write (90) yoki yo'qligini tekshirish; // Servo rulonni markaziy holatiga yozish2.write (90); // Servo roll2 ni markaziy holatga yozish} else {// "Joystick" markazlashtirilmagan bo'lsa nima qilish kerak val1 = map (val1, 0, 1023, 10, 170); // val1 ni 10 dan 170 gacha xaritalash va val1 roll1.write (val1) ga tayinlash; // val1 roll2.write (val1) bilan belgilangan pozitonga servo roll1 yozish; // val1 tomonidan belgilangan pozitonga servo roll2 yozish

val2 = analogRead (pot2); // O'qish pot2 (analog pin 2) va qiymatini val2 sifatida saqlash, agar (val2> = 485 && val2 <= 540) {// "Joystick" (potentsiometr) markazda elev1.write (90) joylashganligini tekshirish; // servo elev1 markaziy holatiga yozish elev2.write (90); // servo elev2 markaziy holatiga yozish} else {// "Joystick" markazlashtirilmagan bo'lsa nima qilish kerak val3 = map (val2, 0, 1023, 10, 170); // val2 ni 10 dan 170 gacha xaritalash va val3 val4 ga tayinlash = map4 (val2, 0, 1023, 170, 10); // val2 ni 170 dan 10 gacha xaritalash va val4 ga yuklash1.write (val3); // val3 elev2.write (val4) bilan belgilangan pozitonga servo elev1 yozish; // val4 tomonidan belgilangan pozitonga servo elev2 yozish

val5 = analogRead (pot3); // o'qish pot3 (analog pin 4) va qiymatini val5 sifatida saqlash, agar (val5> = 485 && val5 <= 540) {// "Joystick" (potentsiometr) markazlashtirilganligini tekshirish yaw1.write (90); // yaw1 servo yaw1 markaziy holatiga yozish yaw2.write (90); // servo yaw2 markaziy holatiga yozish} else {// "Joystick" markazlanmagan bo'lsa nima qilish kerak val6 = map (val5, 0, 1023, 10, 170); // val5 ni 10 dan 170 gacha xaritalash va val6 val7 ga belgilash = val7 = map (val5, 0, 1023, 170, 10); // val5 ni 10 dan 170 gacha xaritalash va val7 ga tayinlash yaw1.write (val6); // val6 yaw2.write (val7) bilan belgilangan pozitonga yaw1 servo yozish; // val7 tomonidan belgilangan pozitonga yaw2 servo yozish}

val8 = analogRead (pot4); // O'qish pot4 (analog pin 5) va qiymatini val8 sifatida saqlash 80); kechikish (1000); // 1000 millisekund kutilmoqda} esc.write (val8); // val8 mspeed = val8 bilan belgilangan tezlikka servo esc yozish; // Taqqoslash uchun joriy tezlikni saqlash}} Serial.print ("gaz"); // "Throttle" so'zini ko'rsatish uchun Serial Print -dan foydalanish Serial.println (val8); // Serial.print ("rulonli") ga sozlangan qiymatni ko'rsatish uchun ketma -ket chop etishdan foydalanish; // "Roll" so'zini ko'rsatish uchun Serial Print -dan foydalanish Serial.println (val1); // Serial Print -dan foydalanib, rulon Serial.print ("pitch") qiymatini ko'rsatish; // "Pitch" so'zini ko'rsatish uchun Serial Print -dan foydalanish Serial.println (val3); // Serial Print -dan foydalanib, pitch1 ning Serial.println (val4) ga o'rnatilgan qiymatini ko'rsatish; // pitch2 ning Serial.print ("yaw") qiymatini ko'rsatish uchun ketma -ket chop etishdan foydalanish; // "Yaw" so'zini ko'rsatish uchun Serial Print -dan foydalanish Serial.println (val6); // Serial Print -dan foydalanib, yaw1 ning Serial.println (val7) ga o'rnatilgan qiymatini ko'rsatish; // Yaw2 o'rnatilgan qiymatni ko'rsatish uchun ketma -ket bosib chiqarishni ishlatish}

3 -qadam: O'chirish

Suv osti qurilmasi bortidagi sxemaning fotosurati ilova qilingan.

Men kabelni soddalashtirish uchun Arduino uchun maxsus qalqon yaratdim. Men qalqon uchun Eagle Schematic & Board fayllarini yukladim. Men taxtani maydalash uchun LPKF S63 ishlatardim. old tomonidagi servo boshqaruv paneli Arduino -ga ulanadi

tekshirgich ichidagi sxemaning fotosurati ilova qilingan.

4 -qadam: 3D bosilgan qismlar

Men bu fayllarning barchasini Monoprice Maker Select Plus -da chop etdim. Men Esun ABS 1.75mm filamentidan foydalanardim. Mening bosib chiqarish parametrlari bosma yotoq harorati uchun 105 daraja va ekstruder harorati uchun 255 daraja edi. Har bir qismdan faqat bittasi kerak, faqat old qanotning 6 nusxasi kerak bo'ladi. E'tibor bering, bu qismlar devor qalinligi 1000 mm qilib yozilgan. Bu qismlar 100% to'ldirish bilan chop etilishi uchun qilingan, shuning uchun ular salbiy suzuvchi bo'lishi mumkin edi.

5 -qadam: yig'ish

********************************* TEZ KUNDA *************** *******************

Tavsiya: