感觉MPU6050的DMP算的不准,想YAW只与Z轴的角速度“gyroz”有关,只有一个参数的话,自己写个公式计算一下应该更准确;

尝试自己写,首先

MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);    //得到陀螺仪数据

然后,记录两次计算的时间间隔

TIM3_Init(5000-1,9000-1);       //定时器3初始化,(定时器3挂在APB1上,时钟为HCLK/2),HCLK = 180MHz,定时器时钟为90M,分频系数为9000-1,所以定时器3的频率为90M/9000=10K,也就是1s计数为10K。
自动重装载为5000-1,那么定时器周期就是500ms(这个不重要)

最后就是计算,角速度的积分就是角度了

ys1_yaw = = ys1_yaw + gyroz/63.5*(TIM3->CNT);
//63.5因为我设置的满量程范围为正负500°
if(ys1_yaw > 180)
{ys1_yaw = ys1_yaw-360;
}
else if(ys1_yaw < -180)
{ys1_yaw = ys1_yaw+360;
}
//将角度限制在正负180°

然后,失败了。

角度一直在转圈圈,分析数据得知,gyroz有初始值;添加初始误差修正;

if(initial_gyroz_count < 1000 && initial_gyroz_count != 0)
{initial_gyroz_sum = initial_gyroz_sum + gyroz;initial_gyroz = initial_gyroz_sum / 999;initial_gyroz_count++;
}//采样999次,求平均值//单位时间yaw变化值---gyroz_temp
gyroz_temp = (gyroz-initial_gyroz)/63.5*(TIM3->CNT);

的确解决了初始角度一直跑的情况,测试了一下,发现还不如DMP算的准。。。

分析可能时有测量数据有噪音,在网上学习了一段窗口平滑滤波;

#define N 6  //6窗口平均滤波
short filter_value_buff[N];                     //N相当于选定一个窗口大小,对窗口数据做平均!
char filter_i=0;short filter(short data)
{char count;int sum=0;filter_value_buff[filter_i++]=data;if(filter_i==N)filter_i=0;              //当数据大于数组长度,替换数据组的一个数据,相当于环形队列更新,先进先出!for(count=0;count<N;count++)sum+=filter_value_buff[count];return (short)(sum/N);
}//滤波后的单位时间yaw变化值---gyroz_temp
gyroz_temp = (filter(gyroz)-initial_gyroz)/63.5*TIM3->CNT;

结果发现还是不准。

分析原因有两方面,(一)单靠陀螺仪可能就是测量的不是特别准确;(二)MPU放置不是绝对的水平,在旋转的过程中,Z轴与重力方向存在一定程度上的偏移,而且由于不是放在桌面上,偏移不是固定的;需要时时把这个偏移计算在内。

2019年3月5日-MPU9250使用(二)相关推荐

  1. D2 日报 2019年6月11日

    ? 开源项目 ➡️ sfyc23/EverydayWechat watch 34 star 1690 fork 317 每日自动给女朋友发微信暖心话. github.com ➡️ YMFE/yapi ...

  2. epubbuilder 过期_记者调查|浠水县思源实验学校向学生发过期牛奶,生产日期2019年12月14日...

    楚天都市报11月2日讯(记者董淑健 通讯员魏学建) 生产日期2019年12月14日,保质期6个月.过期几个月的牛奶能喝吗?几天前,居然通过学校食堂发到了学生手中. 浠水县思源实验学校的一些学生家长对此 ...

  3. D2 日报 2019年1月2日

    官网阅读获得更好的体验,传送门<日报 2019年1月2日> 你有一个苹果,我有一个苹果,交换之后我们还是各自有一个苹果. 你有一份知识,我有一份知识,我们互相分享一下就都有了两份知识. 开 ...

  4. 2019年1月29日

    2019年1月29日星期二 一:SQL注入专题 1.MySQL与SQLserver数据库中的默认的表有哪些? 2.什么是SQL注入 SQL 注入是一种将 SQL 代码插入或添加到应用(用户)的输入参数 ...

  5. 2019年1月14日【第一天正式学习】

    2019年1月14日星期一 任务一.把 elfpass 拷贝进 seed 虚拟机,设成 root 所有 suid 程序,用普通用户去攻击获得 root权限.可以先静态分析,搞不定再用 gdb 动态调试 ...

  6. 视力检查-2019年2月2日

    眼压测试 mmHs(第1次测量) mmHs(第2次测量) Avg R ERR 21M 23M 22 L (20M) 16M 16 视力测试 视力表 R 0.X (这个是护士写的) L 0.25 玻璃体 ...

  7. tornado项目搭建_Python深度学习原理及项目实战2019年3月21日上海举办

    一.课程背景 众所周知,人工智能是高级计算智能最宽泛的概念,机器学习是研究人工智能的一个工具,深度学习是机器学习的一个子集,是目前研究领域卓有成效的学习方法.深度学习的框架有很多,而TenforFlo ...

  8. D2 日报 2019年4月17日

    ? 新闻 ➡️ Is React Translated Yet? ¡Sí! Sim! はい! react 文档翻译了多种语言 reactjs.org ? 开源项目 ➡️ formal/packages ...

  9. SiteServer CMS 新版本 V6.11(2019年7月1日发布)

    欢迎来到 SiteServer CMS V6.11版本(.NET CORE V7.0预览版本将推迟至2019年9月1日发布),经过两个月的连续迭代开发,V6.11 版本新增了采集插件以及多项BUG修复 ...

最新文章

  1. win7 + vs2013 + zlib 编译
  2. vim中设置python代码缩进为4个空格
  3. Linux远程传输文件免密码
  4. rapidjson官方教程
  5. 网络设备的注册与初始化
  6. Java Web 应用概述
  7. 为什么说读博是最好的选择?
  8. Eclipse 答疑:Eclipse 如何更换夜间及外部主题?如何修改代码样式、背景颜色、字体大小?为何注释文字大小不一?
  9. 关于VGG模型文件的存放位置
  10. CMS的碎片解决方案
  11. PHP队列研究一(数据库任务队列)
  12. 托福百日冲刺—词汇(14)
  13. mybatis中使用大于,小于号
  14. android 投屏 电脑,安卓王者荣耀投屏电脑
  15. 数学建模竞赛题目 资产清算交易策略
  16. 剪不断,理还乱——UML的四种关系
  17. 进程、线程、程序的区别
  18. 小米5怎么安android,小米5怎么插卡 小米5手机安装sim卡图文教程
  19. layui table 每列加标签_【前端】layui表格中根据条件给对应的列加背景色
  20. VisualStudio2019,基于.NET Framework的单元测试

热门文章

  1. oracle索引的事
  2. 【XSY2495】余数
  3. forward请求转发
  4. 认识计算机选题背景,与计算机专业相关的论文_计算机专业的毕业论文题目有哪些_大一我对计算机的认识3000字论文...
  5. strncpy和strcpy和memcpy
  6. 数据结构学习笔记:算法复杂度的度量之“大O记号”
  7. Rancher 2.2 GA:企业进入应用跨多K8S集群、混合云部署新时代
  8. 单片机工程师面试题小计
  9. 腾讯物联网系统TOS,内核移植起来比你想象的要简单
  10. VS Code 网易云音乐插件 没有声音 无法播放的解决办法