Sommario:
- Passaggio 1: materiali
- Passaggio 2: programmazione
- Passaggio 3: circuiti
- Passaggio 4: parti stampate in 3D
- Passaggio 5: assemblaggio
Video: Veicolo sommergibile: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
**************** QUESTO ISTRUZIONI È ANCORA UN LAVORO IN CORSO ****************
Questo Instructable è stato creato in adempimento dei requisiti di progetto del Makecourse presso la University of South Florida (www.makecourse.com).
Questo Instructable sarà una breve panoramica della creazione del veicolo sommergibile che ho progettato e costruito per la mia classe Makecourse presso l'Università della Florida del sud. In questo Instructable fornirò una distinta base, il codice di controllo che ho creato per Arduino Uno che ho usato e una panoramica su come assemblare il sommergibile.
Passaggio 1: materiali
L'elettronica utilizzata dove:
1x Arduino Uno
1x action cam mobius
1x action cam mobius da USB-B a cavo A/V
1x visualizzazione campo 777 schermo di visualizzazione
1x turnigy marine 50A ESC (controllo elettronico della velocità)
1x scheda di programmazione marina turnigy
1x Navigatore T-Motore 400kv
1x YEP 20A BEC (circuito di eliminazione della batteria)
6 servi impermeabili HK15139 per hobby king
2x connettori a T paralleli y cablaggi
2 cavi di prolunga servo da 18 pollici
6 cavi di prolunga servo da 6 pollici
2 batterie Lipo da 1300 mAh 3s
2 batterie Lipo 2500mAh 4s
1x scheda di distribuzione dell'alimentazione con uscite fisse 5v e 12v
I materiali di costruzione dove:
1x foglio di compensato da 3/16 di pollice
1 tubo di spedizione in ABS ID da 6 pollici
1x tubo di silicone
1x lattina di sigillo flessibile
4x bobine di filamento per stampante 3D in ABS
1x cassetto scorrevole da 24 pollici
Tubo termoretraibile
1x 10 piedi di scotch marca duraloc velcro
1x JB Weld plastica epossidica
1x cupola per telecamera di sicurezza acrilica da 6,2 pollici di diametro
2x passthrough ethernet IP68
2 cavi ethernet cat6 da 24 pollici
1x cavo ethernet cat6 da 200 piedi
L'hardware utilizzato è stato:
Viti per legno in ottone da 24x 1/2 pollici
24x ------ viti (incluse con i servi)
Gli strumenti utilizzati:
Philip's e cacciaviti a testa piatta
Set chiavi a brugola
Saldatore
Pistola termica
Stampante 3D (ho usato una Monoprice Maker Select Plus)
Passaggio 2: programmazione
Di seguito è riportato il codice che è stato creato per controllare il sommergibile. Ho anche allegato il file.ino in modo che possa essere scaricato.
Questo codice è stato creato per Arduino Uno utilizzando il compilatore Arduino.
/**********************************************************************************************************************************************************************
Autore: Jonah Powers Data: 9/11/2018 Scopo: Codice di controllo per veicolo sommergibile a comando remoto ****************************** ************************************************** ************************************************** ************************************/ #include //Include servo libreria Servo roll1; //Dichiara che roll1 è un servo Servo roll2; //Dichiara che roll2 è un servo Servo elev1; //Dichiara che elev1 è un servo Servo elev2; //Dichiara che elev2 è un servo Servo imbardata1; //Dichiara che yaw1 è un servo Servo yaw2; //Dichiarando che yaw2 è un servo Servo esc; //Dichiara che esc è un servo
int pot1 = 0; //Inizializzazione variabile pot1 come numero intero e impostandola uguale a 0 int pot2 = 1; //Inizializzazione variabile pot2 come numero intero e impostandola uguale a 2 int pot3 = 2; //Inizializzazione variabile pot3 come numero intero e impostandola uguale a 4 int pot4 = 3; //Inizializzazione variabile pot4 come intero e impostandola uguale a 5 int val1; //Inizializzazione della variabile val1 come intero int val2; //Inizializzazione della variabile val2 come intero int val3; //Inizializzazione della variabile val3 come intero int val4; //Inizializzazione della variabile val4 come intero int val5; //Inizializzazione della variabile val5 come intero int val6; //Inizializzazione della variabile val6 come intero int val7; //Inizializzazione della variabile val7 come intero int val8; //Inizializzazione della variabile val8 come intero int mspeed; //Inizializzazione variabile mspeed come numero intero
void setup() { //Fase di inizializzazione Arduino Serial.begin(9600); //Inizializzazione del monitor seriale roll1.attach(2); //Collegamento del servo roll1 al pin digitale 2 roll2.attach(3); //Collegamento del servo roll2 al pin digitale 3 elev1.attach(5); //Collegamento del servo elev1 al pin digitale 5 elev2.attach(6); //Collegamento del servo elev2 al pin digitale 6 yaw1.attach(8); //Collegamento del servo yaw1 al pin digitale 8 yaw2.attach(9); //Collegamento del servo yaw2 al pin digitale 9 esc.attach(11); //Collegamento del servo esc al pin digitale 11 roll1.write(90); //Scrivere il servo roll1 nella sua posizione centrata roll2.write(90); //Scrivere servo roll2 nella sua posizione centrata elev1.write(90); //Scrivere servo elev1 nella sua posizione centrata elev2.write(90); //Scrivere servo elev2 nella sua posizione centrata yaw1.write(90); //Scrivere servo yaw1 nella sua posizione centrata yaw2.write(90); //Scrivere servo yaw2 nella sua posizione centrata esc.write(180); //Scrivere servo esc nella sua posizione centrata delay(2500); //In attesa di 2 secondi esc.write(90); ritardo (5000); }
void loop() { //Codice principale per eseguire un ciclo infinito if(analogRead(pot1)<1 && analogRead(pot2)<1 && analogRead(pot3)<1 && analogRead(pot4)= 485 && val1<= 540){ // Controllo per vedere se "Joystick" (potenziometro) è centrato roll1.write(90); //Scrivere il servo roll1 nella posizione centrale roll2.write(90); //Scrivere servo roll2 in posizione centrale } else{ //Cosa fare se "Joystick" non è centrato val1 = map(val1, 0, 1023, 10, 170); //Mapping val1 da 10 a 170 e assegnazione a val1 roll1.write(val1); //Scrivere servo roll1 nella posizione definita da val1 roll2.write(val1); //Scrivere servo roll2 nella posizione definita da val1 }
val2 = analogRead(pot2); //Lettura pot2 (pin analogico 2) e salvataggio valore come val2 if(val2>= 485 && val2<= 540){ //Controllo per vedere se "Joystick" (potenziometro) è centrato elev1.write(90); //Scrivere servo elev1 nella posizione centrale elev2.write(90); //Scrivere servo elev2 in posizione centrale } else{ //Cosa fare se "Joystick" non è centrato val3 = map(val2, 0, 1023, 10, 170); //Mapping val2 da 10 a 170 e assegnazione a val3 val4 = map(val2, 0, 1023, 170, 10); //Mapping val2 da 170 a 10 e assegnazione a val4 elev1.write(val3); //Scrivere servo elev1 nella posizione definita da val3 elev2.write(val4); //Scrivere servo elev2 nella posizione definita da val4 }
val5 = analogRead(pot3); //Lettura pot3 (pin analogico 4) e salvataggio valore come val5 if(val5>= 485 && val5<= 540){ //Controllo per vedere se "Joystick" (potenziometro) è centrato yaw1.write(90); //Scrivere servo yaw1 nella posizione centrale yaw2.write(90); //Scrivere servo yaw2 in posizione centrale } else{ //Cosa fare se "Joystick" non è centrato val6 = map(val5, 0, 1023, 10, 170); //Mapping val5 da 10 a 170 e assegnazione a val6 val7 = map(val5, 0, 1023, 170, 10); //Mappa val5 da 10 a 170 e assegna a val7 yaw1.write(val6); //Scrivere servo yaw1 nella posizione definita da val6 yaw2.write(val7); //Scrivo servo yaw2 nella posizione definita da val7 }
val8 = analogRead(pot4); //Lettura pot4 (pin analogico 5) e salvataggio valore come val8 if(val8 > 470 && val8 80 && val8<80)||(mspeed80)){ //Controllo per vedere se il motore sta per cambiare direzione esc.write(80); ritardo(1000); //In attesa di 1000 millisecondi } esc.write(val8); //Scrivere servo esc alla velocità definita da val8 mspeed=val8; //Memorizzazione della velocità corrente per il confronto } } Serial.print("throttle"); //Usando Serial Print per mostrare la parola "Throttle" Serial.println(val8); //Usando Serial Print per mostrare il valore che l'acceleratore è impostato su Serial.print("roll"); //Usando Serial Print per mostrare la parola "Roll" Serial.println(val1); //Usando Serial Print per mostrare il valore che roll è impostato su Serial.print("pitch"); //Usando Serial Print per mostrare la parola "Pitch" Serial.println(val3); //Usando Serial Print per mostrare il valore che pitch1 è impostato su Serial.println(val4); //Usando Serial Print per mostrare il valore che pitch2 è impostato su Serial.print("yaw"); //Usando Serial Print per mostrare la parola "Yaw" Serial.println(val6); //Usando Serial Print per mostrare il valore che yaw1 è impostato su Serial.println(val7); //Usando la stampa seriale per mostrare il valore che yaw2 è impostato su }
Passaggio 3: circuiti
In allegato una foto del circuito a bordo del sommergibile.
Ho creato uno shield personalizzato per Arduino per semplificare il mio cablaggio. Ho caricato i file Eagle Schematic & Board per lo scudo. Ho usato una LPKF S63 per fresare la tavola. i servi nella parte anteriore del rullo di controllo saranno collegati ad Arduino
allegata è una foto del circuito all'interno del controller.
Passaggio 4: parti stampate in 3D
Ho stampato tutti questi file sul mio Monoprice Maker Select Plus. Ho usato il filamento Esun ABS da 1,75 mm. Le mie impostazioni di stampa erano 105 gradi C per la temperatura del piano di stampa e 255 gradi C per la temperatura dell'estrusore. È necessaria solo 1 di ciascuna parte, tranne che avrai bisogno di 6 copie dell'ala anteriore. Nota che queste parti sono state stampate con lo spessore della parete impostato su 1000 mm. Questo è stato fatto in modo che le parti venissero stampate con il 100% di riempimento in modo che potessero galleggiare negativamente.
Passaggio 5: assemblaggio
********************************* PROSSIMAMENTE *************** *******************
Consigliato:
OMeJI - Team 15 SubBob Squarepants sommergibile: 37 passaggi
OMeJI - Team 15 SubBob Squarepants sommergibile: questo è un veicolo sommergibile/telecomandato in PVC Schedule 40 da 1/2 pollice. È stato progettato per raccogliere due bandiere sul fondo di una piscina di nove piedi con i suoi doppi ganci. Le bandiere facevano parte di un concorso organizzato dall'Accademia Liceo
Sommergibile 2017: 95 Passi
Sommergibile 2017: Sommergibile 2017
ROV sommergibile fai da te: 8 passaggi (con immagini)
ROV sommergibile fai da te: quanto potrebbe essere difficile? Si scopre che ci sono state diverse sfide per realizzare un ROV sommergibile. Ma è stato un progetto divertente e penso che abbia avuto un discreto successo. Il mio obiettivo era che non costasse una fortuna, che fosse facile da guidare e che avesse un camer
BTS - 33 - Sommergibile: 11 passaggi
BTS - 33 - Sommergibile: questo Instructable ti insegnerà come costruire un sommergibile con un controllo a 3 interruttori
BTS - Sommergibile/Sottomarino Team 28 (R2-DTimb): 17 passaggi
BTS - Team 28 (R2-DTimbs) Sommergibile/Sottomarino: Tutorial per costruire un sommergibile con materiali che possono essere trovati presso il negozio di ferramenta locale. Il sommergibile finale sarà in grado di muoversi avanti, indietro, girare, salire e muoversi giù per tutta l'acqua