希望原子哥能写个mpu6050的教程

2019-08-08 12:31发布

mpu6050最近好像很火的样子,集加速度计,陀螺仪,温度传感器一身,原子哥写个教程吧,我弄了好几天都没读出数据来。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
30条回答
红木甲板
1楼-- · 2019-08-08 15:58
 精彩回答 2  元偷偷看……
maxuejia
2楼-- · 2019-08-08 19:05
回复【2楼】红木甲板:
---------------------------------
我试了试,读出的数据好像有问题 ,特别是陀螺仪的x轴
ACC:  X=14772   Y=2344   Z=5136  
GYRO:  X=0   Y=2313   Z=0  
ACC:  X=15504   Y=2372   Z=8032  
GYRO:  X=65535   Y=64507   Z=65535  
ACC:  X=15772   Y=1772   Z=4656  
GYRO:  X=65535   Y=64507   Z=514  
ACC:  X=16560   Y=464   Z=64808  
GYRO:  X=65535   Y=63993   Z=771  
ACC:  X=17528   Y=65300   Z=62516  
GYRO:  X=65278   Y=65278   Z=0  
ACC:  X=15668   Y=64992   Z=60600  
GYRO:  X=65278   Y=64507   Z=65535  
ACC:  X=12812   Y=65320   Z=56768  
GYRO:  X=65535   Y=64251   Z=257  
ACC:  X=14144   Y=24   Z=54732  
GYRO:  X=0   Y=64507   Z=0  
ACC:  X=11700   Y=63996   Z=54644  
GYRO:  X=0   Y=0   Z=0  
ACC:  X=13136   Y=64396   Z=54680  
GYRO:  X=0   Y=257   Z=0  
ACC:  X=15240   Y=64640   Z=56196  
GYRO:  X=65278   Y=2313   Z=514  
ACC:  X=17832   Y=63788   Z=63472  
GYRO:  X=63736   Y=3855   Z=1542  
ACC:  X=12192   Y=56760   Z=2796  
GYRO:  X=63222   Y=2313   Z=2056  
ACC:  X=7716   Y=51836   Z=3464  
GYRO:  X=63479   Y=2056   Z=1542  
ACC:  X=4428   Y=50200   Z=1804  
GYRO:  X=64250   Y=1285   Z=1799  
ACC:  X=65436   Y=48116   Z=916  
GYRO:  X=65021   Y=514   Z=1285  
ACC:  X=63316   Y=48668   Z=64820  
GYRO:  X=65278   Y=514   Z=257  
ACC:  X=64580   Y=49148   Z=65404  
GYRO:  X=65535   Y=0   Z=65535  
ACC:  X=64832   Y=49168   Z=64944  
GYRO:  X=65535   Y=0   Z=0  
ACC:  X=63932   Y=48692   Z=64312  
GYRO:  X=65535   Y=0   Z=65535  
ACC:  X=63948   Y=49036   Z=64504  
GYRO:  X=65535   Y=65535   Z=65535
我的main函数是
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "iic_analog.h"
#include "MPU6050.h"
int main(void)
 {
  u16 acc_x,acc_y,acc_z,gy_x,gy_y,gy_z;
delay_init();      //延时初始化
uart_init(9600);//串口初始化为9600
Sys_Configuration();
MPU6050_Inital();
while(1)
{
    acc_x= getAccX();
acc_y= getAccY();
acc_z= getAccZ();
gy_x= getGyroX();
gy_y= getGyroY();
gy_z= getGyroZ();

printf("ACC:  X=%d   Y=%d   Z=%d   ",acc_x,acc_y,acc_z);
printf("GYRO:  X=%d   Y=%d   Z=%d   ",gy_x,gy_y,gy_z);
delay_ms(50);
}    
 }

能帮我看看是哪里的问题么?
红木甲板
3楼-- · 2019-08-09 00:10
数据特别大65535什么的应该是溢出了,MPU6050是三轴加速度和三轴角加速度,静止状态角加速度应该在0左右,加速度数值会受重力加速度影响
红木甲板
4楼-- · 2019-08-09 06:06
准确的讲那个不是溢出啊,其实是负数
maxuejia
5楼-- · 2019-08-09 08:32
回复【5楼】红木甲板:
---------------------------------
总感觉你给的程序有点问题,sda在读数据的时候io要配置成输入啊,你的程序忘了配置了好像

对了,你要做四轴还是平衡车?现在做到啥地步了?
红木甲板
6楼-- · 2019-08-09 13:59
 精彩回答 2  元偷偷看……

一周热门 更多>