Índice:
- Etapa 1: Materiais
- Etapa 2: Programação
- Etapa 3: Circuito
- Etapa 4: peças impressas em 3D
- Etapa 5: Montagem
Vídeo: Veículo submersível: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
**************** ESTE INSTRUÍVEL AINDA É UM TRABALHO EM ANDAMENTO ****************
Este Instructable foi criado em cumprimento ao requisito do projeto do Makecourse na University of South Florida (www.makecourse.com).
Este Instructable será uma breve visão geral da criação do veículo submersível que projetei e construí para minha aula de Makecourse na University of South Florida. Neste Instructable, irei fornecer uma lista de materiais, o código de controle que criei para o Arduino Uno que usei e uma visão geral de como montar o submersível.
Etapa 1: Materiais
A eletrônica usada onde:
1x Arduino Uno
1x câmera de ação mobius
1x câmera de ação mobius usb-b para cabo A / V
1x field view 777 display display
1x marinho turnigy 50A ESC (controle eletrônico de velocidade)
1x cartão de programação marítima turnigy
1x T-Motor Navigator 400kv
1x YEP 20A BEC (circuito de eliminação de bateria)
6x servos impermeáveis HK15139 hobby king
2 conectores em T paralelos e chicotes
2 fios de extensão servo de 18 polegadas
Fios de extensão servo 6x 6 polegadas
2 baterias Lipo 1300mah 3s
2 baterias Lipo 2500mah 4s
1 placa de distribuição de energia com saídas fixas de 5v e 12v
Os materiais de construção onde:
1 folha de madeira compensada de 3/16 polegadas
1x tubo de transporte ABS ID de 6 polegadas
1 tubo de silicone
1 lata de vedação flexível
4 carretéis de filamento de impressora 3D ABS
1x corrediça de gaveta de 24 polegadas
Tubo termorretrátil
1x 3 metros de velcro duraloc da marca scotch
1x JB Weld plástico epóxi
1 x 6,2 polegadas de diâmetro de cúpula de câmera de segurança de acrílico
2 passagens Ethernet IP68
2x cabo ethernet cat6 de 24 polegadas
1 cabo ethernet cat6 de 200 pés
O hardware usado foi:
Parafusos de madeira de latão 24x 1/2 polegada
24x ------ parafusos (incluídos com servos)
As ferramentas utilizadas:
Chaves de fenda Philip e cabeça chata
Conjunto de chaves Allen
Ferro de solda
Pistola de calor
Impressora 3D (usei uma Monoprice Maker Select Plus)
Etapa 2: Programação
Abaixo está o código que foi criado para controlar o submersível. Também anexei o arquivo.ino para que ele possa ser baixado.
Este código foi criado para o Arduino Uno usando o compilador Arduino.
/**********************************************************************************************************************************************************************
Autor: Jonah Powers Data: 2018-11-09 Objetivo: Código de Controle para Veículo Submersível Operado Remotamente ****************************** ************************************************** *************************************************** ************************************* / #include // Incluindo Servo Biblioteca Servo roll1; // Declarando roll1 como um servo Servo roll2; // Declarando roll2 como um servo Servo elev1; // Declarando elev1 como um servo Servo elev2; // Declarando elev2 como um servo Servo yaw1; // Declarando yaw1 como um servo Servo yaw2; // Declarando yaw2 como um servo Servo esc; // Declarando esc como um servo
int pot1 = 0; // Inicializando a variável pot1 como um inteiro e definindo-a igual a 0 int pot2 = 1; // Inicializando a variável pot2 como um inteiro e definindo-a igual a 2 int pot3 = 2; // Inicializando a variável pot3 como um inteiro e configurando-a igual a 4 int pot4 = 3; // Inicializando a variável pot4 como um inteiro e definindo-a igual a 5 int val1; // Inicializando a variável val1 como um inteiro int val2; // Inicializando a variável val2 como um inteiro int val3; // Inicializando a variável val3 como um inteiro int val4; // Inicializando a variável val4 como um inteiro int val5; // Inicializando a variável val5 como um inteiro int val6; // Inicializando a variável val6 como um inteiro int val7; // Inicializando a variável val7 como um inteiro int val8; // Inicializando a variável val8 como um inteiro int mspeed; // Inicializando a variável mspeed como um inteiro
void setup () {// Estágio de inicialização do Arduino Serial.begin (9600); // Inicializando o monitor serial roll1.attach (2); // Anexando servo roll1 ao pino digital 2 roll2.attach (3); // Conectando o servo roll2 ao pino digital 3 elev1.attach (5); // Conectando o servo elev1 ao pino digital 5 elev2.attach (6); // Conectando o servo elev2 ao pino digital 6 yaw1.attach (8); // Anexando servo yaw1 ao pino digital 8 yaw2.attach (9); // Anexando servo yaw2 ao pino digital 9 esc.attach (11); // Anexando servo esc ao pino digital 11 roll1.write (90); // Escrevendo servo roll1 em sua posição centralizada roll2.write (90); // Escrevendo servo roll2 em sua posição centralizada elev1.write (90); // Escrevendo servo elev1 em sua posição centralizada elev2.write (90); // Escrevendo servo elev2 em sua posição centralizada yaw1.write (90); // Escrevendo servo yaw1 em sua posição centrada yaw2.write (90); // Escrevendo servo yaw2 em sua posição centralizada esc.write (180); // Escrevendo o servo esc para sua posição central delay (2500); // Esperando 2 segundos esc.write (90); atraso (5000); }
void loop () {// Código principal para loop infinito if (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Verificando se "Joystick" (potenciômetro) está centrado roll1.write (90); // Escrevendo servo roll1 na posição central roll2.write (90); // Escrevendo servo roll2 na posição central} else {// O que fazer se "Joystick" não estiver centrado val1 = map (val1, 0, 1023, 10, 170); // Mapeando val1 de 10 a 170 e atribuindo a val1 roll1.write (val1); // Escrevendo servo roll1 na posição definida por val1 roll2.write (val1); // Escrevendo servo roll2 na posição definida por val1}
val2 = analogRead (pot2); // Lendo pot2 (pino analógico 2) e salve o valor como val2 if (val2> = 485 && val2 <= 540) {// Verificando se "Joystick" (potenciômetro) está centralizado elev1.write (90); // Escrevendo servo elev1 na posição central elev2.write (90); // Escrevendo servo elev2 na posição central} else {// O que fazer se "Joystick" não estiver centralizado val3 = map (val2, 0, 1023, 10, 170); // Mapeando val2 de 10 a 170 e atribuindo a val3 val4 = map (val2, 0, 1023, 170, 10); // Mapeando val2 de 170 a 10 e atribuindo a val4 elev1.write (val3); // Escrevendo servo elev1 na posição definida por val3 elev2.write (val4); // Escrevendo servo elev2 na posição definida por val4}
val5 = analogRead (pot3); // Lendo pot3 (pino analógico 4) e salve o valor como val5 if (val5> = 485 && val5 <= 540) {// Verificando se "Joystick" (potenciômetro) está centralizado yaw1.write (90); // Escrevendo servo yaw1 na posição central yaw2.write (90); // Escrevendo servo yaw2 na posição central} else {// O que fazer se "Joystick" não estiver centrado val6 = map (val5, 0, 1023, 10, 170); // Mapeando val5 de 10 a 170 e atribuindo a val6 val7 = map (val5, 0, 1023, 170, 10); // Mapeando val5 de 10 a 170 e atribuindo a val7 yaw1.write (val6); // Escrevendo servo yaw1 na posição definida por val6 yaw2.write (val7); // Escrevendo servo yaw2 na posição definida por val7}
val8 = analogRead (pot4); // Lendo pot4 (pino analógico 5) e salve o valor como val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Verificando se o motor está prestes a mudar de direção esc.write (80); atraso (1000); // Esperando 1000 milissegundos} esc.write (val8); // Escrevendo servo esc para velocidade definida por val8 mspeed = val8; // Armazenando a velocidade atual para comparação}} Serial.print ("throttle"); // Usando Serial Print para mostrar a palavra "Throttle" Serial.println (val8); // Usando Serial Print para mostrar o valor que o regulador de pressão é definido como Serial.print ("roll"); // Usando Serial Print para mostrar a palavra "Roll" Serial.println (val1); // Usando Serial Print para mostrar o valor que o rolo está definido para Serial.print ("pitch"); // Usando Serial Print para mostrar a palavra "Pitch" Serial.println (val3); // Usando Serial Print para mostrar o valor que pitch1 é definido como Serial.println (val4); // Usando Serial Print para mostrar o valor que pitch2 é definido como Serial.print ("yaw"); // Usando Serial Print para mostrar a palavra "Yaw" Serial.println (val6); // Usando Serial Print para mostrar o valor que yaw1 é definido como Serial.println (val7); // Usando Serial Print para mostrar o valor que yaw2 está definido para}
Etapa 3: Circuito
Em anexo está uma foto do circuito a bordo do submersível.
Criei um escudo personalizado para o Arduino para simplificar minha fiação. Eu carreguei os arquivos Eagle Schematic & Board para o escudo. Usei um LPKF S63 para fresar a placa. os Servos na frente do rolo de controle serão conectados ao Arduino
em anexo está uma foto do circuito dentro do controlador.
Etapa 4: peças impressas em 3D
Eu imprimi todos esses arquivos em meu Monoprice Maker Select Plus. Usei Esun ABS 1.75mm Filament. Minhas configurações de impressão foram 105 graus C para a temperatura do leito de impressão e 255 graus C para a temperatura da extrusora. Apenas 1 de cada parte é necessária, exceto que você precisará de 6 cópias da asa dianteira. Observe que essas peças foram impressas com espessura de parede definida para 1000 mm. Isso foi feito para que as peças fossem impressas com 100% de preenchimento, de forma que ficassem com flutuabilidade negativa.
Etapa 5: Montagem
********************************* EM BREVE *************** *******************
Recomendado:
OMeJI - Equipe 15 SubBob Squarepants Submersível: 37 etapas
OMeJI - SubBob Squarepants Submersível Equipe 15: Este é um veículo submersível / operado remotamente em PVC de 1/2 polegada Schedule 40. Ele foi projetado para pegar duas bandeiras no fundo de uma piscina de nove pés com seus ganchos duplos. As bandeiras faziam parte de uma competição organizada pela Academy High School con
Submersível 2017: 95 etapas
Submersível 2017: Submersível 2017
ROV submersível faça você mesmo: 8 etapas (com fotos)
ROV submersível DIY: Quão difícil pode ser? Acontece que havia vários desafios para fazer um ROV submersível. Mas foi um projeto divertido e acho que teve muito sucesso. Meu objetivo era que não custasse uma fortuna, fosse fácil de dirigir e tivesse uma câmera
BTS - 33 - Submersível: 11 etapas
BTS - 33 - Submersível: Este Instructable irá ensiná-lo a fazer um submersível com um controle de 3 interruptores
BTS - Equipe 28 (R2-DTimbs) Submersível / Submarino: 17 etapas
BTS - Equipe 28 (R2-DTimbs) Submersível / Submarino: Tutorial para construir um submersível com materiais que podem ser encontrados na loja de ferragens local. O submersível final será capaz de se mover para frente, para trás, virar, subir e se mover para baixo em toda a água