附件

  • 浏览量:2214
  • 下载量:216
  • 资料大小:0 B
  • 日期:2015-10-10
  • 上传者:cztqwan
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    一、简介






    在上一讲中,已经可以读出mpu6050的加速度传感器和角速度传感器的原始数据。不过对于很多时候这些原始数据并不是那么的有用,特别是对于搞四轴,需要的是姿态数据,也就是欧拉角:航向角(yaw)、横滚角(roll)和俯仰角(pitch)。要得到欧拉角数据,就得利用原始数据,进行姿态融合解算,不过这个过程比较复杂。而mpu6050自带了数字运动处理器,即dmp,并且,invensense提供了一个mpu6050的嵌入式运动驱动库,结合 mpu6050的dmp,可以将原始数据,直接转换成四元数输出,而得到四元数之后,就可以很方便的计算出欧拉角,从而得到yaw、roll和 pitch。。这一讲将介绍如何使用内置的dmp进行姿态解算。






    二、硬件电路






    硬件电路和上一讲是一样的,这里就不再多说了。






    三、软件工具






    选用不同的上位机要使用不同的协议,关于协议这里不进行深入讲解。这里将用到匿名四轴上位机,要了解协议的可以上网查找,或者打开软甲后按下f12键,可以看到基本的介绍。












    要使用dmp进行姿态解算,还需要dmp固件库,固件库中包含以下文件:












    四、软件设计






    打开上一讲的工程,把固件库文件夹复制到工程目录下:












    打开工程,添加固件库文件到工程中,添加路径:












    在inv_mpu.c文件中更改头文件信息:












    在inv_mpu_dmp_motion_driver.c文件中更改头文件信息:












    接下来需要在inv_mpu.c中添加以下几个函数:













    该函数用于dmp库的初始化,可以看到该函数中调用了许多函数来设置mpu6050,这些函数也要一一实现,对于这部分代码就不多说了,在原来的代码上稍作修改即可,可以查看源代码。


    接下来实现取得欧拉角的函数:












    该函数根据dmp输出的四元数转换为欧拉角,欧拉角就是最终需要的数据。


    到这里,dmp库的移植就基本完成了,但有一个
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换