陀螺仪 MPU6050 解决不同方式安装(基于STM32库函数)


1、背景

    1、MPU6050等相关陀螺仪/惯性传感器(姿态传感器/角度传感器)默认情况下是需要水平放置安装。如图1所示,本次将陀螺仪水平安装在PCB底板上。其中,陀螺仪自身的 x-y轴 已在其模块上标记出,其z轴由右手定则可得到(食指沿着x轴,中指沿着y轴,则z轴沿着大拇指指向)

    
    图1中,陀螺仪的x-y-z轴与PCB底板的xs-ys-zs轴一致。此情况下,陀螺仪的所受重力方向为z轴负方向;我们通过陀螺仪自带DMP库得到的欧拉角可以如下表示:
    ①沿y轴旋转,为pitch(俯仰)角度

    ②沿x轴旋转,为roll(横滚)角度

    ③沿z轴旋转,为yaw(航向)角度


    2、以正点原子STM32的教学源码——“实验32 MPU6050六轴传感器实验”源码为例:图2为方向设置,图3为重力方向设置。



    ①方向设置:

    ②重力设置:

1. 重力沿 z轴/* Don't remove gravity! */if (accel[2] > 0L)      0是x轴,1是y轴,2是z轴,DMP默认程序写的是accel[2],accel[2] -= 65536L;  所以只能通过将芯片水平放置让z轴和G重合才能让 mpu_run_self_test 函数自检成功elseaccel[2] += 65536L;
2.重力沿 x轴if (accel[0] > 0L)  accel[0] -= 65536L;  elseaccel[0] += 65536L;3.重力沿 y轴if (accel[0] > 0L)  accel[0] -= 65536L;  elseaccel[0] += 65536L;


2、需求与解决

    1、需求:需要将陀螺仪随着底板PCB垂直安装。①PCB底板的 zs轴与陀螺仪x轴重合(标记zs’,之前PCB底板的xs轴与陀螺仪x轴重合),此时 zs 对应 -x;②PCB底板的y轴与陀螺仪y轴重合(与之前相同),此时 ys 对应 y;③PCB底板的zx轴与陀螺仪z轴与重合,此时 zx 对应 z;④重力方向与陀螺仪x轴正方向重合。因此陀螺仪的方向应设置如下:

陀螺仪方向设置
默认方向
static signed char gyro_orientation[9] = { 1, 0, 0,0, 1, 0,0, 0, 1};1.将默认方向更改为:系统方向与 x-y-z不同;  系统 xs 为 z , 系统 ys 为 y ,系统  zs 为 -x
static signed char gyro_orientation[9] = { 0, 0, 1,   0, 1, 0,-1, 0, 0};



    2、问题解决:
    ①代码更改内容:

第一步:更改重力方向
static int get_st_biases(long *gyro, long *accel, unsigned char hw_test)
{....../* Don't remove gravity! */ // 调整重力方向if (accel[0] > 0L)        0是x轴,1是y轴,2是z轴,DMP默认程序写的是accel[2],accel[0] -= 65536L;   所以只能通过将芯片水平放置让z轴和G重合才能让mpu_run_self_test函数自检成功elseaccel[0] += 65536L;...
}第二步:更改陀螺仪方向
//  系统方向与 x-y-z不同;  系统 xs 为 z , 系统 sy 为 y ,系统  sz 为 -x
static signed char gyro_orientation[9] = { 0, 0, 1,   0, 1, 0,-1, 0, 0};


    ②更改之后效果:之前陀螺仪的z轴转动yaw航向角,现在已经变更为新的roll横滚角;从而满足垂直安装在机构上的需求。


陀螺仪 MPU6050 解决不同方式安装相关推荐

  1. 解决iso方式安装win10找不到固态硬盘!!!

    问题说明 朋友的一台联想小新笔记本需要安装win10,我给弄了个iso启动U盘,但是在选择安装盘时找不到笔记本的固态硬盘... 问题原因 联想的锅! 以联想为例,出厂系统的BIOS内,SATA Con ...

  2. centos7切换root为mysql,CentOS 7中使用rpm方式安装MySQL 5.7后无法使用root登录解决

    最近在CentOS 7中通过rpm方式安装了最新版本的mysql-server 5.7 (mysql57-community-release-el7-7.noarch.rpm) ,发现安装成功后无法使 ...

  3. linux gcc 缺少 libmpfr.so,rpm方式安装gcc缺少依赖项的解决方法

    dpkg安装deb缺少依赖包的解决方法 [先贴出解决方案(基于Ubuntu)]: 使用dpkg -i   *.deb 的时候出现依赖没有安装 使用apt-get -f -y install  解决依赖 ...

  4. 【已解决】将CentOS7系统安装至U盘(九):使用AppImage方式安装图形处理工具Draw.io和Inkscape

    目录 1 安装Draw.io 2 安装Inkscape AppImage是一种较新的Linux软件安装格式,它提供了便利的安装方式,或者说根本不用安装,因为整个软件仅仅只是一个文件,你只需下载下来即可 ...

  5. 简单粗暴的方式解决eclipse下安装STS失败的问题

    简单粗暴的方式解决eclipse下安装STS失败的问题 参考文章: (1)简单粗暴的方式解决eclipse下安装STS失败的问题 (2)https://www.cnblogs.com/zhangyua ...

  6. 一脸懵逼学习Hive的元数据库Mysql方式安装配置

    1:要想学习Hive必须将Hadoop启动起来,因为Hive本身没有自己的数据管理功能,全是依赖外部系统,包括分析也是依赖MapReduce: 2:七个节点跑HA集群模式的: 第一步:必须先将Zook ...

  7. CentOS 安装MySQL rpm方式安装

    MySQL源码方式安装:https://www.cnblogs.com/deverz/p/10997723.html 从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!这里依旧 ...

  8. Hadoop学习(source方式安装篇)

    Hadoop学习(source方式安装篇) 1.为什么要进行源码编译 网上说Hadoop官网没有提供32位的编译好的Hadoop,这其实是假的,自从2.5版本以后,官方已经提供了64位的编译好的Had ...

  9. RPM方式安装MySQL5.6和windows下安装mysql解压版

    下载地址: http://cdn.MySQL.com/archives/mysql-5.6/MySQL-server-5.6.13-1.el6.x86_64.rpm http://cdn.mysql. ...

最新文章

  1. r语言怎么以第二列绘制线图_用卫星图像绘制世界海岸线图-第二部分
  2. python3 面向对象_Python3 面向对象
  3. npu算力如何计算_异构计算神器来了,它能带来性能革命吗
  4. 【服务器】挖矿病毒 kdevtmpfsi(一针见效)
  5. P6 EPPM 16.1 安装和配置指南 1
  6. 《软件需求十步走》读书笔记02
  7. 目标追踪论文之狼吞虎咽(1):VITAL算法
  8. 电子学会图形化三级编程题解析含答案:冬天下雪了
  9. robocode_Robocode大师的秘密,预测性定位
  10. 解决Perhaps JAVA_HOME does not point to the JDK.
  11. pytorch torchvision 各种版本whl下载地址
  12. JavaScript的发展史
  13. python电话通知_教你如何使用Python向手机发送通知
  14. dango-orm单表操作知识点
  15. 7-3 计算职工工资
  16. 打破思维断层之KMP分析 - wsc - ITeye技术网站
  17. Bzoj 3875 骑士游戏
  18. 树莓派Pico C/C++语言开发
  19. ssh 使用 wangeditor3 富文本编辑器上传图片方法
  20. U盘数据恢复软件哪款好恢复效果好

热门文章

  1. 埃航遇难者遗物遭村民贩卖!
  2. 微服务核心---服务的注册与发现,它们是什么?
  3. 基于ISO13209(OTX)实现EOL下线序列,你知多少?
  4. [教程]手机通过网络(网上邻居)播放PC共享视频的方法
  5. 腾讯云联手宇信科技发布多个联合方案,全面助力金融科技自主可控
  6. 你最爱记混的slice()和splice()
  7. 贵阳大数据交易所探索数据时代“新金融”
  8. 侠客风云传 未能连接到服务器,侠客风云传打不开怎么办 侠客风云传无法运行解决办法...
  9. HashMap集合 嵌套ArrayList集合
  10. 基于java的商品价格查询系统