Innholdsfortegnelse:

Nedsenkbart kjøretøy: 5 trinn
Nedsenkbart kjøretøy: 5 trinn

Video: Nedsenkbart kjøretøy: 5 trinn

Video: Nedsenkbart kjøretøy: 5 trinn
Video: Kolonial.no | Hopp over butikken | Det er ikke lørdag i dag 2024, Juli
Anonim
Nedsenkbart kjøretøy
Nedsenkbart kjøretøy
Nedsenkbart kjøretøy
Nedsenkbart kjøretøy

***************** DENNE INSTRUKTABELEN ER STADIG ET ARBEID I FREMGANG ****************

Denne instruksjonsboken ble opprettet for å oppfylle prosjektkravet til Makecourse ved University of South Florida (www.makecourse.com).

Denne instruksen vil gi en kort oversikt over opprettelsen av det nedsenkbare kjøretøyet som jeg designet og bygde for min Makecourse -klasse ved University of South Florida. I denne instruksjonsboken vil jeg gi en oversikt over materialer, kontrollkoden jeg opprettet for Arduino Uno jeg brukte, og en oversikt over hvordan du setter ned nedsenkbar.

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

Elektronikken som ble brukt der:

1x Arduino Uno

1x mobius actionkamera

1x mobius actionkamera usb-b til A/V-kabel

1x feltvisning 777 skjerm

1x turnigy marine 50A ESC (elektronisk hastighetskontroll)

1x turnigy marine programmeringskort

1x T-Motor Navigator 400kv

1x YEP 20A BEC (batteri elimineringskrets)

6x hobby king HK15139 vanntette servoer

2x parallelle T-kontakter og seler

2x 18 tommers servoforlengelsestråder

6x 6 tommers servoforlengelsestråder

2x 1300mah 3s Lipo batterier

2x 2500mah 4s Lipo batterier

1x strømfordelingstavle med både 5v og 12v faste utganger

Byggematerialene der:

1x 3/16 tommers ark av kryssfiner

1x 6 tommers ID ABS forsendelsesrør

1 x silikonrør

1x boks flexforsegling

4x spoler av ABS 3D -skriverfilament

1x 24 tommers skuffesklie

Krympeslange

1x 10 fot skotsk merkevare duraloc borrelås

1x JB Sveiset plast epoksy

1 x 6,2 tommers diameter akryl sikkerhetskamera kuppel

2x IP68 ethernet -gjennomganger

2x 24 tommers cat6 ethernet -kabel

1x 200 fot cat6 ethernet -kabel

Maskinvaren som ble brukt var:

24x 1/2 tommer messing treskruer

24x ------ skruer (følger med servoer)

Verktøyene som brukes:

Philip's og Flat head skrutrekkere

Allen nøkkelsett

Loddejern

Varmepistol

3D -skriver (jeg brukte en Monoprice Maker Select Plus)

Trinn 2: Programmering

Programmering
Programmering
Programmering
Programmering
Programmering
Programmering
Programmering
Programmering

Nedenfor er koden som ble opprettet for å kontrollere nedsenkbar. Jeg har også vedlagt.ino -filen slik at den kan lastes ned.

Denne koden ble opprettet for Arduino Uno ved hjelp av Arduino -kompilatoren.

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

Forfatter: Jonah Powers Dato: 11/9/2018 Formål: Kontrollkode for fjernstyrt nedsenkbart kjøretøy ****************************** ************************************************* ************************************************* **********************************/#include // Inkludert Servo Library Servo roll1; // Deklarere roll1 for å være en servo Servo roll2; // Deklarere roll2 til å være en servo Servo elev1; // Å erklære elev1 for å være en servo Servo elev2; // Å erklære elev2 for å være en servo Servo yaw1; // Deklarere yaw1 for å være en servo Servo yaw2; // Deklarere yaw2 for å være en servo Servo esc; // Å erklære esc for å være en servo

int pot1 = 0; // Intitialiserer variabel pot1 som et heltall og setter det lik 0 int pot2 = 1; // Intitialiserer variabel pot2 som et heltall og setter det lik 2 int pot3 = 2; // Intitialiserer variabel pot3 som et heltall og setter det lik 4 int pot4 = 3; // Intitialiserer variabel pot4 som et heltall og setter det lik 5 int val1; // Intitialiserende variabel val1 som et heltall int val2; // Intitialiserende variabel val2 som et heltall int val3; // Intitialiserende variabel val3 som et heltall int val4; // Intitialiserende variabel val4 som et heltall int val5; // Intitialiserende variabel val5 som et heltall int val6; // Intitialiserende variabel val6 som et heltall int val7; // Intitialiserende variabel val7 som et heltall int val8; // Intitialiserende variabel val8 som et heltall int mspeed; // Intitialiserende variabel mspeed som et heltall

void setup () {// Arduino initialization stage Serial.begin (9600); // Initialiserer seriell moniter roll1.attach (2); // Fest servorulle1 til digital pin 2 roll2. Fest (3); // Fest servorulle2 til digital pinne 3 elev1. Fest (5); // Fest servo elev1 til digital pin 5 elev2. Fest (6); // Fest servo elev2 til digital pin 6 yaw1. Fest (8); // Fest servo yaw1 til digital pin 8 yaw2. Fest (9); // Fest servo yaw2 til digital pin 9 esc.attach (11); // Fest servo esc til digital pin 11 roll1.write (90); // Skrive servorulle1 til sin sentrerte posisjonrulle2.skrive (90); // Skrive servorulle2 til sin sentrerte posisjon elev1.write (90); // Skrive servo elev1 til sin sentrerte posisjon elev2.write (90); // Skrive servo elev2 til sin sentrerte posisjon yaw1.write (90); // Skrive servo yaw1 til sin sentrerte posisjon yaw2.write (90); // Skrive servo yaw2 til sin sentrerte posisjon esc.write (180); // Skrive servo esc til sin sentrerte posisjonsforsinkelse (2500); // Venter 2 sekunders esc.write (90); forsinkelse (5000); }

void loop () {// Main Code to loop uendelig hvis (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kontrollerer om "Joystick" (potensiometer) er sentrert roll1.write (90); // Skrive servorulle1 til midtposisjonrull2.skrive (90); // Skrive servorull2 til midtposisjon} annet {// Hva skal jeg gjøre hvis "Joystick" ikke er sentrert val1 = map (val1, 0, 1023, 10, 170); // Kartlegge val1 fra 10 til 170 og tilordne til val1 roll1.write (val1); // Skrive servo roll1 til positon definert av val1 roll2.write (val1); // Skrive servo roll2 til positon definert av val1}

val2 = analogRead (pot2); // Leser pot2 (analog pin 2) og lagre verdi som val2 if (val2> = 485 && val2 <= 540) {// Kontrollerer om "Joystick" (potensiometer) er sentrert elev1.write (90); // Skrive servo elev1 til midtposisjon elev2.write (90); // Skrive servo elev2 til midtposisjon} annet {// Hva skal jeg gjøre hvis "Joystick" ikke er sentrert val3 = map (val2, 0, 1023, 10, 170); // Kartlegging av val2 fra 10 til 170 og tildeling til val3 val4 = map (val2, 0, 1023, 170, 10); // Kartlegging av val2 fra 170 til 10 og tildeling til val4 elev1.write (val3); // Skrive servo elev1 til positon definert av val3 elev2.write (val4); // Skrive servo elev2 til positon definert av val4}

val5 = analogRead (pot3); // Leser pot3 (analog pin 4) og lagre verdi som val5 if (val5> = 485 && val5 <= 540) {// Kontrollerer om "Joystick" (potensiometer) er sentrert yaw1.write (90); // Skrive servo yaw1 til midtposisjon yaw2.write (90); // Skrive servo yaw2 til midtposisjon} annet {// Hva skal jeg gjøre hvis "Joystick" ikke er sentrert val6 = map (val5, 0, 1023, 10, 170); // Kartlegging av val5 fra 10 til 170 og tildeling til val6 val7 = map (val5, 0, 1023, 170, 10); // Kartlegge val5 fra 10 til 170 og tilordne til val7 yaw1.write (val6); // Skrive servo yaw1 til positon definert av val6 yaw2.write (val7); // Skrive servo yaw2 til positon definert av val7}

val8 = analogRead (pot4); // Leser pot4 (analog pin 5) og lagre verdien som val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kontrollerer om motoren er i ferd med å endre retning esc.write (80); forsinkelse (1000); // Venter 1000 millisekunder} esc.write (val8); // Skrive servo esc til hastighet definert av val8 mspeed = val8; // Lagre gjeldende hastighet for sammenligning}} Serial.print ("gass"); // Bruk Serial Print til å vise ordet "Throttle" Serial.println (val8); // Bruk seriell utskrift til å vise verdien som gass er satt til Serial.print ("roll"); // Bruk Serial Print til å vise ordet "Roll" Serial.println (val1); // Bruk seriell utskrift til å vise verdien som rullen er satt til Serial.print ("pitch"); // Bruk Serial Print til å vise ordet "Pitch" Serial.println (val3); // Bruk seriell utskrift til å vise verdien som pitch1 er satt til Serial.println (val4); // Bruk seriell utskrift til å vise verdien som pitch2 er satt til Serial.print ("yaw"); // Bruk Serial Print til å vise ordet "Yaw" Serial.println (val6); // Bruk seriell utskrift til å vise verdien som yaw1 er satt til Serial.println (val7); // Bruk seriell utskrift til å vise verdien som yaw2 er satt til}

Trinn 3: Kretsløp

Vedlagt er et bilde av kretsen ombord på nedsenkbar.

Jeg laget et tilpasset skjold for Arduino for å forenkle ledningene mine. Jeg har lastet opp Eagle Schematic & Board -filene for skjoldet. Jeg brukte en LPKF S63 til å frese brettet. Servoene foran som kontrollrullen blir plugget inn i Arduino

vedlagt er et bilde av kretsen inne i kontrolleren.

Trinn 4: 3D -trykte deler

Jeg skrev ut alle disse filene på Monoprice Maker Select Plus. Jeg brukte Esun ABS 1,75 mm filament. Utskriftsinnstillingene mine var 105 grader C for utskriftssengen og 255 grader C for ekstruderens temperatur. Bare 1 av hver del er nødvendig, bortsett fra at du trenger 6 kopier av frontfløyen. Vær oppmerksom på at disse delene ble skrevet ut med veggtykkelse på 1000 mm. Dette ble gjort for at delene skulle skrives ut med 100% utfylling, slik at de ville være negativt flytende.

Trinn 5: Montering

********************************* KOMMER SNART *************** ********************

Anbefalt: