Innehållsförteckning:

Dränkbart fordon: 5 steg
Dränkbart fordon: 5 steg

Video: Dränkbart fordon: 5 steg

Video: Dränkbart fordon: 5 steg
Video: What Actually Happened to Titan Submarine? | Mystery of Titan Submarine 2024, November
Anonim
Dränkbart fordon
Dränkbart fordon
Dränkbart fordon
Dränkbart fordon

***************** DETTA INSTRUKTABEL ÄR STADIGT ETT ARBETE PÅGÅNG *****************

Denna instruerbara skapades för att uppfylla projektkravet för Makecourse vid University of South Florida (www.makecourse.com).

Denna instruktionsbok kommer att ge en kort översikt över skapandet av det dränkbara fordonet som jag konstruerade och byggde för min Makecourse -klass vid University of South Florida. I denna instruktionsbok kommer jag att tillhandahålla en faktura, kontrollkoden som jag skapade för Arduino Uno jag använde och en översikt över hur du monterar dränkbar.

Steg 1: Material

Material
Material
Material
Material
Material
Material

Elektroniken som används där:

1x Arduino Uno

1x mobius actionkamera

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

1x fältvy 777 skärm

1x turnigy marine 50A ESC (elektronisk hastighetskontroll)

1x turnigy marint programmeringskort

1x T-Motor Navigator 400kv

1x YEP 20A BEC (eliminationskrets för batterier)

6x hobby king HK15139 vattentäta servon

2x parallella T-kontakt y sele

2x 18 tums servoförlängningskablar

6x 6 tum servoförlängningskablar

2x 1300mah 3s Lipo -batterier

2x 2500mah 4s Lipo -batterier

1x kraftfördelningskort med både 5v och 12v fasta utgångar

Byggmaterialen där:

1x 3/16 tum plywoodskiva

1x 6 tums ID ABS leveransrör

1x silikonrör

1x burk flex tätning

4x spolar 3D -filament av ABS -skrivare

1x 24 tums lådglas

Krympslang

1x 10 fot scotch duraloc kardborre

1x JB svetsad plast epoxi

1x 6,2 tum diameter akryl säkerhetskamera kupol

2x IP68 ethernet -genombrott

2x 24 tum cat6 ethernet -kabel

1x 200 fot cat6 ethernet -kabel

Hårdvaran som användes var:

24x 1/2 tum träskruvar i mässing

24x ------ skruvar (ingår i servon)

Verktygen som används:

Philip's och Flat head skruvdragare

Insexnyckelsats

Lödkolv

Värmepistol

3D -skrivare (jag använde en Monoprice Maker Select Plus)

Steg 2: Programmering

Programmering
Programmering
Programmering
Programmering
Programmering
Programmering
Programmering
Programmering

Nedan är koden som skapades för att styra dränkbar. Jag har också bifogat.ino -filen så att den kan laddas ner.

Denna kod skapades för Arduino Uno med Arduino -kompilatorn.

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

Författare: Jonah Powers Datum: 2018-11-11 Syfte: Kontrollkod för fjärrstyrt dränkbart fordon ****************************** ************************************************** ************************************************** ***********************************/#include // Inklusive servobibliotek Servo roll1; // Deklarera rulle1 för att vara en servoservorulle2; // Förklarar roll2 för att vara en servo Servo elev1; // Förklarar elev1 för att vara en servo Servo elev2; // Förklarar elev2 för att vara en servo Servo yaw1; // Förklarar yaw1 för att vara en servo Servo yaw2; // Förklarar yaw2 vara en servo Servo esc; // Förklarar esc för att vara en servo

int pot1 = 0; // Intitialiserar variabel pot1 som ett heltal och ställer det lika med 0 int pot2 = 1; // Intitialiserar variabel pot2 som ett heltal och ställer det lika med 2 int pot3 = 2; // Intitialiserar variabel pot3 som ett heltal och ställer in det lika med 4 int pot4 = 3; // Intitialiserar variabel pot4 som ett heltal och ställer det lika med 5 int val1; // Intitialiserande variabel val1 som ett heltal int val2; // Intitialiserande variabel val2 som ett heltal int val3; // Intitialiserande variabel val3 som ett heltal int val4; // Intitialiserande variabel val4 som ett heltal int val5; // Intitialiserande variabel val5 som ett heltal int val6; // Intitialiserande variabel val6 som ett heltal int val7; // Intitialiserande variabel val7 som ett heltal int val8; // Intitialiserande variabel val8 som ett heltal int mspeed; // Intitialiserande variabel mspeed som ett heltal

void setup () {// Arduino initialization stage Serial.begin (9600); // Initierar seriell moniteringsrulle1.attach (2); // Fäst servorulle1 till digital stift 2 rulle2. Fäst (3); // Fäst servorulle2 till digital stift 3 elev1. Fäst (5); // Fäst servo elev1 till digital stift 5 elev2. Fäst (6); // Fäst servo elev2 på digital stift 6 yaw1. Fäst (8); // Fäst servo yaw1 till digital stift 8 yaw2. Fäst (9); // Fäst servo yaw2 på digital stift 9 esc.attach (11); // Fäst servo esc till digital pin 11 roll1.write (90); // Skriva servorulle1 till dess centrerade position roll2.write (90); // Skriva servorulle2 till sitt centrerade läge elev1.write (90); // Skriva servo elev1 till sitt centrerade läge elev2.write (90); // Skriva servo elev2 till sitt centrerade läge yaw1.write (90); // Skriva servo yaw1 till dess centrerade position yaw2.write (90); // Skriva servo yaw2 till dess centrerade position esc.write (180); // Skriva servo esc till dess centrerade positionsfördröjning (2500); // Väntar 2 sekunder esc.write (90); fördröjning (5000); }

void loop () {// Huvudkod för loop loop oändligt om (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kontrollerar om "Joystick" (potentiometer) är centrerad roll1.write (90); // Skriva servorulle1 till mittläge roll2.write (90); // Skriva servorull2 till mittläge} annat {// Vad ska jag göra om "joystick" inte är centrerad val1 = map (val1, 0, 1023, 10, 170); // Kartlägga val1 från 10 till 170 och tilldela till val1 roll1.write (val1); // Skriva servo roll1 till positon definierat av val1 roll2.write (val1); // Skriva servo roll2 till positon definierad av val1}

val2 = analogRead (pot2); // Läs pot2 (analog pin 2) och spara värde som val2 if (val2> = 485 && val2 <= 540) {// Kontrollerar om "Joystick" (potentiometer) är centrerad elev1.write (90); // Skriva servo elev1 till mittläge elev2.write (90); // Skriva servo elev2 till mittläge} annat {// Vad ska jag göra om "Joystick" inte är centrerad val3 = map (val2, 0, 1023, 10, 170); // Kartlägga val2 från 10 till 170 och tilldela till val3 val4 = map (val2, 0, 1023, 170, 10); // Kartlägga val2 från 170 till 10 och tilldela till val4 elev1.write (val3); // Skriva servo elev1 till positon definierad av val3 elev2.write (val4); // Skriva servo elev2 till positon definierat av val4}

val5 = analogRead (pot3); // Läs pot3 (analog pin 4) och spara värde som val5 if (val5> = 485 && val5 <= 540) {// Kontrollerar om "Joystick" (potentiometer) är centrerad yaw1.write (90); // Skriva servo yaw1 till mittläge yaw2.write (90); // Skriva servo yaw2 till mittläge} annat {// Vad ska jag göra om "Joystick" inte är centrerad val6 = map (val5, 0, 1023, 10, 170); // Kartlägga val5 från 10 till 170 och tilldela till val6 val7 = map (val5, 0, 1023, 170, 10); // Kartlägga val5 från 10 till 170 och tilldela till val7 yaw1.write (val6); // Skriva servo yaw1 till positon definierat av val6 yaw2.write (val7); // Skriva servo yaw2 till positon definierat av val7}

val8 = analogRead (pot4); // Läs pot4 (analog pin 5) och spara värde som val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kontrollerar om motorn ska ändra riktning esc.write (80); fördröjning (1000); // Väntar 1000 millisekunder} esc.write (val8); // Skriva servo esc till hastighet definierad av val8 mspeed = val8; // Lagra aktuell hastighet för jämförelse}} Serial.print ("gas"); // Använda Serial Print för att visa ordet "Throttle" Serial.println (val8); // Använda Serial Print för att visa värdet som gasreglaget är inställt på Serial.print ("roll"); // Använda Serial Print för att visa ordet "Roll" Serial.println (val1); // Använda Serial Print för att visa det värde som rullen är inställd på Serial.print ("pitch"); // Använda Serial Print för att visa ordet "Pitch" Serial.println (val3); // Använda Serial Print för att visa värdet som pitch1 är inställt på Serial.println (val4); // Använda Serial Print för att visa värdet som pitch2 är inställt på Serial.print ("yaw"); // Använda Serial Print för att visa ordet "Yaw" Serial.println (val6); // Använda Serial Print för att visa värdet som yaw1 är inställt på Serial.println (val7); // Använda seriell utskrift för att visa värdet som yaw2 är inställt på}

Steg 3: Kretsar

Bifogat är ett foto av kretsen ombord på dränkaren.

Jag skapade en anpassad sköld för Arduino för att förenkla mina ledningar. Jag har laddat upp Eagle Schematic & Board -filerna för skölden. Jag använde en LPKF S63 för att fräsa brädet. Servos på framsidan som kontrollrullen kommer att anslutas till Arduino

bifogad är ett foto av kretsen inuti styrenheten.

Steg 4: 3D -tryckta delar

Jag skrev ut alla dessa filer på min Monoprice Maker Select Plus. Jag använde Esun ABS 1,75 mm filament. Mina utskriftsinställningar var 105 grader C för tryckbäddens temperatur och 255 grader C för extruderns temperatur. Endast 1 av varje del behövs förutom att du behöver 6 kopior av främre vingen. Observera att dessa delar trycktes med väggtjocklek inställd på 1000 mm. Detta gjordes för att delarna skulle tryckas med 100% fyllning så att de skulle vara negativt flytande.

Steg 5: Montering

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

Rekommenderad: