Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
**************** 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 *************** *******************