Autor Tema: programa para graficar señales [pedido]  (Leído 7571 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
programa para graficar señales [pedido]
« en: 18 de Mayo de 2009, 23:49:35 »
Buenas amigos!!!
Alguien conoce algun programa simple para graficar señales en tiempo real q entren por el puerto serie (o usb cdc)?? preferentemente en linux, pero si no no importa.
Se que podria usar matlab o labview, pero son programas pesadisimos y q requieren algo de conocimiento, el cual no tengo :(
Lo necesito para ver la señal de un acelerometro.
Muchas gracias!!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: programa para graficar señales [pedido]
« Respuesta #1 en: 19 de Mayo de 2009, 11:39:33 »
En linux lo más facil ( aunque trabajoso), es hacerte la aplicación vos. Lo podes hacer en los lenguajes tipicos de linux como C ó Perl

En c una idea que se me ocurre, es algo asi:

Código: C
  1. main()
  2. {
  3. fd=open("\dev\tty",RD_ONLY);
  4.  
  5. do{
  6.         n=read(fd,bufer_serie,1);
  7.        
  8.         graficar(bufer_serie);
  9.  
  10.         }while(*bufer_serie!=EOF);
  11.  
  12.  
  13. }

fijate que es sencillo leer el puerto serie, ahora lo más dificil viene a la hora de graficar. Una función sencilla que se me ocurre, aunque no gráfica, imprime en la consola el valor del puerto seria asi:

Código: C
  1. void graficar(char *bufer_serie)
  2. {
  3. printf("%x ",bufer_serie[0]);
  4. }
  5.  

Si vos lo queres graficar en tiempo real, si o si, podes usar x-cursore para graficar en una consola. Este tema lo explican en la guia GULP de linux para C que se consigue en internet.
Otra opción aunque no es en tiempo real seria mandar todo el bufer a un archivo y luego graficarlo con openoffice planilla de calculos, con el diagrama de barras por ej.

Algo mucho más facil e inmediato es bajarte el free-serial-port-monitor que se consigue en internet pero no es para linux (que yo sepa). Esta aplicación no grafica pero te muestra los datos que ingresan por el puerto serie en hexa ( algo parecido a la idea de la función que te pase de linux). Si no es en tiempo real, podes graficarlas con Excel.

Lo más profesional, como vos decis, es  Matlab. Seguramente hay otras aplicaciones comerciales que hagan lo mismo pero es mejor aprender Matlab ( no es tan dificil como parece) y tine aplicaciones muy diversas en ingenieria.

Nota: El programa que te pase es solo una idea, ni siquiera probe si compila( de hecho no compila porque no puse ni los includes, ni la iniciación de variables), pero te sirve para seguir la idea.
« Última modificación: 19 de Mayo de 2009, 11:53:22 por alexysar »

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: programa para graficar señales [pedido]
« Respuesta #2 en: 19 de Mayo de 2009, 12:44:53 »
Gracias alexysar!!!
Tendria q ver si puedo hacer una llamada a gnuplot para q me grafique los datos q voy recolectando... pero dudo q pueda hacerlo en tiempo real ya q le tengo q pasar como parametro una funcion o un archivo entero.
Me parece q lo mas facil por ahora es entrarle al matlab. Pasa q el profe q nos dio eso el año pasado no se lucio mucho y bueh... pero no es nada q un buen tutorial o guia no pueda resolver jaja.
saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: programa para graficar señales [pedido]
« Respuesta #3 en: 19 de Mayo de 2009, 13:27:27 »
 :?....
Esta bueno utilizar Matlab si vas a procesar los datos en la pc si vos querés visualizarlo a pesar de ser muy fácil de utilizar yo optaría por hacer mi propia aplicación.
yo lo he realizado con builder (borland c++) para eso utilice
http://www.activexperts.com/activcomport/
pegale una hojeada  ;-)
LAS MALVINAS SON ARGENTINAS!

Desconectado IAO

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 694
Re: programa para graficar señales [pedido]
« Respuesta #4 en: 24 de Mayo de 2009, 08:44:54 »
Hola....

Mira yo conseguí uno que se llama DynaPlot3, te digo que funciona bien
pero hay que saber como llamar sus funciones que me enredó un poco.

Es un .ocx, trae ejemplos VB6, .Net, C#, Delphi, VC6 y otros.....

Espero te sirva....
"No hay caminos para lograr la PAZ. La PAZ es el camino"... (Mahatma Gandhi).
Mentes Superiores discuten Ideas, Proyectos. Mentes Promedio discuten Acontecimientos y Sucesos. Mentes Pobres discuten sobre Personas.

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: programa para graficar señales [pedido]
« Respuesta #5 en: 31 de Mayo de 2012, 21:04:08 »
Hola Gera! Conseguiste programa para graficar las señales del puerto serie?

Yo consegui un programita de parallax que grafica en una planillla de excel, pero no logro que me funcione en windows 7.

Necesitaría usar un programita para ajustar las mediciones que estoy haciendo con un giróscopo y un acelerómetro.


Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1705
Re: programa para graficar señales [pedido]
« Respuesta #6 en: 31 de Mayo de 2012, 22:26:56 »
"Nada es imposible, no si puedes imaginarlo"

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: programa para graficar señales [pedido]
« Respuesta #7 en: 31 de Mayo de 2012, 23:25:21 »
Marito, al final me hice yo mismo un programita en processing. Tengo dos, uno que grafica la curva en funcion del tiempo, y otro que grafica la inclinacion mostrando unos rectangulos.
Si sabes usar processing, puedo mandarte los sketchs.
Saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1705
Re: programa para graficar señales [pedido]
« Respuesta #8 en: 31 de Mayo de 2012, 23:29:48 »
Con permiso de Gera, te pongo el programa que hizo ;-)
http://www.todopic.com.ar/foros/index.php?topic=35513.msg295919#msg295919.

creo que te serviria para probar tu filtrado del angulo
"Nada es imposible, no si puedes imaginarlo"

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: programa para graficar señales [pedido]
« Respuesta #9 en: 01 de Junio de 2012, 09:15:01 »
Rivale, Gera muchas gracias por sus respuestas!

Rivale, en el octoplus se pueden graficar flotantes? porque estaba leyendo que recibe datos de 8 bits.

Gera, estoy buscando información a ver si me pongo a aprender processing. De igual manera tengo que focalizar en la medición con el giro y el acelerómetro, pero voy a ir viendo algo

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1705
Re: programa para graficar señales [pedido]
« Respuesta #10 en: 01 de Junio de 2012, 11:40:49 »
solo acepta variables de 8 bits, pero quizas podrias escalar tu angulo para que 0 sea el angulo menor y 255 sea el angulo mayor
"Nada es imposible, no si puedes imaginarlo"

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: programa para graficar señales [pedido]
« Respuesta #11 en: 01 de Junio de 2012, 11:57:27 »
creo que perdería resolución.

Estoy viendo el otro link con el terminal echo en labview, creo que ese permite flotantes y voy a poder hacer un ajuste más fino. Usaste ese programita?

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: programa para graficar señales [pedido]
« Respuesta #12 en: 01 de Junio de 2012, 12:21:27 »
Labview es una muy buena opcion. Yo opte por processing porque soy usuario de linux.
Processing es muy facil de usar, si sabes Java (o C en su defecto) te va a resultar muy familiar el lenguaje. Te podes bajar el IDE/compilador de processing.org. No hace falta instalacion ni nada. Esta es una version vieja del programa que uso para calibrar los sensores:

Recibe tres numeros (flotantes o enteros) separados por coma con un salto de linea al final. Tambien tengo un programa que grafica las 3 curvas en el tiempo.

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: programa para graficar señales [pedido]
« Respuesta #13 en: 01 de Junio de 2012, 12:41:04 »
Buenísimo esa aplicación! Voy a descargar el processing.

Me podrías enviar la aplicación? Así empiezo con esa a modo de ejemplo

P.D. que señal usaste para el robot??? La azul!!!???

Desconectado marito

  • PIC16
  • ***
  • Mensajes: 217
Re: programa para graficar señales [pedido]
« Respuesta #14 en: 02 de Junio de 2012, 13:02:23 »
Hola Gera!

Ya estoy usando el processing. Lo que quiero hacer es recibir señales del puerto serie. El tipo de datos es flotante, pero para comenzar estoy mandando un entero. Leyendo el dato desde un terminal, el dato llega de manera correcta, pero en el processing no puedo leer el dato. El código de mi sketch es el que sigue:

Código: [Seleccionar]
import processing.serial.*;
Serial puerto;
int dato;

void setup() {
   puerto = new Serial(this, Serial.list()[0], 56000);
   
}

void serialEvent(Serial puerto)
{
 dato = puerto.read();
 }



void draw(){
 
println(dato);

}

En el terminal recibo el dato 171, pero en el processing leo el dato 32. Cual puede ser mi problema?