Cuprins:
- Pasul 1: Materiale
- Pasul 2: Programare
- Pasul 3: Circuit
- Pasul 4: Părți imprimate 3D
- Pasul 5: Asamblare
Video: Vehicul submersibil: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
**************** ACEST INSTRUCTABIL ESTE ÎNCĂ O LUCRU ÎN PROGRES ****************
Acest Instructable a fost creat pentru îndeplinirea cerințelor de proiect ale Makecourse la Universitatea din Florida de Sud (www.makecourse.com).
Acest instructabil va fi o scurtă vedere asupra creației vehiculului submersibil pe care l-am proiectat și construit pentru clasa mea Makecourse de la Universitatea din Florida de Sud. În acest instructabil voi furniza o listă de materiale, codul de control pe care l-am creat pentru Arduino Uno pe care l-am folosit și o prezentare generală a modului de asamblare a submersibilului.
Pasul 1: Materiale
Electronica utilizată unde:
1x Arduino Uno
1x cameră de acțiune mobius
1x camera de acțiune mobius USB-B la cablu A / V
1x vizualizare câmp ecran 777
1x turnigy marine 50A ESC (control electronic al vitezei)
1x placă de programare turnigy marine
1x T-Motor Navigator 400kv
1x YEP 20A BEC (circuit de eliminare a bateriei)
6x servos impermeabile hobby king HK15139
2x conector T în paralel
2 fire de prelungire servo de 18 inch
Firuri de extensie servo 6x 6 inch
2x baterii Lipo 1300mah 3s
2x 2500mah 4s baterii Lipo
1x placă de distribuție a puterii cu ieșiri fixe atât de 5v, cât și de 12v
Materialele de construcție în care:
1 foaie de placaj de 3/16 inch
1x tub de transport ABS de 6 inci
1x tub de silicon
1x cutie de etanșare flexibilă
4x bobine din filament pentru imprimantă 3D ABS
1x glisier sertar de 24 inch
Tub termocontractabil
1x 10 picioare de velcro duraloc marca scotch
1x JB Wox plastic epoxidic
1x cupolă de cameră de securitate acrilică cu diametru de 6,2 inci
2 passthrough-uri ethernet IP68
Cablu ethernet 2x 24 inch cat6
1x cablu Ethernet cat6 de 200 picioare
Hardware-ul folosit a fost:
Șuruburi de lemn de alamă de 24x 1/2 inch
24x ------ șuruburi (incluse cu servomotoare)
Instrumentele utilizate:
Șurubelnițe cu capul lui Philip și Flat
Set chei Allen
Ciocan de lipit
Pistol cu aer cald
Imprimantă 3D (am folosit un Monoprice Maker Select Plus)
Pasul 2: Programare
Mai jos este codul care a fost creat pentru a controla submersibilul. De asemenea, am atașat fișierul.ino, astfel încât să poată fi descărcat.
Acest cod a fost creat pentru Arduino Uno folosind compilatorul Arduino.
/**********************************************************************************************************************************************************************
Autor: Jonah Powers Data: 11.11.2018 Scop: Cod de control pentru vehicul submersibil acționat de la distanță ****************************** *************************************************** *************************************************** ************************************ / #include // Inclusiv Servo Library Servo roll1; // Declararea rolului 1 drept servo Servo roll2; // Declararea rolului 2 ca fiind un servo Servo elev1; // Declararea elev1 drept servo Servo elev2; // Declararea elev2 a fi un servo Serv yaw1; // Declararea yaw1 ca servo servo Yaw2; // Declararea yaw2 a fi un servo Servo esc; // Declararea esc a fi un servo
int pot1 = 0; // Intitializarea variabilei pot1 ca număr întreg și setarea ei egală cu 0 int pot2 = 1; // Intitializarea variabilei pot2 ca număr întreg și setarea ei egală cu 2 int pot3 = 2; // Intitializarea variabilei pot3 ca număr întreg și setarea ei egală cu 4 int pot4 = 3; // Intitializarea variabilei pot4 ca număr întreg și setarea ei egală cu 5 int val1; // Variabila de inițializare val1 ca număr întreg int val2; // Intitializarea variabilei val2 ca număr întreg int val3; // Variabila de inițializare val3 ca număr întreg int val4; // Intitializarea variabilei val4 ca număr întreg int val5; // Variabila de inițializare val5 ca un întreg int val6; // Intitializarea variabilei val6 ca număr întreg int val7; // Variabila de inițializare val7 ca număr întreg int val8; // Intitializarea variabilei val8 ca un întreg int mspeed; // Intitializarea variabilei mspeed ca număr întreg
void setup () {// Etapa de inițializare Arduino Serial.begin (9600); // Inițializarea moniterului serial roll1.attach (2); // Atașarea servo roll1 la pinul digital 2 roll2.attach (3); // Atașarea servo roll2 la pinul digital 3 elev1.attach (5); // Atașarea servo elev1 la pinul digital 5 elev2.attach (6); // Atașarea servo elev2 la pinul digital 6 yaw1.attach (8); // Atașarea servo yaw1 la pinul digital 8 yaw2.attach (9); // Atașarea servo yaw2 la pinul digital 9 esc.attach (11); // Atașarea servo esc la pinul digital 11 roll1.write (90); // Scrierea servo roll1 în poziția sa centrală roll2.write (90); // Scrierea servo roll2 în poziția sa centrată elev1.write (90); // Scrierea servo elev1 în poziția sa centrată elev2.write (90); // Scrierea servo elev2 în poziția sa centrală yaw1.write (90); // Scrierea servo yaw1 în poziția sa centrală yaw2.write (90); // Scrierea servo yaw2 în poziția sa centrată esc.write (180); // Scrierea servo esc în întârzierea poziției sale centrate (2500); // Se așteaptă 2 secunde esc.write (90); întârziere (5000); }
void loop () {// Codul principal pentru a se bucla la infinit dacă (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Verificând dacă „Joystick” (potențiometru) este centrat roll1.write (90); // Scrierea servo roll1 în poziția centrală roll2.write (90); // Scrierea servo roll2 în poziția centrală} else {// Ce trebuie făcut dacă „Joystick” nu este centrat val1 = hartă (val1, 0, 1023, 10, 170); // Cartografierea val1 de la 10 la 170 și atribuirea val1 roll1.write (val1); // Scriere servo roll1 la pozitiv definit de val1 roll2.write (val1); // Scrierea servo roll2 la pozitiv definit de val1}
val2 = analogRead (pot2); // Citind pot2 (pinul analogic 2) și salvați valoarea ca val2 if (val2> = 485 && val2 <= 540) {// Verificând dacă „Joystick” (potențiometru) este centrat elev1.write (90); // Scrierea servo elev1 în poziția centrală elev2.write (90); // Scrierea servo elev2 în poziția centrală} else {// Ce trebuie făcut dacă „Joystick” nu este centrat val3 = hartă (val2, 0, 1023, 10, 170); // Cartografierea val2 de la 10 la 170 și atribuirea la val3 val4 = hartă (val2, 0, 1023, 170, 10); // Cartografierea val2 de la 170 la 10 și atribuirea val4 elev1.write (val3); // Scrierea servo elev1 la pozitiv definit de val3 elev2.write (val4); // Scrierea servo elev2 la pozitiv definit de val4}
val5 = analogRead (pot3); // Citind pot3 (pinul analogic 4) și salvați valoarea ca val5 if (val5> = 485 && val5 <= 540) {// Verificând dacă „Joystick” (potențiometru) este centrat yaw1.write (90); // Scrierea servo yaw1 în poziția centrală yaw2.write (90); // Scrierea servo yaw2 în poziția centrală} else {// Ce trebuie făcut dacă „Joystick” nu este centrat val6 = hartă (val5, 0, 1023, 10, 170); // Cartografierea val5 de la 10 la 170 și atribuirea la val6 val7 = hartă (val5, 0, 1023, 170, 10); // Cartografierea val5 de la 10 la 170 și atribuirea lui val7 yaw1.write (val6); // Scrierea servo yaw1 la pozitiv definit de val6 yaw2.write (val7); // Scrierea servo yaw2 la pozitiv definit de val7}
val8 = analogRead (pot4); // Citind pot4 (pinul analogic 5) și salvați valoarea ca val8 dacă (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Verificând dacă motorul este pe cale să schimbe direcția esc.write (80); întârziere (1000); // Se așteaptă 1000 de milisecunde} esc.write (val8); // Scriere servo esc la viteza definita de val8 mspeed = val8; // Stocarea vitezei curente pentru comparație}} Serial.print ("accelerație"); // Utilizarea Serial Print pentru a afișa cuvântul "Accelerator" Serial.println (val8); // Utilizarea Serial Print pentru a arăta valoarea că accelerația este setată la Serial.print ("roll"); // Utilizarea Serial Print pentru a afișa cuvântul "Roll" Serial.println (val1); // Utilizarea Serial Print pentru a afișa valoarea pe care rola este setată la Serial.print ("pitch"); // Utilizarea Serial Print pentru a afișa cuvântul „Pitch” Serial.println (val3); // Utilizarea Serial Print pentru a arăta valoarea că pitch1 este setat la Serial.println (val4); // Utilizarea Serial Print pentru a afișa valoarea că pitch2 este setat la Serial.print ("yaw"); // Utilizarea Serial Print pentru a afișa cuvântul „Yaw” Serial.println (val6); // Utilizarea Serial Print pentru a afișa valoarea că yaw1 este setat la Serial.println (val7); // Utilizarea Serial Print pentru a arăta valoarea pe care yaw2 este setată}
Pasul 3: Circuit
Atașată este o fotografie a circuitului de la bordul submersibilului.
Am creat un scut personalizat pentru Arduino pentru a-mi simplifica cablarea. Am încărcat fișierele Eagle Schematic & Board pentru scut. Am folosit un LPKF S63 pentru frezarea plăcii. Servo-urile din partea din față care rulează controlul vor fi conectate la Arduino
atașat este o fotografie a circuitului din interiorul controlerului.
Pasul 4: Părți imprimate 3D
Am tipărit toate aceste fișiere pe Monoprice Maker Select Plus. Am folosit Esun ABS 1.75mm Filament. Setările mele de imprimare au fost 105 grade C pentru temperatura patului de imprimare și 255 grade C pentru temperatura extruderului. Este necesar doar 1 din fiecare parte, cu excepția faptului că veți avea nevoie de 6 copii ale aripii frontale. Rețineți că aceste piese au fost tipărite cu grosimea peretelui setată la 1000 mm. Acest lucru a fost făcut astfel încât piesele să fie tipărite cu umplutură 100%, astfel încât să fie negativ.
Pasul 5: Asamblare
********************************* IN CURAND *************** *******************
Recomandat:
OMeJI - Echipa 15 SubBob Squarepants Submersibil: 37 de pași
OMeJI - Echipa 15 SubBob Squarepants Submersibil: Acesta este un vehicul submersibil / acționat de la distanță din PVC, prevăzut cu programul 40 de 1/2 inch. A fost conceput pentru a ridica două steaguri în partea de jos a unei piscine de nouă picioare cu cârligele sale duble. Steagurile au făcut parte dintr-o competiție organizată de liceul Academy cu
Submersibil 2017: 95 de pași
Submersable 2017: Submersable 2017
DIY submersibil ROV: 8 pași (cu imagini)
DIY submersibil ROV: Cât de greu ar putea fi? Se pare că au existat mai multe provocări în realizarea unui ROV submersibil. Dar a fost un proiect distractiv și cred că a avut destul succes. Scopul meu era să nu costăm o avere, să o conduc mai ușor și să am un camer
BTS - 33 - Submersibil: 11 pași
BTS - 33 - Submersibil: Acest instructiv vă va învăța cum să faceți un submersibil cu un control cu 3 comutatoare
BTS - Echipa 28 (R2-DTimbs) Submersibil / submarin: 17 pași
BTS - Echipa 28 (R2-DTimbs) Submersibil / Submarin: Tutorial pentru construirea unui submersibil din materiale care pot fi găsite la magazinul local de hardware. în jos în toată apa