小车PID调试工具Serial_Digital_Scope使用笔记
Posted 太阳下的楼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小车PID调试工具Serial_Digital_Scope使用笔记相关的知识,希望对你有一定的参考价值。
Serial_Digital_Scope的使用
前言
在调试小车的PID的时候,苦恼于无法更直观立体的看到效果。所以加入了Serial_Digital_Scope,这个我们又叫虚拟示波器使用起来简单方便大致流程为:1.用CubeMX生成一个串口,2.其后在工程中加入虚拟示波器上位机的 API 代码文件(链接在最后自取)(
这两个文件主要就是将发送到虚拟示波器的协议和校验等等功能都已经封装好了, 我们只需要修改最后的发送函数, 就可以调用。
3.换一下里面的头文件,其后把想要输出的数据给输出数组,4.最后烧录并连接串口就可以了。
前期准备
硬件上只用准备一个串口就行;
软件上需要CubeMX,Serial_Digital_Scope以及Keil5(代码全用HAL库原有函数不添加任何个人的宏定义);
使用步骤
1.配置串口
使用CubeMX在你的工程里面加入串口,最好使用串口1因为只有串口1我可以向你保证可行。(下面贴一张串口1的参数配置)
2.加入上位机的 API 代码文件
outputdata.c 、 outputdata.h这两个文件的链接我放下面了大家可以自取,注意 .h和 .c文件分开放入你工程的不同的文件中不然编译时可能索引不到你加入的文件
(下图是两个文件存放的路径)
上面仅是把文件加入了工程文件中,我们还需要在Keil5的工程中加入此文件(下图为加入的方式和位置)
步骤1(右击1处的文件夹,点击进入2处的选项)
步骤2(在1处点选outputdata.c所在文件夹此处我们仅添加outputdata.c这一个文件,点击 outputdata.c点击add添加)
3.代码更改和编写
更改:
一.添加完成后我们在keil5中点击进入outputdata.c文件,对两个地方进行修改;(下图是修改的具体步骤)
第一处(注释掉里面原有的串口头文件,改为我们现有的)
#include "usart.h"
第二处(注释掉里面原有的串口输出函数,改为HAL库的串口输出函数)
HAL_UART_Transmit(&huart1,&databuf[i],1,0xFF);//你用的那个串口就改为对应的串口号
二.对outputdata.c文件的内容更改后开始进行对工程里的相关文件添加outputdata.h文件;
添加的原则是:只要有用到outputdata.c里面的函数或者变量的都要加入outputdata.h;(贴一张加入的位置,此处仅展示通常会加入outputdata.h的地方绝不仅有此处)
编写:
一.在上面所有的更改结束后,开始进行按自己所需的数据输出编写,首先是把你想要输出的数据送入输出数组
(下面是参考放置位置和具体代码)
/******模拟示波器输出量设置**********/
OutData[0]=(float)输出数据1;//[输出数据以红线显示]
OutData[1]=(float)输出数据2 ;//[输出数据以黄线显示]
OutData[2]=(float)输出数据3;//[输出数据以蓝线显示]
OutData[3]=(float)输出数据4;//[输出数据以紫线显示]虚拟示波器只有四路输出
二.最后把虚拟示波器的输出函数写在一个会不断循环执行的地方,推荐写在 :
main.c中的while()里面 或者
stm32f1xx_it.c中的SysTick_Handler()里面
(下面是参考位置)
参考1
参考2
OutPut_Data();//调用虚拟示波器的发送函数
注意:虚拟示波器和串口调试工具不能同时运行,若想使用串口调试工具一定要记得注释掉此输出函数
4.虚拟示波器配置
设置:
在编译烧录好程序进入单片机后,开始设置虚拟示波器的相关选项(下图为设置步骤)
步骤:(点击1.处的Setup,里面2处一定要与你的串口的波特率,3处一定要于你的设备管理器里的串口号一致,所有都修改一致后点击OK,最后点击RUN开始显示波形)
操作
(贴一张常用工具的位置)
功能还有很多大家可以自行探索,值得注意的是有时你可以正常运行但看不见波形,原因为你的X,Y轴太大或者太小,此时只用使用全局放大缩小工具到合适大小就可以看见波形了。
结束语
虽然有了此调试工具但大家可能还不太清楚好的PID到底是个怎样的波形(下面贴一个调好的PID的完整波形)
黄线为目标值,红线为实际值,当你的实际值与目标值十分贴近吻合时就是调的差不多了,越重合越可靠。
写在最后:加上这篇是第三篇了,每天都在学会新的东西,有些东西相通了后觉得很简单,于是纠结于写还是不写。现在相通了我写博客本就是在总结自己的同时希望也可以帮到和当时的我一样陷入此等困难的人。所以无论多简单主要是总结自己啊!!!
最后的最后如有错处欢迎指出,望生活愉快学有所成。
链接: 虚拟示波器.
提取码:sgje
以上是关于小车PID调试工具Serial_Digital_Scope使用笔记的主要内容,如果未能解决你的问题,请参考以下文章
小车PID调试工具Serial_Digital_Scope使用笔记
树莓派视觉小车 -- OpenCV巡线(HSL色彩空间PID)