MPU6050原始数据分析——学习笔记

2023-05-16

MPU6050原始数据分析——学习笔记

  • 个人学习笔记
    • MPU6050简介
  • 原始数据分析
    • 加速度计
    • 陀螺仪
    • 代码

个人学习笔记

用于记录自己学习的成果,并且分享给大家一起看看。希望对看到这篇的朋友有所帮助。

MPU6050简介

MPU-6050是一款6轴运动处理组件,将陀螺仪和加速度计合在一起,减少了大量封装空间,还是很不错的。如果连接三轴的磁强计,那就成九轴了。MPU6050用的是IIC通信,想要了解更多的话,直接点击下方链接(省的打字搜索)
link

原始数据分析

加速度计

数据手册描述如下:
Accelerometer Features
The triple-axis MEMS accelerometer in MPU-60X0 includes a wide range of features:
 Digital-output triple-axis accelerometer with a programmable full scale range of ±2g, ±4g, ±8g and ±16g
 Integrated 16-bit ADCs enable simultaneous sampling of accelerometers while requiring no external
multiplexer
 Accelerometer normal operating current: 500µA
 Low power accelerometer mode current: 10µA at 1.25Hz, 20µA at 5Hz, 60µA at 20Hz, 110µA at
40Hz
 Orientation detection and signaling
 Tap detection
 User-programmable interrupts
 High-G interrupt
 User self-test
应用时处理数据我们需要知道 16-bit ADCs(读出的数据应该在-32768~32767),同时设置不同的量程 ±2g, ±4g, ±8g and ±16g
根据需求选取量程,量程选取越小,精度越高,量程较大时精度不如小量程。
设x轴加速度原始数据为ADCx,假设此时量程选取为±4g,则原始数据转换公式为 (4g * ADCx)/32768
下方笔记有兴趣可以看看,比较简略。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

陀螺仪

数据手册的描述如下:
Gyroscope Features
The triple-axis MEMS gyroscope in the MPU-60X0 includes a wide range of features:
 Digital-output X-, Y-, and Z-Axis angular rate sensors (gyroscopes) with a user-programmable fullscale range of ±250, ±500, ±1000, and ±2000°/sec
 External sync signal connected to the FSYNC pin supports image, video and GPS synchronization
 Integrated 16-bit ADCs enable simultaneous sampling of gyros
 Enhanced bias and sensitivity temperature stability reduces the need for user calibration
 Improved low-frequency noise performance
 Digitally-programmable low-pass filter
 Gyroscope operating current: 3.6mA
 Standby current: 5µA
 Factory calibrated sensitivity scale factor
 User self-test
应用时处理数据我们需要知道 16-bit ADCs(读出的数据应该在-32768~32767),同时设置不同的量程 ±250, ±500, ±1000, and ±2000°/sec
陀螺仪提供的是三轴角速度
根据需求选取量程,量程选取越小,精度越高,量程较大时精度不如小量程。
设x轴角速度原始数据为ADCx,假设此时量程选取为±2000dps(degree per second),则原始数据转换公式为 (2000 * ADCx)/32768
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

下面展示一些 MPU6050原始数据处理代码,没几行,主要是试试这个功能,第一次用CSDN写东西
代码不完整,变量、子函数什么的自己看着补吧。。。

unsigned char MPU6050_Init(void)
{
    int  res;
    res = MPU_Read_Byte(MPU6050_ADDR,WHO_AM_I);           //读取MPU6050的ID
    if(res == MPU6050_ID)                                 //器件ID正确
    {
    	;
    }
    else
    {
        return 1;
    }

    res = 0;
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_PWR_MGMT1_REG,0X80);//复位MPU6050
    delayms_mpu(100);  //延时100ms
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_PWR_MGMT1_REG,0X00);//唤醒MPU6050
    res += MPU_Set_Gyro_Fsr(3);					        	   //陀螺仪传感器,±2000dps
    res += MPU_Set_Accel_Fsr(1);					       	   //加速度传感器,±4g
    res += MPU_Set_Rate(1000);						       	   //设置采样率1000Hz
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_CFG_REG,0x02);      //设置数字低通滤波器   98hz
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_INT_EN_REG,0X00);   //关闭所有中断
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_USER_CTRL_REG,0X00);//I2C主模式关闭
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_PWR_MGMT1_REG,0X01);//设置CLKSEL,PLL X轴为参考
    res += MPU_Write_Byte(MPU6050_ADDR,MPU_PWR_MGMT2_REG,0X00);//加速度与陀螺仪都工作

    if(res == 0)  //上面寄存器都写入成功
    {
        ;
    }
    else return 1;

    return 0;
}

void MPU6050(void)
{
    MPU_Get_Raw_data(&Accel_x,&Accel_y,&Accel_z,&Gyro_x,&Gyro_y,&Gyro_z);	//得到加速度传感器数据
        ax = (4*9.8*Accel_x)/32768;
        ay = (4*9.8*Accel_y)/32768;
        az = (4*9.8*Accel_z)/32768;
        Gyro_x = (2000*Gyro_x)/32768;
        Gyro_y = (2000*Gyro_y)/32768;
        Gyro_z = (2000*Gyro_z)/32768;

    	//用加速度计算三个轴和水平面坐标系之间的夹角
    	Angle_x_temp=(atan(ay/az))*180/3.14;
    	Angle_y_temp=(atan(ax/az))*180/3.14;

    	Kalman_Filter_X(Angle_x_temp,Gyro_x);  //卡尔曼滤波计算X倾角
    	Kalman_Filter_Y(Angle_y_temp,Gyro_y);  //卡尔曼滤波计算Y倾角
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPU6050原始数据分析——学习笔记 的相关文章

  • 查看当前自己电脑的线程数

    我们在学习线程 xff0c 那我们知道自己电脑中的CPU的线程数吗 xff1f 方法一 xff1a 任务管理器 启动任务管理器点击任务管理器的 性能 选项如下图所示 xff0c 我的电脑是双核四线程的 如果上图看的不明确 xff0c 可以看
  • [MFC控件]获取Edit编辑框内容

    文章目录 一 设置编辑框变量二 通过ID获取 一 设置编辑框变量 1 为编辑框控件添加一个类型为CEdit的变量m Edit CString str span class token punctuation span m Edit span
  • python pip

    简介 pip 是最常用的Python包管理工具 xff0c 该工具提供了对Python 包的查找 下载 安装 卸载的功能 目前Python 2 7 9 43 或 Python 3 4 43 以上版本都自带 pip 工具 xff0c 或者co
  • Julia入门-0、在Windows下安装Julia

    文章目录 0 前言1 相关网站2 Windows 系统下安装Julia3 Julia 交互式命令窗口 0 前言 Julia 是一个面向科学计算的高性能动态高级程序设计语言 Julia 最初是为了满足高性能数值分析和计算科学的需要而设计的 x
  • Julia入门-2、Julia中的全局模块对象

    在 Julia 中 xff0c 有几个关键的全局模块对象 xff1a jl main module 表示当前正在执行的模块 xff0c 也称为 顶层模块 xff08 top level module xff09 或 主模块 xff08 ma
  • Julia入门-3、Julia包管理工具

    文章目录 0 Julia 的包管理工具是 96 Pkg 96 1 使用Julia包管理工具过慢 0 Julia 的包管理工具是Pkg Julia 的包管理工具是Pkg xff0c 可以用于安装 更新 卸载和管理 Julia 中的软件包 以下
  • 华三snmp3配置

    snmp agent 开启SNMP协议 snmp agent local engineid 0000000000 系统自动生成 xff0c 无需配置 snmp agent community read h3c acl 2001 只读属性为h
  • 如何合理的选择加密软件?驱动层加密与应用层加密那个更具优势?

    合理的使用文档加密软件至关重要 站在信息安全的角度来看 xff0c 目前要做的是 xff0c 人员需要正确的对待加密软件为基础 xff0c 然后依据企业的实际办公需求 xff0c 去合理的使用文档加密软件产品来帮助企业达到数据安全保护的要求
  • 系统调用的概念及原理

    系统调用与内核函数 内核函数与普通函数形式上没有什么区别 xff0c 只不过前者在内核实现 xff0c 因此要满足一些内核编程的要求 系统调用是用户进程进入内核的接口层 xff0c 它本身并非内核函数 xff0c 但它是由内核函数实现的 x
  • ubuntu18.04下 安装SLAM-Pangolin(亲测有效)

    首先安装Pangolin所需依赖 sudo apt install libgl1 mesa dev sudo apt install libglew dev sudo apt install cmake sudo apt install l
  • 【树莓派开发日记2 】树莓派安装Ubuntu22系统及启动黑屏等问题的踩坑记录

    树莓派安装Ubuntu22系统及启动黑屏等问题的踩坑记录 在成功进行了组装后 xff0c 就到了最为关键的部分了 xff0c 进行树莓派的系统烧录 虽然树莓派有自己对应的系统 xff0c raspbian xff0c 但是绝大部分的开发者还
  • Docker 安装 MySQL

    Docker 安装 MySQL 1 拉取指定版本mysql2 创建并运行mysql容器3 通过 navicat 远程连接 docker安装教程 1 拉取指定版本mysql 拉取latest版本 xff08 最新版本 xff09 MySQL
  • 智能控制知识点总结

    智能控制知识点总结 一 选择 xff08 20分 xff09 二 填空 xff08 20分 xff09 1 智能控制系统要有自适应和自学习的能力 智能控制必须具有模拟人类学习 Learning 和自适应 xff08 Adaptation 的
  • git new repository上传

    Command line instructions Git global setup span class token function git span config global user name span class token s
  • ROS学习:ROS文件系统--package.xml

    package xml 也是一个 catkin的package 必备文件 xff0c 它是这个软件包的描述文件 xff0c 在较早的ROS 版本 rosbuild 编译系统 中 xff0c 这个文件叫做 manifest xml xff0c
  • SIFT图像拼接

    SIFT图像拼接 文章目录 SIFT图像拼接 前言二 相关工作1 SIFT2 RANSAC拟合3单应性变换4 SVD分解 三 实现步骤四 效果总结代码 前言 结合SIFT 单应性变换 Ransac和SVD等算法实现指定几幅图像之间的拼接 x
  • Redis简介

    目录 一 NoSQL介绍 二 Redis介绍 3 1什么是Redis 3 2 Redis应用场景 3 3 Redis优势 3 4 Redis与其他key value存储有什么不同 xff1f 一 NoSQL介绍 NoSQL 是 Not On
  • docker安装rabbitmq(细)

    这里使用docker安装rabbitmq xff0c 前提是要安装docker xff0c 安装docker的步骤如下 xff1a 一 安装docker 1 安装docker依赖 sudo yum install y yum utils d
  • 数组删除元素

    在数组中删除值为val的元素 xff0c 因为数组在内存中是连续存储 xff0c 所以不能只删除元素 xff0c 而是在删除元素后还要使后边元素前移 在数组中删除元素有两种方法 xff1a xff08 1 xff09 暴力解法 xff08
  • STM32F103最小系统板引脚定义

    STM32F103最小系统原理图 本人初学stm32 若有误解之处 还望大佬们指正改进 感谢 STM32F103各引脚定义 可前往 STM32F103xCDE 数据手册 英文 的第三章 Pinouts and pin description

随机推荐

  • 基带面试题附答案

    请列举您知道的电阻 电容 电感品牌 xff08 最好包括国内 国外品牌 xff09 电容 xff1a 美国 xff1a AVX VISHAY 威世 日本 xff1a KOA 兴亚 Kyocera 京瓷 muRata 村田 Panasonic
  • nginx简介(一)

    背景 xff1a 前面说了准备围绕运维工程师所要学习的知识进行记录和分享 xff0c linux基础的记录是一个漫长的过程 xff0c 后面会时不时的记录下 今天准备拉一个分支 xff0c 介绍一下nginx的相关内容 xff0c 由于ng
  • 蓝桥杯嵌入式——第十二届蓝桥杯嵌入式国赛客观题

    1 填空题 嵌入式竞赛平台上板载的微控制器是 xff1a 3 级流水线 xff0c 具有 128 Kbytes的Flash存储空间 xff08 请在第一 二空格处填写10进制数值 xff09 解析 xff1a STM32G431RBT6采用
  • git pull 所有branch和tag并上传

    pull span class token function git span branch r span class token operator span span class token function grep span v sp
  • 双非渣本大三学生春招拿到实习Offer的经历

    从今年的2月底投简历开始到现在已经两个月了 xff0c 两个月的时间我经历了很多大大小小的笔试面试 xff0c 坎坎坷坷的也是终于拿到了美图的Offer xff0c 美团和头条好歹也都进了终面 xff0c 躺在备胎池里面 xff08 不打算
  • TX2超详细,超有用的刷机教程

    TX2超详细 xff0c 超有用的刷机教程 TX2被Nvidia官方称作是最快 xff0c 最节能的嵌入式AI计算设备 它的功耗小 xff0c 只有7 5W xff0c 体型也小 xff0c 只有一张信用卡那么大 xff0c 它是真正可以实
  • vscode 同步gitee远程仓库

    一 首先在gitee端创建远程仓库 二 在vscode中配置git信息 git config global user name 34 your name 34 git config global user email 34 your ema
  • QGC地面站参数调节

    校准 xff1a 1 选择机架 xff1a 一般用DJI Flame Wheel F450机架 xff0c 选择之后点击 应用并重启 xff1b 2 传感器校准 xff1a 无人机会重新连接地面站 xff0c 依次校准 磁罗盘 陀螺仪 xf
  • PX4初级教程

    链接 xff1a https pan baidu com s 1VIQcOQt I5 evMx1jnV0ZQ 提取码 xff1a 8niq
  • Qt Creator编写无人机地面站系统

    用户登录界面 将用户注册的账户信息如实填写 xff0c 然后输入验证码 xff0c 点击 xff02 登录 xff02 即可进入无人机地面站管理系统 xff0e 地面站界面
  • Mavlink自定义协议

    参照本人博客 xff1a 博客直达 浏览密码 xff1a N414 这里不做描述 xff0c 详细过程请移步本人博客
  • 狼群算法资源总结

    狼群算法介绍 xff1a 狼群算法的优化 狼群算法三维路径规划 xff1a 狼群算法三维路径规划Matlab
  • html+css+php+mysql实现注册+登录+修改密码(附完整代码)

    注 xff1a 转载及使用源代码请注明来源 xff01 如疑问可私信 xff01 目的 xff1a 在利用QT软件进行登录软件开发时 xff0c 就想要实现点击按钮跳转到指定网页进行注册以及修改密码等操作 xff0c 就像QQ客户端那样可以
  • Qt嵌入外部EXE程序,并显示在主界面中!

    一 获取程序句柄以及类 打开Visual Studio 进行查询 二 QT调用程序 H文件 span class token macro property span class token directive keyword ifndef
  • Cmake软件编译opencv报错,CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download...

    当执行如下操作时 xff1a 出现下面报错 xff0c 在链接ipaddress com查询raw githubusercontent com地址 xff0c 然后将ip添加至C Windows System32 drivers etc h
  • MOT:MOTchallenge任务评价方法

    GT介绍 span class token number 1 1 span 912 484 97 109 0 7 1 span class token number 2 1 span 912 484 97 109 0 7 1 span cl
  • /bin/sh^M: 坏的解释器: 没有那个文件或目录

    在windows上面notepad 43 43 写的shell文件 xff0c 复制带Linux上面提示错误 bin sh M 坏的解释器 没有那个文件或目录 在命令行执行下面语句 xff1a span class token commen
  • 相机内参矩阵、外参矩阵、畸变矩阵

    1 相机针孔模型 图中 xff0c X坐标系是针孔所在坐标系 xff0c Y坐标系为成像平面坐标系 xff0c P为空间一点 xff0c 小孔成像使得P点在图像平面上呈现了一个倒立的像 齐次形式 xff1a 在此 xff0c 我们先暂时舍弃
  • STM32—驱动GY85-IMU模块

    GY85是一个惯性测量模块 xff0c 内部集成了三轴加速度计 三轴陀螺仪 电子罗盘 气压传感器等芯片 xff0c 用于测量和报告设备速度 方向 重力 xff0c 模块可以将加速度计 陀螺仪 电子罗盘等传感器的数据进行综合 xff0c 在上
  • MPU6050原始数据分析——学习笔记

    MPU6050原始数据分析 学习笔记 个人学习笔记MPU6050简介 原始数据分析加速度计陀螺仪代码 个人学习笔记 用于记录自己学习的成果 xff0c 并且分享给大家一起看看 希望对看到这篇的朋友有所帮助 MPU6050简介 MPU 605