Sadržaj:

Potopno vozilo: 5 koraka
Potopno vozilo: 5 koraka

Video: Potopno vozilo: 5 koraka

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

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

Ovaj Instructable nastao je u skladu sa projektnim zahtjevima Makecourse -a na Univerzitetu Južne Floride (www.makecourse.com).

Ovaj Instructable će biti kratak pregled stvaranja potopnog vozila koje sam dizajnirao i izgradio za svoj predmet Makecourse na Univerzitetu Južna Florida. U ovom Instructableu ću vam dostaviti opis 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 akciona kamera

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

1x prikaz polja 777 sa prikazom polja

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

1x pomorska kartica za programiranje

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 razvodna ploča sa fiksnim izlazima 5v i 12v

Građevinski materijali gdje:

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

1x transportna cijev ID ABS od 6 inča

1x silikonska cijev

1x limenka fleksibilne brtve

4x kalemovi niti od ABS 3D štampača

1x klizač za fioke od 24 inča

Termoskupljajuća cijev

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

1x JB Zavariti 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 je:

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

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

Alati koji se koriste:

Filipovi i odvijači s ravnom glavom

Šesterokutni ključ je postavljen

Lemilica

Toplinski pištolj

3D štampač (koristio sam Monoprice Maker Select Plus)

Korak 2: Programiranje

Programiranje
Programiranje
Programiranje
Programiranje
Programiranje
Programiranje
Programiranje
Programiranje

Ispod je kôd koji je kreiran za kontrolu podmornice. Priložio sam i.ino datoteku tako da se može 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 biblioteku Servo roll1; // proglašavanje roll1 servo servo role2; // proglašavanje roll2 servo servo elev1; // proglašavanje elev1 za servo servo elev2; // proglašavanje elev2 za servo servo yaw1; // proglašavanje yaw1 servo servo yaw2; // proglašavanje yaw2 za servo servo esc; // Deklariranje esc kao servo

int pot1 = 0; // Inicijalizacija varijable pot1 kao cijeli broj i njeno postavljanje na 0 int pot2 = 1; // Inicijalizacija varijable pot2 kao cijeli broj i njeno postavljanje na 2 int pot3 = 2; // Inicijalizacija varijable pot3 kao cijeli broj i njeno postavljanje na 4 int pot4 = 3; // Inicijalizacija varijable pot4 kao cijeli broj i njeno postavljanje na 5 int val1; // Inicijalizacija varijable val1 kao cijeli broj 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 cijeli broj 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 role 1 na digitalni pin 2 roll2.attach (3); // Pričvršćivanje servo roleta2 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); // Priključivanje servo yaw1 na digitalni pin 8 yaw2.attach (9); // Priključivanje servo yaw2 na digitalni pin 9 esc.attach (11); // Priključivanje servo esc -a na digitalni pin 11 roll1.write (90); // Zapisivanje servo role1 u centriranu poziciju roll2.write (90); // Zapisivanje servo role2 u centrirani položaj elev1.write (90); // Zapisivanje servo elev1 u centrirani položaj elev2.write (90); // Zapisivanje servo elev2 u 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 -a u kašnjenje centriranog položaja (2500); // Čekanje 2 sekunde esc.write (90); kašnjenje (5000); }

void loop () {// Glavni kod za beskonačnu petlju 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 poziciju centra} else {// Šta učiniti ako "Joystick" nije centriran val3 = map (val2, 0, 1023, 10, 170); // Mapiranje val2 od 10 do 170 i dodjeljivanje val3 val4 = mapa (val2, 0, 1023, 170, 10); // Mapiranje val2 sa 170 na 10 i dodjeljivanje val4 elev1.write (val3); // Zapisivanje servo elev1 na poziciju definiranu 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šnju poziciju} else {// Šta učiniti ako "Joystick" nije centriran val6 = map (val5, 0, 1023, 10, 170); // Mapiranje val5 od 10 do 170 i dodjeljivanje val6 val7 = mapa (val5, 0, 1023, 170, 10); // Mapiranje val5 od 10 do 170 i dodjeljivanje val7 yaw1.write (val6); // Zapisivanje servo yaw1 na poziciju definiranu 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)) {// Provjera da li će motor promijeniti smjer esc.write (80); kašnjenje (1000); // Čekanje 1000 milisekundi} esc.write (val8); // Zapisivanje servo esc na brzinu definiranu val8 mspeed = val8; // Pohranjivanje trenutne brzine radi usporedbe}} Serial.print ("throttle"); // Korištenje serijskog ispisa za prikaz riječi "Throttle" Serial.println (val8); // Korištenje serijskog ispisa za prikaz vrijednosti koje je prigušivač postavljen na Serial.print ("roll"); // Korištenje serijskog ispisa za prikaz riječi "Roll" Serial.println (val1); // Korištenje serijskog ispisa za prikaz vrijednosti koje je roll postavljen 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 ("zavijanje"); // 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: Strujna kola

U prilogu je fotografija kruga na ploči podvodnog.

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 priključeni na Arduino

u prilogu je fotografija kruga unutar kontrolera.

Korak 4: 3D štampani dijelovi

Odštampao sam sve ove datoteke na svom uređaju Monoprice Maker Select Plus. Koristio sam Esun ABS filament od 1,75 mm. Moje postavke za štampanje su bile 105 stepeni C za temperaturu ležišta za štampanje i i 255 stepeni 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 ovi dijelovi štampani sa debljinom zida postavljenom na 1000 mm. To je učinjeno kako bi se dijelovi odštampali sa 100% ispunom kako bi bili negativno žilavi.

Korak 5: Montaža

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

Preporučuje se: