OLED 上那几行数字,你已经看得很熟了。调 PID 的时候,左目标、左实际、右目标、右实际排成四行,每隔 100ms 跳一次。
数字在跳,可你看不出它是怎么跳的。它是慢慢贴近目标,还是一头冲过去再退回来?是每一步都稳稳落住,还是偶尔抖一下?数字一行行刷过去,眼睛记不住上一秒是多少------更没法把两条曲线的形状放在一起比。
想知道"数值怎么变",光看数字不够,得看曲线。
VOFA+ 是什么
VOFA+ 是一个跑在电脑上的数据可视化工具。板子把数字送出来,它把数字画成曲线;除了曲线,还能把数据变成仪表盘、滑动条、按钮这些看得见摸得着的东西。
这类软件有个统称叫"上位机":装在电脑这一头、负责看和指挥的软件。相对的,STM32 那边叫"下位机"------真正干活的、手上沾着线的那个。上位机不神秘,它就是一个普通 Windows 程序。
今天这篇不写一行代码,只做三件事:把它装上、打开、认识界面上有什么。等我们讲到怎么让板子往外送数据时,这个工具直接就能用。
第一步:把软件装上
- 打开官网 vofa.plus,进下载中心。它提供 Windows、macOS 等版本,我们装 Windows 版;
- 下载安装包,双击,一路"下一步",安装路径用默认的就好;
- 装完打开,看到主界面。
界面上一共有几块
不同版本排布略有差别,但该有的东西就这些,对照着找一遍就能记住:
- 数据源与连接区:决定从哪里收数据。串口是最常用的一种;网络和它自带的演示数据源也能接;
- 协议选择:告诉它"送过来的字节该怎么解释"。这一项选错,后面全乱;
- 波形区:屏幕上最大的一块,曲线画在这里;
- 通道区:一条曲线一个通道,可以开关、改颜色、改名字;
- 控件区:可以放按钮、滑块、开关,把电脑上的操作回传给板子;
- 数据 / 终端窗口:显示收到的原始内容,看字节或文本都行。
三种协议,先记住怎么选
VOFA+ 支持好几种数据格式,命名都很形象:
| 协议 | 大致是什么 | 什么时候用 |
|---|---|---|
| FireWater | 文本格式,一行数字用逗号隔开 | 最常用,好调试:人也能直接看懂发的是什么 |
| JustFloat | 二进制浮点,一串字节直接代表浮点数 | 数据量大、要求快和准时 |
| RawData | 原始字节,怎么解释由你自己定 | 想完全自己控制格式时 |
第一次用,先选 FireWater。它的好处是"发出去的东西人也能读":同一份数据,既能在曲线区看形状,也能在终端窗口里看数字,出问题时一眼就知道数据到底有没有发出来。
至于每种协议的字节到底怎么排、STM32 侧该用什么函数往外送------那是后面动手写代码时的事,这里只要记住一件事:协议是一个"约定",两端必须选同一个。 板子按 A 格式发,软件按 B 格式收,得到的就是一堆谁也看不懂的东西。
每天都会用到的几个操作
界面认识了,剩下就是几个按钮的事:
- 连接:数据源选串口,选中板子对应的串口端口号,波特率选成和板子一致,点连接。连上以后,原来空着的波形区就开始动了;
- 暂停 / 继续:曲线跑得太快,按暂停先冻住画面,看清楚了再继续;
- 清除:旧数据堆在屏幕上会看不清新变化,清一下重新开始;
- 缩放:滚轮放大缩小,拖动平移。想看某个细节就凑近,想看整体趋势就拉远;
- 通道开关:曲线多了会互相挤,把暂时不看的通道关掉,只看关心的那两三条。
最容易踩的坑
连上了,但一条线都没有。 先看两个地方:协议是不是选成了板子实际用的那种;板子到底有没有在往外发数据。终端窗口里如果什么都没有,问题在发送端,不在 VOFA+。
终端里全是乱码。 十有八九是波特率对不上,或者协议选错了------文本协议收到二进制,看起来就这德行。
能收到数据,但画不出曲线。 这是新手最容易冤枉软件的地方:给人看的日志不是给曲线看的格式 。像 left=30, right=35 这种写给人读的句子,终端窗口显示得很好看,但 VOFA+ 找不到它需要的数字排列,自然画不出线。想让曲线出来,发送端得按协议规定的样子把数字排好。
曲线一顿一顿的。 数据发得太密、通道开得太多,电脑跟不上。先把暂时不看的通道关掉,或者降低发送频率。
说点我自己的
我最早用它,是在调速度环的时候。那时盯着 OLED 上四个数字来回跳,凭感觉改 Kp:改大一点,数字跳得更凶了;改小一点,反应又慢------但"凶"到什么程度、"慢"了多少,我说不出来。
把同样四个量丢进 VOFA+ 以后,第一次看见那两条线是怎么互相追的:目标线是台阶,实际线先是慢慢地爬,然后冲过头,再荡回来。那一刻才明白参数到底在动哪一根弦。OLED 让你知道数字是多少,曲线让你知道它长什么样。 这两个问题的答案不一样,需要的工具也不一样。
软件先装好放在那儿。等我们讲到让板子往外送数据那部分,串口一接通,它就能直接派上用场------到时候那几篇不会再重复介绍它,你就当它是桌面上一个已经备好的工具。