Turinys:

Panardinama transporto priemonė: 5 žingsniai
Panardinama transporto priemonė: 5 žingsniai

Video: Panardinama transporto priemonė: 5 žingsniai

Video: Panardinama transporto priemonė: 5 žingsniai
Video: Как пересадить взрослое дерево 2024, Lapkritis
Anonim
Panardinama transporto priemonė
Panardinama transporto priemonė
Panardinama transporto priemonė
Panardinama transporto priemonė

**************** ŠI INSTRUKCIJA VYLIAI VYSTOMAS DARBAS ****************

Ši instrukcija buvo sukurta vykdant Pietų Floridos universiteto „Makecourse“projekto reikalavimą (www.makecourse.com).

Šioje instrukcijoje bus trumpai apžvelgiamas povandeninės transporto priemonės, kurią aš sukūriau ir sukūriau savo „Makecourse“klasei Pietų Floridos universitete, sukūrimas. Šioje instrukcijoje pateiksiu medžiagų sąrašą, valdymo kodą, kurį sukūriau naudojamam „Arduino Uno“, ir apžvalgą, kaip surinkti panardinamąjį.

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos

Naudojama elektronika, kai:

1x „Arduino Uno“

1x mobius veiksmo kamera

1x mobius veiksmo fotoaparatas usb-b į A/V kabelį

1x lauko vaizdas 777 ekranas

1x turnigy marine 50A ESC (elektroninis greičio valdymas)

1x turnigy jūrų programavimo kortelė

1x „T-Motor Navigator 400kv“

1x YEP 20A BEC (akumuliatoriaus pašalinimo grandinė)

6x hobby king HK15139 neperšlampamos servos

2x lygiagrečios T jungtys ir diržai

2x 18 colių servo prailginimo laidai

6x 6 colių servo prailginimo laidai

2x 1300mah 3s Lipo baterijos

2x 2500mah 4s Lipo baterijos

1x maitinimo paskirstymo plokštė su 5v ir 12v fiksuotais išėjimais

Statybinės medžiagos, kuriose:

1x 3/16 colio faneros lapas

1x 6 colių ID ABS pristatymo vamzdis

1x silikoninis vamzdelis

1x lankstymo sandarinimo skardinė

4x ritės iš ABS 3D spausdintuvo gijų

1x 24 colių stalčių skaidrė

Šilumos susitraukimo vamzdis

1x 10 pėdų škotiško prekės ženklo „duraloc Velcro“

1x JB suvirinimo plastiko epoksidas

1x 6,2 colio skersmens akrilo apsaugos kameros kupolas

2x IP68 eterneto praėjimai

2x 24 colių „Cat6“eterneto kabelis

1x 200 pėdų cat6 eterneto kabelis

Naudota aparatūra buvo:

24x 1/2 colio žalvario medienos varžtai

24x ------ varžtai (pridedami prie servo)

Naudojami įrankiai:

Pilypo ir plokščios galvutės atsuktuvai

Šešiakampis raktų rinkinys

Lituoklis

Šilumos pistoletas

3D spausdintuvas (naudojau „Monoprice Maker Select Plus“)

2 žingsnis: programavimas

Programavimas
Programavimas
Programavimas
Programavimas
Programavimas
Programavimas
Programavimas
Programavimas

Žemiau yra kodas, kuris buvo sukurtas valdyti panardinamąjį. Taip pat pridėjau.ino failą, kad jį būtų galima atsisiųsti.

Šis kodas buvo sukurtas „Arduino Uno“naudojant „Arduino“kompiliatorių.

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

Autorius: Jonah Powers Data: 2018-11-09 Paskirtis: Nuotoliniu būdu valdomos povandeninės transporto priemonės valdymo kodas ****************************** ************************************************* ************************************************* ************************************/#include // Įskaitant „Servo Library Servo roll1“; // Roll1 paskelbimas servo Servo roll2; // Roll2 paskelbimas servo servo elev1; // Elev1 paskelbimas servo Servo elev2; // Elev2 paskelbimas servo servo posūkiu1; // Paskelbimas yaw1 kaip servo Servo yaw2; // yaw2 paskelbimas servo Servo esc; // Esc paskelbimas servo

int puodas1 = 0; // Inicializuojant kintamąjį pot1 kaip sveiką skaičių ir nustatant jį lygų 0 int pot2 = 1; // Inicializuojant kintamąjį pot2 kaip sveiką skaičių ir nustatant jį lygų 2 int pot3 = 2; // Inicializuojant kintamąjį pot3 kaip sveiką skaičių ir nustatant jį lygų 4 int pot4 = 3; // Inicijuojamas kintamasis pot4 kaip sveikasis skaičius ir nustatomas lygus 5 int val1; // Inicializuojamas kintamasis val1 kaip sveikasis skaičius int val2; // Inicializuojamas kintamasis val2 kaip sveikasis skaičius int val3; // Inicializuojamas kintamasis val3 kaip sveikasis skaičius int val4; // Inicializuojamas kintamasis val4 kaip sveikasis skaičius int val5; // Inicializuojamas kintamasis val5 kaip sveikasis skaičius int val6; // Inicializuojamas kintamasis val6 kaip sveikasis skaičius int val7; // Inicializuojamas kintamasis val7 kaip sveikasis skaičius int val8; // Inicializuojantis kintamasis val8 kaip sveikas skaičius int mspeed; // Inicializuojantis kintamasis mspeed kaip sveikasis skaičius

void setup () {// „Arduino“inicijavimo etapas Serial.begin (9600); // Serijinio monitoriaus ritinio inicijavimas1.attach (2); // Servo ritinio1 pritvirtinimas prie 2 skaitmeninio kaiščio roll2.attach (3); // Servo ritinio2 tvirtinimas prie skaitmeninio kaiščio 3 elev1.attach (5); // Servo elev1 tvirtinimas prie skaitmeninio kaiščio 5 elev2.attach (6); // Servo elev2 tvirtinimas prie skaitmeninio kaiščio 6 yaw1.attach (8); // Servo yaw1 tvirtinimas prie skaitmeninio kaiščio 8 yaw2.attach (9); // Servo yaw2 tvirtinimas prie skaitmeninio kaiščio 9 esc.attach (11); // Servo esc pritvirtinimas prie skaitmeninio kaiščio 11 roll1.write (90); // Servo ritinio1 rašymas į jo centrinę padėtį roll2.write (90); // Servo ritinio2 rašymas į jo centrinę padėtį elev1.write (90); // Servo elev1 rašymas į jo centrinę padėtį elev2.write (90); // Servo elev2 rašymas į jo centrinę padėtį yaw1.write (90); // Servo yaw1 rašymas į jo centrinę padėtį yaw2.write (90); // Servo yaw2 įrašymas į jo centrinę padėtį esc.write (180); // Servo esc įrašymas į jos centrinės padėties uždelsimą (2500); // Laukiama 2 sekundės esc.write (90); vėlavimas (5000); }

void loop () {// Pagrindinis kodas į begalinę kilpą, jei (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Tikrinimas, ar „vairasvirtė“(potenciometras) yra centrinis ritinys1.rašykite (90); // Servo ritinio1 rašymas į centrinę padėtį roll2.write (90); // Servo roll2 įrašymas į centrinę padėtį} else {// Ką daryti, jei "Joystick" nėra centre val1 = map (val1, 0, 1023, 10, 170); // Val1 atvaizdavimas nuo 10 iki 170 ir priskyrimas val1 roll1.write (val1); // Servo ritinio1 rašymas į poziciją, apibrėžtą val1 roll2.write (val1); // Servo roll2 rašymas į pozą, apibrėžtą val1}

val2 = analogRead (pot2); // Pot2 skaitymas (analoginis kaištis 2) ir reikšmės išsaugojimas kaip val2 if (val2> = 485 && val2 <= 540) {// Tikrinimas, ar „Joystick“(potenciometras) yra centre elev1.write (90); // Servo elev1 rašymas į centrinę padėtį elev2.write (90); // Servo elev2 įrašymas į centrinę padėtį} else {// Ką daryti, jei "Joystick" nėra centre val3 = map (val2, 0, 1023, 10, 170); // Val2 atvaizdavimas nuo 10 iki 170 ir priskyrimas val3 val4 = map (val2, 0, 1023, 170, 10); // Val2 atvaizdavimas nuo 170 iki 10 ir priskyrimas val4 elev1.write (val3); // Servo elev1 rašymas į poziciją, apibrėžtą val3 elev2.write (val4); // Servo elev2 rašymas į pozityvą, apibrėžtą val4}

val5 = analogRead (pot3); // Pot3 skaitymas (analoginis kaištis 4) ir reikšmės išsaugojimas kaip val5 if (val5> = 485 && val5 <= 540) {// Tikrinimas, ar „Joystick“(potenciometras) yra centre yaw1.write (90); // Servo yaw1 rašymas į centrinę padėtį yaw2.write (90); // Servo yaw2 įrašymas į centrinę padėtį} else {// Ką daryti, jei "Joystick" nėra centre val6 = map (val5, 0, 1023, 10, 170); // Val5 atvaizdavimas nuo 10 iki 170 ir priskyrimas val6 val7 = map (val5, 0, 1023, 170, 10); // Val5 atvaizdavimas nuo 10 iki 170 ir priskyrimas val7 yaw1.write (val6); // Servo yaw1 rašymas į positoną, apibrėžtą val6 yaw2.write (val7); // Servo yaw2 rašymas į pozityvą, apibrėžtą val7}

val8 = analogRead (pot4); // Pot4 skaitymas (analoginis kaištis 5) ir reikšmės išsaugojimas kaip val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Tikrinama, ar variklis netrukus pakeis kryptį esc.write (80); vėlavimas (1000); // Laukiama 1000 milisekundžių} esc.write (val8); // Servo esc įrašymas į greitį, apibrėžtą val8 mspeed = val8; // Dabartinio greičio išsaugojimas palyginimui}} Serial.print ("droselis"); // Naudojant serijinį spausdinimą parodyti žodį „droselis“Serial.println (val8); // Serial Print naudojimas norint parodyti vertę, kai droselis nustatytas kaip Serial.print ("roll"); // Serial Print naudojimas žodžiui „Roll“parodyti Serial.println (val1); // Serijinio spausdinimo naudojimas norint parodyti vertę, kuri nustatyta kaip Serial.print ("pitch"); // Serial Print naudojimas žodžiui „Pitch“parodyti Serial.println (val3); // Naudojant serijinį spausdinimą, norint parodyti reikšmę, kuri pitch1 nustatyta kaip Serial.println (val4); // Naudojant serijinį spausdinimą, norint parodyti reikšmę, kurios pitch2 vertė yra Serial.print ("yaw"); // Serial Print naudojimas žodžiui „Yaw“parodyti Serial.println (val6); // Serial Print naudojimas norint parodyti reikšmę, kad yaw1 nustatyta kaip Serial.println (val7); // Serijinio spausdinimo naudojimas norint parodyti reikšmę, kuri yaw2 nustatyta kaip}

3 žingsnis: grandinė

Pridedama povandeniniame laive esančios grandinės nuotrauka.

Aš sukūriau „Arduino“pasirinktinį skydą, kad supaprastinčiau laidus. Įkėliau skydo „Eagle Schematic & Board“failus. Lentoms frezuoti naudojau LPKF S63. priekyje esantys „Servo“valdikliai bus prijungti prie „Arduino“

pridedama valdiklio viduje esančios grandinės nuotrauka.

4 žingsnis: 3D spausdintos dalys

Aš atspausdinau visus šiuos failus savo „Monoprice Maker Select Plus“. Aš naudoju Esun ABS 1.75 mm giją. Mano spausdinimo nustatymai buvo 105 ° C spausdinimo lovos temperatūrai ir 255 ° C ekstruderio temperatūrai. Reikia tik 1 kiekvienos dalies, išskyrus tai, kad jums reikės 6 priekinio sparno kopijų. Atkreipkite dėmesį, kad šios dalys buvo atspausdintos nustatant 1000 mm sienelės storį. Tai buvo padaryta taip, kad dalys būtų atspausdintos 100% užpildu, kad jos būtų neigiamai plūduriuojančios.

5 žingsnis: Surinkimas

********************************* NETRUKUS *************** *******************

Rekomenduojamas: