你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32送药小车:Openmv与主控芯片STM32的配合

[复制链接]
STMCU小助手 发布时间:2022-5-10 22:48
前言
我们通过分析从Openmv中发送到主控芯片的信息,从而对小车进行相应的控制。

一、接收信息的处理
我们使用Openmv发送的打包数组中,其中第1个数值为小车的状态,第2个数值为中线偏差量,从而使用的通过分析打包数据,对小车进一步控制。

部分代码如下:

  1. void Blueteeth_control()
  2. {
  3.     unsigned char uart1_data;
  4.     while (HAL_UART_Receive_IT(&huart1, &res, 1))
  5.     {
  6.         state=res[0]//接受传回的第一个值,即状态
  7.         angle_error=res[1]//PID角度偏差,先储存起来
  8.         switch (state)
  9.         {
  10.             case 'x':Motor::RunPID(angle_error);break;//正常巡线
  11.             case '+':Motor::PID(0);break;//十字停车
  12.             case 'l':Motor::PID(1);break;//左转
  13.             case 'r':Motor::PID(1);break;//右转
  14.             case 's':Motor::PID(0);break;//到达黑色虚线,停车
  15.         }
  16.     }
  17. }
复制代码

二、电机PWM输出
1.正常巡线
因为我们是三轮车,左右转依靠差速来实现,所以我们利用差速因子来对中线偏差进行PID调控。

代码如下:

  1.   if (error >= 0) //右
  2.   {
  3.     L_motor.exp_speed = PWM_default - (int16)(Island_l_reduce * error) - PWM_decrease;
  4.     R_motor.exp_speed = PWM_default + (int16)(Island_r_add * error) - PWM_decrease;
  5.   }
  6.   else if (error < 0) //姿态在左
  7.   {
  8.     L_motor.exp_speed = PWM_default - (int16)(Island_l_add * error) - PWM_decrease;
  9.     R_motor.exp_speed = PWM_default + (int16)(Island_r_reduce * error) - PWM_decrease;
  10.   }
复制代码

2.特殊标志位
1.停车

停车我们直接让四路PWM等于0

代码如下:

  1. void Motor::Stop()
  2. {
  3.   Motor::PWM_OUT(0, 0, 0, 0);
  4. }
复制代码

2.转向
我们通过左右轮的差速进行转向,通过MPU6050判断是否达到相应的角度

部分代码如下:

  1. void Motor::Turn(u8 dir)
  2. {
  3.   switch (dir)
  4.   {
  5. /*左转弯*/
  6.   case 1:
  7.     Motor::PWM_OUT(0, 2000, 2000, 0);
  8.     break;
  9. /*右转弯*/  
  10.   default:
  11.     Motor::PWM_OUT(2000, 0, 0, 2000);
  12.     break;
  13.   }
  14. }  
复制代码


总结
这个项目是完成了大部分代码,但小部分没有调试,因为个人时间关系也是不会再去完善和调试的了,这些思路希望对大家有所帮助。




收藏 评论0 发布时间:2022-5-10 22:48

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版