LINKDUINO: SOFTWARE PARA TELEMETRIA

.



Veamos una nueva aplicación, desarrollada en Real2Electronics, para la adquisición de datos en "tiempo real" creada para la plataforma LINKDUINO. Gracias a este software, el usuario dispone de una herramienta sencilla y básica para la adquisición y visualización de datos via serie ó ethernet, pudiendo usar conectividad WIFI para disponer de TELEMETRÍA.
Nunca fueron tan fáciles y baratas tus pruebas "Hardware-in-the-loop" gracias a LINKDUINO.


Se han utilizado los siguientes controles para la realización de esta aplicación:



Veamos una captura de pantalla para ver el aspecto final de la aplicación:




Gracias a éste programa podremos:

  • Salvar datos a CSV (para poder exportar datos a Excel, Matlab, ...)
  • Salvar gráfico como *.jpg, *.gif, ...
  • Copiar
  • Imprimir
  • Ver valores de los puntos
  • Zoom
  • Moverse por la gráfica 
  • Autoescala según se reciben datos




Por la parte Arduino, se debe enviar la información al puerto serie de la siguiente manera:
EValorX;ValorYF

siendo:


  • E: Caracter E (empiece) char(0x45)
  • Valor X del punto enviado. (float i.e. 3,5)
  • ; (Punto y coma) Usado como delimitador entre X e Y. char(0x3B)
  • Valor Y del punto enviado. (float i.e 4509,334)
  • F: Caracter F (fin) char(0x46)

Ejemplos de tramas validas.


E45,67;32,67F
E65.56;89009.56F
...


Tanto '.' como ',' son admitidos como carácter de delimitador decimal.


Quick Start Guide
1) Descargar aplicación 
2) Descargar e instalar .NET Framework 3.5. (normalmente ya lo tendrás instalado).
3) Descomprimir el fichero .rar donde quieras que resida. Ej. C:\Real2Electronics\LINKDUINO 
4) Ejecuta LINKDUINO INTERFACE
5) Elegir método de adquisición de la información mediante las pestañas del tabControl: 
     -Serial Port Config: Te permitirá visualizar la configuración existente del puerto serie, además de comenzar la comunicación, cerrarla y limpiar el buffer de los datos recibidos hasta el momento.
      Si se desea configurar los parámetros del puerto serie, vaya al menú superior y haga click sobre Config Serial Port. Esto abrirá una nueva ventana de configuración.

     -TCP/IP: Te permite configurar fácilmente la direccion IP del servidor Telnet (en nuestro caso el router Linksys, ej. 192.168.0.1), el nombre de usuario, contraseña y puerto. Además proporciona el control de conexión/desconexión y limpieza del buffer.
6) Una vez elegido el método de conexión, deberemos de pulsar Connect/Open Port, y automáticamente, la aplicación comenzará a plottear sobre el gráfico los datos adquiridos.(Cuando se realiza la conexión mediante Telnet, ésta tarda unos segundos en estar activa)

Veamos ahora un programa de ejemplo para el Arduino:

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  static float i = 0;
  static float result =0;
  result = analogRead(0);
  result = (result * 100.0) / 1023.0;
  Serial.print("E");
  Serial.print(i);
  Serial.print(";");
  Serial.print(result);
  Serial.println("F");
  i = i + 1;

}
 

Este programa simplemente lee el valor de la entrada ADC0 y nos envía mediante serie la trama:
EindiceMuestra;ValorMuestraF 
siendo ValorMuestra, el valor en tanto por cien. Si quieres enviar tiempo, recuerda la función millis de Arduino.


Veamos un video de ejemplo:























¿Necesitas un software a medida para tu aplicación? Ponte en contacto.





Aritz R












.

7 comentarios:

  1. Que tal amigos. Muchas gracias por hacer este post. Esta exelente y me ha sido de mucha ayuda para mi poryecto.

    Les queria preguntar si es posible graficar 2 o 3 graficas al mismo tiempo de 3 valores diferentes que vengan del arduino?

    Muchas gracias

    georgeisoff@hotmail.com

    ResponderEliminar
  2. Hola George,
    si que se puede, el control ZedGraph permite graficar varias cruvas, además de customizar muchisimos más aspectos relacionados con la apariencia del control y las curvas.
    Te animo a visitar su web:
    http://zedgraph.org/
    Y ver los samples que hay expuestos.
    Nosotros, por el contrario, puesto que se trataba de un artículo con fines didácticos, no continuamos el desarrollo de la aplicación más profundamente.
    En la actualidad me encuentro realizando un proyecto en el que debo graficar muchas curvas a la vez, y funciona muy bien.

    Si tienes alguna duda, no dudes en contactar.

    Un saludo,
    Aritz

    ResponderEliminar
  3. hola aritz ,mme encuentro desarrollando un dinamometro inercial,por lo tanto necesito adquirir dato de rpm del motor ,relacionarlo con tiempo osea segundos y obtener en tiempo rela una grafica de esta relacion , pretendo que estos valores se direccionen a una planilla excell donde por medio de unas formulas me calcule potencia y torque , pues la masa rotatoia es conocida por tanto f = m x a donde m es la masa conocida y a es la diferencia de velocidad del rollo en una unidad de tiempo , debo ademas obtener en la grafica los valores de un sensor que oscila entre 0 y 1 volt

    si me puedes ayudar te lo agradezco
    saludos

    jorge rodriguez juegoteka@hotmail.com

    ResponderEliminar
  4. Hello guy. Which tool have you used to create this aplication? I mean, which the programming language? thanks

    ResponderEliminar
  5. Hola!!! Felicitaciones Por El Blog. Muy Buenas Explicaciones!

    Tengo Una Duda. Estoy Trabajando Una Interfaz Gráfica Con Visual C#. Quiero Graficar Unos Datos Que La Interfaz Recibe Por Conexión USB, De Un Pic. La Recepción De Datos Ya Funciona, Pero No He Podido Hacer La Gráfica En Tiempo Real, O Conforme Van Llegando Los Datos, Es Decir Que Cuando Llegue El Primer Dato Se Haga La Gráfica Y Se Quede Así, Hasta Que Llegue El Segundo Dato Y Se Actualice O Se Vuelva A Graficar. Te Agradecería Si Me Puedes Dar Una Posible Solución.


    Necesito Documentación De ZedGraph, Vale Resaltar Que La Página http://zedgraph.org/wiki/index.php?title=Main_Page No Tiene Información Actualmente.

    Si Tienes Un Código De Ejemplo (Que Se Grafique La Hora Del Computador, O Que Se Grafique Un Dato Cada Vez Que Se Presione Un Botón), O Cualquier Cosa Que Me Pueda Ayudar, Te Lo Agradecería Mucho.

    Mi Correo Es danilo05delrio@gmail.com

    Gracias!

    ResponderEliminar
  6. Muy buen soft . Funciona en Ubuntu ?

    ResponderEliminar