Sadržaj:

Potopno vozilo: 5 koraka
Potopno vozilo: 5 koraka

Video: Potopno vozilo: 5 koraka

Video: Potopno vozilo: 5 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Srpanj
Anonim
Potopno vozilo
Potopno vozilo
Potopno vozilo
Potopno vozilo

**************** OVO UPUTSTVO JE JOŠ RAD U NAPREDU ****************

Ovaj Instructable nastao je u skladu sa zahtjevima projekta Makecoursea na Sveučilištu Južne Floride (www.makecourse.com).

Ovaj Instructable bit će kratak pregled stvaranja potopnog vozila koje sam dizajnirao i izgradio za svoj predmet Makecourse na Sveučilištu Južna Florida. U ovom Instructableu pružit ću popis materijala, kontrolni kod koji sam stvorio za Arduino Uno koji sam koristio i pregled načina sastavljanja podmornice.

Korak 1: Materijali

Materijali
Materijali
Materijali
Materijali
Materijali
Materijali

Elektronika koja se koristi gdje:

1x Arduino Uno

1x mobius akcijska kamera

1x mobius akcijska kamera usb-b na A/V kabel

1x prikaz polja 777 s prikazom polja

1x rečni brod 50A ESC (elektronička kontrola brzine)

1x pomorska programska kartica za plovidbu

1x T-Motor Navigator 400kv

1x YEP 20A BEC (krug za uklanjanje baterije)

6x vodootporni servo upravljači za hobije king HK15139

2x paralelni T-priključak y uprtača

2x 18 -inčne servo produžne žice

6x 6 inčne servo produžne žice

2x 1300mah 3s Lipo baterije

2x 2500mah 4s Lipo baterije

1x razdjelna ploča s fiksnim izlazima 5v i 12v

Građevinski materijali gdje:

1x list šperploče 3/16 inča

1x 6 -inčna ID ABS transportna cijev

1x silikonska cijev

1x limenka fleksibilne brtve

4x špule od niti ABS 3D pisača

1x klizač za ladice od 24 inča

Termoskupljajuća cijev

1x 10 stopa čička marke duraloc marke scotch

1x JB Zavarite plastični epoksid

1x akrilna kupola sigurnosne kamere promjera 6,2 inča

2x IP68 ethernet prolaza

2x 24 -inčni kabel cat6 Ethernet

1x Ethernet kabel cat6 od 200 stopa

Korišteni hardver bio je:

24x 1/2 inčni mesingani vijci za drvo

24x ------ vijci (uključeni sa servo pogonima)

Korišteni alati:

Filipovi i odvijači s ravnom glavom

Šesterokutni ključ postavljen

Lemilica

Toplinski pištolj

3D pisač (koristio sam Monoprice Maker Select Plus)

Korak 2: Programiranje

Programiranje
Programiranje
Programiranje
Programiranje
Programiranje
Programiranje
Programiranje
Programiranje

Ispod je kôd koji je stvoren za kontrolu podmornice. Također sam priložio.ino datoteku kako bi se mogla preuzeti.

Ovaj kod je kreiran za Arduino Uno pomoću Arduino kompajlera.

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

Autor: Jonah Powers Datum: 9.11.2018. Svrha: Kontrolni kôd za podvodno vozilo na daljinsko upravljanje **************************** ************************************************ ************************************************ ************************************/#include // Uključujući Servo knjižnicu Servo roll1; // proglašavanje role1 servo servo role2; // proglašavanje roll2 servo servo elev1; // proglašavanje elev1 servo servo elev2; // proglašavanje elev2 za servo servo zakretanje1; // Oglašavanje yaw1 servo servo yaw2; // proglašavanje yaw2 servo servo esc; // Deklariranje esc kao servo

int pot1 = 0; // Inicijalizacija varijable pot1 kao cijeli broj i njezino postavljanje na 0 int pot2 = 1; // Inicijalizacija varijable pot2 kao cijeli broj i njezino postavljanje na 2 int pot3 = 2; // Inicijalizacija varijable pot3 kao cijeli broj i njezino postavljanje na 4 int pot4 = 3; // Inicijalizacija varijable pot4 kao cijeli broj i njezino postavljanje na 5 int val1; // Inicijalizacija varijable val1 kao cjelobrojnog int val2; // Inicijalizacija varijable val2 kao cijeli broj int val3; // Inicijalizacija varijable val3 kao cijeli broj int val4; // Inicijalizacija varijable val4 kao cijeli broj int val5; // Inicijalizacija varijable val5 kao cjelobrojnog int val6; // Inicijalizacija varijable val6 kao cjelobrojnog int val7; // Inicijalizacija varijable val7 kao cijeli broj int val8; // Inicijalizacija varijable val8 kao cijeli broj int mspeed; // Inicijalizacija varijable mspeed kao cijeli broj

void setup () {// Arduino faza inicijalizacije Serial.begin (9600); // Pokretanje serijskog monitora roll1.attach (2); // Pričvršćivanje servo valjka1 na digitalni pin 2 valjka2.pričvrstite (3); // Pričvršćivanje servo role2 na digitalni pin 3 elev1.attach (5); // Priključivanje servo elev1 na digitalni pin 5 elev2.attach (6); // Priključivanje servo elev2 na digitalni pin 6 yaw1.attach (8); // Spajanje servo yaw1 na digitalni pin 8 yaw2.attach (9); // Pričvršćivanje servo jaw2 na digitalni pin 9 esc.attach (11); // Priključivanje servo esc -a na digitalni pin 11 roll1.write (90); // Zapisivanje servo role1 u centrirani položaj roll2.write (90); // Zapisivanje servo role2 u centrirani položaj elev1.write (90); // Zapisivanje servo elev1 u njegov centrirani položaj elev2.write (90); // Zapisivanje servo elev2 u njegov centrirani položaj yaw1.write (90); // Zapisivanje servo yaw1 u njegov centrirani položaj yaw2.write (90); // Zapisivanje servo yaw2 u njegov centrirani položaj esc.write (180); // Zapisivanje servo esc u kašnjenje centriranog položaja (2500); // Čekanje 2 sekunde esc.write (90); kašnjenje (5000); }

void loop () {// Glavni kod za beskonačno petlje if (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Provjera je li "Joystick" (potenciometar) centriran roll1.write (90); // Zapisivanje servo role1 u središnji položaj roll2.write (90); // Zapisivanje servo role2 u središnji položaj} else {// Što učiniti ako "joystick" nije centriran val1 = map (val1, 0, 1023, 10, 170); // Mapiranje val1 od 10 do 170 i dodjeljivanje val1 roll1.write (val1); // Zapisivanje servo role1 na poziciju definiranu val1 roll2.write (val1); // Zapisivanje servo role2 na poziciju definiranu val1}

val2 = analogRead (pot2); // Očitavanje pot2 (analogni pin 2) i spremanje vrijednosti kao val2 if (val2> = 485 && val2 <= 540) {// Provjera je li "Joystick" (potenciometar) centriran elev1.write (90); // Zapisivanje servo elev1 u središnji položaj elev2.write (90); // Zapisivanje servo elev2 u središnji položaj} else {// Što učiniti ako "joystick" nije centriran val3 = map (val2, 0, 1023, 10, 170); // Mapiranje val2 od 10 do 170 i dodjeljivanje val3 val4 = karta (val2, 0, 1023, 170, 10); // Mapiranje val2 sa 170 na 10 i dodjeljivanje val4 elev1.write (val3); // Zapisivanje servo elev1 na poziciju definirano val3 elev2.write (val4); // Zapisivanje servo elev2 na poziciju definiranu val4}

val5 = analogRead (pot3); // Očitavanje pot3 (analogni pin 4) i spremanje vrijednosti kao val5 if (val5> = 485 && val5 <= 540) {// Provjera je li "Joystick" (potenciometar) centriran yaw1.write (90); // Zapisivanje servo yaw1 u središnji položaj yaw2.write (90); // Zapisivanje servo yaw2 u središnji položaj} else {// Što učiniti ako "joystick" nije centriran val6 = map (val5, 0, 1023, 10, 170); // Mapiranje val5 od 10 do 170 i dodjeljivanje val6 val7 = karta (val5, 0, 1023, 170, 10); // Mapiranje val5 od 10 do 170 i dodjeljivanje val7 yaw1.write (val6); // Zapisivanje servo yaw1 na položaj definiran val6 yaw2.write (val7); // Zapisivanje servo yaw2 na poziciju definiranu val7}

val8 = analogRead (pot4); // Očitavanje pot4 (analogni pin 5) i spremanje vrijednosti kao val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Provjeravamo hoće li motor promijeniti smjer esc.write (80); kašnjenje (1000); // Čekanje 1000 milisekundi} esc.write (val8); // Zapisivanje servo esc na brzinu definiranu val8 mspeed = val8; // Spremanje trenutne brzine za usporedbu}} Serial.print ("throttle"); // Korištenje serijskog ispisa za prikaz riječi "Throttle" Serial.println (val8); // Korištenje serijskog ispisa za prikaz vrijednosti koja je prigušnica postavljena na Serial.print ("roll"); // Korištenje serijskog ispisa za prikaz riječi "Roll" Serial.println (val1); // Korištenje serijskog ispisa za prikaz vrijednosti koja je postavljena na Serial.print ("pitch"); // Korištenje serijskog ispisa za prikaz riječi "Pitch" Serial.println (val3); // Korištenje serijskog ispisa za prikaz vrijednosti koje je pitch1 postavljeno na Serial.println (val4); // Korištenje serijskog ispisa za prikaz vrijednosti koje je pitch2 postavljeno na Serial.print ("zakretanje"); // Korištenje serijskog ispisa za prikaz riječi "Yaw" Serial.println (val6); // Korištenje serijskog ispisa za prikaz vrijednosti koja je yaw1 postavljena na Serial.println (val7); // Korištenje serijskog ispisa za prikaz vrijednosti na kojoj je yaw2 postavljen}

Korak 3: Krug

U privitku je fotografija kruga na ploči podmornice.

Napravio sam prilagođeni štit za Arduino kako bih pojednostavio ožičenje. Učitao sam datoteke Eagle Schematic & Board za štit. Koristio sam LPKF S63 za glodanje ploče. Servosi na prednjoj strani tog kontrolnog valjka bit će uključeni u Arduino

u prilogu je fotografija kruga unutar kontrolera.

Korak 4: 3D ispisani dijelovi

Sve ove datoteke sam ispisao na Monoprice Maker Select Plus. Koristio sam Esun ABS filament od 1,75 mm. Moje postavke ispisa bile su 105 stupnjeva C za temperaturu ležišta za ispis i 255 stupnjeva C za temperaturu ekstrudera. Potreban je samo 1 dio svakog dijela, osim što će vam trebati 6 primjeraka prednjeg krila. Imajte na umu da su ti dijelovi tiskani s debljinom stijenke postavljenom na 1000 mm. To je učinjeno kako bi se dijelovi tiskali sa 100% ispunom kako bi bili negativno uzgoni.

Korak 5: Montaža

********************************* DOLAZI USKORO *************** *******************

Preporučeni: