继上次读MPU6050的数据,作个补充,这次是读姿态角输出.内容简单易懂,标注齐全.

2019-07-20 15:58发布

上次上传了个MPU6050的读加速度角速度, 这次上传把加速度,角速度解算为姿态角.(德国人的方法解算,具体麻烦各位自己看数学叉积,四元数等).

代码比较少,干净,都有注释.
依旧是串口输出,因为这里是每一轮循环延迟10ms. 而且精度比较高(用了很多float,对于飞来说我觉得是没问题的,51的我就用的float 一样fly(●'?'●)). 如果你测试觉得不够快又允许一定误差,可以用Int整型.

注意:这里我并没有处理“静止”时的噪音,里面的角速度误差调整量gx,gy,gz并没有赋值. So,各位请自行添加: 常规办法比如开机,读100次x的角速度累加再除以100,得到平均误差赋值给gx即可.


原料: 原子哥的Stm32F4开发板(我是今年9月买的板子).  MPU6050一个,杜邦线4条.电脑一台.hex文件一发.

用法:用原子哥教的FlyMcu 飞一会儿.(下载完). 打开串口即可看到x,y轴的姿态角.


 




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
35条回答
包子
1楼-- · 2019-07-22 13:04
枫之幻00 发表于 2016-3-2 10:30
我把你的程序改成AVR的,用的AVR128,晶振8MHZ,只是多加了LCD和串口,但是速度特别慢,我从0°翻转到90°, ...

额,要改一些IMU中的参数.
包子
2楼-- · 2019-07-22 17:42
popo139700 发表于 2016-3-2 10:59
大神,这个有用吗?

我都用这个做了个小四轴. 灰起来了你说有用么-  -?
包子
3楼-- · 2019-07-22 22:49
枫之幻00 发表于 2016-3-2 10:30
我把你的程序改成AVR的,用的AVR128,晶振8MHZ,只是多加了LCD和串口,但是速度特别慢,我从0°翻转到90°, ...

你试试把harfT 改成0.04  .   应该会觉得数据跑的快很多,然后你要去理解kp ki hartT去调出理想的参数
包子
4楼-- · 2019-07-23 03:47
 精彩回答 2  元偷偷看……
包子
5楼-- · 2019-07-23 03:47
本帖最后由 包子 于 2016-3-3 21:26 编辑
枫之幻00 发表于 2016-3-2 10:30
我把你的程序改成AVR的,用的AVR128,晶振8MHZ,只是多加了LCD和串口,但是速度特别慢,我从0°翻转到90°, ...

先定义Kp,Ki,以及halfT 。
Kp,Ki,控制加速度计修正陀螺仪积分姿态的速度

这里面有讲,我随机百度搜的,人家终归详细一点

http://www.360doc.cn/article/17770789_404315374.html
popo139700
6楼-- · 2019-07-23 04:04
 精彩回答 2  元偷偷看……

一周热门 更多>