找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2813|回复: 0
收起左侧

stm32步进电机平衡车 直立和速度控制代码

[复制链接]
ID:385050 发表于 2019-5-24 16:03 | 显示全部楼层 |阅读模式
平衡之家的程序修改的。

单片机源程序如下:
  1. #include "sys.h"
  2. u8 Way_Angle=1;      //获取角度的算法,1:四元数  2:卡尔曼  3:互补滤波 (有的6050使用DMP时,需要开机后不停摇晃小车10S左右,等待数据稳定)
  3. u8 Flag_Qian,Flag_Hou;
  4. float Angle_Balance,Gyro_Balance,Acceleration_Z;
  5. int Moto1,Moto2,Final_Moto1,Final_Moto2;    //电机PWM变量
  6. float Balance_Kp=190,Balance_Kd=0,Velocity_Kp=42,Velocity_Ki=0.21;
  7. //float Zhongzhi=3.89;
  8. int Zhongzhi,Flag_Zhongzhi=0;
  9. int main(void)
  10. {
  11.         Stm32_Clock_Init(9);            //系统时钟设置
  12.         MY_NVIC_PriorityGroupConfig(2); //=====中断分组
  13.         delay_init(72);                 //延时初始化
  14.         uart_init(72,9600);           //初始化串口1
  15.         LED_Init();
  16.         IIC_Init();                     //模拟IIC初始化
  17.   MPU6050_initialize();           //=====MPU6050初始化       
  18.         DMP_Init();                     //初始化DMP
  19.         Timer2_Init(50,7200);
  20.         //MiniBalance_EXTI_Init();
  21.         MiniBalance_Motor_Init();       //=====电机方向IO控制初始化
  22.   MiniBalance_PWM_Init();         //=====初始化PWM 输出
  23.        
  24.         while(1)
  25.                 {
  26.                         //Read_DMP();                      //===读取倾角
  27.                         //printf("Roll:%f  ",Roll);  //X
  28.                         //printf("Pitch:%f  ",Pitch); //Y
  29.                         //printf("Yaw:%f\r\n",Yaw);   //Z
  30.                         //delay_ms(10);
  31.                        
  32.                 }
  33. }
复制代码

所有资料51hei提供下载:
步进电机平衡车(DMP).7z (219.41 KB, 下载次数: 82)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表