• Welcome to LusoRobótica - Robótica em Português.
 

Gerador de graficos por Porta Serie

Started by Marvin, 26 de June de 2013, 16:34

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Marvin

Boa tarde,

Todos em alguma altura precisamos de gerar graficos para ver o comportamente em tempo real de alguns sensores ou até de funções.



Criei uma aplicação (windows apenas) com o intuito de facilitar essa visualização.

Basicamente, basta enviar uma string no formato CSV (elementos separados por virgula) para uma porta de serie e configurar na aplicação qual o porto, baud rate, formato, min, max e a escala de tempo.

Pode-se inclusive gravar a imagem do grafico e recolher os dados que ficam na caixa de texto a direita.

Para definir os eixos basta escrever o formato do CSV na seguinte forma: <indice_do_valor1>|<sensor1>,<indice_valor2>|<sensor2>...

Por exemplo:

os dados enviados são de um pitch e roll vem com o seguinte formato (pitch,roll) e o max e min são 180 e 0 respectivamente.

exemplo do output:
180,180
110,150
134,100
120,90

exemplo da string de formato:
0|pitch,1|roll

exemplo do grafico (os valores são outros):



Podem fazer download da aplicação aqui: https://sourceforge.net/projects/dtserialchart/files/latest/download

Podem ver o codigo fonte aqui: https://github.com/Dronetech/DTSerialChart

Podem ver mais informações e especificações aqui: http://blog.dronetech.eu/dronetech-serial-visualizer/

Espero que vos seja util.

Alguma duvida ou sugestão de funcionalidade avisem.
Dronetech BlogThe Scientist and the Geek

tarquinio

Porreiro é algo que de vez em quando dá jeito :)

maurosmartins

Viva, ainda não experimentei, mas desde Ja parabéns pela aplicaçao e por Teres partilhado! cumprimentos, mauro

Njay


Sérgio_Sena

Ehs o maior pah!
Excelente partilha aqui para o forum, de certeza que vai ajudar muita gente.
Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram

metRo_

boa ideia :)
Entre cada série de valores, basta enviar o caracter new line?

Marvin

Quote from: metRo_ on 27 de June de 2013, 15:42
boa ideia :)
Entre cada série de valores, basta enviar o caracter new line?

Exacto. 

Embora se der erro tambem se pode colocar o carriage return para ser mais completo. \r\n no caso do C#.
Dronetech BlogThe Scientist and the Geek

pmj_pedro

vai ter utilidade quando for medir a capacidade de uma celula de litihum ion
e posso assim grafico com V(t) com uma descarga de 1Amp

Marvin

Quote from: pmj_pedro on 27 de June de 2013, 22:17
vai ter utilidade quando for medir a capacidade de uma celula de litihum ion
e posso assim grafico com V(t) com uma descarga de 1Amp

Sim, esta aplicação foi desenhada mesmo para esse tipo de implementação. Espero que funcione bem :)

Aconselho a colocar um ScaleX elevado para prevenir o grafico de fazer loop antes da descarga completa.


Dronetech BlogThe Scientist and the Geek


Marvin

Quote from: msr on 27 de June de 2013, 23:35
Não querendo de todo tirar-te o mérito, deixo mais duas sugestões de aplicações idênticas:
http://www.x-io.co.uk/serial-oscilloscope/
http://kst-plot.kde.org/

Não as conhecia, a 2ª tem analise e tudo, mto bom.

Quando precisei não encontrei nenhuma e foi mais rapido desenvolver uma aplicação do que continuar a procura. :D

Obrigado!
Dronetech BlogThe Scientist and the Geek

metRo_

Quote from: Marvin on 28 de June de 2013, 00:57
Quote from: msr on 27 de June de 2013, 23:35
Não querendo de todo tirar-te o mérito, deixo mais duas sugestões de aplicações idênticas:
http://www.x-io.co.uk/serial-oscilloscope/
http://kst-plot.kde.org/

Não as conhecia, a 2ª tem analise e tudo, mto bom.

Quando precisei não encontrei nenhuma e foi mais rapido desenvolver uma aplicação do que continuar a procura. :D

Obrigado!

O 2º é feito em Qt. Ia-te perguntar se não querias fazer em Qt, assim conseguia-se fazer multi-plataforma e até podia dar uma ajuda a adicionar funcionalidades :)

pmj_pedro

Quote from: Marvin on 27 de June de 2013, 22:42
Quote from: pmj_pedro on 27 de June de 2013, 22:17
vai ter utilidade quando for medir a capacidade de uma celula de litihum ion
e posso assim grafico com V(t) com uma descarga de 1Amp

Sim, esta aplicação foi desenhada mesmo para esse tipo de implementação. Espero que funcione bem :)

Aconselho a colocar um ScaleX elevado para prevenir o grafico de fazer loop antes da descarga completa.

Obrigado pela dica

Marvin

Quote from: metRo_ on 28 de June de 2013, 01:16
O 2º é feito em Qt. Ia-te perguntar se não querias fazer em Qt, assim conseguia-se fazer multi-plataforma e até podia dar uma ajuda a adicionar funcionalidades :)

QT é uma opção bastante interessante. Infelizmente agora estou sem tempo para fazer o port da aplicação para QT, e como utilizei muitos objectos .net para a geração do grafico pode ser algo que consome um pouco de tempo.

Mas estou disposto a fazer isso assim que tiver um pouco de tempo, e partilho no github publico tal como fiz com este para se avançar com a colaboração!

Dronetech BlogThe Scientist and the Geek