资源简介
平衡小车之家--风力摆源码
代码片段和文件信息
#include “control.h“
#include “filter.h“
/**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/
u8 Flag_TargetFlag_Change; //相关标志位
float Voltage_CountVoltage_All; //电压采样相关变量
float Gyro_K=0.004; //陀螺仪比例系数
int jsum;
#define Period 1630 //单摆周期(ms)一般在1.3~1.6s之间
/**************************************************************************
函数功能:所有的控制代码都在这里面
5ms定时中断由MPU6050的INT引脚触发
严格保证采样和数据处理的时间同步
**************************************************************************/
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; //给主函数提供50ms的精准延时
Read_DMP(); //===更新姿态
TimeCnt+=5; //运行时间定时器 用于角度计算
if(Flag_Zero==0) //零点读取成功
{
Get_RC(); //获取控制状态
Alpha=(float)TimeCnt/Period*2*PI; //float不可省略,单摆周期处理成三角函数2π周期
Target_X=Amplitude_x*sin(Alpha); //X方向目标值函数
Target_Y=Amplitude_y*sin(Alpha+Phase); //Y方向目标值函数
// Read_DMP(); //===更新姿态
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,避免出现异常
Led_Flash(100); //===LED闪烁;常规模式 1s改变一次指示灯的状态
}
Key(); //扫描按键变化
if(Turn_Off()==0) Set_Pwm(Motor_XMotor_Y); //===如无异常,赋值给PWM寄存器
}
return 0;
}
/**************************************************************************
函数功能:赋值给PWM寄存器
入口参数: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;
}
/**************************************************************************
函数功能:限制PWM赋值
入口参数:幅值
返回 值:无
**************************************************************************/
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;
}
/**************************************************************************
函数功能:按键修改小车运行状态
入口参数:无
返回 值:无
**************************************************************************/
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.风力摆源码\keilkilll.bat
文件 8520 2019-08-02 10:40 1.风力摆源码\MiniBalance\CONTROL\control.c
文件 906 2019-05-15 08:34 1.风力摆源码\MiniBalance\CONTROL\control.h
文件 2891 2015-07-09 14:05 1.风力摆源码\MiniBalance\DataScope_DP\DataScope_DP.C
文件 602 2019-05-14 10:03 1.风力摆源码\MiniBalance\DataScope_DP\DataScope_DP.h
文件 19342 2012-12-14 11:16 1.风力摆源码\MiniBalance\DMP\dmpKey.h
文件 6765 2012-12-14 11:16 1.风力摆源码\MiniBalance\DMP\dmpmap.h
文件 84104 2015-07-09 14:05 1.风力摆源码\MiniBalance\DMP\inv_mpu.c
文件 4335 2015-07-09 14:05 1.风力摆源码\MiniBalance\DMP\inv_mpu.h
文件 57839 2015-07-09 14:05 1.风力摆源码\MiniBalance\DMP\inv_mpu_dmp_motion_driver.c
文件 3386 2015-07-09 14:05 1.风力摆源码\MiniBalance\DMP\inv_mpu_dmp_motion_driver.h
文件 2105 2015-12-07 15:52 1.风力摆源码\MiniBalance\filter\filter.c
文件 399 2016-04-06 14:10 1.风力摆源码\MiniBalance\filter\filter.h
文件 11649 2019-08-01 19:59 1.风力摆源码\MiniBalance\MPU6050\MPU6050.c
文件 14810 2019-05-20 15:34 1.风力摆源码\MiniBalance\MPU6050\mpu6050.h
文件 9075 2019-05-20 16:20 1.风力摆源码\MiniBalance\show\show.c
文件 356 2019-05-14 10:00 1.风力摆源码\MiniBalance\show\show.h
文件 17273 2010-06-07 10:25 1.风力摆源码\MiniBalance_COER\core_cm3.c
文件 85714 2011-02-09 14:59 1.风力摆源码\MiniBalance_COER\core_cm3.h
文件 15503 2011-03-10 10:52 1.风力摆源码\MiniBalance_COER\startup_stm32f10x_hd.s
文件 2469 2019-05-12 21:12 1.风力摆源码\MiniBalance_HARDWARE\ADC\adc.c
文件 271 2019-05-12 21:12 1.风力摆源码\MiniBalance_HARDWARE\ADC\adc.h
文件 9673 2019-02-18 21:22 1.风力摆源码\MiniBalance_HARDWARE\CAN\can.c
文件 740 2018-12-05 20:53 1.风力摆源码\MiniBalance_HARDWARE\CAN\can.h
文件 19342 2012-12-14 11:16 1.风力摆源码\MiniBalance_HARDWARE\DMP\dmpKey.h
文件 6765 2012-12-14 11:16 1.风力摆源码\MiniBalance_HARDWARE\DMP\dmpmap.h
文件 84104 2015-07-09 14:05 1.风力摆源码\MiniBalance_HARDWARE\DMP\inv_mpu.c
文件 4335 2015-07-09 14:05 1.风力摆源码\MiniBalance_HARDWARE\DMP\inv_mpu.h
文件 57839 2015-07-09 14:05 1.风力摆源码\MiniBalance_HARDWARE\DMP\inv_mpu_dmp_motion_driver.c
文件 3386 2015-07-09 14:05 1.风力摆源码\MiniBalance_HARDWARE\DMP\inv_mpu_dmp_motion_driver.h
............此处省略298个文件信息
- 上一篇:网络设备Visio图标库
- 下一篇:cyclegan预训练模型
相关资源
- aac+h264封装MP4
- Linera Algebra 4th Edition by Friedberg
- Praat将连续录制的声音文件切成小单位
- SAAS全文档需求资料
- shaanxizm_6931461.zip
- wKh2BFxCHryAAQh9AEg2DAzxD_o173.pdf
- 《电子线路》谢家奎第四版线性部分
- 员工管理ppt
- createsamples.exe和haartraining.exe及所需d
- R的统计包 DAAG
- 5aafaafe7897dfa0be78a1955a1a80ac.pdf
- Vehicle-And-Pedestrian-Detection-Using-Haar-Ca
- AWS Certified Solutions Architect Associate Pr
- AWS CSAA Study Guide 2nd Edition.pdf
- faac windows
- 9408efb3c3adaaf800fe5a3a1932c2df.rar
- 481f6c37d89aafa8fbe0cab4b0b64123.rar
- MXF Book Material eXchange Format
- BANDICAM录屏软件(单文件免安装)
- Authorware----自制简历
- Computer Algorithms: Introduction to Design an
- 深度学习Goodfellow Yoshua Bengio Aaron Cou
- 模糊检测blur detection using wavelet trans
- CATIA V5R20 CAA RADE视频安装教程
- 致远OAA8V5-6.0产品培训-业务生成器
- AAE考试必看书籍
- 国际民用航空公约附件十中文官方翻
- ibaAnalyzerVer.6.4.1
- i1Profiler 1.7.1 AA
- 基于HAAR特征SVM分类器训练模型,包含
评论
共有 条评论