Calificación:
  • 1 voto(s) - 3 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Un ROV de agua dulce
#1
Buenas tardes.
 
Pues como indica el titulo del tema, estoy metido en un proyecto desde el 2.016, que es el hacer un ROV, (vehículo dirigido remotamente), sumergible, que me lleva de cabeza, y que me consume todo el tiempo que le quiera dedicar, todavía no está acabado, pero ya funciona encima de la mesa, le quedan algunas mejoras, y por supuesto acabar el casco, pero ya parece algo, tengo gran parte del código que funciona como yo quiero, que me ha costado lo suyo, y ahora estoy barajando la posibilidad de ponerle una pantalla, en vez del indicador LCD, pero lleva lío hacer ese cambio.
Parece fácil, porque son 4 sensores y 2 motores eléctricos, pero para alguien que no tiene ni idea de electrónica, ni de programación, me ha costado mucho llegar hasta aquí solo con la ayuda de Internet, y de la pagina de
 
www.techmonkeybusiness.com/tag/rov.html
 
Todavía no es para presumir de proyecto, pero no tardare en poder decir que lo he hecho con mis propias manos y sin la ayuda directa ni la dirección de nadie, pero si con la ayuda de varios amigos de otros foros, como José Luis y Dea, de Cambatronics, y Bigbadbob, de HomeBuiltRov, aunque os digo desde ya que necesito echar mano de los conocimientos del foro, para solucionar las dudas que tengo
 
A ver si me aclaro como subir las fotos y el código.
 
Que conste que aunque me he apoyado mucho en la página de
 
www.techmonkeybusiness.com/tag/rov.html
 
El código lo he escrito yo, línea a línea, y probando conexión a conexión, basándome en el principio de prueba, error y corrección, y pinchando cable a cable en su sitio.
 
Me cuesta muchísimo tiempo avanzar lo más mínimo, como no tengo unos conocimientos iniciales de programación y electrónica, tengo que estudiarlo todo en Internet, y la mayoría de la gente publica una parte el proyecto y lo corta en la parte que más falta hace, y a la que te das cuenta, has perdido 3 horas entre lo que has leído y lo que no has podido desarrollar.
 
Estoy escribiendo una memoria del proyecto, que aun no está acabada, donde voy poniendo mis peripecias, sufrimientos y logros con el ROV, todavía no tengo claro muchas cosas, entre otras si le voy a dejar un cable de control desde el ROV a tierra, o que el cable valla desde el ROV a una bolla y hacer el control inalámbrico, si tengo claro que me tiene que mandar imágenes submarinas en tiempo real, para lo cual, ya sé que Arduino se queda corto, puede hacer fotos y guardar el video en una tarjeta, pero no puede transmitir video en tiempo real, por lo que necesitare el apoyo de una Raspberry pi 3 +, y una cámara USB, que ya he encontrado como se hace, sin tener que programar en Pithon o Raspberrian, que no tengo ni idea, con el programa VLC Media Player,(reproductor y editor de video bastante completo y sencillo) se abre una ubicación de red, que es la dirección ip de la Raspberri, y directamente te manda las imágenes al ordenador, y con ese mismo programa puedes ver las imágenes, grabar el video en el disco duro del ordenador, o donde quieras, sigo peleándome con el proyecto, llevo 4 años con él, (la verdad es que no sé cuantas horas reales le he dedicado) lo empecé en el 2016, y aun sigo investigando muchas cosas.
 
Este es el enlace al programa de video, por si le interesa a alguien
 
www.videolan.org/vlc/
 
En cuanto a la investigación del proyecto, pues ya que he conseguido que me funcione el display lcd, encontré en otro foro, unas explicaciones de como incorporar una pantalla Nextion a nuestros proyectos, y como no, pues he caído en la tentación y quiero cambiar el display verde, por una pantalla como Dios manda, con lo que significa ese cambio, hay que visionar todos los videos, estudiar los programas de ejemplo, entender la programación de la pantalla para Arduino, entender el editor de la pantalla, manejarlo mínimamente, con lo cual, este resumen de 3 líneas, se convierte en 1 año de investigación, para poder ponerlo en práctica y adaptarlo a mi proyecto, y luego que yo sea capaz de hacerlo funcionar, o llegar a algún punto donde tenga que pedir socorro en este foro.
 
Las paginas que mas me han ayudado hasta ahora para hacer el proyecto son estas:
 
Donde mejor se explica cómo hacer un ROV, con código terminado, pero los sensores son antiguos, y el código deja mucho que desear.
 
www.techmonkeybusiness.com/tag/rov.html
 
En esta página, también me han ayudado bastante.
 
http://www.homebuiltrovs.com/rovforum/vi...=18&t=1908
 
Y esta página que te explican como conectar y hacer funcionar un montón de sensores de todo tipo.
 
thecavepearlproject.org
 
Y en esta página también me han ayudado mucho.
 
https://www.cambatronics.com/foro/index....s2?start=0
 
Gracias a ellos, y a mi insistencia y cabezonería he llegado hasta donde estoy ahora, pero ninguno tenemos los suficientes conocimientos de programación como para poder continuar, me queda mucho por hacer, pero con tiempo y una caña, todo se andará.
 
Como es normal en estos casos, no tengo ninguna prisa por terminarlo, es un proyecto que me interesa hacer y terminar, pero no me dedico a esto, y conozco mis limitaciones, por lo tanto me da igual tardar en terminarlo un mes que un año, o en dos, lo que sí quiero es hacerlo bien.
Y en cuanto al dinero, pues no me sobra, si tengo que estudiar precio y prestaciones, pero me pasa como a todos los que tenemos un hobby, si contamos las horas dedicadas al proyecto, y el dinero de los componentes, sale más barato comprarse un equipo profesional bueno, que hacerlo desde cero, la diferencia es la satisfacción de poder decir que ese proyecto lo he hecho yo con mis propias manos y mis conocimientos adquiridos en el proceso.
Creo que con una pantalla Nextion de 5", me sobra pantalla para el proyecto, las de 2.4" y la de 3.5" creo que son pequeñas, tanto a prestaciones como a tamaño, y la de 7", creo que es demasiado grande
 
La pantalla que he comprado es esta
 
Nextion NX8048T050 - Pantalla Táctil LCD TFT HMI De 5.0 "
Modelo: IM150416006
 
nextion.tech/datasheets/nx8048t050/
 
www.itead.cc/nextion-nx8048t050.html
 
Ahora Nextion tiene 3 categorías de pantallas, o por lo menos eso se entiende de lo que dice la página, las Inteligentes, las mejoradas, y las básicas.
La que yo he comprado es la básica de 5".
 
Voy a intentar hacerme una pantalla donde me ponga los datos de 3 sensores DHT22, y dos SetPoin, lo que viene siendo un termostato de temperatura y humedad.
 
Teniendo en cuenta que tanto los ESC de los motores, los motores y la electrónica, están en un bote de plástico cerrado, a ser posible herméticamente, para que no entre agua de afuera en condiciones normales, por lo tanto no hay aire "nuevo" en circulación por el movimiento para enfriar los componentes del ROV, como pasa en un coche o un avión o en un dron, y que todo esto por su funcionamiento desprende calor, necesito controlar de alguna manera la temperatura interior del casco.
Aunque el casco por fuera está en contacto directo con el agua, y puede enfriar algo la estructura, la temperatura interior puede llegar a ser excesiva para los componentes electrónicos.
 
La idea es que dentro del ROV, necesito controlar la temperatura de los 2 motores de empuje y la temperatura de dentro del casco del ROV, donde va la electrónica, para que estén los 3 a una temperatura más o menos constante, con un SetPoint, y cuando se pase del umbral de temperatura, (+30 ºC), me accione un relé que encienda una boba que mande agua de un deposito, para refrigerar tanto los ESC, como los motores , a través de un circuito cerrado de gomas de silicona, y cuando baje la temperatura de los +30 ºC, se pare la bomba de agua.
De igual forma, debe haber un SetPoint, que marque la humedad por debajo del 50%, cuando la humedad sea superior al 50%, querrá decir que hay agua dentro del casco, (mal rollo), se encienda una alarma y se accione un relé que ponga en marcha una bomba de achique, para sacar el agua de dentro del casco, y la pase a un deposito que debe estar siempre vacío, para no tener problemas con la electrónica, mientras hago la maniobra de sacar el ROV del agua, y se pare la bomba de achique cuando la humedad vuelva a bajar del 50%, o la pare yo, con un interruptor manual cuando tenga el ROV en sitio seguro.
 
Creo que he puesto demasiadas letras para la primera publicación, voy a poner unas fotos para acompañar a toda esta explicacion, no son de mi modelo, si no de como deberia quedar el ROV, el .pdf de la pantalla, es diseño mio.
 
Un saludo a tod@s
 
 
PD
No os hagáis ilusiones, los programas no funcionan, ya os contare cuales son los problemas.


Archivos adjuntos Miniatura(s)
           

.pdf   01 Prueba Pantalla.pdf (Tamaño: 388.93 KB / Descargas: 4)
.pdf   02 Segunda publicacion.pdf (Tamaño: 110.47 KB / Descargas: 5)
Citar
#2
Después de pelearme durante años con los códigos, he conseguido hacer dos programas que casi funcionan como yo quiero, el Arduino que está dentro del ROV, al que llamo Esclavo, se comunica y controla todos los sensores que tiene pinchados, y me manda los datos tanto al ordenador, en el Monitor serie, como al otro Arduino, que es el que está en el puesto de control, al que he llamado Maestro.
En el Monitor Serie del programa Maestro, puedo ver los datos de los sensores, y como cambian los valores.
Hasta ahora tengo pinchados y funcionando en el proyecto lo siguiente:
 
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, ya que 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.

Así que por fin os adjunto lo que todos estabais esperando con ansia viva, los famosos códigos.

Os advierto que no funcionan como deberían, pero ya les queda menos.

Y a partir de ahora, os voy a freír a preguntas, porque tengo varias dudas.

Por ejemplo la duda principal es ¿Por qué no funciona el dichoso mando de la PS2?

Estoy usando 2 Arduinos Mega 2560, el código aunque son muchas líneas, casi no ocupa espacio de almacenamiento, ni memoria dinámica, ya que al usar la macro " F ", se reduce considerablemente el espacio ocupado por los Serial.print

Y he seguido los pasos de Bill Porter, con sus explicaciones de como conectar el mando, es el creador de la librería PS2, y de la librería EasyTransfer.
Esta es la página de Bill Porter, donde se explica el funcionamiento del mando de PS2

http://www.billporter.info/2010/06/05/pl...rary-v1-0/

Esta es la página de Github, con la última versión de la librería

https://github.com/madsci1016/Arduino-PS2X

Y este es el enlace a la página, donde se explica el conexionado del mando a un Arduino Mega 2560

https://github.com/Lynxmotion/Arduino-PS2X

Con toda esta información, quiere alguien explicarme porque no soy capaz de hacer funcionar el mando.

Ya os he comentado que llevo años con este proyecto, por lo tanto información no me falta, me falta solo un pequeño empujón en los programas para hacerlos funcionar.


Archivos adjuntos
.rar   01 Librerias.rar (Tamaño: 729.83 KB / Descargas: 1)
.rar   52_29_05_2020.rar (Tamaño: 16.37 KB / Descargas: 1)
Citar