Un ROV de agua dulce, con mando de PS2

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

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

Mensaje por asesorplaza1 »

Buenas noches.

Ya me extrañaba a mí que estuviera todo tan perfecto, como para que no tuvierais que preguntar.

La librería del GY-MPU6050, pertenece a un paquetón de librerías de sensores, que utilizan el protocolo I2C, que puedes encontrar en Github, pongo el enlace.

https://github.com/jrowberg/i2cdevlib

Las libreáis de Github, se descargan pulsando el botón verde que pone “CLONAR O DESCARGAR”, se abre otro botón de dialogo que dice, “DESCARGAR ZIP”, y te guardas el fichero con la extensión “ .zip “, en la carpeta del ordenador que quieras, pero que sepas cual es, para luego poder volver a ella, para descomprimirla.

Las descargas de Github, son gratis, y no te tienes que registrar, aunque te solicitan una colaboración económica para el mantenimiento del sistema.

Para descargar los ficheros, NO ES OBLIGATORIO, pagar nada, cuando le das al botón de “descargar zip”, se inicia la descarga del fichero automáticamente, solo te pregunta donde quieres guardar el fichero.

Para descomprimir el fichero, tienes una opción de “descomprimir aquí”, o “elegir carpeta” porque si no, se va a descomprimir en una carpeta por defecto que no vas a saber luego cual es, y te vas a volver loco buscando la dichosa carpeta.

Cuando descomprimas el fichero, se va a generar una carpeta llamada “i2cdevlib-master”, dentro de esa carpeta, se generan un montón de subcarpetas, hay una que pone “Arduino”, y dentro de esa carpeta, tienes las librerías de un montón de sensores que funcionan con el protocolo i2c, hay una carpeta que pone MPU6050, esta es la que tienes que copiar dentro de la carpeta de tu ordenador, donde están las librerías de Arduino.

Normalmente está en

C:\ Usuarios\ (tu nombre de Administrador)\ Documentos \ Arduino \ libraries

También la puedes encontrar en

Mi equipo, en el desplegable de la izquierda, Documentos, Arduino, libraries

Y ya tienes la librería a disposición del IDE de Arduino, para poder utilizarla.

Como la pagina de Github es gratis y de uso público para la comunidad Arduino, por eso, no pongo el pie de página, que he puesto otras veces, cuando hago referencia a otras páginas de internet.

Un saludo
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas noches.

Permitirme que vuelva a hablaros, (escribiros), sobre los sensores de infrarrojos, os he presentado el E18-D80NK, que es un sensor sencillo, que puede sacarnos de más de un apuro, pero se queda corto en cuanto a prestaciones, puesto que con él no se pueden medir distancias.

Ahora os voy a comentar las propiedades de otro sensor de infrarrojos, el SN-IRS-01, tampoco es que sea una maravilla, pero quiero que sepáis, que con los sensores infrarrojos SI se pueden medir distancias.

Os pongo el enlace de la página donde describen con todo detalle las funciones de este sensor, para que voy a escribir yo lo mismo que ya ha escrito otro antes.

https://tutorial.cytron.io/2015/04/30/sn-irs-01-work/

Ya os he dicho, que no me gusta poner paginas de tiendas, pero es que hay algunas que merece la pena leer, por la cantidad de cosas que explican.

Este tipo de sensor se puede conseguir mucho más barato en otras páginas de Internet, pero no explican tan bien su funcionamiento

Si os sigue interesando el tema de los sensores de infrarrojos, hay otro mucho más completo, y a su vez más caro, que también os voy a poner la pagina donde explican cómo funciona.

Este ya es un sensor de los buenos, con unas prestaciones mucho mayor que los otros, pero es igual de fácil de controlar, se llama GP2Y0A710K0F.

Y a demás estoy deseando que me legue para poder probarlo, ya he probado los demás, y no me terminan de convencer para el proyecto, pero este seguro que se quedará dentro de mi ROV.

https://www.makerguides.com/sharp-gp2y0 ... -tutorial/

En esta página se explica que es y cómo funciona un sensor de infrarrojos, y como controlar el sensor.

A demás también hace referencia al sensor de ultrasonidos HC-SR04, que ya hemos visto, y a su hermano el JSN-SR04T, que se utiliza en exteriores.

No me canso de repetirlo, pero sí de escribirlo.

Que quede claro que yo no tengo nada que ver con la página, ni con ninguno de los productos a los que se hace referencia en su página, así como con ninguna otra página de Internet, a la que pueda hacer referencia en esta publicación. Solamente la considero como una buena pagina de referencia y consulta, para resolver muchas dudas que nos puedan surgir.

Un saludo
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas noches, otra vez.

Otro elemento que resulta muy vistoso en nuestros modelos es una Bomba de agua, se puede utilizar como elemento decorativo, por ejemplo, un barco que tire un chorro de agua a una distancia considerable, o también se puede utilizar para mantener la temperatura interior de los componentes electrónicos de nuestros modelos.

Que si, que no estoy tan loco como parece.

Si utilizas motores y ESC o BEC, preparados para ser refrigerados por agua, puedes hacerte 2 tipos de circuitos, uno sencillo o pasivo, que es el que utilizan las lanchas rápidas de RC, que tienen 2 tomas de agua a la parte de popa, a los lados del timón, y el movimiento del barco genera una diferencia de presión entre el agua que pretende entrar por la toma de agua, y el agua que está dentro del circuito, esta diferencia de presión, genera una corriente de agua que pasa por unos tubos de silicona, y enfría los motores y los ESC.

Esto se utiliza en barcos cortos y rápidos donde el circuito es corto.

Pero si el barco es más grande, esa diferencia de presión es más difícil de conseguir y la corriente de agua generada, no es capaz de moverse por todo el circuito, y entonces es donde entra nuestra protagonista.

Al mismo circuito se le añade una bomba de agua, y esta se encarga de hacer circular el agua por todo el circuito de gomas de silicona.

Adjunto una foto del circuito, con la bomba de agua.

Implementar esto con Arduino es bastante fácil, ya os he comentado como se controla un motor con Arduino, pues una bomba de agua no deja de ser un motor, por lo tanto se controla igual.

Como las bombas de agua, para que tengan una mínima fuerza son de 12V, y Arduino no puede mover directamente esa corriente, se utiliza la ayuda o bien un relé, o bien un controlador de motores como puede ser un L298, como ya hemos visto en comentarios anteriores.

Os pongo la pagina de Don Luis Llamas, ( a este paso ya lo podemos llamar Luis, o Luisito), donde nos explica cómo poner en marcha una bomba de agua, que este funcionando un tiempo, y se pare.

https://www.luisllamas.es/bomba-de-agua-con-arduino/

Este tipo de circuitos lo podéis complicar y automatizar, todo lo que queráis, yo por ejemplo, tengo asociado un sensor de temperatura, para que cuando el Arduino Esclavo, reciba que ese sensor detecta una temperatura de 45 º C, dispare automáticamente un relé, que me encienda la bomba de agua, para enfriar el circuito, y a su vez, cuando el sensor me marque 50ºC, me envíe una señal de alarma al Arduino Maestro, y encienda una alarma, cuando la temperatura pasa de 50ºC.

Por lo tanto lo tengo automatizado en los dos Arduinos, el Esclavo me enciende la bomba de agua, cuando llegue a los 45ºC, y yo todavía no lo sé, y cuando la temperatura pasa de 50ºC, y el circuito no es capaz de bajar la temperatura, me manda un mensaje al maestro de que hay un problema de temperatura, encendiendo una alarma, que esta si la veo yo, y entonces ya sé que hay un problema de temperatura en el ROV.

Espero no haber sido demasiado plasta con las explicaciones, pero creo que es un componente digno de una extensa explicación.

Y como siempre, Bla, bla, bla la página y sus anuncios, bla, bla bla.

Un saludo.
Adjuntos
01R.jpg
01R.jpg (112.85 KiB) Visto 1886 veces
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas tardes

Ahora quiero presentaros un sensor, que muchos no le veréis la utilidad, pero si hay alguien que se quiera hacer un barco a vapor, o un submarino, le resultara imprescindible, si no este modelo concreto, alguno parecido, y como ya sabéis, es fácil que el control con Arduino, si no es exactamente igual, será muy parecido.

Me refiero al Sensor de Presión SKU237545, que resulta que no es más que el sensor que se utiliza en automoción para regular presiones de líquidos.

Hay infinidad de sensores de presión para Arduino, pero no están preparados, como este, para estar en contacto con líquidos, solo tenéis que poner el buscador “Arduino sensor presión”, y os aparecerán miles de páginas, o si lo pones en el buscador de una tienda, como pueda ser Aliexpres.com, y te saldrán cientos de sensores de distintos tipos, colores y precios.

En esta página explican muy bien que es, como funciona, y como se controla, el sensor de presión SKU237545, tiene otro nombre por ser de otra marca, porque SKU 237545, es el nombre genérico del tipo de sensor,

https://wiki.dfrobot.com/Gravity__Water ... U__SEN0257

Os digo lo de siempre, esta página tiene información para parar un carro, y podéis estar leyendo meses y no acabarla, por lo tanto centraros en el sensor, y luego, ya volveréis a ella para entreteneros.

Pongo la coletilla de siempre

No me canso de repetirlo

Que quede claro que yo no tengo nada que ver con la página, ni con ninguno de los productos a los que se hace referencia en su página, así como con ninguna otra página de Internet, a la que pueda hacer referencia en esta publicación. Solamente la considero como una buena pagina de referencia y consulta, para resolver muchas dudas que nos puedan surgir.

Un saludo.
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas noches.

Ahora vamos a ver un elemento algo más vistoso que lo que hemos visto hasta ahora, la pantalla, o display LCD.

Con este tipo de periférico de Arduino, podemos ver como Arduino se comunica con nosotros y nos dice que es lo que está haciendo.

Esta es la manera más complicada de conectar la pantalla LCD, y la más difícil de programar, pero es la que nos enseñan la primera.

Os parecerá un follón tremendo de cables, pero ya veréis que no es para tanto.

https://www.luisllamas.es/arduino-lcd-hitachi-hd44780/

En esta otra página, veremos la manera más fácil de conectar la pantalla, solo con 4 cables contados literalmente, y bastante más fácil de programar, pero como siempre, necesitamos la ayuda de un dispositivo, que nos haga el trabajo duro y complicado, para que nos sea más fácil trabajar con la pantalla.

https://www.luisllamas.es/arduino-lcd-i2c/

Y si, como ya os habéis dado cuenta, volvemos a la página de Luis Llamas, para ver como se controlan estas pantallas, ya os dije que la visitaríamos con frecuencia.

Pongo la coletilla de siempre

No me canso de repetirlo

Que quede claro que yo no tengo nada que ver con la página, ni con ninguno de los productos a los que se hace referencia en su página, así como con ninguna otra página de Internet, a la que pueda hacer referencia en esta publicación. Solamente la considero como una buena pagina de referencia y consulta, para resolver muchas dudas que nos puedan surgir.

Un saludo.
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas noches.

Ahora voy a presentaros algo que más de uno estaba esperando con ansia y una cierta emoción, el mando de la Play Station 2, mando PS2, para los amigos, (y enemigos).

Es un controlador barato, y que nos abre un abanico de posibilidades tremendo, siempre y cuando seamos capaces de hacerlo funcionar como es debido.

El funcionamiento en si no es complicado, el problema es adaptarlo a nuestros proyectos, lo digo porque yo llevo más de un año peleándome con él, para hacerlo funcionar en mi proyecto, pero como ya habéis visto, mi código no es moco de pavo, y se las trae.

A demás no se conecta igual en un Arduino Uno, que en un Arduino Mega 2560, para complicar más las cosas.

Vamos a ver como se conecta en un Arduino Uno, primero.

Para este proyecto, demostrar que sois un poco hábiles y manitas, y en vez de cortar el cable, que es lo único que no me gusta de la pagina, insertarle unos cables tipo dupont, los que se usan como puente para hacer las conexiones en la placa sin soldadura, y conseguiréis un trabajo más fino.

http://electrotuto.com/2014/04/24/manet ... controler/

Como no, en esta presentación no podía faltar el amigo Luis Llamas, pero con un mando inalámbrico.

https://www.luisllamas.es/controla-ardu ... de-la-ps2/

En esta otra pagina veremos cómo se conecta de otra manera, el mando inalámbrico.

https://www.prometec.net/controlador-ps2/

Y ahora que ya sabéis cómo funciona el mando, os pongo un enlace a Github, sin muchas explicaciones, pero se conecta el mando a un Arduino Mega 2560

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

En esta otra página, se conecta el mando inalámbrico, mediante una shield, o sombrero de Arduino, que sirve para controlar directamente muchas otras cosas más

https://www.fambach.net/arduino-ps2-con ... rundlagen/

Os pongo unas fotos para que os valláis haciendo una idea de a que nos enfrentamos.


Pongo la coletilla de siempre

No me canso de repetirlo

Que quede claro que yo no tengo nada que ver con la página, ni con ninguno de los productos a los que se hace referencia en su página, así como con ninguna otra página de Internet, a la que pueda hacer referencia en esta publicación. Solamente la considero como una buena pagina de referencia y consulta, para resolver muchas dudas que nos puedan surgir.

Un saludo.
Adjuntos
Conexionado de cables
Conexionado de cables
ARDUINO_CONTROLE-PS2-1.png (43.77 KiB) Visto 1854 veces
Disposición y nombre de los botones
Disposición y nombre de los botones
ps2_controller_h6WUIp9OsW.jpg (74.11 KiB) Visto 1854 veces
Disposición y nombre de los botones
Disposición y nombre de los botones
PS2_Controller_PSX_Lib_Labels.jpg (28.41 KiB) Visto 1854 veces
Para no cortar el cable
Para no cortar el cable
PS2-Connections 1.jpg (73.21 KiB) Visto 1848 veces
Última edición por asesorplaza1 el Sab May 09, 2020 1:18 am, editado 1 vez en total.
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas noches.

Como podéis ver, os estoy haciendo la presentación de cada uno de los sensores y periféricos para Arduino, por separado, esto es como si fuera un Cocido Madrileño, o un Pote Montañés, que tienen un montón de ingredientes, y que hay que irlos preparando de uno en uno, para que luego al juntarlos, que no mezclarlos, cada uno de su sabor al plato final. Pero hay que saber cómo utilizarlos por separado para que quede un plato exquisito.

Un saludo.
Avatar de Usuario
carlosys
Administrador Web
Administrador Web
Mensajes: 2017
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 »

Hi
Muchas gracias por tu dedicación a este hilo.
Como entenderás, poco hay que aportar, solo leer y aprender.
Supongo que si no hay otros compañeros realizando un montaje similar, poco pueden aportar. Solo como digo, leer y aprender.

Sigue así. A mi me interesa.

Saludos y gracias
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenos días.

Gracias por los comentarios.

Como ya os he explicado, lo que pretendo es daros a conocer el entorno Arduino, y que le perdáis el miedo a utilizarlo en vuestros modelos, lo mismo que yo lo estoy utilizando en mi proyecto.

Aunque son dispositivos que están enfocados a la robótica, se puede aplicar en cualquier tipo de modelos, los compañeros que hacen drones, lo están utilizando para todo, para el control de vuelo, la transmisión de FPV, el control de los modelos como si fuesen emisoras, etc.

Lo único que debemos hacer, es ampliar un poco el punto de vista, y encontrar las cosas en común que unen el modelismo en todos sus aspectos, es como si por ejemplo, algo que se utilice en la producción de un coche de la marca SEAT, no se pueda utilizar en un coche de la marca AUDI, simplemente porque no son exactamente iguales.

Estamos de acuerdo de que cada marca tiene sus diferencias, pero los dos, no dejan de ser coches, por lo tanto lo que se pueda utilizar en una marca en concreto, también se puede utilizar en otro tipo de modelo, simplemente adaptándolo un poco a las necesidades de cada uno.

Y en cuanto a los aportes, no os preocupéis, que en cuanto retome la construcción del casco, os va a tocar a más de uno aportar lo que se le ocurra, o sepa.

De momento lo único que quiero saber es que sea un tema interesante, para cualquiera de todos vosotros, con la única intención de daros a conocer Arduino, y que alguno, implante algo de lo aquí descrito, en sus modelos, por supuesto, que si le parece bien, nunca como obligación.

Un saludo.
Avatar de Usuario
tsanshon
Colaborador
Colaborador
Mensajes: 169
Registrado: Mié Jul 29, 2009 1:36 am
Ubicación: Bilbao

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

Mensaje por tsanshon »

Hola asesorplaza1.
Finalmente he podido descomprimir los códigos fuente en windows y los he revisado.
En mi opinión, no hay una sola forma buena de programar, de hecho cada persona tiene un estilo propio que no tiene que ser ni mejor ni peor. Por lo que intentaré explicar como haría yo aquellas cosa que me llamen la atención. El código es bastante legible y veo que has seguido el estilo que recomienda Arduino así que es un buen punto de partida.

Una de las cosas que he visto y que por lo que comentas en post anteriores no te funciona bien es la comunicación.
Voy a dar un poco de contexto:
El bucle loop() se esta ejecutando continuamente una vez arrancado el microcontrolador, empieza por la primera linea y va realizando las tareas que le manda el código que hemos escrito hasta llegar al final y comienza de nuevo. Dependiendo del tamaño del código y de la velocidad del microcontrolador esto se repite miles de veces por segundo.
La función delay() interrumpe la ejecución del código por un determinado periodo de tiempo (es como si le damos al pause).
La función while() Interrumpe la ejecución del código hasta que se cumple la condición que hemos puesto entre paréntesis (otro pause).
Los puertos serial tienen un buffer donde se van acumulando los datos que reciben, si la cantidad de datos es mayor que el tamaño del buffer se bloquean.

Este es el código relevante dentro de loop():
maestro
474 ETout.sendData();
476 delay (200);
// Recibe el mensaje al puerto serie para el Arduino del ROV
479 while (!ETin.receiveData());
619 delay (1000);

esclavo
334 while (!ETin.receiveData());
711 ETout.sendData // Esta dentro de la función loop_SKU237545_E()
460 delay(200);


La secuencia de el código seria:
El maestro envía un mensaje (L 474). Se queda en pause 200ms (L 476). Pause hasta recibir datos del esclavo y pause de 1000ms. El loop() se ejecuta completo una vez cada 1.2 segundos y algunas milésimas.
El esclavo esta en pause hasta que recibe un mensaje (L334). envía un mensaje y se queda en pause 200ms (L 460). Como el maestro envía un mensaje cada 1.2s, el loop() del esclavo se ejecuta completo cada 1.4s mas algunas milésimas.
Como resultado tanto el esclavo como el maestro están en pause el 99.99% del tiempo.

Yo utilizaría la función millis() en vez de delay() para aquellas partes del código que quiero que se ejecuten cada cierto tiempo y no bloquear la ejecución del resto del código.
Tambien sustituiria
while (!ETin.receiveData()); por if(ETin.receiveData()) { código para procesar el mensaje ; }
De esta forma el código solo se ejecuta cuando hay un mensaje y se comprueba si hay menaje cada pocos milisegundos de forma que evitamos que el buffer se llene.

Te recomiendo que leas el libro Programación en C++ del enlace.
https://es.wikibooks.org/wiki/Programac ... cci%C3%B3n

Te adjunto dos pantallazos para que veas el mismo código con Arduino-Ide y con Platformio-Ide.
I
I
Ide-Arduino.png (137.98 KiB) Visto 1838 veces
Ide-Platformio.png
Ide-Platformio.png (378.19 KiB) Visto 1838 veces
Un saludo.
Alberto.
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas tardes.

Muchas gracias Alberto, por tus recomendaciones.

Voy a hacer el cambio que me recomiendas y a leer el libro, así es que ya tengo trabajo para unos días.

Muchas gracias, un saludo.
Avatar de Usuario
tsanshon
Colaborador
Colaborador
Mensajes: 169
Registrado: Mié Jul 29, 2009 1:36 am
Ubicación: Bilbao

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

Mensaje por tsanshon »

Hola.

Se por propia experiencia que pasar de un Ide a otro da vértigo así que voy a citar las principales Ventajas y desventajas que tiene Platformio-Ide respecto a Arduino-Ide

Ventajas:
Actualmente soporta 807 controladores de diferentes fabricantes.
Dispone de diferentes entornos de trabajo que se adaptan a los diferentes tipos de controladores.
Completa automáticamente el código en C/C++ que vamos escribiendo.
El addon Linter identifica las líneas de código con errores y da un mensaje descriptivo.
Dispone de un gestor de librerías con mas funciones que el de Arduino.
Monitor de puerto serie. Permite conectar varios dispositivos y tener un monitor serie para cada uno funcionando de forma simultánea.
Se puede tener control de las versiones del código con Git.

Desventajas:
La instalación y configuración inicial es mas compleja.
No tiene serial plotter.
Si queremos utilizar el control de versiones hay que aprender Git (que tiene lo suyo).

Otra ventaja de utilizar Platfformio-ide es que es solamente uno de los diversos paquetes que se pueden instalar en Atom, Dispone de paquetes para los principales lenguajes de programación (C/C++, Python, Java, Html...), de forma que aprendemos a utilizar un entorno de programación profesional que se puede adaptar para trabajar con diferentes lenguajes.
Importante: Atom y Platformio-Ide son software opensource y multiplataforma (Linux, OS X, windows...).

Dejo un par de enlaces con información de como instalar y configurar Platformio-Ide
https://docs.platformio.org/en/latest/i ... /atom.html
https://www.luisllamas.es/programar-ard ... ormio-ide/

Como se puede ver soy bastante fan.
Te animo a que le dediques una tarde a instalarlo y trastear un poco con el.



Actualización: Recientemente he tenido problemas con Platformio-ide corriendo sobre Atom, algunas cosas han dejado de funcionar tras la última actualización (principios de junio del 2020). En la Web de Platformio-ide recomiendan instalarlo sobre Visual Studio Code.

https://platformio.org/platformio-ide



Un saludo.
Alberto
Última edición por tsanshon el Dom Jun 14, 2020 6:48 pm, editado 1 vez en total.
Avatar de Usuario
carlosys
Administrador Web
Administrador Web
Mensajes: 2017
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 »

Ya puestos a potenciar este estupendo hilo, comentar que yo suelo trabajar con arduino pero para entornos digamos "industriales". Suelo usarlos como PLC's y uno de los problemas que casi siempre me encuentro es el tema del "delay".
Para muchos programas que dependen de entradas digitales, la función Delay() solventa las pausas o temporizaciones, pero el problema es que "para" el proceso de la CPU.
Para evitarlo suelo usar la función Millis(), pero el control de variables con dicha función es un poco "abstracto".

Como soléis solventar estás situaciones? A nivel de control del barco, no es necesario algún delay para control de alguna función?

Gracias
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenos días.

Gracias por los comentarios.

Para Carlosys.

Siento no poder aportarte mas de lo que ya sabemos, o se usa "delay ();", opción "A", o se usa "millis();" opción "B", en este momento no dispongo de opción "C".

Para Tsanshon

Me he instalado el Platformio-ide, con todos sus componentes, casi una hora de instalación, pero con eso ya contaba, también me ha instalado Python 2.7

Estoy enredando con el programa, he trasladado el programa de Arduino a Platformio, me ha importado las librerías usadas desde el IDE Arduino, consigo verlo en la pantalla, consigo que compile, veo el monitor serie con la lista de sensores y sus valores, pero no consigo que me aporte mas de lo que ya sabia, que el programa compila y el mando no funciona, pero no me dice mas opciones, ni mejoras, o si me falta alguna línea del programa, a lo mejor yo estaba esperando demasiado de el programa en cuestión.

Por ejemplo, no me da opciones de mejora en las ordenes, como por ejemplo me dijiste tu de cambiar
Tambien sustituiria
while (!ETin.receiveData()); por if(ETin.receiveData()) { código para procesar el mensaje ; }
¿Como se consigue eso?, que el programa me de opciones de mejora, y no las tenga que poner yo, estudiando programación y leyendo muchos códigos.

Un saludo.
asesorplaza1
Colaborador
Colaborador
Mensajes: 209
Registrado: Jue Ene 24, 2019 6:51 am
Ubicación: Cuenca

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

Mensaje por asesorplaza1 »

Buenas tardes

Mientras soluciono mis problemas existenciales con el programa de Arduino para mi ROV, voy a seguir comentándoos aspectos interesantes del entorno Arduino.

Como ya no me quedan sensores que enseñaros, por supuesto que de los que he usado en mi proyecto, porque hay infinidad de sensores para Arduino, pero como esto no es un curso de informática, ni de Arduino, si no que es una exposición de mi proyecto, vamos a dar un salto en las posibilidades de Arduino.

Ahora quiero que os hagáis una pregunta.

¿Qué pasa si quiero utilizar dos Arduinos a la vez, y que hagan cosas?, por ejemplo que uno mande una orden y el otro la ejecute.

En esta respuesta, voy a complicaros la existencia casi hasta el extremo, comentando como se pueden comunicar 2 Arduinos.

Más que nada por aquellos que estáis pensando que valla rollo tiene el tío que no hace nada más que enseñarnos sensores que ya conocemos, y en definitiva solo estamos haciendo poco más que encender un LED, con programas que solo tienen 4 líneas.

También tenéis que comprender, que no he querido asustaros con sensores, ni programas abrumadores, para que no salgáis corriendo, pensando que esto es poco menos que imposible, para cualquiera que no tenga una Ingeniería Computacional.

Y cualquiera que tenga conocimientos de programación dirá, valla tontería, no está comentando nada nuevo.

Ya os he dicho varias veces que no pretendo dar ningún curso de Arduino, ni de programación, solo daros a conocer las posibilidades de Arduino, aplicado a nuestros modelos, mejor dicho, a mi modelo en construcción de ROV, y si alguien puede implementar, aunque solo sea uno de los sensores que os he explicado, me daré por satisfecho.

Bueno pues vamos al lio, como no visitaremos la pagina de Don Luis Llamas, para que nos explique unos conceptos básicos, y luego, ya iremos retorciendo la cosa un poco

https://www.luisllamas.es/arduino-puerto-serie/

Una vez que sabemos que es un puerto Serie y como funciona vamos a ver cómo se pueden comunicar 2 Arduinos.

De momento vamos a ver la manera más fácil de comunicar dos Arduinos, a través de cables. (Aunque de fácil no tiene nada, ya lo veréis). Alguno pensareis, que valla atraso, ponerle un cable a mi barco que lo controlo a 100 metros de la orilla sin que haya nada entre el barco y yo. Si tenéis razón, pero no se puede correr sin saber andar, por eso primero veremos la comunicación por cable, y luego pasaremos a la comunicación inalámbrica.

Esta es la página culpable de que me haya metido en el follón de hacer un ROV

http://www.techmonkeybusiness.com/commu ... erial.html

Tiene muchísimas cosas más, pero de momento no os distraigáis y centrémonos en la comunicación.

Aquí, lo complica un poquito más.

http://www.techmonkeybusiness.com/multi ... ervos.html

En esta página se explica cómo comunicar 2 Arduinos y mandar datos de un Arduino a otro, de una manera fácil de entender, aunque tiene su miga la cosa.

http://www.zonnepanelen.wouterlood.com/ ... unication/

Y en esta página también se explica la comunicación Serie.

https://www.aranacorp.com/en/communicate-with-arduino/

He puesto un montón de páginas porque, aunque en todas se explica lo mismo, cada uno lo hace de una manera diferente, y a lo mejor, lo que se explica en una página os suena a Chino, y en la otra se entiende mejor

Lo que pretendo es que aprendáis el concepto, de cómo se comunican los Arduinos, y luego ya veremos cómo se puede complicar la cosa más aun.

No me canso de repetirlo

Que quede claro que yo no tengo nada que ver con la página, ni con ninguno de los productos a los que se hace referencia en su página, así como con ninguna otra página de Internet, a la que pueda hacer referencia en esta publicación. Solamente la considero como una buena pagina de referencia y consulta, para resolver muchas dudas que nos puedan surgir.

Un saludo.
Responder