资源简介
驱动麦克纳姆轮的电机控制程序,亲测可用,已调出。
代码片段和文件信息
#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;
#define a_PARAMETER (0.095f)
#define b_PARAMETER (0.086f)
/**************************************************************************
函数功能:小车运动数学模型
入口参数:X Y Z 三轴速度或者位置
返回 值:无
**************************************************************************/
void Kinematic_Analysis(float Vxfloat Vyfloat Vz)
{
Target_A = -Vx+Vy-Vz*(a_PARAMETER+b_PARAMETER);
Target_B = +Vx+Vy-Vz*(a_PARAMETER+b_PARAMETER);
Target_C = -Vx+Vy+Vz*(a_PARAMETER+b_PARAMETER);
Target_D = +Vx+Vy+Vz*(a_PARAMETER+b_PARAMETER);
}
/**************************************************************************
函数功能:获取位置控制过程速度值
入口参数:X Y Z 三轴位置变化量
返回 值:无
**************************************************************************/
void Kinematic_Analysis2(float Vxfloat Vyfloat Vz)
{
Rate_A = -Vx+Vy-Vz*(a_PARAMETER+b_PARAMETER);
Rate_B = +Vx+Vy-Vz*(a_PARAMETER+b_PARAMETER);
Rate_C = -Vx+Vy+Vz*(a_PARAMETER+b_PARAMETER);
Rate_D = +Vx+Vy+Vz*(a_PARAMETER+b_PARAMETER);
}
/**************************************************************************
函数功能:所有的控制代码都在这里面
5ms定时中断由MPU6050的INT引脚触发
严格保证采样和数据处理的时间同步
**************************************************************************/
int EXTI15_10_IRQHandler(void)
{
if(INT==0)
{
EXTI->PR=1<<15; //清除LINE5上的中断标志位
Flag_Target=!Flag_Target;
if(delay_flag==1)
{
if(++delay_50==10) delay_50=0delay_flag=0; //给主函数提供50ms的精准延时
}
if(Flag_Target==1) //5ms读取一次陀螺仪和加速度计的值
{
if(Usart_Flag==0&&Usart_ON_Flag==1) memcpy(rxbufUrxbuf8*sizeof(u8)); //如果解锁了串口控制标志位,进入串口控制模式
Read_DMP(); //===更新姿态
Key();//扫描按键变化
return 0;
} //===10ms控制一次,为了保证M法测速的时间基准,首先读取编码器数据
Encoder_A=Read_Encoder(2); //===读取编码器的值
Position_A+=Encoder_A; //===积分得到速度
Encoder_B=Read_Encoder(3); //===读取编码器的值
Position_B+=Encoder_B; //===积分得到速度
Encoder_C=-Read_Encoder(4);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 20031 2017-05-09 21:40 1.标准版麦轮小车源码\BALANCE\CONTROL\control.c
文件 1265 2017-03-26 13:32 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
文件 8068 2017-04-01 11:52 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
文件 9756 2017-03-27 20:39 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
文件 7022 2017-03-26 14:39 1.标准版麦轮小车源码\HARDWARE\ENCODER\encoder.c
文件 650 2017-03-26 13:06 1.标准版麦轮小车源码\HARDWARE\ENCODER\encoder.h
文件 763 2017-03-13 20:31 1.标准版麦轮小车源码\HARDWARE\EXTI\exti.c
文件 443 2017-03-13 20:31 1.标准版麦轮小车源码\HARDWARE\EXTI\exti.h
文件 10781 2017-03-13 20:04 1.标准版麦轮小车源码\HARDWARE\IIC\IOI2C.c
文件 3123 2017-03-13 21:29 1.标准版麦轮小车源码\HARDWARE\IIC\IOI2C.h
文件 2519 2017-03-13 17:43 1.标准版麦轮小车源码\HARDWARE\KEY\key.c
文件 282 2017-03-13 17:43 1.标准版麦轮小车源码\HARDWARE\KEY\key.h
............此处省略176个文件信息
相关资源
- STM32F103超精准步进电机定角oled显示角
- TFTLCD实时绘制曲线曲线动态更新
- wenshidushangweiji.rar
- STM32F103ZET6通过max30102模块简单测试心
- 基于STM32单片机的DHT11数字传感器代码
- DS18B20温度传感器模块使用资料包stm
- 基于stm32的ads1115驱动程序
- MAX30102心率和血氧STM32F103ZET6
- stm32f103驱动迪文屏幕DWIN
- stm32+GY-85九轴传感器
- 水墨屏 stm32f103核心板
- OLED stm32f4程序
- KS103 stm32f407程序
- LDC1000模块 STM32f103程序
- 利用STM32读取MPU6050三个角度的值,通
- STM32F103 实现SI4432通讯 测试成功
- 8乘*8无冲突矩阵键盘STM32程序
- stm32-编码器模式
- stm32 ppm解码
- 基于stm32f407的贪吃蛇
- 基于STM32的WIFI模块进行数据传输
- 基于STM32系统的ATT7022计量芯片智能电
- STM32战舰版RC522使用例程
- 基于STM32的ADC采样(双通道)
- 基于是stm32的PWM呼吸灯
- STM32+OV7670+LCDTFT显示256灰阶
- STM32使用LCD屏显示串口数据
- SGP30_PM2.5_STM32F103.rar
- 基于STM32的热水器设计毕业设计
- 基于stm32的信号发生器
评论
共有 条评论