当前位置:   article > 正文

MSP430F5529配置陀螺仪MPU6050(有完整代码)_msp430实现mpu6050

msp430实现mpu6050

前言

在网上关于MSP430F5529的资料还是比较少的,大部分都要从STM32里边移植,但是直接移植会遇到很多困难,最近在准备电赛,就把自己准备的成果分享出来,一方面想要填补网上资料的空缺可以帮助大家,另一方面是为了督促自己进步。

MPU6050

我觉得会用一个模块不一定需要了解它的全部,只要知道几个方面就够了。
1、功能
MPU6050具有三轴的加速度和陀螺仪
加速度计即测出实际在x,y,z轴的加速度
陀螺仪即测出x,y,z轴的角速度
建议到正点原子的文档库里边找MPU6050的资料,里边非常详细
MPU6050资料

2、接线

MSP430 MPU6050
SCL SCL
SDA SDA
RST RST
DC DC
VCC VCC
GND GND

注:MSP430的引脚为程序里设置的,需要对照程序接好引脚

3、程序配置

void MPU60xx_Init(void)
{
   
	I2C_Init();
	I2C_WriteByte(MPU60xx_ADDRESS,MPU60XX_PWR_MGMT_1, 0x00);	//解除休眠状态
	I2C_WriteByte(MPU60xx_ADDRESS,MPU60XX_SMPLRT_DIV, 0x07);
	I2C_WriteByte(MPU60xx_ADDRESS,MPU60XX_CONFIG, 0x06);
	I2C_WriteByte(MPU60xx_ADDRESS,MPU60XX_GYRO_CONFIG, 0x18);
	I2C_WriteByte(MPU60xx_ADDRESS,MPU60XX_ACCEL_CONFIG, 0x01);
}

int16_t MPU60xx_Read(uint8_t Axis)
{
   
	int16_t Data;
	Data = I2C_ReadByte(MPU60xx_ADDRESS,Axis);
	Data = Data << 8;
	Data |= I2C_ReadByte(MPU60xx_ADDRESS,Axis+1);
	return Data;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

4、位姿解算
这里用到了互补滤波算法,即给传感器获得的值和预测值加权,当你更相信预测值或传感器计算值侧加大相应权重,如图:
在这里插入图片描述
我主要参考了这个

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/879699
推荐阅读
  

闽ICP备14008679号