Submarino casero con antena wifi de superficie

Cómo todo empezó


Doy la bienvenida a todos. Soy Maxim y quiero compartir información sobre cómo ensamblé un submarino controlado por radio sin ningún conocimiento de electrónica al comienzo de mi viaje.



Yo mismo soy un artista de animación y gráficos por computadora, nunca he hecho programación o electrónica. Solo tenía una pequeña cantidad de conocimiento sobre soldadura, que mi abuelo me dio cuando aún era un estudiante de primaria.

Toda mi vida me interesó el tema de la investigación subacuática, todo comenzó al mismo tiempo, en la infancia, con J.I. Cousteau, y terminó con el desarrollo de un juego sobre los océanos helados de Europa. Pero, sin embargo, ahora no se trata de eso.

Habiendo decidido que era hora de transferir mis pasatiempos al plano de práctica, fui a Youtube. Obtuve un puñado de los conocimientos más básicos y luego mi camino ya estaba en AliExpress, como muchos. Todo terminó con la compra de 27 nombres de varios módulos y otros componentes.



El empleado de la oficina de correos estaba muy descontento cuando buscaba 27 paquetes ...

El comienzo del trabajo en el submarino y las primeras fallas.


Revelación
, , .

Al principio encontré a un hombre que conoce de primera mano los submarinos; me ayudó con la teoría y las pruebas.

Luego, inmediatamente comencé a escribir mi primer código para Arduino. Era un código para controlar dos motores submarinos. Dos potenciómetros: el izquierdo controla la potencia total de los motores y el derecho controla la rotación del submarino (reduce la potencia de uno de los motores, dependiendo de la posición del potenciómetro). Todo esto lo mostré en una pantalla económica, ya que planeaba hacer un panel de control separado (como resultado, el submarino se controla a través de un teléfono inteligente).



Teniendo en cuenta que hace una semana no sabía cómo funcionan los potenciómetros, mi entusiasmo era indescriptible. Sin parar allí, fui a una ferretería y a una farmacia. En la industria de la construcción, califiqué varias tuberías, acoplamientos y abrazaderas de polipropileno, y en la farmacia tomé varias jeringas Janet.

Las tuberías, respectivamente, fueron al casco del submarino y las jeringas al módulo cambiaron la flotabilidad. Solo el módulo para cambiar la flotabilidad resultó ser la parte más problemática para mí.

Módulo de flotabilidad


Las tareas de este módulo son bastante simples, recolectan agua y la vuelven a ordenar. Y surgió la pregunta: ¿cómo empujar el pistón de una jeringa, con un puñado de servos, motores y un conjunto de engranajes? No vale la pena presionar así:



fue la primera experiencia de interactuar con engranajes y otras bagatelas. Por cierto, pude rehacer el servo sg90 para una rotación de 360 ​​°: afilé el pestillo del engranaje principal, que giró el potenciómetro, y pegué el eje del potenciómetro en la posición cero, para que no girara accidentalmente incluso con un limitador recortado.

Foto del engranaje


Esto todavía no ayudó a resolver el problema: no pude arreglar de manera confiable el engranaje que interactúa con el portaequipajes. La experiencia de ingeniería adquirida me ayudó a dominar el módulo de cambio de flotabilidad la segunda vez: tomé un servo más potente, una varilla roscada gruesa y una tuerca, que fijé en el pistón. Esta vez no me molesté con la modificación del servo, decidí que es más fácil usar un controlador externo y conectarlo directamente al servomotor.



Soy ingeniero en mama


Acoplamiento flexible Wasyansky


Marco de aluminio para la rigidez


Se colocó un telémetro láser en el pistón para poder determinar en tiempo real, en qué posición se encuentra ahora. Bueno, en base a estos datos de distancia, prescribí un bloqueo de pistón cuando está en posiciones extremas. Quizás haya métodos más simples para determinar la posición del pistón, pero accidentalmente encontré un módulo muy barato de los chinos: el buscador de rango VL53L0X y decidí usarlo. Como resultado, quedé muy satisfecho, la biblioteca es simple, funciona como debería, aconsejo. La precisión en el espacio confinado de la jeringa es de alrededor de 5 mm, en principio, eso fue suficiente para mí.



Durante la prueba, surgió otro problema: el pistón se adhiere fuertemente a las paredes de la jeringa. No sé con qué está conectado, pero para iniciar el movimiento del pistón es necesario aplicar una fuerza considerable, después del atasco inicial, continúa normalmente. Probamos casi todos los tipos de lubricantes, muchos de ellos lo empeoraron. Por esta razón, tuve que agregar un marco de aluminio para el módulo.

Motores


Con el sistema de propulsión, me decidí por la solución más simple y tomé motores submarinos listos para usar. Antes de esto, probé la opción con un motor dentro de la caja. Pedí un tubo de popa en un conjunto con un eje y tornillos, pero a medida que estudiaba el tema, resultó que para mis propósitos necesitaba un sistema completo: un sello de aceite complejo, bridas, etc. De lo contrario, procederá en cualquier caso. Tengo planes para el futuro de lanzar el submarino en algún lugar de Ladoga y administrarlo a través de redes 3G, sentado en casa en el sofá, lo que significa que cualquier posible fuga conducirá a una pequeña autonomía del dispositivo.



En el futuro planeo usar solo motores submarinos, muy probablemente sin escobillas. Por el momento, estos se utilizan, colector:



Los controlo usando PWM. El vendedor dice que tienen una profundidad máxima de 8 metros, lo que, nuevamente, impone algunas restricciones de inmediato.

Alojamiento


El caso fue una tarea interesante: hacer una conexión sellada, que se desmontaría fácilmente. No cumplí la tarea, tuve que pegar todo con fuerza. Cuando la jeringa extrae agua, se crea presión dentro del cuerpo y todos nuestros sujetadores simplemente se exprimen. Como resultado, todos los cables importantes se llevaron a un conector sellado, a través del cual puede cargar el dispositivo, flashear el Arduino a bordo y conectar la antena.

Sí, nuestra antena está conectada mediante un cable y está en la posición de superficie, lo que garantiza una comunicación confiable. Pero sobre la antena un poco más tarde.



Fotos adicionales







La carcasa consta de tubos y acoplamientos de polipropileno de 50 mm. Las juntas están cubiertas con pasta sellada y, en la parte superior, para mayor resistencia, se llenan con fusión en caliente. Una boquilla de jeringa, un conector hermético, un interruptor de palanca de inclusión y dos cables para reflectores fueron llevados al final. Proyectores montados en la proa de la parte inundada, este diseño permitió desplazar el centro de gravedad más cerca del centro del submarino.

Cerebros submarinos


Esta es la parte más interesante para mí. Cuando comencé a calcular el circuito, todavía no sabía cómo, por ejemplo, funcionan los condensadores y por qué son necesarios. Estaba muy contento cuando, al apagar la alimentación, el LED en el Arduino se desvaneció lentamente debido a un condensador capacitivo.
De hecho, fueron útiles en el circuito para suavizar los picos que surgen en el circuito debido al funcionamiento de los motores del colector. También son necesarios para conectar un regulador de voltaje.

Tenemos una batería de dos celdas, respectivamente 8.4 V, el voltaje va a los motores y 5 V después del estabilizador, al Arduino y otros sensores. Esquema de tamaño completo (se puede hacer clic):



Al principio, muchas cosas no funcionaron solo por el hecho de que coleccioné todo en una placa de pruebas. Simplemente no podía entender por qué esta o aquella parte del circuito no funciona. Como resultado, todo comenzó a soldarse y los resultados positivos no tardaron en llegar.



Uno de los problemas interesantes surgió con el telémetro. Tiene una buena biblioteca, pero si configura el modo de precisión en medio o alto, todo el boceto se ralentizará y el control saldrá con un ping de 2000 ms como mínimo. Debido a esto, el buscador de rango está en modo RÁPIDO, pero su precisión aún es suficiente para nuestras tareas.

Lo siguiente que encontré es la gestión de cables. Diámetro de la caja 50 mm. Parece que esto es mucho, hasta que comienzas a tratar de colocar todo dentro. Utilicé cables rectos y audaces diseñados para audio, lo que me decepcionó mucho. Solo quería cobre, porque es conveniente soldarlos, y para que no se rompan, como los de aluminio. La próxima vez pasaré más tiempo buscando buenos cables.





Otras dificultades surgieron solo con la antena.

Antena


Como antena, decidí usar esp8266 y controlar el submarino a través de un teléfono inteligente a través de Wi-Fi. Solo los chinos tienen una amplia variedad de módulos basados ​​en ESP8266, compré tres diferentes, pero pude conectar y flashear solo uno de ellos: ESP-01 .

En teoría, si ordena ahora, ya estarán con el firmware necesario. La administración se realiza a través de RemoteXY, y necesita una versión de firmware específica para los comandos AT. El problema de encontrar el firmware correcto para controlar mediante comandos AT se resolvió solo con la ayuda de la guía RemoteXY. Por cierto, no publicidad, simplemente me gustó la interfaz, y solo entonces encontré diseñadores de interfaz más convenientes y bien desarrollados para todo tipo de IoT.



Después de un firmware exitoso, colgué el módulo con los componentes necesarios para el trabajo y solde un conector USB para una conexión conveniente. Integramos el USB mate en el corcho debajo de una botella normal y obtuvimos una antena con cable simple con la capacidad de cambiar la carcasa (reemplazo de la botella).



Hubo más problemas además del firmware.

La placa ESP-01 debería funcionar desde 3.3 V, y no desde 5 V. Además, tanto la lógica como la fuente de alimentación. Si configuré la lógica a través de un convertidor de nivel, entonces era demasiado vago como para meterme con la corriente y solo puse un pequeño radiador en el chip. A partir de cinco voltios funciona bien, pero hace mucho calor. El radiador al final ayuda a no quemar el chip.



Otro problema: tomé el cable ideal para el conector sellado, pero solo tiene 2 pines con blindaje, mientras que para la antena necesitas 4 (alimentación y RX y TX para la comunicación entre la antena y Arduino a bordo).

Resultó que no sería posible encender nuestra antena por separado, ya que para que ESP + Arduino funcionara, era necesario tener una base común. Tuve que usar blindaje como tierra cerca del cable y agregar una batería separada a la antena. Inconveniente, pero funciona. Es más fácil, por supuesto, encontrar un cable para 4 núcleos y alimentar la antena con baterías del submarino.



En la foto hay una buena coincidencia de los diámetros del cable, el tubo de silicona y el orificio de engarzado en el conector sellado.

Gestión y firmware


La gestión se lleva a cabo a través de la interfaz desde el teléfono inteligente. La interfaz se componía de módulos listos para usar directamente en el sitio, recibió el código fuente de la interfaz y luego quedó solo para vincular los diversos elementos de la interfaz a las acciones dentro del firmware.



Antes de recibir el código fuente de la interfaz, debe especificar en la configuración el tipo de módulo inalámbrico con el que interactuará el Arduino. Solo mostramos el Arduino: con el módulo Wi-Fi, la comunicación se realiza automáticamente a través de los comandos AT. Se crea un punto de acceso, conéctese a él desde un teléfono inteligente y contrólelo a través de una aplicación preinstalada. La interfaz proviene de Arduino, está conectada al firmware y es reconocida por la aplicación en el teléfono inteligente.

Este fue mi primer código, no lo dejaré aquí, porque solo usa habilidades básicas de programación y matemáticas básicas. Hubo algunos momentos difíciles para mí: no pude hacer la operación lógica habitual la primera vez, por lo que a ciertos valores el servoaccionamiento de la jeringa se bloquearía para un movimiento unidireccional.

Por ejemplo, cuando se trata de la ingesta máxima de agua, el pistón debe detenerse hacia atrás, pero no debe bloquearse hacia adelante. Y viceversa, cuando se exprime toda el agua, el pistón no debe avanzar, pero sin ningún problema, ejecute el comando de retorno.

  if ((RemoteXY.button_1 == 1) && (RemoteXY.button_2 == 0) && (val_f < 100)) {
    pwm_UP = 1;
    pwm_DOWN = 0;
  }

  else if ((RemoteXY.button_1 == 0) && (RemoteXY.button_2 == 1) && (val_f > 25)) {
    pwm_UP = 0;
    pwm_DOWN = 1;
  }
  else {
    pwm_UP = 0;
    pwm_DOWN = 0;
  }

Esta es la construcción lógica al final, donde RemoteXY.button_ # son botones en la interfaz para bucear o salir a la superficie.

Además, desde la parte difícil para mí en el código, este es un filtro de buscador de rango (tomé uno de los más simples de la red), bueno, estableciendo los valores para el voltímetro. El filtro era necesario debido al modo FAST mencionado anteriormente en el telémetro, los valores de entrada aumentaron mucho y el filtro simplemente ayudó a hacer frente. Pero el voltímetro fue útil para indicar la descarga de las baterías. El Arduino tiene un pin de referencia, y si no se le aplican más de 1.1 voltios, el Arduino podrá determinar con precisión el voltaje suministrado a este pin. Convertimos 8.4 V después del divisor de voltaje a 1.1 V. Y esta conversión resultó ser inexacta, tuve que corregir experimentalmente el valor del voltaje agregando una variable al firmware.

Pruebas


Las pruebas se llevaron a cabo en una cantera abandonada con agua relativamente limpia. Para las pruebas, fue necesario reparar la cámara y ajustar el ajuste del submarino (junto con la flotabilidad neutra básica).

La primera tarea se resolvió simplemente instalando el tornillo correcto para el soporte de la cámara. Para evitar las rotaciones de la cámara, se agregó un poco de arcilla.



El recortador estaba regido por una bolsa, que resultó conveniente enganchar a la abrazadera, y la abrazadera ya se puede mover fácilmente a lo largo del submarino. Por la cantidad de nueces en la bolsa, establecimos flotabilidad neutra y luego recogimos rápidamente la posición de la abrazadera para que el submarino no se mordiera la nariz. La decisión sobre esta opción se tomó justo antes del viaje a la cantera, simplemente no quedaba tiempo para hacer un sistema de recorte automático. En teoría, es muy fácil de hacer moviendo la carga a lo largo de la varilla roscada. En el próximo submarino intentaré exactamente esta opción. Aquí, tal vez, está todo el submarino.

Grabé dos videos donde hablo con más detalle sobre la asamblea y muestro las tomas que logré filmar bajo el agua. Tener un buende ver:


Espero que el material haya sido interesante. A continuación se realizarán experimentos en la cámara de presión (para verificar la estanqueidad del aparato) y pruebas de remos bajo el agua. Sobre ellos también prepararé material en forma de artículo, pero ya con gráficos y comparaciones de varias decisiones.

All Articles