Conhecendo o SerialPlot

Neste artigo veremos como usar o SerialPlot e através dele plotar gráficos com os dados vindos pela porta serial.

 

Quantas vezes não nos deparamos com a necessidade de visualizar os dados aquisitados por um microcontrolador. Em muitos casos é usado um terminal serial conhecido para visualizar os dados aquisitados, porém os dados chegam até nós de uma forma bruta e fica difícil acompanhar a mudança do sinal ao longo do tempo. Algumas ferramentas ainda nos dão a possibilidade de gravar os dados na forma de log, como é o caso do moserial (terminal serial para Linux).

 

Ferramenta moserial.
Ferramenta moserial.

 

Após receber e salvar os dados, acabamos os importando e os plotando usando uma ferramenta Excel, planilha Google, etc. Resumindo, não conseguimos aquisitar, plotar e visualizar a mudança de sinal em tempo real. É neste momento que entra o SerialPlot!

 

O SerialPlot é um projeto open source implementado em C++, criado em Qt, que pode ser instalado tanto no Windows quanto numa distribuição Linux. O SerialPlot aceita três tipos diferentes de entrada de dados:

  • Fluxo binário simples, suporta formatos numéricos diferentes (unsigned / signed - 8/16/32 bits e float);
  • Dados ASCII no formato CSV;
  • Formato de quadro personalizado definido pelo usuário.

 

Ele ainda permite enviar mensagens e gravar os dados aquisitados. Mensagens recebidas fora do formato esperado pelo SerialPlot  são exibidas na aba de log.

 

Instalação no Windows

 

https://bitbucket.org/hyOzd/serialplot/downloads/

 

Instalação no Ubuntu/Linux

 

 

Montagem dos Frames no SerialPlot

 

O formato ASCII é o mais simples de ser usado. A separação dos dados se dá pelo caractere “vírgula” e o caracter ‘\n’ indica o final do frame de dados enviados.

 

A rotina abaixo mostra como o frame de dados deve ser montado.

 

 

Frame enviado:

 

Dado 1

Separador

Dado 2

Fim de frame

0

.

3

5

,

4

.

7

2

‘\n’

 

É importante a presença do caractere ‘\n’ no final do frame.

 

Configurando o SerialPlot

 

Na aba “Port” é feita toda a configuração da comunicação serial.

 

Configuração da porta serial no SerialPlot.
Configuração da porta serial.

 

Na aba “Data Format” indicaremos quantos dados diferentes nosso frame contém e o formato que o dado está sendo enviado. Neste exemplo estamos usando o formato ASCII e estamos enviando 2 dados diferentes. A ferramenta SerialPlot consegue plotar até 32 dados diferentes. No formato ASCII não é preciso se preocupar com o formato no qual os dados estão sendo enviados (float, uint32, uint16, etc), somente tenha certeza que o caractere vírgula está sendo usado para separar os dados. Existe a possibilidade de você usar os formatos “Simple Binary” e “Custom Frame”, mas estes são utilizados para casos muito específicos onde você quer receber dados pelo número de bytes da variável ou até mesmo aplicar um filtro para as mensagens que o SerialPlot deve plotar.

 

Configuração de Formato no SerialPlot.
Configuração de Formato.

Na apa “Plot” podemos customizar algumas coisas, como cor e a legenda do sinal.

 

Aba para configuração do número de amostras, legendas e cores.
Aba para configuração do número de amostras, legendas e cores.

 

Na aba “Record” é possível salvar dados.

 

Aba de configuração para salvar os dados.
Aba de configuração para salvar os dados.

 

Há ainda uma aba para enviar dados pela serial ao dispositivo (o uso do caractere ‘\n’ neste caso vai depender da sua aplicação).

 

Aba de envio de comandos para o dispositivo.
Aba de envio de comandos para o dispositivo.

Resultado Final

Resultado de aquisição de dados com o SerialPlot.
Resultado de aquisição de dados com o SerialPlot.

 

Saiba mais

 

Usando a porta serial em Node.js

Comunicação Serial com Intel 8051

Software serial: Como fazer?

 

Conclusão

 

Neste artigo apresentamos o programa open source SerialPlot e mostramos o necessário para instalar e configurar a ferramenta.

 

A grande vantagem de usar este software é poder ver e acompanhar a mudança de um sinal em tempo real, aplicar zoom, salvar os dados aquisitados, atribuir legendas e cores diferentes para cada sinal. Caso você queira customizar ou até mesmo contribuir com o desenvolvimento dele, segue abaixo o link com o código fonte.

 

https://bitbucket.org/hyOzd/serialplot/src

 

Desvantagens: É preciso lembrar que usar a porta serial do microcontrolador para debug de sinais críticos não é uma prática recomendada, portanto usar esta ferramenta nestes tipos de casos poderá não ilustrar fielmente o comportamento de seu sinal.

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons
Conhecendo o SerialPlot por Jorge Guzman. Esta obra está licenciado com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Jorge Guzman
Sou formado em engenharia da computação com pós-graduação em automação industrial e engenharia de software. Possuo experiência no desenvolvimento de hardware, firmware, distribuições Linux e software para sistemas embarcados. Sou adepto ao compartilhamento do conhecimento e totalmente contra a metodologia de desenvolvimento GHP (Go Horse Process) em projetos.

5
Deixe um comentário

avatar
 
5 Comment threads
0 Thread replies
5 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Eder KnonerAnderson Rodrigo SouzaMuriel CostaAndré FelicianoCiro Peixoto Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Eder Knoner
Visitante
Eder Knoner

Parabéns, ja cansei de procurar isso ai, inclusive acabei montando uma rotina em matlab para quebrar o galho

Anderson Rodrigo Souza
Membro
Anderson Rodrigo Souza

Parabéns Jorge,

Muriel Costa
Membro
Muriel Costa

Muito bom!!! parabéns

André Feliciano
Membro
André Feliciano

Muito bom principalmente pelo numero de configuração. Uma opção rápida é o Serial Monitor da IDE Arduino, mas não tem nenhuma opção de configuração

Ciro Peixoto
Membro
Ciro Peixoto

Beleza !!! 👍 ótima informação!!!