資源簡介
平衡小車之家--風(fēng)力擺源碼

代碼片段和文件信息
#include?“control.h“
#include?“filter.h“
??/**************************************************************************
作者:平衡小車之家
我的淘寶小店:http://shop114407458.taobao.com/
**************************************************************************/
u8?Flag_TargetFlag_Change;??//相關(guān)標志位
float?Voltage_CountVoltage_All;??//電壓采樣相關(guān)變量
float?Gyro_K=0.004;???????//陀螺儀比例系數(shù)
int?jsum;
#define?Period?1630???????//單擺周期(ms)一般在1.3~1.6s之間
/**************************************************************************
函數(shù)功能:所有的控制代碼都在這里面
?????????5ms定時中斷由MPU6050的INT引腳觸發(fā)
?????????嚴格保證采樣和數(shù)據(jù)處理的時間同步 ?
**************************************************************************/
int?EXTI9_5_IRQHandler(void)?
{
if(INT==0) //PB6??接6050?INT
{?
? EXTI->PR=1<<6;?//清除LINE1上的中斷標志位??
if((++delay_50==10)&&delay_flag) ?delay_50=0delay_flag=0;??//給主函數(shù)提供50ms的精準延時
Read_DMP();????????//===更新姿態(tài)
????????TimeCnt+=5;????????//運行時間定時器??用于角度計算
if(Flag_Zero==0)???//零點讀取成功
{
Get_RC();??????//獲取控制狀態(tài)
Alpha=(float)TimeCnt/Period*2*PI;??????//float不可省略,單擺周期處理成三角函數(shù)2π周期
Target_X=Amplitude_x*sin(Alpha);???????//X方向目標值函數(shù)
Target_Y=Amplitude_y*sin(Alpha+Phase);?//Y方向目標值函數(shù)
// Read_DMP();????//===更新姿態(tài)
Measure_X=(float)tan((Roll-ZHONGZHI_B)/180*2*PI)*Height;????????//角度弧度換算與距離計算
Measure_Y=(float)tan((Pitch-ZHONGZHI_A)/180*2*PI)*Height;???????//角度弧度換算與距離計算
Motor_X=Position_PID_X(Measure_XTarget_X);
Motor_Y=Position_PID_Y(Measure_Y?Target_Y);
Xianfu_Pwm(5800);//限幅5800,滿占空比5800,避免出現(xiàn)異常 ?
?? Led_Flash(100);??//===LED閃爍;常規(guī)模式?1s改變一次指示燈的狀態(tài)
}
Key();???????????//掃描按鍵變化
if(Turn_Off()==0)???Set_Pwm(Motor_XMotor_Y);?????//===如無異常,賦值給PWM寄存器??
?}
?return?0; ?
}?
/**************************************************************************
函數(shù)功能:賦值給PWM寄存器
入口參數(shù):PWM
返回??值:無
**************************************************************************/
void?Set_Pwm(int?Motor_Xint?Motor_Y)
{
?? if(Motor_X>0) PWMA1=Motor_X
????????????????????PWMC1=0;
else? ????????????PWMA1=0
????????????????????????PWMC1=-Motor_X;
?? if(Motor_Y>0) PWMB1=0
????????????????????PWMD1=Motor_Y;
else? ????????????PWMB1=-Motor_Y
????????????????????????PWMD1=0;
}
/**************************************************************************
函數(shù)功能:限制PWM賦值?
入口參數(shù):幅值
返回??值:無
**************************************************************************/
void?Xianfu_Pwm(int?amplitude)
{
????if(Motor_X<-amplitude)?Motor_X=-amplitude;
if(Motor_X>amplitude)??Motor_X=amplitude;
??if(Motor_Y<-amplitude)?Motor_Y=-amplitude;
if(Motor_Y>amplitude)??Motor_Y=amplitude;
}
/**************************************************************************
函數(shù)功能:按鍵修改小車運行狀態(tài)?
入口參數(shù):無
返回??值:無
**************************************************************************/
void?Key(void)
{
u8?tmp;
tmp=click_N_Double(120);?
if(tmp==1)??Flag_Stop=1;??????????//單擊控制電機停
????if(tmp==2)??Flag_Show=!Flag_Show;?//雙擊
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????399??2011-04-23?10:24??1.風(fēng)力擺源碼\keilkilll.bat
?????文件???????8520??2019-08-02?10:40??1.風(fēng)力擺源碼\MiniBalance\CONTROL\control.c
?????文件????????906??2019-05-15?08:34??1.風(fēng)力擺源碼\MiniBalance\CONTROL\control.h
?????文件???????2891??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance\DataScope_DP\DataScope_DP.C
?????文件????????602??2019-05-14?10:03??1.風(fēng)力擺源碼\MiniBalance\DataScope_DP\DataScope_DP.h
?????文件??????19342??2012-12-14?11:16??1.風(fēng)力擺源碼\MiniBalance\DMP\dmpKey.h
?????文件???????6765??2012-12-14?11:16??1.風(fēng)力擺源碼\MiniBalance\DMP\dmpmap.h
?????文件??????84104??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance\DMP\inv_mpu.c
?????文件???????4335??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance\DMP\inv_mpu.h
?????文件??????57839??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance\DMP\inv_mpu_dmp_motion_driver.c
?????文件???????3386??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance\DMP\inv_mpu_dmp_motion_driver.h
?????文件???????2105??2015-12-07?15:52??1.風(fēng)力擺源碼\MiniBalance\filter\filter.c
?????文件????????399??2016-04-06?14:10??1.風(fēng)力擺源碼\MiniBalance\filter\filter.h
?????文件??????11649??2019-08-01?19:59??1.風(fēng)力擺源碼\MiniBalance\MPU6050\MPU6050.c
?????文件??????14810??2019-05-20?15:34??1.風(fēng)力擺源碼\MiniBalance\MPU6050\mpu6050.h
?????文件???????9075??2019-05-20?16:20??1.風(fēng)力擺源碼\MiniBalance\show\show.c
?????文件????????356??2019-05-14?10:00??1.風(fēng)力擺源碼\MiniBalance\show\show.h
?????文件??????17273??2010-06-07?10:25??1.風(fēng)力擺源碼\MiniBalance_COER\core_cm3.c
?????文件??????85714??2011-02-09?14:59??1.風(fēng)力擺源碼\MiniBalance_COER\core_cm3.h
?????文件??????15503??2011-03-10?10:52??1.風(fēng)力擺源碼\MiniBalance_COER\startup_stm32f10x_hd.s
?????文件???????2469??2019-05-12?21:12??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\ADC\adc.c
?????文件????????271??2019-05-12?21:12??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\ADC\adc.h
?????文件???????9673??2019-02-18?21:22??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\CAN\can.c
?????文件????????740??2018-12-05?20:53??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\CAN\can.h
?????文件??????19342??2012-12-14?11:16??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\DMP\dmpKey.h
?????文件???????6765??2012-12-14?11:16??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\DMP\dmpmap.h
?????文件??????84104??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\DMP\inv_mpu.c
?????文件???????4335??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\DMP\inv_mpu.h
?????文件??????57839??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\DMP\inv_mpu_dmp_motion_driver.c
?????文件???????3386??2015-07-09?14:05??1.風(fēng)力擺源碼\MiniBalance_HARDWARE\DMP\inv_mpu_dmp_motion_driver.h
............此處省略298個文件信息
評論
共有 條評論