INHOUDSOPGAWE:

Dompelvoertuig: 5 stappe
Dompelvoertuig: 5 stappe

Video: Dompelvoertuig: 5 stappe

Video: Dompelvoertuig: 5 stappe
Video: Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! 2024, November
Anonim
Dompelbare voertuig
Dompelbare voertuig
Dompelbare voertuig
Dompelbare voertuig

***************** HIERDIE INSTRUKTIEEL IS NOG NOG 'N WERK IN DIE VORDERING *****************

Hierdie Instructable is geskep ter voldoening aan die projekvereiste van die Makecourse aan die Universiteit van Suid -Florida (www.makecourse.com).

Hierdie Instructable gee 'n kort oorsig van die skepping van die dompelvoertuig wat ek ontwerp en gebou het vir my Makecourse -klas aan die Universiteit van Suid -Florida. In hierdie Instructable gee ek 'n stuk materiaal, die kontrolekode wat ek geskep het vir die Arduino Uno wat ek gebruik het, en 'n oorsig van hoe u die dompelpomp aanmekaar sit.

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

Die elektronika wat gebruik word waar:

1x Arduino Uno

1x mobius -aksiekamera

1x mobius-aksiekamera usb-b na A/V-kabel

1x veldaansig 777 -skerm

1x turnigy marine 50A ESC (elektroniese snelheidsbeheer)

1x mariene programmeerkaart

1x T-Motor Navigator 400kv

1x YEP 20A BEC (stroombaan vir eliminasie van batterye)

6x stokperdjie koning HK15139 waterdigte servo's

2x parallelle T-connector en harnasse

2x 18 duim servo verlengdrade

6x 6 duim servo verlengdrade

2x 1300mah 3s Lipo -batterye

2x 2500mah 4s Lipo -batterye

1x kragverspreidingsbord met vaste 5v en 12v uitsette

Die boumateriaal waar:

1x laaghout van 3/16 duim

1x 6 duim ID ABS gestuur buis

1x silikoon buis

1x blik buigsel

4x spoel ABS 3D -drukkerfilament

1x 24 duim laaiskyfie

Krimpbuis

1x 10 voet scotch merk duraloc klittenband

1x JB Weld plastiek epoxy

1x akriel sekuriteitskamera -koepel met 'n deursnee van 6,2 duim

2x IP68 ethernet -deurvoer

2x 24 duim cat6 ethernet kabel

1x 200 voet cat6 ethernet -kabel

Die hardeware wat gebruik is, was:

24x 1/2 duim koperhoutskroewe

24x ------ skroewe (ingesluit by servo's)

Die gereedskap wat gebruik word:

Philip's en Flat head skroewedraaiers

Inbussleutelset

Soldeerbout

Hittegeweer

3D -drukker (ek het 'n Monoprice Maker Select Plus gebruik)

Stap 2: Programmering

Programmering
Programmering
Programmering
Programmering
Programmering
Programmering
Programmering
Programmering

Hieronder is die kode wat geskep is om die dompelpomp te beheer. Ek het ook die.ino lêer aangeheg sodat dit afgelaai kan word.

Hierdie kode is geskep vir die Arduino Uno met behulp van die Arduino -samesteller.

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

Skrywer: Jonah Powers Datum: 11/9/2018 Doel: beheerkode vir op afstand bestuurde dompelvoertuig ****************************** ************************************************* ************************************************* ***********************************/#include // Inclusief Servo Library Servo roll1; // Verklaar rol 1 as 'n servoservrol 2; // Verklaring van roll2 as 'n servo Servo elev1; // Verklaar elev1 as 'n servo Servo elev2; // Verklaar elev2 as 'n servo Servo yaw1; // Verklaar yaw1 as 'n servo Servo yaw2; // verklaar yaw2 as 'n servo servo esc; // Verklaar esc as 'n servo

int pot1 = 0; // Intitialiseer veranderlike pot1 as 'n heelgetal en stel dit gelyk aan 0 int pot2 = 1; // Intitialiseer veranderlike pot2 as 'n heelgetal en stel dit gelyk aan 2 int pot3 = 2; // Intitialiseer veranderlike pot3 as 'n heelgetal en stel dit gelyk aan 4 int pot4 = 3; // Intitialiseer veranderlike pot4 as 'n heelgetal en stel dit gelyk aan 5 int val1; // Intitialiseer veranderlike val1 as 'n heelgetal int val2; // Intitialiseer veranderlike val2 as 'n heelgetal int val3; // Intitialiseer veranderlike val3 as 'n heelgetal int val4; // Intitialiseer veranderlike val4 as 'n heelgetal int val5; // Intitialiseer veranderlike val5 as 'n heelgetal int val6; // Intitialiseer veranderlike val6 as 'n heelgetal int val7; // Intitialiseer veranderlike val7 as 'n heelgetal int val8; // Intitialiseer veranderlike val8 as 'n heelgetal int mspeed; // Intitialiseer veranderlike mspeed as 'n heelgetal

ongeldige opstelling () {// Arduino -inisialiseringstadium Serial.begin (9600); // Initialiseer die reeks moniter roll1.attach (2); // Bevestig servorol1 aan digitale pen 2 rol2.heg (3); // Bevestiging van servrol 2 aan digitale pen 3 elev1.heg (5); // Bevestig servo elev1 aan digitale pen 5 elev2.achach (6); // Bevestig servo elev2 aan digitale pen 6 yaw1.achach (8); // Bevestig servo yaw1 aan digitale pen 8 yaw2.achach (9); // Bevestig servo yaw2 aan digitale pen 9 esc.attach (11); // Bevestig servo esc aan digitale pen 11 roll1.write (90); // Skryf servrolol1 na sy gesentreerde posisie rol2.skryf (90); // Skryf servrolol2 na sy gesentreerde posisie elev1.write (90); // Skryf servo elev1 na sy gesentreerde posisie elev2.write (90); // Skryf servo elev2 na sy gesentreerde posisie yaw1.write (90); // Skryf servo yaw1 na sy gesentreerde posisie yaw2.write (90); // Skryf servo yaw2 na sy gesentreerde posisie esc.write (180); // Skryf servo esc na sy gesentreerde posisie vertraging (2500); // Wag 2 sekondes skryf (90); vertraging (5000); }

void lus () {// Hoofkode om oneindig te loop as (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kontroleer of "Joystick" (potensiometer) gesentreer is roll1.write (90); // Skryf servorol1 na middelste posisie rol2.write (90); // Skryf servrol 2 na die middelste posisie} anders {// Wat om te doen as "Joystick" nie gesentreer is nie val1 = map (val1, 0, 1023, 10, 170); // kartering van val1 van 10 tot 170 en toewysing aan val1 roll1.write (val1); // Skryf servorol1 na positie gedefinieer deur val1 roll2.write (val1); // Skryf servo roll2 na positie gedefinieer deur val1}

val2 = analogRead (pot2); // Lees pot2 (analoog pen 2) en stoor waarde as val2 as (val2> = 485 && val2 <= 540) {// Kontroleer of "Joystick" (potensiometer) gesentreer is elev1.write (90); // Skryf servo elev1 na middelste posisie elev2.write (90); // Skryf servo elev2 na middel posisie} anders {// Wat om te doen as "Joystick" nie gesentreer is nie val3 = map (val2, 0, 1023, 10, 170); // kartering van val2 van 10 tot 170 en toewysing aan val3 val4 = map (val2, 0, 1023, 170, 10); // Kar2 van 170 tot 10 karteer en aan val4 elev1.write (val3) toewys; // Skryf servo elev1 na positie gedefinieer deur val3 elev2.write (val4); // Skryf servo elev2 na positie gedefinieer deur val4}

val5 = analogRead (pot3); // Lees pot3 (analoog pen 4) en stoor waarde as val5 as (val5> = 485 && val5 <= 540) {// Kontroleer of "Joystick" (potensiometer) gesentreer is yaw1.write (90); // Skryf servo yaw1 na die middelste posisie yaw2.write (90); // Skryf servo yaw2 na die middelste posisie} anders {// Wat om te doen as "Joystick" nie gesentreer is nie val6 = map (val5, 0, 1023, 10, 170); // karval kar 5 van 10 tot 170 en toewysing aan val6 val7 = map (val5, 0, 1023, 170, 10); // Kar5 van 10 tot 170 karteer en aan val7 yaw1.write (val6) toewys; // Skryf servo yaw1 na positie gedefinieer deur val6 yaw2.write (val7); // Skryf servo yaw2 na positon gedefinieer deur val7}

val8 = analogRead (pot4); // Lees pot4 (analoog pen 5) en stoor waarde as val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kontroleer of motor op die punt is om rigting te verander esc.write (80); vertraging (1000); // Wag 1000 millisekondes} esc.write (val8); // Skryf servo esc na spoed gedefinieer deur val8 mspeed = val8; // Stoor huidige spoed vir vergelyking}} Serial.print ("gas"); // Gebruik Serial Print om die woord "Throttle" Serial.println (val8) te wys; // Deur Serial Print te gebruik om die waarde aan te toon wat die gashendel op Serial.print ("roll") gestel is; // Gebruik Serial Print om die woord "Roll" Serial.println (val1) te wys; // Deur Serial Print te gebruik om die waarde van die rol aan Serial.print ("pitch") te wys; // Gebruik Serial Print om die woord "Pitch" Serial.println (val3) te wys; // Gebruik Serial Print om die waarde wat pitch1 is ingestel op Serial.println (val4) te wys; // Gebruik Serial Print om die waarde wat pitch2 is ingestel op Serial.print ("yaw") aan te toon; // Gebruik Serial Print om die woord "Yaw" Serial.println (val6) te wys; // Gebruik Serial Print om die waarde wat yaw1 is ingestel op Serial.println (val7) te wys; // Gebruik Serial Print om die waarde te wys waarop yaw2 ingestel is}

Stap 3: stroombaan

Aangeheg is 'n foto van die kring aan boord van die dompelpomp.

Ek het 'n pasgemaakte skild vir die Arduino gemaak om my bedrading te vereenvoudig. Ek het die Eagle Schematic & Board -lêers vir die skild opgelaai. Ek het 'n LPKF S63 gebruik om die bord te maal. die servo's aan die voorkant met die bedieningsrol sal by Arduino ingeprop word

aangeheg is 'n foto van die stroombaan in die beheerder.

Stap 4: Onderdele met 3D -druk

Ek het al hierdie lêers op my Monoprice Maker Select Plus gedruk. Ek het Esun ABS 1.75mm filament gebruik. My drukinstellings was 105 grade C vir die drukbed temperatuur en 255 grade C vir die ekstruder temperatuur. Slegs 1 van elke deel is nodig, behalwe dat u 6 kopieë van die voorvleuel benodig. Let daarop dat hierdie dele gedruk is met 'n muurdikte van 1000 mm. Dit is gedoen sodat die onderdele met 100% vulsel gedruk word, sodat dit negatief dryf.

Stap 5: Montering

********************************* KOM BINNEKORT *************** ********************

Aanbeveel: