在一个串口界面同时画多个数据

2016-03-231.7万
AI 快速预览详细 收起
SerialChart是一款用于在单个串口界面同时绘制多个数据波形的软件。它支持自定义配置,包括波特率、窗口大小、颜色等。通过简单的配置,用户可以轻松实现在一个界面上同时查看原始数据和滤波后的波形,如卡尔曼滤波和互补滤波。这对于调试滤波效果非常有用。


不知道你有没有碰到过这种情况,你想要做个滤波,但是你不知道你的滤波的效果是怎么样的,因为你不能同时在一个窗口里面看到原始数据和滤波后的数据的波形图。

这几天在玩MPU6050,就像看看一次原始波形与卡尔曼滤波,一次滤波,互补滤波的实时波形,但是Arduino自带的串口绘图器只能支持一个数据显示波形。今天下午发现了这个软件可以实时同步显示多个数据波形。http://code.google.com/p/serialchart/

这个软件需要一些配置,也很简单,这里是配置的翻译http://www.geek-workshop.com/thread-554-1-1.html

如果你不想看那些介绍的话  我直接看我下面的简单的配置吧,想要更复杂的内容,还是看上面的链接吧。
开始了!
首先把这帖子的附件的软件下载下来。
打开SerialChart.exe这个软件,

在一个串口界面同时画多个数据图1

在configuration那个界面里面复制粘贴我下面的内容
复制开始!!

[_setup_]
port=COM3   
baudrate=115200

width=10000
height=500
background_color = white

grid_h_origin = 0
grid_h_step = 1
grid_h_color = #EEE
grid_h_origin_color = #CCC

grid_v_origin = -100
grid_v_step = 0
grid_v_color = #EEE
grid_v_origin_color=#CCC


[_default_]
min=-180
max=180



[roll]
color=pink



[kalAngleX]
color=navy



[gyroXangle]
color=yellow



[compAngleX]
color=red

复制结束!!
好了,要适应你自己的程序,你只要注意一下几个参数就可以了。


[_setup_]     
port=COM3       这个更改为你自己的串口,串口大于10好像没用,该成小于10的
baudrate=115200      改成你的程序写的波特率  例如你程序写的是Serial.begin(115200),这里就是115200

width=10000           这个宽度是下面的Chart窗口总共能显示多少个采样,就是如果10000,则只能显示10000个点就不能显示了
height=500              这个是Chart窗口数据的高度,如果你的数据是-255~ 255  那么这个值最小要512

[_default_]
min=-180              这个是配置你想显示的参数的范围大,因为我这个是要显示roll的角度,范围只有-180~180
max=180


[roll]                       这个roll要改成你想要的数据,例如你的程序里面写的是Serial.print(Temp);那么就要弄成[Temp]
color=pink            这个就是更改这个数据波形的颜色,你想要这个波形显示什么颜色就改下颜色名字。
                                https://www.w3.org/TR/SVG/types.html#ColorKeywords   颜色名字可以参考这个网站

[kalAngleX]            就是这样继续添加更多的数据
color=navy


下面就是你ARDUINO的程序发送的方式:

  Serial.print(roll);Serial.print(",");                                    //每个后面都需要加Serial.print(",");  要发送个","字符过去
  Serial.print(gyroXangle); Serial.print(",");                    //这个名字要对应你SerialChart配置里面的名字
  Serial.print(compAngleX); Serial.print(",");

  Serial.print(kalAngleX); Serial.print(",");
  Serial.print("\r\n");                                                            //所有数据发送完后要加这一句


OK,差不多就这样了,把程序烧进UNO,关闭ARDUINO这个软件,打开SerialChart这个软件,电机绿色的开始按钮就可以了。不过这个软件有个BUG的地方,他下面的波形显示的窗口Chart不能自动跟随数据跑,要你手拖动才能看到实时最新的数据。如果你Data串口看到有数据而Chart没看到波形,你就拖动拖动条(主要是上下拖动条)试试。
下面就是我的程序输出的四个数据的波形


在一个串口界面同时画多个数据图2







SerialChart.zip

5.08 MB, 下载次数: 7946

软件

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
凌风清羽
哈哈,期待ing
凌风清羽
有意思~~~~
nxcosa
nxcosa
作者
回复凌风清羽
DF软件部的大神做了个更好用的 但是暂时好像还没出正式版 我测试使用下来 相当不过
virtualwiz
mark~
还没玩过SerialChart:lol学习咯
iooops
沙发!
- 没有更多了 -