本文主要是介绍第16章-超声波跟随功能 基于STM32的三路超声波自动跟随小车 毕业设计 课程设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第16章-超声波跟随功能
无PID跟随功能
//超声波跟随if(HC_SR04_Read() > 25){motorForward();//前进HAL_Delay(100);}if(HC_SR04_Read() < 20){motorBackward();//后退HAL_Delay(100);}
PID跟随功能
在pid.c中定义一组PID参数
tPid pidFollow; //定距离跟随PID
pidFollow.actual_val=0.0;pidFollow.target_val=22.50;//定距离跟随 目标距离22.5cmpidFollow.err=0.0;pidFollow.err_last=0.0;pidFollow.err_sum=0.0;pidFollow.Kp=-0.5;//定距离跟随的Kp大小通过估算PID输入输出数据,确定大概大小,然后在调试pidFollow.Ki=-0.001;//Ki小一些pidFollow.Kd=0;
//**********PID跟随功能***********//g_fHC_SR04_Read=HC_SR04_Read();//读取前方障碍物距离if(g_fHC_SR04_Read < 60){ //如果前60cm 有东西就启动跟随g_fFollow_PID_Out = PID_realize(&pidFollow,g_fHC_SR04_Read);//PID计算输出目标速度 这个速度,会和基础速度加减if(g_fFollow_PID_Out > 6) g_fFollow_PID_Out = 6;//对输出速度限幅if(g_fFollow_PID_Out < -6) g_fFollow_PID_Out = -6;motorPidSetSpeed(g_fFollow_PID_Out,g_fFollow_PID_Out);//速度作用与电机上}else motorPidSetSpeed(0,0);//如果前面60cm 没有东西就停止HAL_Delay(10);//读取超声波传感器不能过快
然后编译,烧录测试 。
下一章节 我们开始使用6050 讲解6050使用和如何和PID结合一起
这篇关于第16章-超声波跟随功能 基于STM32的三路超声波自动跟随小车 毕业设计 课程设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!