• 大小: 3.28MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-11
  • 语言: 其他
  • 标签: STM32F  

资源简介

基于STM32F1全向轮小车控制(代码),可直接使用balance软件进行控制,包括MPU6050,CAN,PWM,I2C等模块

资源截图

代码片段和文件信息

#include “control.h“	
#include “filter.h“
  /**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/

u8 Flag_TargetFlag_Change;                             //相关标志位
u8 temp1;                                               //临时变量
float Voltage_CountVoltage_All;  //电压采样相关变量
float Gyro_K=0.004;       //陀螺仪比例系数
int j;
u8 Velocity_rxbuf[8]={111316202531380}; //用于解锁CAN控制的数组
#define X_PARAMETER          (0.5f)               
#define Y_PARAMETER           (sqrt(3)/2.f)      
#define L_PARAMETER            (1.0f)  
/**************************************************************************
函数功能:小车运动数学模型
入口参数:X Y Z 三轴速度或者位置
返回  值:无
**************************************************************************/
void Kinematic_Analysis(float Vxfloat Vyfloat Vz)
{
        Target_A   = Vx + L_PARAMETER*Vz+gyro[2]*Gyro_K;
        Target_B   = -X_PARAMETER*Vx + Y_PARAMETER*Vy + L_PARAMETER*Vz+gyro[2]*Gyro_K;
      Target_C   = -X_PARAMETER*Vx - Y_PARAMETER*Vy + L_PARAMETER*Vz+gyro[2]*Gyro_K;
}
/**************************************************************************
函数功能:获取位置控制过程速度值
入口参数:X Y Z 三轴位置变化量
返回  值:无
**************************************************************************/
void Kinematic_Analysis2(float Vxfloat Vyfloat Vz)
{
      Rate_A   = Vx + L_PARAMETER*Vz;
        Rate_B   =-X_PARAMETER*Vx + Y_PARAMETER*Vy + L_PARAMETER*Vz;
      Rate_C   =-X_PARAMETER*Vx - Y_PARAMETER*Vy + L_PARAMETER*Vz;
}
/**************************************************************************
函数功能:所有的控制代码都在这里面
         5ms定时中断由MPU6050的INT引脚触发
         严格保证采样和数据处理的时间同步  
**************************************************************************/
int EXTI9_5_IRQHandler(void) 
{    
 if(PBin(5)==0)
{     
  EXTI->PR=1<<5;                                                      //清除LINE5上的中断标志位  
   Flag_Target=!Flag_Target;
  if(delay_flag==1)
 {
 if(++delay_50==10)  delay_50=0delay_flag=0;                     //给主函数提供50ms的精准延时
 }
  if(Flag_Target==1)                                                  //5ms读取一次陀螺仪和加速度计的值
{
 CAN1_SEND();                                                          //CAN发送
if(Usart_Flag==0&&Usart_ON_Flag==1)  memcpy(rxbufUrxbuf8*sizeof(u8)); //如果解锁了串口控制标志位,进入串口控制模式
Read_DMP();                                                           //===更新姿态
   Key();//扫描按键变化
for(j=0;j<=7;j++) //用于解锁CAN控制的起始语句
{
if(j==7)
{
RC_Velocity=rxbuf[j];  
break;
}
if(rxbuf[j]!=Velocity_rxbuf[j]) //判断收到的CAN指令是否为起始或停止指令。
break;
}
return 0;                                                
}                                                                   //===10ms控制一次,为了保证M法测速的时间基准,首先读取编码器数据
Encoder_A=Read_Encoder(2);               

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      17203  2017-03-02 15:47  1.全向轮小车源码\BALANCE\CONTROL\control.c

     文件       1140  2017-01-05 11:23  1.全向轮小车源码\BALANCE\CONTROL\control.h

     文件       2891  2015-07-09 14:05  1.全向轮小车源码\BALANCE\DataScope_DP\DataScope_DP.C

     文件        586  2015-07-09 14:05  1.全向轮小车源码\BALANCE\DataScope_DP\DataScope_DP.h

     文件      19342  2012-12-14 11:16  1.全向轮小车源码\BALANCE\DMP\dmpKey.h

     文件       6765  2012-12-14 11:16  1.全向轮小车源码\BALANCE\DMP\dmpmap.h

     文件      84104  2015-07-09 14:05  1.全向轮小车源码\BALANCE\DMP\inv_mpu.c

     文件       4335  2015-07-09 14:05  1.全向轮小车源码\BALANCE\DMP\inv_mpu.h

     文件      57839  2015-07-09 14:05  1.全向轮小车源码\BALANCE\DMP\inv_mpu_dmp_motion_driver.c

     文件       3386  2015-07-09 14:05  1.全向轮小车源码\BALANCE\DMP\inv_mpu_dmp_motion_driver.h

     文件       2105  2015-12-07 15:52  1.全向轮小车源码\BALANCE\filter\filter.c

     文件        399  2015-12-07 15:52  1.全向轮小车源码\BALANCE\filter\filter.h

     文件      11128  2016-12-30 11:18  1.全向轮小车源码\BALANCE\MPU6050\MPU6050.c

     文件      14762  2016-12-23 15:17  1.全向轮小车源码\BALANCE\MPU6050\mpu6050.h

     文件       7859  2017-03-02 15:45  1.全向轮小车源码\BALANCE\show\show.c

     文件        354  2016-01-06 14:35  1.全向轮小车源码\BALANCE\show\show.h

     文件       2420  2016-12-27 15:41  1.全向轮小车源码\HARDWARE\ADC\adc.c

     文件        189  2016-12-20 12:37  1.全向轮小车源码\HARDWARE\ADC\adc.h

     文件       9530  2017-01-06 09:38  1.全向轮小车源码\HARDWARE\CAN\can.c

     文件        740  2016-12-23 17:22  1.全向轮小车源码\HARDWARE\CAN\can.h

     文件       2887  2015-06-07 00:48  1.全向轮小车源码\HARDWARE\DataScope_DP\DataScope_DP.C

     文件        581  2015-05-04 12:37  1.全向轮小车源码\HARDWARE\DataScope_DP\DataScope_DP.h

     文件       5247  2016-12-27 14:25  1.全向轮小车源码\HARDWARE\ENCODER\encoder.c

     文件        590  2016-12-20 11:22  1.全向轮小车源码\HARDWARE\ENCODER\encoder.h

     文件        759  2016-12-21 14:46  1.全向轮小车源码\HARDWARE\EXTI\exti.c

     文件        442  2015-12-07 15:51  1.全向轮小车源码\HARDWARE\EXTI\exti.h

     文件      10779  2015-12-07 15:46  1.全向轮小车源码\HARDWARE\IIC\IOI2C.c

     文件       3118  2015-11-03 08:45  1.全向轮小车源码\HARDWARE\IIC\IOI2C.h

     文件       2581  2017-01-06 15:20  1.全向轮小车源码\HARDWARE\KEY\key.c

     文件        282  2017-01-06 15:20  1.全向轮小车源码\HARDWARE\KEY\key.h

............此处省略163个文件信息

评论

共有 条评论