資源簡介
基于STM32F1全向輪小車控制(代碼),可直接使用balance軟件進(jìn)行控制,包括MPU6050,CAN,PWM,I2C等模塊

代碼片段和文件信息
#include?“control.h“
#include?“filter.h“
??/**************************************************************************
作者:平衡小車之家
我的淘寶小店:http://shop114407458.taobao.com/
**************************************************************************/
u8?Flag_TargetFlag_Change;?????????????????????????????//相關(guān)標(biāo)志位
u8?temp1;???????????????????????????????????????????????//臨時(shí)變量
float?Voltage_CountVoltage_All;??//電壓采樣相關(guān)變量
float?Gyro_K=0.004;???????//陀螺儀比例系數(shù)
int?j;
u8?Velocity_rxbuf[8]={111316202531380};?//用于解鎖CAN控制的數(shù)組
#define?X_PARAMETER??????????(0.5f)???????????????
#define?Y_PARAMETER???????????(sqrt(3)/2.f)??????
#define?L_PARAMETER????????????(1.0f)??
/**************************************************************************
函數(shù)功能:小車運(yùn)動(dòng)數(shù)學(xué)模型
入口參數(shù):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;
}
/**************************************************************************
函數(shù)功能:獲取位置控制過程速度值
入口參數(shù):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;
}
/**************************************************************************
函數(shù)功能:所有的控制代碼都在這里面
?????????5ms定時(shí)中斷由MPU6050的INT引腳觸發(fā)
?????????嚴(yán)格保證采樣和數(shù)據(jù)處理的時(shí)間同步 ?
**************************************************************************/
int?EXTI9_5_IRQHandler(void)?
{????
?if(PBin(5)==0)
{?????
??EXTI->PR=1<<5;??????????????????????????????????????????????????????//清除LINE5上的中斷標(biāo)志位??
???Flag_Target=!Flag_Target;
??if(delay_flag==1)
?{
?if(++delay_50==10) ?delay_50=0delay_flag=0;?????????????????????//給主函數(shù)提供50ms的精準(zhǔn)延時(shí)
?}
??if(Flag_Target==1)??????????????????????????????????????????????????//5ms讀取一次陀螺儀和加速度計(jì)的值
{
?CAN1_SEND();??????????????????????????????????????????????????????????//CAN發(fā)送
if(Usart_Flag==0&&Usart_ON_Flag==1)??memcpy(rxbufUrxbuf8*sizeof(u8)); //如果解鎖了串口控制標(biāo)志位,進(jìn)入串口控制模式
Read_DMP();???????????????????????????????????????????????????????????//===更新姿態(tài)
?? 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法測速的時(shí)間基準(zhǔn),首先讀取編碼器數(shù)據(jù)
Encoder_A=Read_Encoder(2);???????????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????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個(gè)文件信息
評(píng)論
共有 條評(píng)論