Mündəricat:
- Addım 1: Materiallar
- Addım 2: Proqramlaşdırma
- Addım 3: Dövrə
- Addım 4: 3D çaplı hissələr
- Addım 5: Montaj
Video: Sualtı maşın: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
**************** BU TƏLİMAT HƏLƏ İLƏ İŞLƏDİR ****************
Bu Təlimat, Cənubi Florida Universitetindəki Makecourse (www.makecourse.com) layihə tələbinin yerinə yetirilməsi üçün yaradılmışdır.
Bu Təlimat, Cənubi Florida Universitetindəki Makecourse sinifim üçün hazırladığım sualtı vasitənin yaradılması haqqında qısa bir fikir olacaq. Bu Təlimat kitabında bir sənəd hesabatı, istifadə etdiyim Arduino Uno üçün yaratdığım nəzarət kodu və sualtı qurğunun necə yığılacağına dair ümumi məlumat verəcəyəm.
Addım 1: Materiallar
Burada istifadə olunan elektronika:
1x Arduino Uno
1x mobius fəaliyyət kamerası
A/V kabelinə 1x mobius fəaliyyət kamerası usb-b
1x sahə görünüşü 777 ekran
1x turnik dəniz 50A ESC (elektron sürət nəzarəti)
1x turnik dəniz proqramlaşdırma kartı
1x T-Motorlu Naviqator 400kv
1x YEP 20A BEC (batareyanın aradan qaldırılması dövrəsi)
6x hobbi king HK15139 suya davamlı servolar
2x paralel T konnektoru y qoşquları
2x18 düymlük servo uzatma telləri
6x6 düymlük servo uzatma telləri
2x 1300mah 3s Lipo batareyaları
2x 2500mah 4s Lipo batareyaları
Həm 5v, həm də 12v sabit çıxışı olan 1x güc paylayıcı lövhə
Tikinti materialları burada:
1x 3/16 düymlük kontrplak təbəqə
1x6 düymlük ID ABS göndərmə borusu
1 x silikon boru
1x banka çevik möhür
ABS 3D printer filamentinin 4x makaraları
1x24 düymlük çekmece
İstilik büzücü boru
1x10 fut skotç markası duraloc velcro
1x JB Weld plastik epoksi
1x 6.2 düym diametrli akril təhlükəsizlik kamerası günbəzi
2 dəfə IP68 ethernet keçidləri
2x24 düymlük cat6 ethernet kabeli
1x 200 fut cat6 ethernet kabeli
İstifadə olunan aparat belə idi:
24x 1/2 düymlük pirinç ağac vintlər
24x ------ vintlər (servolara daxildir)
İstifadə olunan vasitələr:
Philip's və Flat başlı tornavidalar
Allen açar dəsti
Lehimleme dəmir
İstilik silahı
3D printer (Monoprice Maker Select Plus istifadə etdim)
Addım 2: Proqramlaşdırma
Aşağıda, sualtı gəmini idarə etmək üçün yaradılmış kod var. Yüklənə bilməsi üçün.ino faylını da əlavə etdim.
Bu kod Arduino Uno üçün Arduino kompilyatoru vasitəsi ilə yaradılmışdır.
/**********************************************************************************************************************************************************************
Müəllif: Jonah Powers Tarix: 11/9/2018 Məqsəd: Uzaqdan idarə olunan sualtı nəqliyyat vasitəsinə nəzarət kodu ****************************** ************************************************ ************************************************ **********************************/#include // Servo Kitabxanası daxil olmaqla Servo roll1; // Roll1 -in servo Servo roll2 elan edilməsi; // Roll2 -nin servo olaraq elan edilməsi Servo elev1; // elev1 -in servo olaraq elan edilməsi Servo elev2; // elev2 -nin servo olaraq elan edilməsi Servo yaw1; // yaw1 -in servo olaraq elan edilməsi Servo yaw2; // yaw2 -nin servo olaraq elan edilməsi Servo esc; // esc -in servo olaraq elan edilməsi
int pot1 = 0; // pot1 dəyişənini tam ədəd olaraq başlatmaq və onu 0 int pot2 = 1 -ə bərabər etmək; // Dəyişən pot2 -ni tamsayı olaraq başlatmaq və onu 2 -ə bərabər etmək int pot3 = 2; // Dəyişən pot3 -ü tam ədəd olaraq başlatmaq və onu 4 int pot4 = 3 -ə bərabər etmək; // Dəyişən pot4 -ü tam ədəd olaraq başlatmaq və onu 5 int val1 -ə bərabər etmək; // val1 dəyişənini int val2 tamsayı olaraq başlatmaq; // val2 dəyişənini int val3 tamsayı olaraq başlatmaq; // dəyişən val3 int val4 tamsayı olaraq başlatılır; // dəyişən val4 int val5 tamsayı olaraq başlatılır; // val5 dəyişənini int val6 tamsayı olaraq başlatmaq; // val6 dəyişənini int val7 tamsayı olaraq başlatmaq; // val7 dəyişənini int val8 tamsayı olaraq başlatmaq; // int mspeed tamsayı olaraq val8 dəyişəninin işə salınması; // mspeed dəyişənini tam ədəd kimi başlatmaq
void setup () {// Arduino başlatma mərhələsi Serial.begin (9600); // Serial monitör roll -un işə salınması1.attach (2); // Servo rulonun1 rəqəmsal pin 2 roll2.attach (3) -ə bağlanması; // Servo rulonun2 rəqəmsal pin 3 elev1.attach (5) -ə bərkidilməsi; // Servo elev1 rəqəmsal pin 5 elev2.attach (6) -ə bərkidilməsi; // servo elev2 rəqəmsal pin 6 yaw1.attach (8) -ə bərkidilməsi; // servo yaw1 rəqəmsal pinə 8 yaw2.attach (9) qoşulması; // servo yaw2 -ni rəqəmsal pin 9 -a bağlamaq esc.attach (11); // Servo escin rəqəmsal pin 11 -ə bağlanması roll1.write (90); // Servo rulonun1 mərkəzləşdirilmiş mövqeyinə yazılması2.write (90); // Servo rulonun2 mərkəzləşdirilmiş mövqeyinə yazılması elev1.write (90); // servo elev1 mərkəzləşdirilmiş mövqeyinə yazmaq elev2.write (90); // servo elev2 -ni mərkəzləşdirilmiş mövqeyinə yazmaq yaw1.write (90); // servo yaw1 mərkəzləşdirilmiş mövqeyinə yazmaq yaw2.write (90); // servo yaw2 -ni mərkəzləşdirilmiş vəziyyətinə yazmaq esc.write (180); // Mərkəzləşdirilmiş mövqe gecikməsinə servo esc yazmaq (2500); // 2 saniyə gözləyin esc.write (90); gecikmə (5000); }
void loop () {// Ana kod sonsuz döngə olduqda (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// "Joystick" in (potansiometr) roll1.write (90) mərkəzli olub olmadığını yoxlamaq; // Servo roll1 -in mərkəz mövqe rulonuna yazılması2.write (90); // Mərkəz mövqeyinə servo roll2 yazmaq} else {// "Joystick" mərkəzli deyilsə nə etməli val1 = xəritə (val1, 0, 1023, 10, 170); // Val1 -in 10 -dan 170 -ə qədər xəritələnməsi və val1 roll1.write -ə təyin edilməsi (val1); // val1 roll2.write (val1) ilə təyin olunan pozitona servo roll1 yazmaq; // val1 tərəfindən müəyyən edilən pozitona servo roll2 yazmaq
val2 = analogRead (pot2); // Oxu pot2 (analog pin 2) və əgər val2 olaraq dəyər saxlasanız (val2> = 485 && val2 <= 540) {// "Joystick" in (potensiometr) mərkəzdə elev1.write (90) olub olmadığını yoxlamaq; // Servo elev1 -in mərkəz mövqeyinə yazılması elev2.write (90); // Servo elev2 mərkəz mövqeyinə yazmaq} else {// "Joystick" mərkəzli deyilsə nə etməli val3 = xəritə (val2, 0, 1023, 10, 170); // val2 -ni 10 -dan 170 -ə qədər xəritələmək və val3 -ə təyin etmək val4 = map (val2, 0, 1023, 170, 10); // Val2 -ni 170 -dən 10 -a qədər xəritələşdirmək və val4 -ə təyin etmək elev1.write (val3); // val3 elev2.write (val4) tərəfindən təyin olunan pozitona servo elev1 yazmaq; // val4 tərəfindən təyin olunan servo elev2 -nin pozitona yazılması
val5 = analogRead (pot3); // Oxu pot3 (analog pin 4) və əgər val5 olaraq dəyər saxlasanız (val5> = 485 && val5 <= 540) {// "Joystick" in (potensiometr) mərkəzli yaw1.write (90) olub olmadığını yoxlamaq; // servo yaw1 mərkəz mövqeyinə yazmaq yaw2.write (90); // Servis yaw2 mərkəz mövqeyinə yazmaq} else {// "Joystick" mərkəzli deyilsə nə etməli val6 = xəritə (val5, 0, 1023, 10, 170); // Val5 -in 10 -dan 170 -ə qədər xəritələnməsi və val6 -ya təyin edilməsi val7 = xəritə (val5, 0, 1023, 170, 10); // Val5 -in 10 -dan 170 -ə qədər xəritələndirilməsi və val7 -ə təyin edilməsi yaw1.write (val6); // val6 yaw2.write (val7) tərəfindən təyin olunan pozitona servo yaw1 yazmaq; // val7 tərəfindən təyin olunan pozitona servo yaw2 yazmaq}
val8 = analogRead (pot4); // Oxu qazanı4 (analog pin 5) və əgər val8 kimi saxlasanız (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Motorun istiqamətini dəyişmək istədiyini yoxlamaq esc.write (80); gecikmə (1000); // 1000 milisaniyə gözləyir} esc.write (val8); // val8 mspeed = val8 ilə təyin olunan sürətə servo esc yazmaq; // Müqayisə üçün cari sürətin saxlanması}} Serial.print ("qaz"); // "Qəza" sözünü göstərmək üçün Serial Çapdan istifadə Serial.println (val8); // Qazın Serial.print ("rulon") olaraq təyin olunduğu dəyəri göstərmək üçün Serial Çapdan istifadə etmək; // "Roll" sözünü göstərmək üçün Serial Çapdan istifadə Serial.println (val1); // Serial Çapdan istifadə edərək rulonun Serial.print ("meydança") olaraq təyin olunduğu dəyəri göstərmək; // "Pitch" sözünü göstərmək üçün Serial Çapdan istifadə Serial.println (val3); // pitch1 -in Serial.println (val4) olaraq təyin olunduğu dəyəri göstərmək üçün Serial Çapdan istifadə etmək; // pitch2 -nin Serial.print ("yaw") olaraq təyin olunduğu dəyəri göstərmək üçün Serial Çapdan istifadə; // "Yaw" sözünü göstərmək üçün Serial Çapdan istifadə Serial.println (val6); // yaw1 -in Serial.println (val7) olaraq təyin olunduğu dəyəri göstərmək üçün Serial Çapdan istifadə etmək; // yaw2 -nin təyin olunduğu dəyəri göstərmək üçün Serial Çapdan istifadə edərək}
Addım 3: Dövrə
Sualtı gəmidə olan dövrənin fotoşəkili əlavə olunur.
Kabellərimi asanlaşdırmaq üçün Arduino üçün xüsusi bir qalxan yaratdım. Qalxan üçün Eagle Schematic & Board sənədlərini yüklədim. Lövhəni üyütmək üçün LPKF S63 istifadə etdim. İdarəetmə rulonunun ön hissəsindəki servolar Arduino -ya qoşulacaq
nəzarətçinin içərisindəki dövrə şəkli əlavə olunur.
Addım 4: 3D çaplı hissələr
Bütün bu faylları Monoprice Maker Select Plus -da çap etdim. Esun ABS 1.75mm Filamentdən istifadə etdim. Çap parametrlərim çap yatağının temperaturu üçün 105 dərəcə, ekstruderin temperaturu üçün isə 255 dərəcədir. Ön hissənin 6 nüsxəsinə ehtiyacınız istisna olmaqla, hər hissədən yalnız 1 ədəd lazımdır. Qeyd edək ki, bu hissələr divar qalınlığı 1000 mm -ə qədər çap olunmuşdur. Bu, hissələrin 100% doldurulması ilə basılması və mənfi üzmə qabiliyyətinə malik olması üçün edildi.
Addım 5: Montaj
********************************* TEZLİKLƏ *************** *******************
Tövsiyə:
Sualtı Hovuz Bluetooth Günəş Təmizləmə Robotu: 8 addım
Sualtı Üzmə Hovuzu Bluetooth Günəş Təmizləmə Robotu: Evimdə bir hovuz var, amma sökülə bilən hovuzların ən böyük problemi, su filtrinin istəmədiyi dibinə çirklənməsidir. Buna görə çirkliliyi altdan təmizləmək üçün bir yol düşündüm. Və digər tərəfdən
Sualtı Uzaqdan İdarəetmə Dronu: 10 Addım (Şəkillərlə birlikdə)
Sualtı Uzaqdan İdarəetmə Dronu: Sualtı dünyanı kəşf etmək və heyran etmək məqsədi ilə bu ROV qurmağa qərar verdim, çünki orada çox səmərəli sualtı dronları yoxdur. Çox vaxt, araşdırma və autodidacticism tələb etsə də, əyləncəli bir layihədir
Sualtı Rover: 3 addım
Sualtı Rover: Bu layihədə, araşdırılmamış okeanlarımızın problemini bir sualtı gəmisi yaradaraq həll edirik. Bu rover okeanın böyük dərinliklərini təmizləyə və yaxın ətrafındakı məlumatları toplaya biləcək. Bir çox şirkətlər
Sualtı Kamera Qutusu Sızma Dedektoru: 7 Addım (Şəkillərlə birlikdə)
Sualtı Kamera Qutusu Sızma Dedektoru: Sualtı kamera yuvası nadir hallarda sızır, lakin bu hadisə baş verərsə nəticələr normal olaraq fəlakətlidir və kamera gövdəsinə və lensinə düzəlməz ziyan vurur
BTS - Komanda 28 (R2 -DTimbs) Dalğıc/Sualtı Qayıq: 17 Addım
BTS - Team 28 (R2 -DTimbs) Dalgıç/Sualtı Gəmi: Yerli hardware mağazasında tapıla bilən materiallardan sualtı qurmaq üçün dərslik. Son sualtı gəmi irəli, geriyə, dönə, yuxarı hərəkət edə və hərəkət edə biləcək. su boyunca aşağı