Sisukord:
- Samm: materjalid
- 2. samm: programmeerimine
- 3. samm: vooluringid
- 4. samm: 3D -prinditud osad
- Samm: kokkupanek
Video: Sukeldatav sõiduk: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
**************** 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
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
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:
OMeJI - meeskond 15 SubBob Squarepants Sukeldatav: 37 sammu
OMeJI - meeskond 15 SubBob Squarepants Submersible: See on 1/2 tolli ajakava 40 alusel valmistatud PVC sukeldus-/kaugjuhitav sõiduk. See oli mõeldud kahekordse konksuga üheksa jala pikkuse basseini põhjast kahe lipu korjamiseks. Lipud olid osa konkursist, mille korraldas akadeemia keskkool
Sukeldatav 2017: 95 sammu
Sukeldatav 2017: Sukeldatav 2017
DIY sukeldatav ROV: 8 sammu (piltidega)
DIY sukeldatav ROV: kui raske see võib olla? Selgub, et sukeldatava ROV -i tegemisel oli mitmeid väljakutseid. Aga see oli lõbus projekt ja ma arvan, et see oli üsna edukas. Minu eesmärk oli, et see ei maksaks varandust, oleks lihtne sõita ja et mul oleks camer
BTS - 33 - Sukeldatav: 11 sammu
BTS - 33 - sukeldatav: see juhend juhendab teid, kuidas teha 3 lülitiga juhtnuppu
BTS - meeskond 28 (R2 -DTimbs) sukeldatav/allveelaev: 17 sammu
BTS - meeskond 28 (R2 -DTimbs) Sukeldumis-/allveelaev: Õpetus sukeldumismaterjali ehitamiseks materjalidest, mida leiate kohalikust ehituspoest. Lõplik sukeldusmasin saab liikuda edasi, tagasi, pöörata, liikuda üles ja liikuda alla kogu vee