查看: 574|回复: 3
打印 上一主题 下一主题

【STM32L476 Nucleo】+建立组合导航系统03+我是IMU,空间我做主

[复制链接] qrcode

29

主题

31

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2016-5-20 08:46 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Alanliu 于 2016-5-20 08:49 编辑

  嗨,大家好,撸主又来了,最近手痒了,总是喜欢发帖,这次我们开始组合导航系统的第三贴,叫做我是IMU我的空间我做主。
  说道这个IMU啊,撸主还是比较熟悉,毕竟专业是这个么,那让我们先安利一发吧,什么叫IMU,百度百科排在首位的解释是IMU是Inner Mongolia University内蒙古大学的首字母缩写,显然不对啊,开玩乐啊!IMU是惯性测量元件,说到这个惯性啊,牛顿又要跳出来了,这是你牛爷爷的发现,不得不说牛顿真是牛x啊!
说道本帖,首先介绍两个,一个就是L4676了,另外一个就是撸主新买的MPU9250 ,花了好几十块钱,够撸主一天的伙食了,没办法啊,屌丝撸主因为某些原因啊,主要是不高不富还不帅,只能把精力用在研究学术了。哎工科男的苦你不懂啊!!!本来撸主想测试L476的SPI和I2C的,可是买回模块才发现,只支持I2C。撸主一气之下,将剩余的引脚全部剪掉,只剩电源地以及SCL,SDA,正好插在插槽里,还保证了校准时平台的稳定性。哈哈,真是天才啊!!!
  
  说到I2C,撸主可是有一肚子话要说,还记得那是一个秋日的下午,撸主因为F103的硬件I2C始终卡死,还在闷闷不乐,秋日的天气还很热,整的撸主昏昏欲睡,但项目还没完成,只好点开层层隐瞒的文件夹,欣赏了几部作品,才精神高涨起来。撸主一怒之下,换成了软件I2C,你了解,用着比51牛X好几倍的东西,却还用I/O模拟时序的痛苦么,直到,换了F4才好些。正因为有这个惨痛的精力,撸主才对ST家的产品心有余悸。不过ST家还算好了,不像最近有的芯片厂家出现后门问题。
打开Cube, 选择PB8,PB9 引脚,选择I2C1,选择频率100KHZ,然后generate code,这里要给大家说一下,可以点选这个,这样生成的工程就会很整洁,GPIO USART I2C,整个框架无懈可击
  
  要使用I2C首先还是查看下I2C.c 文件,这里,撸主没有使用那些复杂的功能,只写了两个函数,一个读,一个写,然后剩余的工作就在MPU9250.c里面完成对寄存器的读写,并输出原始数据。这里还要把printf重定义一下,方便使用么,能省时间就不多写代码,是码农的第一操守。太简单了,简单的让撸主难以置信。跑一发吧!!!

  在这里整个就完成了L476 I2C的使用,可是得到原始数据,不会分析也没用,打开对于数据的分析,撸主暂时只会使用Matlab,至于Anaconda,这条大蟒蛇还在学习中。现在都讲究用户体验,你给用户一大堆数据,用户早就拿大耳刮抽你丫了,你要用最简单,也就是用图形的方式表示出来。上图
  静止的偏移太大啦,在这里撸主只进行简单的校准,若要实现更为牛x的功能,可以参考严恭敏老师的惯性仪器的分析与使用,不好意思严老师,书名忘记了,写的很详细。


  在这里需要说明一下,你使用的IMU的坐标系的定义一定要机体坐标系一致,撸主使用的IMU就和机体坐标系不一致,按下图来改,这是美系机体坐标系,也是我们国家所使用的,至于苏式坐标系,你懂得!!!


  看看最终输出的角度结果吧!!!
  再看一下,陀螺30分钟的静态漂移吧!!!

  天呐,漂到外婆家去了,那怎么用呢???
  下次更新大杀器,也是撸主的擅长之一,即真正的组合导航系统,大杀器!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

21

主题

288

帖子

437

积分

中级会员

Rank: 3Rank: 3

积分
437
沙发
发表于 2016-5-20 09:04 AM | 只看该作者
哈哈,喜欢发贴就多发啊!
回复 支持 反对

使用道具 举报

1

主题

65

帖子

9

积分

新手上路

Rank: 1

积分
9
板凳
发表于 2016-5-25 04:37 PM | 只看该作者
学习了。。。。
回复 支持 反对

使用道具 举报

0

主题

84

帖子

38

积分

新手上路

Rank: 1

积分
38
地板
发表于 2016-5-25 08:18 PM | 只看该作者
INT引脚应该留下的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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