Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Programmering
- Trin 3: Kredsløb
- Trin 4: 3D -printede dele
- Trin 5: Montering
Video: Nedsænket køretøj: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
***************** DENNE INSTRUKTIVELSE ER STADIG ET ARBEJDE I GANG *****************
Denne instruktør blev oprettet for at opfylde projektkravet fra Makecourse ved University of South Florida (www.makecourse.com).
Denne instruktionsbog vil være et kort overblik over oprettelsen af det nedsænkelige køretøj, som jeg designede og byggede til min Makecourse -klasse ved University of South Florida. I denne Instructable vil jeg levere en regning af materialer, kontrolkoden, jeg oprettede til Arduino Uno, jeg brugte, og en oversigt over, hvordan du samler nedsænkningen.
Trin 1: Materialer
Elektronikken bruges, hvor:
1x Arduino Uno
1x mobius action kamera
1x mobius action kamera usb-b til A/V kabel
1x feltvisning 777 skærm
1x turnigy marine 50A ESC (elektronisk hastighedskontrol)
1x turnigy marine programmeringskort
1x T-Motor Navigator 400kv
1x YEP 20A BEC (batteri eliminerings kredsløb)
6x hobby king HK15139 vandtætte servoer
2x parallelle T-stik og seler
2x 18 tommer servo forlængerledninger
6x 6 tommer servoforlængerledninger
2x 1300mah 3s Lipo batterier
2x 2500mah 4s Lipo batterier
1x strømfordelingsbord med både 5v og 12v faste udgange
Byggematerialerne hvor:
1x 3/16 tommer ark krydsfiner
1x 6 tommer ID ABS forsendelsesrør
1x silikonerør
1x dåse flexforsegling
4x spoler ABS 3D -printerfilament
1x 24 tommer skuffeskub
Varmekrympeslange
1x 10 fod skotsk mærke duraloc velcro
1x JB svejset plast epoxy
1x 6,2 tommer diameter akryl sikkerhedskamera kuppel
2x IP68 ethernet -gennemføringer
2x 24 tommer cat6 ethernet kabel
1x 200 fod cat6 ethernet -kabel
Den anvendte hardware var:
24x 1/2 tommer messing træskruer
24x ------ skruer (følger med servoer)
De anvendte værktøjer:
Philip's og fladskruetrækkere
Allen -nøglesæt
Loddekolbe
Varmepistol
3D -printer (jeg brugte en Monoprice Maker Select Plus)
Trin 2: Programmering
Nedenfor er den kode, der blev oprettet for at styre nedsænket. Jeg har også vedhæftet.ino -filen, så den kan downloades.
Denne kode blev oprettet til Arduino Uno ved hjælp af Arduino -kompilatoren.
/**********************************************************************************************************************************************************************
Forfatter: Jonah Powers Dato: 11/9/2018 Formål: Kontrolkode for fjernbetjent nedsænket køretøj ****************************** ************************************************* ************************************************* ***********************************/#include // Inklusive Servo Library Servo roll1; // Deklarere rulle1 til at være en servoservorulle2; // Deklarere roll2 til at være en servo Servo elev1; // Deklarere elev1 til at være en servo Servo elev2; // erklærer elev2 for at være en servo Servo yaw1; // Deklarere yaw1 til at være en servo Servo yaw2; // Deklarere yaw2 til at være en servo Servo esc; // erklærer esc for at være en servo
int pot1 = 0; // Intitialisering af variabel pot1 som et heltal og indstilling af det lig med 0 int pot2 = 1; // Intitialisering af variabel pot2 som et heltal og indstilling af det lig med 2 int pot3 = 2; // Intitialisering af variabel pot3 som et heltal og indstilling af det lig med 4 int pot4 = 3; // Intitialisering af variabel pot4 som et heltal og indstilling af det lig med 5 int val1; // Intitialiserende variabel val1 som et heltal int val2; // Intitialiserende variabel val2 som et heltal int val3; // Intitialiserende variabel val3 som et heltal int val4; // Intitialiserende variabel val4 som et heltal int val5; // Intitialiserende variabel val5 som et heltal int val6; // Intitialiserende variabel val6 som et heltal int val7; // Intitialiserende variabel val7 som et heltal int val8; // Intitialiserende variabel val8 som et heltal int mspeed; // Intitialiserende variabel mspeed som et heltal
tomrumsopsætning () {// Arduino -initialiseringstrin Serial.begin (9600); // Initialiserer seriel moniterrulle1.attach (2); // Fastgørelse af servorulle1 til digital pin 2 roll2. Vedhæftning (3); // Fastgørelse af servorulle2 til digital pin 3 elev1. Vedhæftning (5); // Fastgørelse af servo elev1 til digital pin 5 elev2. Vedhæftning (6); // Fastgørelse af servo elev2 til digital pin 6 yaw1. Fastgørelse (8); // Fastgørelse af servo yaw1 til digital pin 8 yaw2. Fastgørelse (9); // Fastgørelse af servo yaw2 til digital pin 9 esc.attach (11); // Vedhæftning af servo esc til digital pin 11 roll1.write (90); // Skrive servorulle1 til dens centrerede position roll2.write (90); // Skrive servorulle2 til sin centrerede position elev1.write (90); // Skrive servo elev1 til sin centrerede position elev2.write (90); // Skrive servo elev2 til sin centrerede position yaw1.write (90); // Skrive servo yaw1 til sin centrerede position yaw2.write (90); // Skrive servo yaw2 til sin centrerede position esc.write (180); // Skrive servo esc til sin centrerede positionsforsinkelse (2500); // Venter 2 sekunders esc.write (90); forsinkelse (5000); }
void loop () {// Hovedkode til loop loop uendeligt hvis (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kontrollerer, om "Joystick" (potentiometer) er centreret roll1.write (90); // Skrive servorulle1 til midterpositionrulle2.skrive (90); // Skrive servorulle2 til midterposition} ellers {// Hvad skal jeg gøre, hvis "Joystick" ikke er centreret val1 = map (val1, 0, 1023, 10, 170); // Kortlægning af val1 fra 10 til 170 og tildeling til val1 roll1.write (val1); // Skrive servorulle1 til positon defineret af val1 roll2.write (val1); // Skrive servo roll2 til positon defineret af val1}
val2 = analogRead (pot2); // Læser pot2 (analog pin 2) og gem værdien som val2 if (val2> = 485 && val2 <= 540) {// Kontrollerer om "Joystick" (potentiometer) er centreret elev1.write (90); // Skrive servo elev1 til midterposition elev2.write (90); // Skrive servo elev2 til midterposition} ellers {// Hvad skal jeg gøre, hvis "Joystick" ikke er centreret val3 = map (val2, 0, 1023, 10, 170); // Kortlægning af val2 fra 10 til 170 og tildeling til val3 val4 = map (val2, 0, 1023, 170, 10); // Kortlægning af val2 fra 170 til 10 og tildeling til val4 elev1.write (val3); // Skrive servo elev1 til positon defineret af val3 elev2.write (val4); // Skrive servo elev2 til positon defineret af val4}
val5 = analogRead (pot3); // Læser pot3 (analog pin 4) og gem værdi som val5 hvis (val5> = 485 && val5 <= 540) {// Kontrollerer om "Joystick" (potentiometer) er centreret yaw1.write (90); // Skrive servo yaw1 til midterposition yaw2.write (90); // Skrive servo yaw2 til midterposition} ellers {// Hvad skal jeg gøre, hvis "Joystick" ikke er centreret val6 = map (val5, 0, 1023, 10, 170); // Kortlægning af val5 fra 10 til 170 og tildeling til val6 val7 = map (val5, 0, 1023, 170, 10); // Kortlægning af val5 fra 10 til 170 og tildeling til val7 yaw1.write (val6); // Skrive servo yaw1 til positon defineret af val6 yaw2.write (val7); // Skrive servo yaw2 til positon defineret af val7}
val8 = analogRead (pot4); // Læser pot4 (analog pin 5) og gem værdien som val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kontrollerer, om motoren er ved at ændre retning esc.write (80); forsinkelse (1000); // Venter 1000 millisekunder} esc.write (val8); // Skrive servo esc til hastighed defineret af val8 mspeed = val8; // Lagring af nuværende hastighed til sammenligning}} Serial.print ("gas"); // Brug af Serial Print til at vise ordet "Throttle" Serial.println (val8); // Brug af Serial Print til at vise den værdi, som gashåndtaget er indstillet til Serial.print ("roll"); // Brug af Serial Print til at vise ordet "Roll" Serial.println (val1); // Brug af Serial Print til at vise den værdi, rollen er indstillet til Serial.print ("pitch"); // Brug af Serial Print til at vise ordet "Pitch" Serial.println (val3); // Brug af Serial Print til at vise den værdi, pitch1 er indstillet til Serial.println (val4); // Brug af Serial Print til at vise den værdi, pitch2 er indstillet til Serial.print ("yaw"); // Brug af Serial Print til at vise ordet "Yaw" Serial.println (val6); // Brug af Serial Print til at vise den værdi, yaw1 er indstillet til Serial.println (val7); // Brug Serial Print til at vise den værdi, yaw2 er indstillet til}
Trin 3: Kredsløb
Vedhæftet er et foto af kredsløbet ombord på nedsænkbare.
Jeg lavede et brugerdefineret skjold til Arduino for at forenkle mine ledninger. Jeg har uploadet Eagle Schematic & Board -filerne til skjoldet. Jeg brugte en LPKF S63 til at fræse brættet. Servoerne foran, der styrerullen, sættes i Arduino
vedhæftet er et foto af kredsløbet inde i controlleren.
Trin 4: 3D -printede dele
Jeg har udskrevet alle disse filer på min Monoprice Maker Select Plus. Jeg brugte Esun ABS 1,75 mm filament. Mine udskriftsindstillinger var 105 grader C for print sengens temperatur og og 255 grader C for ekstruderens temperatur. Kun 1 af hver del er nødvendig, bortset fra at du skal bruge 6 kopier af frontfløjen. Bemærk, at disse dele blev trykt med en vægtykkelse på 1000 mm. Dette blev gjort for at dele skulle blive trykt med 100% udfyldning, så de ville være negativt flydende.
Trin 5: Montering
******************************* KOMMER SNART *************** ********************
Anbefalede:
Nedsænket bryst: 9 trin (med billeder)
Sunken Chest: The Sunken Chest er en sjov halloween -dispenser, der fungerer ved hjælp af en app og svarer på gåder. Ideen til Det kom under en udfordring, min kollegipræsident havde, hvor hun bad eleverne om at designe en slikdispenser til halloween i år. Inspirationen
OMeJI - Team 15 SubBob Squarepants nedsænket: 37 trin
OMeJI - Team 15 SubBob Squarepants nedsænket: Dette er et 1/2 tommer Schedule 40 baseret PVC nedsænket/fjernbetjent køretøj. Det var designet til at opfange to flag i bunden af en ni fods pool med sine dobbelte kroge. Flagene var en del af en konkurrence arrangeret af Academy High School
Nedsænket 2017: 95 trin
Nedsænket 2017: nedsænket 2017
DIY nedsænket ROV: 8 trin (med billeder)
DIY nedsænket ROV: Hvor svært kunne det være? Det viser sig, at der var flere udfordringer ved at lave en nedsænket ROV. Men det var et sjovt projekt, og jeg synes, det var ganske vellykket. Mit mål var, at det ikke skulle koste en formue, have det let at køre og have en kamera
BTS - 33 - nedsænket: 11 trin
BTS - 33 - nedsænket: Denne instruktør vil lære dig at lave en nedsænket med en 3 switch -kontrol