[求助] mpu6050如何将输出的角速度或加速度积分成角度

韶华墨   2014-7-30 15:34 楼主
用了一个mpu6050程序,能够分别输出x、y、z的角速度和加速度。但是我需要让它输出角度。有查过说是要对时间进行积分,但不知如何编写程序。求高手指点。单片机用的是STC12C5A60S2~~

回复评论 (32)

2推荐 huo_hu 

累加就是了
点赞  2014-7-31 10:39

2推荐 shihuntaotie 

引用: 韶华墨 发表于 2014-8-4 09:07
好吧   这几天麻烦你了  谢谢啊~~

我刚好弄过这个,所以解答,因为我当时做时啥都没有,只能各个论坛到处搜相关的,然后自己改,而且点方向都没有,我知道那种痛苦
点赞  2014-8-4 19:39

2推荐 shihuntaotie 

ACCE_X=(GetData(ACCEL_XOUT_H));
ACCE_Y=(GetData(ACCEL_YOUT_H));
x=(float)ACCE_X/4096.0;//4096是根据你的设置来选择的,具体在datasheet里有,就是陀螺仪的测量范围。
y=(float)ACCE_Y/4096.0;
angleAx=atan2(x,y)*180/3.14;这是根据两个加速度来求解角度的。
点赞  2014-8-1 22:59
你可以百度,百度用公式,或者等我下火车回家之后给你回帖。我用过不过主控不一样
点赞  2014-7-30 18:29
引用: shihuntaotie 发表于 2014-7-30 18:29
你可以百度,百度用公式,或者等我下火车回家之后给你回帖。我用过不过主控不一样

想问一下,从MPU6050那儿获得的加速度和角速度数据具体是什么数据?还望赐教
点赞  2014-7-31 10:36
引用: shihuntaotie 发表于 2014-8-1 22:59
ACCE_X=(GetData(ACCEL_XOUT_H));
ACCE_Y=(GetData(ACCEL_YOUT_H));
x=(float)ACCE_X/4096.0;//4096是根 ...

为什么要除以4096啊???
点赞  2014-8-2 00:32
引用: 韶华墨 发表于 2014-8-2 00:32
为什么要除以4096啊???

捕获.JPG
看图,这是datasheet的一部分,里面根据AFS_sel设置的不同,转换单位需要除以相应的系数
点赞  2014-8-2 11:28
引用: shihuntaotie 发表于 2014-8-2 11:28
看图,这是datasheet的一部分,里面根据AFS_sel设置的不同,转换单位需要除以相应的系数

这一步除以4096后  到下一步取反正切  两数相除  4096不就约掉了么~所以除不除应该没关系吧~~对了  你有调过PID么??
点赞  2014-8-2 15:57
引用: 韶华墨 发表于 2014-8-2 15:57
这一步除以4096后  到下一步取反正切  两数相除  4096不就约掉了么~所以除不除应该没关系吧~~对了  你有 ...

调过,我做过通过角度来控制PID的
点赞  2014-8-2 19:37
引用: shihuntaotie 发表于 2014-8-2 19:37
调过,我做过通过角度来控制PID的

通过角度来控制PID是什么意思???
点赞  2014-8-2 20:34
引用: 韶华墨 发表于 2014-8-2 20:34
通过角度来控制PID是什么意思???

通过采集角度信息,通过PID计算来控制电机,使角度稳定
点赞  2014-8-2 20:47
引用: shihuntaotie 发表于 2014-8-2 20:47
通过采集角度信息,通过PID计算来控制电机,使角度稳定

对   我也是要调这个   电机是通过PWM 波来调的吧  那角度如何跟PWM波对应上呢???
点赞  2014-8-2 21:01
引用: 韶华墨 发表于 2014-8-2 21:01
对   我也是要调这个   电机是通过PWM 波来调的吧  那角度如何跟PWM波对应上呢???

计算得到的值去调节PWM的占空比
点赞  2014-8-3 07:57
引用: shihuntaotie 发表于 2014-8-3 07:57
计算得到的值去调节PWM的占空比

好的  多谢  我先调一下  那个PID的P和I的值一般都取多少??
点赞  2014-8-3 19:11
引用: 韶华墨 发表于 2014-8-3 19:11
好的  多谢  我先调一下  那个PID的P和I的值一般都取多少??

不同系统的初始值不一样,你只能慢慢试,或者找网上他们做的参数参考
点赞  2014-8-3 21:08
引用: shihuntaotie 发表于 2014-8-3 21:08
不同系统的初始值不一样,你只能慢慢试,或者找网上他们做的参数参考

好吧   这几天麻烦你了  谢谢啊~~
点赞  2014-8-4 09:07
引用: 大北极熊 发表于 2014-7-31 10:36
想问一下,从MPU6050那儿获得的加速度和角速度数据具体是什么数据?还望赐教

可以帮忙解答一下么

仍然是这个问题,不知道如何求解


点赞  2015-4-19 20:17


那如果是 求速度 和位移呢,比如 说我现在做的一个加速度传感器控制得无线鼠标设计,需要位移数据,然而程序后续程序怎么写,由于鼠标是人为控制,所以对精度要求不是很大,能按照你需要的方向有一段位移就行,详情https://bbs.eeworld.com.cn/thread-462208-1-1.html
点赞  2015-5-26 12:55
引用: 韶华墨 发表于 2014-8-2 15:57
这一步除以4096后  到下一步取反正切  两数相除  4096不就约掉了么~所以除不除应该没关系吧~~对了  你有调过PID么??

请问,AFS_SEL是什么意思啊?
点赞  2015-6-11 10:06
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复