我需要绘制 Arduino 的串行数据。
我需要以下支持
1.各种数据格式(如有符号、无符号、8 位、16 位); 2.在同一坐标轴上绘制多个数据; 3.导出/导入文件数据。
从 Arduino 中绘制串行数据是一种常见需求,因此我的问题是: 有哪些程序/实用程序可用于从 Arduino 绘制串行数据,以满足上述需求?
您建议的方法有何优缺点?
优势:非常灵活,可编写脚本,可免费获取。
缺点:学习起来有点复杂(但我几分钟就学会了如何入门:学习起来有点复杂(但我几分钟就学会了如何入门,一两个小时后就能正常使用了),在终端窗口中运行(如果你认为这是缺点的话)。
我发现一个非常有用的方法,就是用脚本定期重新加载终端程序的日志文件,这样我就能在实验过程中获得动态图表。
GnuPlot图片][1
<br>;
编辑:下面是绘制图表的 GnuPlot 脚本:
#!/usr/local/bin/gnuplot -rv
# Note reverse video here ^^^ til I find a way to put it in the script
# gpFanCtl - Plots DiffThermo fan controller data (aloft, alow, Tdiff, fan-state).
# $Id: gpFanCtl,v 1.8 2014-04-28 09:40:51-04 jrobert Exp jrobert $
set terminal x11 1 noraise
set xtics 3600
set mxtics 4
set xdata time
set ytics 1 nomirror
set mytics 2
set y2range [0:3]
set y2tics 1
set my2tics 4
set grid
set ylabel 'Temperature, degC'
set y2label 'Tdiff, degC' textcolor rgb '#00CD63'
cd '/Users/jrobert/Desktop'
plot "Logfile.txt" using ($0*4):1 title "Aloft" with lines lc rgb "red",\
"Logfile.txt" using ($0*4):2 title "Alow" with lines lc rgb "#3982FF",\
"Logfile.txt" using ($0*4):3 title "Tdiff" with lines lc rgb "#00CD63" axis x1y2,\
"Logfile.txt" using ($0*4):4 title "Fan" with lines lc rgb "orange" axis x1y2;
pause 4
refresh
reread
我使用 Matplotlib 进行任何需要的绘图。
它在任何方面都与 arduino 无关,但它是一个非常出色的Python绘图工具包。
我已经创建了许多应用程序,可以将来自各种微控制器的数据实时绘制成图表,但这实际上更像是一个两步过程:1.将数据从设备导入计算机,2.绘制实时数据。
说真的,我觉得你应该把问题分成两部分:
回答我自己的问题...如前所述,我使用的是桥接控制面板。
优点功能多。
缺点:设置麻烦,语法/错误报告很差。
使用方法 您需要通过串行端口一次一个字节地写入 Arduino 数据。对于 int 数据类型,写法如下:
// RX8 [h=43] @1Key1 @0Key1
Serial.print("C");
Serial.write(data>>8);
Serial.write(data&0xff);
在 Bridge 中,读取数据的命令是
RX8 [h=43] @1Key1 @0Key1
RX8 是读取命令 [h=43]表示下一个有效字节是 ASCII 码中的"C"。 然后是键 1 的高字节 然后是键 1 的低字节
在 Bridge 中是这样显示的
[此处输入图片描述][1]
![此处输入图片描述][2]