Un ROV de agua dulce, con mando de PS2

Si te gustan los modelos Radio Control RC este es tu foro.
Responder
asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 2:34 pm

Buenos días a todos.

Lo primero, comentaros que llevo bastante tiempo utilizando el foro como fuente de consulta, y daros la enhorabuena, por el foro y todas las publicaciones que hay en él.

En consecuencia, os debo una publicación con mis progresos, por eso me atrevo a abrir este tema.

Quiero dejar claro, que no soy ningún experto constructor de barcos, ni ningún experto ni en electrónica, ni en programación de Arduino, solo un aficionado con muchas ganas de hacer un proyecto, que llevo un montón de tiempo investigando y progresando muy despacio, con una relación inversa entre tiempo de investigación y el progreso, lo cual quiere decir que tengo que investigar y aprender mucho, para dar el más mínimo paso.

Bueno, pues no me lío más y vamos al grano.

Quiero presentaros un proyecto, en el que estoy liado desde el 2.016, y que aun no está acabado aun, porque tengo bastantes problemas con la programación de los Arduinos, que controlan el vehículo, pero sigo adelante con el proyecto.

En alguna ocasión me habéis leído comentar que estoy haciendo un ROV, Vehículo Sumergible Operado Remotamente, algo parecido a un submarino de investigaciones subacuáticas.

Al final debe quedar algo así.

Foto de mi compañero de otro foro, llamado JMEnriquez, del Club de RC Cordoba.

Pero ahora mismo lo que tengo es esto.

Fotos mías del ROV

Pero por desgracia, lo que no se ve es lo que más tiempo y trabajo me está llevando, que es la programación de los Arduinos de control, y de esta parte no puedo poner fotos, es un trabajo que tengo que hacer en el ordenador, investigando en Internet.

Os cuento lo que tengo hasta ahora:
La idea es que quiero construir un vehículo que se desplace por el agua tanto por la superficie como por dentro del agua, vamos que navegue y se sumerja, me muestre las imágenes de vídeo en tiempo real, y me muestre los datos de algunos sensores que me indiquen la temperatura interior de ROV, la temperatura exterior, la presión interna y externa, y con unas formulas matemáticas, calcular la profundidad a la que se encuentra el ROV, la inclinación por medio de un giroscopio, y por supuesto que me encienda unos focos, para poder ver bajo el agua.
Adjuntos
Foto de JMEnriquez, del RC Cordoba
Foto de JMEnriquez, del RC Cordoba
4k6trd.jpg (30.74 KiB) Visto 1512 veces
Foto de mi casco, en la actualidad
Foto de mi casco, en la actualidad
08.jpg (38.36 KiB) Visto 1512 veces



Avatar de Usuario
carlosys
Consejo Foro Modelismo Naval
Consejo Foro Modelismo Naval
Mensajes: 1792
Registrado: Dom Ago 29, 2010 7:37 am
Ubicación: Tarragona
Contactar:

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por carlosys » Sab Abr 25, 2020 2:47 pm

Hola
Este proyecto tiene una pinta muy buena.
Respecto a Arduino, puedes poner los códigos de los programas o subir en formato comprimido lo que necesites si no pasa de 500Kb.
Así que, con total libertad puedes publicar la parte del código y si es necesario, recibir ayuda (si es que sabemos jaja)

Lo dicho. Proyecto interesante y diferente.

Saludos



asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 2:55 pm

El ROV, lo estoy manejando con un sistema distinto al que estamos acostumbrados en el RC, al ser un ROV preparado para sumergirse a 100 metros de profundidad, no lo puedo controlar por radiofrecuencia, puesto que las ondas de radiofrecuencia, experimentan una serie de problemas al cambiar de medio (aire/agua) que no se pueden solucionar fácilmente, reflexión, refracción, y perdidas. Por lo que yo estoy utilizando la transmisión por cable, entre el puesto de control, y el vehículo.

Foto del SEA PERCH

En el puesto de control, tengo un Arduino Mega 2560, al que tengo conectado un mando de PS2, (Play Station 2), y algunos LED, para que me indiquen que estoy pulsando los distintos botones del mando, de momento el Arduino, esta pinchado al ordenador, para poder controlarlo, pero la intención es ponerle una pantalla táctil Nextion de 5 pulgadas HMI, que me muestre todos los datos de los sensores del ROV.

Alguno se preguntara, ¿Por qué?, he elegido este sistema, por dos motivos.

El primero porque en el mando tengo 3 bloques de 4 botones cada uno, por lo tanto 12 botones, mas 2 joystick, con 2 ejes y un botón al presionarlos, lo que me hacen un total de 16 canales de una emisora normal de RC.

El segundo, y principal, es porque realmente no puedo utilizar una emisora de RC, por lo que ya os he comentado de los problemas de las ondas radioeléctricas, al cambiar de medio (aire/agua).

Un saludo a todos.
Foto del SeaPerch, o percha de mar
Foto del SeaPerch, o percha de mar
con cable.jpg (59.96 KiB) Visto 1505 veces
Última edición por asesorplaza1 el Dom Abr 26, 2020 2:06 pm, editado 1 vez en total.



asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 2:57 pm

Por desgracia el código es bastante mas grande de 500KB.
Ahora mismo, tengo 600 líneas en el código al que llamo "Maestro", y 700 líneas en el código al que llamo "Esclavo".
Voy a probar a ver si lo puedo adjuntar como código, pero creo que no, lo voy a tener que adjuntar como fichero comprimido.

Un saludo a todos.



Avatar de Usuario
JuanP
PayPal
PayPal
Mensajes: 76
Registrado: Jue May 26, 2016 9:10 pm
Ubicación: Sevilla

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por JuanP » Sab Abr 25, 2020 4:41 pm

¿600 lineas de código en uno y 700 líneas en otro?
Impresionante.
Como te he dicho, le he estado echando un ojo a la programación con arduino y no es cosa facil.
Haber escrito todas esas lineas es una obra faraónica.



Avatar de Usuario
carlosys
Consejo Foro Modelismo Naval
Consejo Foro Modelismo Naval
Mensajes: 1792
Registrado: Dom Ago 29, 2010 7:37 am
Ubicación: Tarragona
Contactar:

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por carlosys » Sab Abr 25, 2020 5:08 pm

asesorplaza1 escribió:
Sab Abr 25, 2020 2:57 pm
Por desgracia el código es bastante mas grande de 500KB.
Ahora mismo, tengo 600 líneas en el código al que llamo "Maestro", y 700 líneas en el código al que llamo "Esclavo".
Voy a probar a ver si lo puedo adjuntar como código, pero creo que no, lo voy a tener que adjuntar como fichero comprimido.

Un saludo a todos.
OK. Si tienes problemas de tamaño, pásamelo por mail y ya lo subo yo y lo enlazo con tu hilo.
600 líneas de código aunque puedan parecer muchas, no son muchas :? aunque tampoco son pocas.

No utilizas ninguna librería para gestionar determinados módulos?

Saludos



asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 5:33 pm

Creo que antes de publicar el código, que todavía no funciona del todo correctamente, voy a seguir explicando el proyecto y poco a poco os iré mostrando mis progresos y atascos.

Sigo con la explicación

Aunque ya os he comentado la idea básica, hora voy a profundizar un poco más en todos las partes del ROV.

Puesto de Control

Os presento a los protagonistas de este proceso, un Arduino Mega 2560, un mando de PS2, una pantalla Nextion de 5”, y en su momento ya os explicare para que necesitaré un ordenador portátil.

Foto del Arduino Mega 2560
El Arduino Mega 2560, es el de en medio
El Arduino Mega 2560, es el de en medio
05.jpg (88.17 KiB) Visto 1495 veces
Foto del Mando PS2
Mando de PS2, con todas sus posibilidades
Mando de PS2, con todas sus posibilidades
ps2_controller_h6WUIp9OsW.jpg (74.11 KiB) Visto 1495 veces
Foto de la Nextion
Esta es la pantalla Nextion
Esta es la pantalla Nextion
Nextion-5-0-HMI-Intelligent.jpg (31.48 KiB) Visto 1495 veces
La idea es la siguiente, con el mando de la PS2, muevo el ROV, y controlo todas las funciones que quiero que haga, como si fuese una emisora de RC de 16 canales, (de momento me sobran botones, pero ya que están en su momento les iré encontrando su utilidad particular), con el joystick o palo derecho, controlo el avance o retroceso, y la dirección, como si fuese un coche de RC, hacia adelante, hacia a tras, hacia la derecha o hacia la izquierda.

Esto lo consigo con el empuje de los motores, con el mismo principio de movimiento de un tanque militar RC, hacia adelante y hacia atrás, los dos motores giran en la misma dirección, los dos motores giran en el sentido de las agujas del reloj, el ROV avanza, con los dos motores girando en sentido contrario a las agujas del reloj, el ROV retrocede, cuando quiero que gire hacia la derecha o hacia la izquierda, el motor derecho gira en un sentido y el motor izquierdo en el sentido contrario, provocando que las fuerzas ejercidas por los motores hagan girar el ROV sobre su eje central, esto creo que se entiende bien, es bastante fácil, e incluso se utiliza como sistema de dirección en algunos barcos.

Todavía tengo que estudiar, si este empuje es suficiente para maniobrar el ROV, hacia la derecha y hacia la izquierda, o voy a tener que implementar algún tipo de timón, que me ayude en la maniobra, hasta que no lo pruebe en el agua no lo sabré con certeza, por lo que he podido ver en otros proyectos, se considera suficiente, en mi proyecto ya os digo que no lo tengo claro todavía.

Con los botones R1 y R2, controlo que el ROV suba o baje en profundidad del agua, estos botones, controlan un servo y dos motores fijos de apoyo, que dependiendo de qué botón presione, hacen que el servo y los motores de apoyo, giren en un sentido, y si presiono el otro botón el servo y los motores de apoyo, giraran en sentido contrario, y mediante un eje de acero, al que le he acoplado un sistema de balanceo, el servo, me inclina los tubos de los motores, haciendo que estos se inclinen sobre su eje central, y así, empujen el agua según me convenga, cuando el servo está en posición neutral o cero, el agua es empujada por las hélices, en horizontal al eje del barco, y el ROV, navega por encima del agua, si modifico la orientación del tubo, y subo la parte de atrás, donde está la hélice, por el principio de acción/reacción, el agua es empujada hacia arriba, por lo que el ROV, tiende a ganar en profundidad y se sumerge, si modifico el ángulo de inclinación haciendo bajar la hélice, con las mismas, el agua es empujada hacia abajo, y el ROV sube a superficie.

Para este proceso, no he querido utilizar las cámaras inundables estilo submarino, por considerar este aspecto, excesivamente complicado, lo he simplificado bastante, utilizando la fuerza bruta de los motores, cuando se realiza el proceso de inmersión, para la emersión, o subida a superficie, entre la flotabilidad positiva del propio diseño del ROV, y un poco de fuerza de los motores, consigo que el ROV suba a superficie.
Esto lo podéis ver en cualquier vídeo del Youtube, donde haya cualquier ROV en acción.
Por ejemplo en este

https://youtu.be/ObF2wAm2TjE
Última edición por asesorplaza1 el Dom Abr 26, 2020 2:06 pm, editado 1 vez en total.



asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 6:16 pm

El ordenador portátil lo quiero para ver las imágenes del ROV, en tiempo real, y os cuento como.

Después de mucho leer en internet y observar otros proyectos, y estudiar el Arduino Mega 2560 en profundidad, resulta que no se le pueden pedir peras al olmo, con esto me refiero que cada cosa esta diseñada para una función, y Arduino en definitiva, no sirve para procesamiento de imágenes, se queda corto de recursos, no puede gestionar una cámara de video, si puede hacer fotos, guardarlas en una tarjeta, y luego esas fotos las puedes ver en tu casa, pero no puedes ver las imágenes de video en tiempo real.

Arduino, sirve para gestionar sensores de todo tipo, directamente puede gestionar motores de baja potencia, 3 V, 5 V, y con ayuda mediante una shield o sombreo motores más grandes 12 V, 20 V, y también puede gestionar motores grandes, cuando digo grandes, me refiero a lo más grande que os podáis imaginar, pero mediante un relé, que encienda el motor, Arduino gestiona el relé a 5 V, y el relé enciende el motor de 220 V, o 380 V, dependiendo de las características del relé.

Y aun así cuando le pinchas varios sensores, no tiene voltaje ni amperaje, para moverlos, necesita el apoyo de la corriente externa, (una pila o batería), para alimentar los sensores.

Entonces es cuando entra en escena la competencia, la Raspberry Pi 3 +, un mini ordenador, al que pinchándole un teclado, un ratón y un monitor, tienes un montón de posibilidades. Pero ¿cuál es el problema?, que utilizan dos lenguajes de programación distintos y que no tienen nada que ver el uno con el otro, Arduino se programa en un derivado de C++, (del que estoy aprendiendo algo), y Raspberry, en un derivado de Python, que se llama Raspbian (del que no tengo ni idea).

https://www.raspberrypi.org/

Por lo tanto tienes que saber los dos lenguajes de programación para sacar algo en claro, o investigar cómo se controla Arduino con una Raspberry, o como se controla una Rasberry con un Arduino, y a eso se le llama, Ingeniería de Programación, carrera que no he estudiado

De todas formas no se puede utilizar una Raspberry solo para el proyecto, porque a la Raspberry, no es fácil de hacer que controle sensores, ni se le pueden pinchar tantos sensores como tú quieras, volvemos a lo mismo, cada uno de estos controladores está diseñado para una función distinta, solución, utilizar los dos controladores y que cada uno realice una función distinta.

Por lo tanto la Raspberry, la estoy utilizando para que me mande las imágenes de la cámara de video en tiempo real, directamente al ordenador, de una manera muy sencilla.

Siguiendo los pasos del inicio de Raspberry, se arranca la Raspberry, se configura una cámara USB, y se consigue la dirección IP de la Raspberry, con un programa de video que se llama VideoLand VLC.

https://www.videolan.org/

Que a lo mejor a alguno os suena, se le pone que reproduzca las imágenes de la dirección IP de la Raspberry, y ya estás viendo las imágenes de video en tiempo real en el ordenador.

Esto es un resumen rápido de como se hace, a mi me ha costado 6 meses de investigación conseguirlo.



asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 7:21 pm

Sobre las líneas del código

Si a vosotros os parece
“impresionante”, a uno
Y al otro, “No son muchas aunque tampoco son pocas”

Os garantizo que para mi esta siendo un trabajo tedioso donde los haya, no solo por escribir el número de líneas, si no porque hay que hacerlo en un lenguaje de programación, (al que no estoy acostumbrado), yo escribo en Español, y mal, y encima el programa tiene que compilar, (órdenes concretas y correctas que cuando se pasan a leguaje binario (maquina ordenador), ceros y unos, tengan sentido para el controlador), y no es fácil, de los 4 años que llevo con el proyecto, mas de 3, son con el dichoso programa.

Sigo explicando el funcionamiento del ROV

En el interior de ROV, hay otro Arduino Mega 2560, que es al que llamo “ Esclavo “, este es el que hace gran parte del trabajo, recibe las ordenes del mando de la PS2, que le manda el otro Arduino, (el que está en el puesto de control, al que llamo “ Maestro “), este Arduino, es el que hace trabajar a los sensores para que consigan los datos, y manda esos datos al Arduino “ Maestro “, también hace trabajar al servo, hace trabajar a los motores, controla el relé que enciende y apaga los focos externos de iluminación, etc.

NO COMPRÉIS NADA DE ESTO, PUESTO QUE TODAVÍA ESTOY EN PRUEBAS, Y NO SE SI SERÁN LOS SENSORES DEFINITIVOS.


Al final de la publicación, pondré la lista definitiva de componentes que he utilizado, y las paginas donde se pueden conseguir, ya os adelanto que la mayoría de las cosas las he comprado en Aliexpres

En este Arduino, tengo pinchados:

Un giroscopio GY MPU 6050, este es un giroscopio digital de 6 ejes, para saber en qué posición se encuentra el ROV, y a demás me indica la temperatura en el interior del casco del ROV.

Un sensor de temperatura DS18B20, para que me indique la temperatura del agua en el exterior.

Tres sensores de temperatura y humedad DHT22, para que me indiquen la temperatura y la humedad dentro del casco y de los tubos de los motores.

Dos sensores de presión HK3025 5MP, uno para que me indique la presión interior del ROV, y otro para que me indique la presión exterior del ROV, y así saber a qué profundidad se encuentra el ROV.

Un relé, para encender los dos focos de iluminación exterior a 12 V, como ya he comentado, el Arduino, no puede controlar estos focos solo, necesita un poco de ayuda.

De momento 2 motores sin escobillas con sus ESC, serán 4, (2 para el avance, y 2 de apoyo a la inmersión), pero para las pruebas en cima de la mesa con 2 me vale de momento.

Un servo, para como ya os he explicado, controlar el ascenso y descenso del ROV, dentro del agua.

Un sensor de infrarrojos E18D80NK, para detectar si hay algún objeto que interrumpa el paso del ROV, o que se pueda colisionar con el objeto en cuestión.

9 luces LED de colores, de momento para que me indiquen el correcto funcionamiento de la recepción de datos y el funcionamiento de los periféricos pinchados

Con el programa que tengo desarrollado ahora mismo, ya puedo ver el funcionamiento de los sensores, tanto en el Arduino “ Esclavo “, como en el Arduino “Maestro “, en el Monitor Serie de los dos Arduinos, puedo ver los datos de cada sensor, y como cambian los valores del giroscopio cuando lo muevo, como cambian los valores de temperatura y humedad, según las horas del día, o si cojo con la mano el DS18B20, como le afecta mi temperatura corporal, y como si interrumpo la luz del sensor de infrarrojos me marca el cambio de ese estado.

Un saludo.



asesorplaza1
PayPal
PayPal
Mensajes: 152
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

Re: Un ROV de agua dulce, con mando de PS2

Mensaje por asesorplaza1 » Sab Abr 25, 2020 7:47 pm

Y ahora “viene cuando la matan”, o la pregunta del millón.

¿Cómo se produce la comunicación entre los Arduinos, si no puedo utilizar una emisora de RC?

Pues de la única manera que me queda, por un cable, mejor dicho, por una manguera de cables.

Para la comunicación estoy utilizando de momento encima de la mesa, 3 cables de puente del tipo dupont, que es el que se utiliza en las placas de prueba sin soldadura de Arduino.

Pero la conexión final será con un cable CAT6, que es el cable que se utiliza en las instalaciones de las comunicaciones de internet, para conectar por ejemplo el router con el ordenador, o para llevar las señales del router a otra habitación.

En este cable tengo que hacer un injerto, y dividir los pares de cables en 2 grupos, un grupo para la comunicación entre Arduinos, para la que solo me hacen falta 3 cables, uno para emitir, uno para recibir, y otro para conectar las masas, o negativos de los dos Arduinos, y el resto de cables los utilizare para que la Raspberry, me mande las imágenes al ordenador.

Foto de la división de los cables

A demás de esto, me he fabricado una manguera, en la que he unido, el cable CAT6, un par de cables, de los utilizados en electrónica, y un cable de acero.

Y os preguntareis, ¿para qué quiere ese invento con tanto cable?, pues muy sencillo, el cable CAT6, porque es imprescindible para la comunicación entre los dispositivos, el cable de corriente, en previsión de una posible ampliación y tener que conectar la alimentación a través de una fuente externa, y el cable de acero, porque en caso de emergencia, prefiero tirar del cable de acero, que de los otros cables, que en definitiva son de plástico y se pueden romper.

Y hasta aquí la explicación más o menos, de cómo quiero que funcione el proyecto, espero que me haya explicado lo suficiente y hayáis cogido la idea.

Seguro que se olvida algo, pero creo que esta todo.

Un saludo.
Adjuntos
Esto es algo parecido a lo que os decía, del cable de Internet
Esto es algo parecido a lo que os decía, del cable de Internet
division cable ethernet.gif (18.15 KiB) Visto 1485 veces
Este es el cable de apoyo a la alimentación
Este es el cable de apoyo a la alimentación
3.jpg (74.71 KiB) Visto 1482 veces
Este es el cable de Internet
Este es el cable de Internet
5.jpg (35.51 KiB) Visto 1482 veces
Características del cable de Internet
Características del cable de Internet
6 reducida.jpg (45.46 KiB) Visto 1482 veces
Cable de acero
Cable de acero
7.jpg (43.57 KiB) Visto 1482 veces
Todo junto
Todo junto
10.jpg (37.5 KiB) Visto 1482 veces
Liando así hasta completar los cien metros
Liando así hasta completar los cien metros
11.jpg (40 KiB) Visto 1482 veces



Responder