在一个串口界面同时画多个数据
本帖最后由 nxcosa 于 2016-3-23 19:12 编辑不知道你有没有碰到过这种情况,你想要做个滤波,但是你不知道你的滤波的效果是怎么样的,因为你不能同时在一个窗口里面看到原始数据和滤波后的数据的波形图。
这几天在玩MPU6050,就像看看一次原始波形与卡尔曼滤波,一次滤波,互补滤波的实时波形,但是ARDUINO自带的串口绘图器只能支持一个数据显示波形。今天下午发现了这个软件可以实时同步显示多个数据波形。http://code.google.com/p/serialchart/
这个软件需要一些配置,也很简单,这里是配置的翻译http://www.geek-workshop.com/thread-554-1-1.html
如果你不想看那些介绍的话我直接看我下面的简单的配置吧,想要更复杂的内容,还是看上面的链接吧。
开始了!
首先把这帖子的附件的软件下载下来。
打开SerialChart.exe这个软件,
在configuration那个界面里面复制粘贴我下面的内容
复制开始!!
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
min=-180
max=180
color=pink
color=navy
color=yellow
color=red
复制结束!!
好了,要适应你自己的程序,你只要注意一下几个参数就可以了。
port=COM3 这个更改为你自己的串口,串口大于10好像没用,该成小于10的baudrate=115200 改成你的程序写的波特率例如你程序写的是Serial.begin(115200),这里就是115200
width=10000 这个宽度是下面的Chart窗口总共能显示多少个采样,就是如果10000,则只能显示10000个点就不能显示了height=500 这个是Chart窗口数据的高度,如果你的数据是-255~ 255那么这个值最小要512
min=-180 这个是配置你想显示的参数的范围大,因为我这个是要显示roll的角度,范围只有-180~180max=180
这个roll要改成你想要的数据,例如你的程序里面写的是Serial.print(Temp);那么就要弄成color=pink 这个就是更改这个数据波形的颜色,你想要这个波形显示什么颜色就改下颜色名字。
https://www.w3.org/TR/SVG/types.html#ColorKeywords 颜色名字可以参考这个网站
就是这样继续添加更多的数据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没看到波形,你就拖动拖动条(主要是上下拖动条)试试。
下面就是我的程序输出的四个数据的波形
沙发! mark~
还没玩过SerialChart:lol学习咯 有意思~~~~ 凌风清羽 发表于 2016-3-27 21:06
有意思~~~~
DF软件部的大神做了个更好用的 但是暂时好像还没出正式版 我测试使用下来相当不过 哈哈,期待ing
页:
[1]