野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11528|回复: 2

MPU6050传感器

[复制链接]
发表于 2017-7-4 09:49:32 | 显示全部楼层 |阅读模式
本帖最后由 叮呤 于 2017-7-4 09:53 编辑

您好,用霸道板的MPU6050传感器模块来测加速度和角度信息,使用的是例程2中的软件模拟I2C,不用DMP模块,只是想把历程2中的经ADC转换后的原始数据再转为普通的以g和度为单位的加速度值与角度值,应该用什么方法呢?比如设置在正负2g的加速度模式下,就对原始数据除以分辨率16384LSB/g这样的做法对不对?但是角速度如何简单转换为角度值?您看看下面的程序,谢谢啦

//这是转换加速度的程序
void MPU6050ReadAcc_x(float *accData,float *svm_accData)
{
    u8 buf[6];               
    MPU6050_ReadData(MPU6050_ACC_OUT, buf, 6);
    accData[0] = (buf[0] << 8) | buf[1];
    accData[0]=accData[0]/16384.0;
    accData[1] = (buf[2] << 8) | buf[3];
    accData[1]=accData[1]/16384.0;
    accData[2] = (buf[4] << 8) | buf[5];
    accData[2]=accData[2]/16384.0;
   *svm_accData=sqrt(accData[0]*accData[0]+accData[1]*accData[1]+accData[2]*accData[2]);



//这是转换角度的程序
void MPU6050ReadGyro_y(float *gyroData,float *svm_gyroData)
{
    u8 buf[6];
    MPU6050_ReadData(MPU6050_GYRO_OUT,buf,6);
    gyroData[0] = (buf[0] << 8) | buf[1];
    gyroData[0]=gyroData[0]/131.0;
    gyroData[1] = (buf[2] << 8) | buf[3];
    gyroData[1]=gyroData[1]/131.0;
    gyroData[2] = (buf[4] << 8) | buf[5];
    gyroData[2]=gyroData[2]/131.0;
   *svm_gyroData=sqrt(gyroData[0]*gyroData[0]+gyroData[1]*gyroData[1]+gyroData[2]*gyroData[2]);
        
}附件是打印出的一些信息
jietu.png
回复

使用道具 举报

发表于 2017-7-4 10:04:47 | 显示全部楼层
角速度要对时间进行积分
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-4 17:42:23 | 显示全部楼层
那需要如何积分呢?请赐教具体C语言实现方法,谢谢啦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-16 07:49 , Processed in 0.035970 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表