小车PID调试工具Serial_Digital_Scope使用笔记

前言

在调试小车的PID的时候,苦恼于无法更直观立体的看到效果。所以加入了Serial_Digital_Scope,这个我们又叫虚拟示波器使用起来简单方便大致流程为:1.用CubeMX生成一个串口,2.其后在工程中加入虚拟示波器上位机的 API 代码文件(链接在最后自取)(

这两个文件主要就是将发送到虚拟示波器的协议和校验等等功能都已经封装好了, 我们只需要修改最后的发送函数, 就可以调用。

3.换一下里面的头文件,其后把想要输出的数据给输出数组,4.最后烧录并连接串口就可以了。

前期准备

硬件上只用准备一个串口就行;
软件上需要CubeMX,Serial_Digital_Scope以及Keil5(代码全用HAL库原有函数不添加任何个人的宏定义);

使用步骤

1.配置串口

使用CubeMX在你的工程里面加入串口,最好使用串口1因为只有串口1我可以向你保证可行。(下面贴一张串口1的参数配置)
串口1参数配置

2.加入上位机的 API 代码文件

outputdata.coutputdata.h这两个文件的链接我放下面了大家可以自取,注意 .h.c文件分开放入你工程的不同的文件中不然编译时可能索引不到你加入的文件
(下图是两个文件存放的路径)
.h
,c
上面仅是把文件加入了工程文件中,我们还需要在Keil5的工程中加入此文件(下图为加入的方式和位置)
步骤1(右击1处的文件夹,点击进入2处的选项)
在这里插入图片描述

  • 18
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
为了调试Arduino循迹小车PID算法,你可以按照以下步骤进行操作: 1. 首先,确保你已经正确连接了红外发射接收传感器和电机驱动模块,并且将引脚连接到正确的Arduino引脚上。 2. 在Arduino的setup()函数中,初始化红外传感器引脚为输入模式。你可以使用以下代码进行初始化: ```cpp void setup() { for (int i = 0; i < numSensors; i++) { pinMode(sensors\[i\], INPUT); } } ``` 其中,numSensors是传感器的数量,sensors是一个数组,包含了每个传感器的引脚号。 3. 在Arduino的loop()函数中,读取传感器的值并计算PID输出。你可以使用以下代码进行计算: ```cpp void loop() { // 读取传感器的值 for (int i = 0; i < numSensors; i++) { sensorValues\[i\] = digitalRead(sensors\[i\]); } // 计算误差 float error = 0; float sum = 0; for (int i = 0; i < numSensors; i++) { error += (i - 3.5) * sensorValues\[i\]; // i - 3.5 是为了让误差在\[-3.5, 3.5\]之间 sum += sensorValues\[i\]; } if (sum == 0) { // 避免除0错误 return; } error /= sum; // 计算PID输出 float pidOutput = Kp * error + Kd * (error - lastError) + Ki * totalError; lastError = error; totalError += error; // 控制小车运动 int leftSpeed = 200 + pidOutput; // 左轮的速度 int rightSpeed = 200 - pidOutput; // 右轮的速度 if (leftSpeed > 255) { // 速度限制在\[0, 255\]之间 leftSpeed = 255; } else if (leftSpeed < 0) { leftSpeed = 0; } if (rightSpeed > 255) { rightSpeed = 255; } else if (rightSpeed < 0) { rightSpeed = 0; } analogWrite(3, leftSpeed); // 控制左轮速度的引脚 analogWrite(5, rightSpeed); // 控制右轮速度的引脚 } ``` 其中,Kp、Kd和Ki是PID控制器的参数,lastError和totalError是用于保存上一次误差和累计误差的变量。 4. 上传代码到Arduino,并观察循迹小车的运动。你可以通过串口监视器输出调试信息,例如打印误差值、PID输出等,以便更好地理解和调试算法。 5. 根据实际情况,调整PID参数,使得循迹小车能够更精确地跟随黑色线条。你可以逐步增加或减小Kp、Kd和Ki的值,并观察小车的运动效果,直到达到你期望的效果为止。 希望以上步骤对你调试Arduino循迹小车PID算法有所帮助! #### 引用[.reference_title] - *1* *2* *3* [pid循迹小车的实现,arduino](https://blog.csdn.net/u010970956/article/details/130398092)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值