This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 2 voto(s) - 3.5 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: 17)
.pdf   02 Segunda publicacion.pdf (Tamaño: 110.47 KB / Descargas: 40)
  Responder
#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: 25)
.rar   52_29_05_2020.rar (Tamaño: 16.37 KB / Descargas: 28)
  Responder
#3
Buenas, muy guay el proyecto que tienes montado, mucho trabajo por delante Guiño

Sobre la duda del mando, tienes que ser mucho más específico con tus dudas y problemas... Qué significan en tus comentarios del código "Pero el mando sigue sin funcionar como es debido".

Te llega algún dato del mando? Hay algún botón/eje que te funcione bien? Ninguno?

a) Si no te llega nada, has probado a hacer el código más sencillo que puedas para ver si recibes datos?
b) Si te llega algo, qué llega? es correcto?

Ayudaría también un esquema de la conexión de las piezas involucradas.

Yo montaría un circuito solo para probar el mando y cuando eso funcione ya lo integrarás en el código entero.

Un saludo y ánimo con el proyecto!
Aprendiz de maker, youtuber, blogger y en general cosas que teminen en -er.
Youtube: https://www.youtube.com/channel/UCnRUp7y...7LrEfnxGA/
Web: www.laboratoriogluon.com

  Responder
#4
Buenas tardes
Gracias Lab.Gluon por interesarte por el proyecto y por tus comentarios.
Como pongo en las observaciones, no soy capaz de hacer que el Arduino que ejecuta el programa llamado Esclavo, que es el que va dentro del ROV, y que es el que debe controlar los movimientos del vehículo que le envíe el mando de PS2, reciba ninguna orden del mando de PS2.
Tengo hecho un programa sencillo, para transmitir solo una orden para encender un LED, cada vez que se pulsa un botón, y eso si consigo que funcione, lo que no me funciona es el mando al incorporarlo al resto del programa.
Entonces no sé qué es lo que puede fallar, si la parte del código que controla el mando, o la parte del código de transmitir las ordenes del mando, o si puede haber algún conflicto de comunicación entre los sensores y el mando.
Supongo que debe ser alguna tontería, alguna línea mal escrita, alguna línea que falte, pero no consigo encontrar el fallo.
En mi publicación de Github en esta pagina
 
https://github.com/asesorplaza1/Programa...-evoluci-n
 
Tengo un archivo de Fritzting, donde están las conexiones de todo el proyecto
 
Un saludo.
  Responder
#5
Teniendo un ejemplo que funciona de la comunicación (el programa sencillo que comentas con el que enciendes un LED), yo partiría de ese, e iría añadiendo el resto de componentes poco a poco, hasta ver cuando falla. Es difícil que alguien te ayude en un código tan grande...

Suerte!
Aprendiz de maker, youtuber, blogger y en general cosas que teminen en -er.
Youtube: https://www.youtube.com/channel/UCnRUp7y...7LrEfnxGA/
Web: www.laboratoriogluon.com

  Responder
#6
Buenas tardes
Gracias por tu interés, entiendo que el problema principal es ese, que cualquiera que vea el código con 500 líneas, se asusta y no sigue leyendo, y lo veo normal, solo alguien que entienda de programación, y que quiera ayudarme, (cosa que veo difícil, por no decir improbable), puede sacarme de este embrollo.
Ya he escrito el código varias veces teniendo varios puntos de partida, he empezado por la transmisión del mando, y he ido agregando sensores, hasta que ha fallado estrepitosamente. He empezado por la transmisión de sensores, hasta llegar al mando, con el mismo resultado. No ha sido por no intentarlo, pero no encuentro la fórmula mágica para que funcione todo el proyecto.
Un saludo.
  Responder
#7
Buenas,

Si has partido del ejemplo sencillo que funciona, y has ido añadiendo sensores hasta que ha fallado, la pregunta es sencilla, ¿Cuál es la diferencia entre el código que funciona y el que no? ahí está el problema. Imagina que tienes el código básico que funciona y:
1) Añades el sensor A, y sigue funcionando
2) Añades el sensor B, y sigue funcionando
2) Añades el sensor C, y deja de funcionar!

Entonces, coges el código original y solo pones el C. Ve haciendo las cosas paso a paso, hasta que deje de funcionar, y cuando deje de funcionar, sabrás cuál es el cambio que provoca el fallo. En ese momento es cuando, si no sabes qué está pasando o porque no funciona, deberías ponerlo en el foro y así te podamos ayudar Sonrisa
Aprendiz de maker, youtuber, blogger y en general cosas que teminen en -er.
Youtube: https://www.youtube.com/channel/UCnRUp7y...7LrEfnxGA/
Web: www.laboratoriogluon.com

  Responder
#8
Gracias por tu interés.
Volveré a intentarlo subiendo al foro los programas poco a poco, a ver si encontramos donde esta el error, ahora mismo lo que tengo claro es que al cambiar la librería servo por la librería ESC, para el control de los motores sin escobillas, en ese paso es cuando se me ha ido todo el programa al garete, puede que ese sea el error, pero no o tengo claro.
A si repasamos todo el funcionamiento de las diferentes partes del proyecto.
Un saludo.
  Responder
#9
Adjunto la versión 63 del programa del ROV, aun no funciona correctamente, pero ya parece algo.


Archivos adjuntos
.rar   63_13_02_2021.rar (Tamaño: 10.65 KB / Descargas: 16)
  Responder
#10
Buenas noches

Que lleve un tiempo sin publicar, no quiere decir que no haya hecho cosas, sigo peleándome con el programa, y avanzando lo que puedo, hasta que me atasco en algo como es el caso.

Os cuento mis problemas.

He intentado mejorar el programa usando "pestañas" para que el programa sea un poco mas legible, y hasta aquí mas o menos bien.

Pero el problema que tengo es al intentar medir los amperios del circuito con un ACS712. El dispositivo solo me funciona bien, el problema es cuando lo incorporo al programa del ROV, como siempre, y en este caso es que "pasa de mi como de oír llover", el programa compila, pero no hace absolutamente nada de la parte del ACS712, ni si quiera me manda al Serie del IDE la línea de "corriente", y por supuesto no manda al puerto Serie ningún dato de Amperios, pero si me imprime el resto de valores de los otros sensores.

Y eso es lo que me extraña, que no imprima ni si quiera la línea Serial.print("Corriente");

A ver si puedo adjuntar el programa de alguna manera, vale me deja adjuntarlo como .zip, adjunto también la carpeta de las librerías usadas en el programa.

He probado con varios programas para el ACS712, y no hace nada con ninguno, por supuesto que he cambiado también de sensor y no consigo hacerlo funcionar.

Se supone que el programa que tengo ahora, debe hacer un promedio de medidas e imprimir ese resultado, no las lecturas continuas.

Un saludo a todos y GRACIAS de antemano.


Archivos adjuntos
.zip   02_Esclavo_04_09_2021.zip (Tamaño: 8.63 KB / Descargas: 13)
.zip   01 Librerias.zip (Tamaño: 435.59 KB / Descargas: 2)
  Responder
#11
El programa original de ACS712 que estoy utilizando es de esta página

https://naylampmechatronics.com/blog/48_...cs712.html

Pero ya he comentado que da igual que programa utilice, al incorporarlo al programa del ROV deja de funcionar.

He probado también con estos otros y no soy capaz de hacerlo funcionar al incorporarlo al programa del ROV

https://www.luisllamas.es/arduino-intens...co-acs712/

https://desensores.com/sensores-arduino/...arduino-2/

https://www.diarioelectronicohoy.com/blo...nte-acs712

https://www.engineersgarage.com/acs712-c...h-arduino/

https://microcontrollerslab.com/acs712-c...g-arduino/

https://www.instructables.com/DIY-Voltme...rocessing/

https://arduparatodos.blogspot.com/2017/...duino.html

https://www.electronicshub.org/interfaci...h-arduino/

Como veréis no es por falta de información ni de ejemplos. Con todos estos programas por separado, puedo tomar las medidas de Amperios, pero al incluirlo en el programa del ROV, se van al garete, y lo que me extraña es que con todos se produce la misma reacción, NINGUNA.

Un saludo.
  Responder
#12
Qué tal asesorplaza1!

Por lo que veo en tú código, en el ino del esclavo no llamas a la función

Código:
void loop ()
{

  ETin.receiveData();    // Recibe el mensaje del Arduino Maestro

  {
    loop_ACS712_5V;       <<<---- FALTA el ()
    loop_CamServo();        // Bloque de trabajo del servo
    loop_DHT22();          // Bloque de trabajo de los sensores de temperatura y humedad DHT22
    loop_ESC();            // Bloque de trabajo de los ESC de los motores
    loop_MPU6050();        // Bloque de trabajo del Giroscopio
    loop_SensorE18D80NK();  // Bloque de trabajo del sensor de infrarrojos
    loop_Luces();          // Bloque de trabajo de los focos
    loop_SKU237545_I();    // Bloque de trabajo del sensor de presión interno
    loop_SKU237545_E();    // Bloque de trabajo del sensor de presión externo
    loop_DS18B20();        // Bloque de trabajo del sensor de temperatura DS18B20
    loop_V5();              // Bloque de trabajo para medir el voltaje de la batería de 5V
    loop_V12();            // Bloque de trabajo para medir el voltaje de la batería de 12V
  }

  for (int i = 0; i < 5; i++) {// Esta función, cambia el estado de envio a recepción cada 5 segundos
    ETout.sendData();      // Manda el mensaje al puerto serie para el Arduino del ROV
  }

  delay (1000);
}

Espero que este sea el problema Gran sonrisa

Un saludo
Aprendiz de maker, youtuber, blogger y en general cosas que teminen en -er.
Youtube: https://www.youtube.com/channel/UCnRUp7y...7LrEfnxGA/
Web: www.laboratoriogluon.com

  Responder
#13
Muchas gracias Lab.Gluon, por tu observación .

Llega el momento en que después de hacer lo más difícil, no veo una tontería semejante, ya me extrañaba que no imprimiera ni siquiera la frase.

No te haces una idea las vueltas que le he dado al dichoso programa.

Muchas gracias.

Un saludo.
  Responder
#14
Buenas tardes.

Tras pelearme mucho con el dichoso código, he conseguido hacerlo funcionar, ahora lo he separado en "pestañas" y es mas fácil de leer, no lo adjunto como código, porque  las pestañas no se adjuntan en su sitio, así es que os adjunto el enlace a la pagina de Github.

https://github.com/asesorplaza1/Programa...-evolucion

Tengo que arreglar el archivo "léeme" para actualizarlo, pero los programas ya funcionan.

Ahora me queda ajustar los sensores para que me hagan una lectura real, tanto de la batería como de las distancias, peor ya funciona casi como debe, y conectar y soldar todo en una placa de electrónica, pero por lo menos ya me he desatascado, y eso me da ánimos para seguir con el proyecto.

Un saludo.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  [Worklog] Rov submarino biketrial981 52 18,817 03-07-2019, 09:46 PM
Último mensaje: Alexato