我们日常见的陀螺仪模块的使用就是在平衡小车和控制小车的移动上,那么陀螺仪是怎么使用的呢,首先就是能很好的使用I2C,而看到这里,说的一切都是虚的,首先陀螺仪的配置和数据手册大家也是没少看的,但是还是跟我再了解一遍.
MPU6050内部整合了三轴MEMS陀螺仪、三轴MEMS加速度计以及一个可扩展的数字运动处理器DMP(Digital Motion Processor),而且还可以连接一个第三方数字传感器(如磁力计),这样的话,就可以通过IIC接口输出一个9轴信号(链接第三方数字传感器才可以输出九轴信号,否则只有六轴信号)。更加方便的是,有了DMP(同时这个可以在官方库去移植),可以结合InvenSense公司提供的运动处理资料库,实现姿态解算。通过自带的DMP,可以通过IIC接口输出9轴融合演算的数据,大大降低了运动处理运算对操作系统的负荷,同时也降低了开发难度。其实,简单一句话说,陀螺仪就是测角速度的,加速度传感器就是测角加速度的,二者数据通过算法就可以得到PITCH、YAW、ROLL角了。
而对陀螺仪的算法精确就是低通滤波和卡尔曼滤波(在低通滤波上我已学会,在卡尔曼滤波我已学废,但是我还是鼓励大家学卡尔曼滤波,毕竟对数据可以很精准)
这张图片大家也看得很多了吧,但是我们还是应该要知道这个图片就对应这mpu6050的方向,wo我也希望在使用这个模块的时候可以看清它的方向,毕竟这种事我也经常干。
这个图咋们也能看出来这个就是mpu6050的内部框图,其中就是测温度加速度和姿态的。
这个大家可以参考一下,HAL库的玩家更要看掌握知识:链接文章来源:https://www.toymoban.com/news/detail-539959.html
那么简单的来了,上实践操作部分,而且不要怕不会用,我会慢慢讲解的。文章来源地址https://www.toymoban.com/news/detail-539959.html
/*
*mpu6050.c
*
*Creation date: September 11th, 2021
*Author: Xiaodong
*
*Kalman filter algorithm used from https://github.com/TKJElectronics/KalmanFilter
*/
#include <math.h>
#include "mpu6050.h"
#define RAD_TO_DEG 57.3
#define WHO_AM_I_REG 0x75
#define PWR_MGMT_1_REG 0x6B
#define SMPLRT_DIV_REG 0x19
#define ACCEL_CONFIG_REG 0x1C
#define ACCEL_XOUT_H_REG 0x3B
#define TEMP_OUT_H_REG 0x41
#define GYRO_CONFIG_REG 0x1B
#define GYRO_XOUT_H_REG 0x43
// Setup MPU6050
#define MPU6050_ADDR 0xD0
const uint16_t i2c_timeout = 100;
const double Ac
到了这里,关于陀螺仪mpu6050的使用(附带HAL的使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!