【VOFA+速成】半小时入门VOFA+简明教程(快速上手一款强力的串口助手)

目录

一.介绍

二.基础使用

1.串口通信

1.1基础使用

 1.2陀螺仪上位机

1.3PID调制

三.总结


一.介绍

        VOFA+是一款直观,灵活且强大的通讯调试助手,支持多种数据协议接口,包括串口,TCP,UDP等(不过我们一般用串口比较多),其配备了极其丰富且简单的组件让我们能够快速地查看串口等信息的波形或数值。 

15f97f754767471895057696b5b36dc8.png1e279e222b0c4d2aa3ed71ac1297c92a.png

下载地址:

VOFA-Plus上位机 | VOFA-Plus上位机

二.基础使用

我们这篇文章暂时只讨论串口部分,其他数据格式以后有机会涉及的话再做讨论。

1.串口通信

1.1基础使用

        VOFA+特别领先的一点就是其内部的图形化组件,为了使用这些组件了解我们的信息波形,则我们必须遵守一定的协议按照规定的数据格式去发送数据,这样VOFA+才能正确的读取我们的数据,从而转化为图像。

        Vofa支持3种数据流方式:分别为:Firewater、Justfloat、RawData

1a0954760d83489981ad756a66ce6a88.png

        我们单击协议左侧的问号即可跳转到相应的网页查看详细的协议格式。或者悬停在上面也可以看到简要概括。

dd68ba4892834971bf66fe3564be9b4a.png

ca41826fbbb143b9a9fa9ae748d8de62.png

当我们将串口基本的信息配置好,同时选择好协议后(我们程序中串口发送要遵循这种协议方式),即可开启图像显示波形。

程序实例如下:

//FireWater数据协议  换行结尾  /n或/r/n  逗号分隔通道
//指定三个通道
float a=5,b=10,c=20;
void FireWater_Test(void)	
{
	a+=100;
	b+=50;
	c+=10;
    u1_printf("%.2f,%.2f,%.2f\n",a,b,c);
}

 连接串口后点击带单栏第一个选项即可打开串口(按钮变蓝):

ee8107bf77d8488f91f69f1479977900.png978297b180b24a9faa7bbd79d1a198e3.png

 VOFA+中,我们单机第四个菜单栏,拖动第一个组件到中间空白的区域,如下:

d9a5003f2f7a49f29a97b302583dad20.pngec0ad06ed5a741bc8034cd14c35be68f.png

 右键中央组件,选择第一个填充(全屏填充)

从上往下依次是:全拼填充,横向填充,纵向填充

c70497b04921418680a1015ed5925cec.png28f22ee243fd46a7b5292a13ec9aa58e.png X轴一般指定为时间轴:

9451873752604539823bf0c6c278f6b9.png

Y轴则要指定为我们相应的串口数据(需要先连接串口):

6afa4032bedc4f6183eed6355e2cb696.png

最后现象如下:

9e8576bfdfad4561996571e88b2e0ffc.png

 1.2陀螺仪上位机

如果要查看陀螺仪,我们需要使用第四个组件:

a6b50432bd58452b90c80a4698f5a3a9.png

右击窗口分别对X,Y,Z进行设置即可(打开串口且程序协议完成后)。

b9c54d1d15654260873aa4009ee18a8c.png

陀螺仪

1.3PID调制

1.3.1PID参数传输

左侧菜单栏第三项可以新增命令

697a6908b43c4e588d90381208f30d2c.png

命令里可以键入发送内容:

00b9f4830bcf4cb698babd1dceefd7fd.png

  • 我们可以在命令中输入参数占位符,用来接收控件的参数,不同模式的占位符:
    • Str模式(Ascii):%f、%d等printf函数可以识别的占位符;
    • Hex模式(十六进制):%% 。
  • 控件的不同状态对应不同的参数,控件的参数可以在右键菜单里进行设置。

 控件的参数设置详情可参考官网:数据、命令、参数 | VOFA-Plus上位机 

拖动控件可以绑定相应的命令:

c2306364650a4e1ca9170958ae005284.png

拖动后即可发送相应的数值。

接着我们只需要在程序中写一个串口的接收回调函数。

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle)
{
    if(UartHandle->Instance==USART2)
    {
        
        //....
    }
}

再加上一个数据解析函数:

float Analyse_Data(void)
{
    //Your code is here...
}

将解析后的数据赋值给PID中的参数 。就相当于使用上面的滑动控件与发送命令来隔空发送PID的参数进行调试了。

1.3.2PID参数调制

在程序中串口发送这几个数据:

        绿线表示pid运算得出的结果值
        红线表示实际速度
        蓝线表示目标速度

7b9037c18d664bf297f1f9ed9a8cff5d.png

 调整P至参数极性正确:

e4153bcdadb6426a82ec9c7d458e7fab.png

调整P至实际值逼近目标值:

cfed54a1f8f849d996dd913c121309e1.png 调整I和D至几乎重合:

db9ce5537ebe499a87e92ac6bb7b3775.png

 即为调节成功。

三.总结

        VOFA+是一个很简单易上手的开源工具,用的好的话在很多方面都能起作用,至少调节PID的时候不会特别盲目了。感谢广大开源工程师,让技术氛围变得更好。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五羟基己醛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值