Mundarija:
- 1 -qadam: materiallar
- 2 -qadam: dasturlash
- 3 -qadam: O'chirish
- 4 -qadam: 3D bosilgan qismlar
- 5 -qadam: yig'ish
Video: Suv osti transport vositasi: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
**********
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
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
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:
Suv osti suzish havzasi Bluetooth quyosh tozalash roboti: 8 qadam
Suv osti suzish havzasi Bluetooth Quyoshdan tozalash roboti: Mening uyimda basseyn bor, lekin suv havzalarining eng katta muammosi - suv filtri intilmasligi. Shunday qilib, pastdan kirni tozalash yo'lini o'ylab topdim. Va boshqa holatlarga kelsak
OMeJI - 15 -guruh SubBob Squarepants suv osti: 37 qadam
OMeJI - 15 -guruh SubBob Squarepants suv osti: Bu 1/2 dyuymli 40 -jadvalli PVX suv osti/masofadan boshqariladigan avtomobil. U to'qqiz metrli hovuz tubidagi ikkita ilgakli ikkita bayroqni olish uchun mo'ljallangan edi. Bayroqlar Akademiya o'rta maktabi tomonidan tashkil etilgan tanlovning bir qismi edi
BTS - Men bilan suv osti kemasi haqida gaplash: 11 qadam
BTS-"Nerdy to Me" suv osti kemasi bilan gaplashing: Materiallar: 12 dona 6 dyuymli pvc trubkasi 2 dona 3 dyuymli pvc trubkasi 1 dona 18 dyuymli pvc trubkasi 8 uch tomonli tirsaklar 1 t-tirsak 3, 2 futli sim 3 kalit 3 dvigatellar 3 pervanel 1 quvvat manbai
Suv osti masofadan boshqarish droni: 10 qadam (rasmlar bilan)
Uzoqdan boshqariladigan suv osti droni: Men suv osti olamini kashf etish va hayratga solish uchun ushbu ROVni qurishga qaror qildim, chunki u erda iqtisodiy jihatdan samarali suv osti dronlari ko'p emas. Garchi ko'p vaqt, tadqiqot va autodidaktikizm talab qilinsa -da, bu qiziqarli loyiha
BTS - 28 -guruh (R2 -DTimbs) Suv osti/suv osti kemasi: 17 qadam
BTS - 28 -guruh (R2 -DTimbs) Suv osti/suv osti kemasi: Mahalliy apparat do'konida mavjud bo'lgan materiallardan suv osti qurilishi bo'yicha qo'llanma. Oxirgi suv osti kemasi oldinga, orqaga, burilish, yuqoriga va yuqoriga siljish imkoniyatiga ega bo'ladi. butun suv bo'ylab