Sisukord:

Sukeldatav sõiduk: 5 sammu
Sukeldatav sõiduk: 5 sammu

Video: Sukeldatav sõiduk: 5 sammu

Video: Sukeldatav sõiduk: 5 sammu
Video: КАКОЙ МЕТАЛЛИЧЕСКИЙ ДЕТЕКТОР КУПИТЬ? СЛУШАЙТЕ ЦЕННЫЕ МНЕНИЯ ПОЛЬЗОВАТЕЛЕЙ 2024, Juuli
Anonim
Sukeldatav sõiduk
Sukeldatav sõiduk
Sukeldatav sõiduk
Sukeldatav sõiduk

**************** KÄESOLEV JUHEND ON IKKA TÖÖ TÖÖTAV ****************

See juhend on loodud Lõuna -Florida ülikooli Makecourse'i projektinõude täitmiseks (www.makecourse.com).

See juhend on lühike ülevaade sukeldussõiduki loomisest, mille ma kavandasin ja lõin oma Lõuna -Florida ülikooli Makecourse'i klassi jaoks. Selles juhendis esitan materjalide arve, kasutatava Arduino Uno jaoks loodud juhtkoodi ja ülevaate sellest, kuidas sukeldatavat kokku panna.

Samm: materjalid

Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid

Kasutatud elektroonika, kui:

1x Arduino Uno

1x mobius tegevuskaamera

1x mobius tegevuskaamera usb-b to A/V kaabel

1x väljavaade 777 ekraan

1x turnigy marine 50A ESC (elektrooniline kiiruse reguleerimine)

1x turnigy mere programmeerimiskaart

1x T-Motor Navigator 400kv

1x YEP 20A BEC (aku eemaldamise ahel)

6x hobikuningas HK15139 veekindlad servod

2x paralleelset T-pistikut ja rakmeid

2x 18 -tollised servopikendusjuhtmed

6x 6 tolli servo pikendusjuhtmed

2x 1300mah 3s Lipo patareid

2x 2500mah 4s Lipo akud

1x toitejaotusplaat nii 5v kui ka 12v fikseeritud väljunditega

Ehitusmaterjalid, kus:

1x 3/16 tolli vineerileht

1x 6 -tolline ID ABS kohaletoimetamistoru

1x silikoontoru

1x purk painduva tihendiga

4 korda pooli ABS 3D printeri hõõgniiti

1x 24 -tolline sahtliliugur

Kuumakahanev toru

1x 10 jalga šoti kaubamärgi duraloc takjapaelu

1x JB Keevitatud plastikust epoksü

1x 6,2 tolli läbimõõduga akrüülist turvakaamera kuppel

2x IP68 Etherneti läbipääsu

2x 24 -tolline cat6 Etherneti kaabel

1x 200 jala pikkune Cat6 Etherneti kaabel

Riistvara oli järgmine:

24x 1/2 tolli messingist puidukruvid

24x ------ kruvid (servodega kaasas)

Kasutatud tööriistad:

Philipsi ja lameda peaga kruvikeerajad

Kuuskantvõtme komplekt

Jootekolb

Soojuspüstol

3D -printer (kasutasin Monoprice Maker Select Plus)

2. samm: programmeerimine

Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine

Allpool on kood, mis loodi sukeldatava juhtimiseks. Olen lisanud ka.ino faili, et seda saaks alla laadida.

See kood loodi Arduino Uno jaoks Arduino kompilaatori abil.

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

Autor: Jonah Powers Kuupäev: 09.11.2018 Eesmärk: Kaugjuhitava sukeldusmasina kontrollkood ****************************** ************************************************* ************************************************* ************************************/#include // Kaasa arvatud Servo Library Servo roll1; // rulli1 kuulutamine servo -rulliks2; // Roll2 kuulutamine servo Servo elev1; // elev1 kuulutamine servoks Servo elev2; // elev2 tunnistamine servo Servo yaw1; // yaw1 kuulutamine servo Servo yaw2; // yaw2 kuulutamine servo Servo esc; // Esc kuulutamine servoks

int pot1 = 0; // Muutuja pot1 initsialiseerimine täisarvuna ja selle seadmine võrdseks 0 int pot2 = 1; // Muutuja pot2 initsialiseerimine täisarvuna ja selle võrdsustamine 2 int pot3 = 2; // Muutuja pot3 initsialiseerimine täisarvuna ja selle võrdsustamine 4 int pot4 = 3; // Muutuja pot4 initsialiseerimine täisarvuna ja selle väärtuseks 5 int val1; // Muutuja val1 initsialiseerimine täisarvuna int val2; // Muutuja val2 initsialiseerimine täisarvuna int val3; // Muutuja val3 initsialiseerimine täisarvuna int val4; // Muutuja val4 initsialiseerimine täisarvuna int val5; // Muutuja val5 initsialiseerimine täisarvuna int val6; // Muutuja val6 initsialiseerimine täisarvuna int val7; // Muutuja val7 initsialiseerimine täisarvuna int val8; // Muutuja val8 initsialiseerimine täisarvuna int mspeed; // Muutuja mspeed initsialiseerimine täisarvuna

void setup () {// Arduino initsialiseerimise etapp Serial.begin (9600); // Seeriamoniteri rulli initsialiseerimine1.attach (2); // Servorulli1 kinnitamine digitaalsele tihvtile 2 roll2.attach (3); // Servorulli2 kinnitamine digitaalsele tihvtile 3 elev1.attach (5); // Servo elev1 kinnitamine digitaalsele tihvtile 5 elev2.attach (6); // Servo elev2 kinnitamine digitaalsele tihvtile 6 yaw1.attach (8); // Servo yaw1 kinnitamine digitaalsele tihvtile 8 yaw2.attach (9); // Servo yaw2 kinnitamine digitaalsele tihvtile 9 escatch (11); // Servo esc kinnitamine digitaalsele tihvtile 11 roll1.write (90); // Servorulli1 kirjutamine tsentreeritud asendisse roll2.write (90); // Servorulli2 kirjutamine tsentreeritud asendisse elev1.write (90); // Servo elev1 kirjutamine tsentreeritud asendisse elev2.write (90); // Servo elev2 kirjutamine tsentreeritud asendisse yaw1.write (90); // Servo yaw1 kirjutamine tsentreeritud asendisse yaw2.write (90); // Servo yaw2 kirjutamine tsentreeritud asendisse esc.write (180); // Servo esc kirjutamine tsentreeritud positsiooni viivituseni (2500); // Ootel 2 sekundit escwrite (90); viivitus (5000); }

void loop () {// Põhikood lõputult loopimiseks, kui (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kontrollimine, kas "Joystick" (potentsiomeeter) on tsentreeritud roll1.write (90); // Servorulli1 kirjutamine keskasendisse roll2.write (90); // Servorulli2 kirjutamine keskasendisse} else {// Mida teha, kui "Joystick" ei ole tsentreeritud val1 = map (val1, 0, 1023, 10, 170); // val1 kaardistamine 10 kuni 170 ja val1 määramine roll1.write (val1); // Servorulli1 kirjutamine positsiooni, mille määrab val1 roll2.write (val1); // Servorulli2 kirjutamine positsiooni, mille määrab val1}

val2 = analogRead (pot2); // Pot2 lugemine (analoogtapp 2) ja väärtuse salvestamine val2 kui (val2> = 485 && val2 <= 540) {// Kontrollimine, kas "Joystick" (potentsiomeeter) on tsentreeritud elev1.write (90); // Servo elev1 kirjutamine keskasendisse elev2.write (90); // Servo elev2 kirjutamine keskasendisse} else {// Mida teha, kui "Joystick" pole tsentreeritud val3 = map (val2, 0, 1023, 10, 170); // val2 kaardistamine 10-170 ja val3 -le omistamine val4 = map (val2, 0, 1023, 170, 10); // val2 kaardistamine 170 -lt 10 -le ja val4 -le omistamine elev1.write (val3); // Servo elev1 kirjutamine positsiooni, mille määratleb val3 elev2.write (val4); // Servo elev2 kirjutamine positsiooni, mille määrab val4}

val5 = analogRead (pot3); // Pot3 lugemine (analoogtapp 4) ja väärtuse salvestamine val5 kui (val5> = 485 && val5 <= 540) {// Kontrollimine, kas "Joystick" (potentsiomeeter) on tsentreeritud yaw1.write (90); // Servo yaw1 kirjutamine keskasendisse yaw2.write (90); // Servo yaw2 kirjutamine keskasendisse} else {// Mida teha, kui "Joystick" ei ole tsentreeritud val6 = map (val5, 0, 1023, 10, 170); // val5 kaardistamine 10 -lt 170 -le ja val6 -le omistamine val7 = map (val5, 0, 1023, 170, 10); // val5 kaardistamine 10 kuni 170 ja val7 määramine yaw1.write (val6); // Servo yaw1 kirjutamine positsioonile, mis on määratletud val6 yaw2.write (val7); // Servo yaw2 kirjutamine positsiooni, mille määrab val7}

val8 = analogRead (pot4); // Pot4 lugemine (analoogtapp 5) ja väärtuse salvestamine val8 kui (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kontrollimine, kas mootor hakkab suunda muutma esc.write (80); viivitus (1000); // Ootel 1000 millisekundit} esc.write (val8); // Servo esc kirjutamine kiirusele, mis on määratletud val8 mspeed = val8; // Praeguse kiiruse salvestamine võrdluseks}} Serial.print ("drossel"); // Seeriaprindi kasutamine sõna "Throttle" näitamiseks Serial.println (val8); // Seeriaprindi kasutamine väärtuse näitamiseks, et gaasipedaal on seatud Serial.print ("roll"); // Seeriaprindi kasutamine sõna "Roll" näitamiseks Serial.println (val1); // Seeriaprindi kasutamine väärtuse näitamiseks, mille rull on seatud Serial.print ("pitch"); // Seeriaprindi kasutamine sõna "Pitch" näitamiseks Serial.println (val3); // Seeriaprindi kasutamine väärtuse näitamiseks, mille samm 1 on seatud Serial.println (val4); // Serial Print kasutamine väärtuse näitamiseks, et pitch2 on seatud Serial.print ("yaw"); // Seeriaprindi kasutamine sõna "Yaw" näitamiseks Serial.println (val6); // Seeriaprindi kasutamine väärtuse näitamiseks, et yaw1 on seatud Serial.println (val7); // Seeriaprindi kasutamine väärtuse yaw2 näitamiseks}

3. samm: vooluringid

Lisatud on foto sukeldusaparaadi pardal olevast vooluringist.

Juhtmete lihtsustamiseks lõin Arduino jaoks kohandatud kilbi. Olen kilbi jaoks üles laadinud Eagle Schematic & Board failid. Plaadi freesimiseks kasutasin LPKF S63. eesmised servod, mis reguleerivad rulli, ühendatakse Arduinoga

Lisatud on foto kontrolleri sees olevast vooluringist.

4. samm: 3D -prinditud osad

Prindisin kõik need failid oma Monoprice Maker Select Plus'i. Kasutasin Esun ABS 1.75mm filamenti. Minu prindiseaded olid prindikihi temperatuuril 105 ° C ja ekstruuderi temperatuuril 255 ° C. Igast osast on vaja ainult 1, välja arvatud see, et vajate 6 esitiiva koopiat. Pange tähele, et need osad trükiti seinapaksuseks 1000 mm. Seda tehti nii, et osad trükitaks 100% täidisega, nii et need oleksid negatiivselt ujuvad.

Samm: kokkupanek

********************************* TULEKUL *************** *******************

Soovitan: