john800422 发表于 2014-5-5 14:45:15

【開源】SmartIMU 使用 STM32F401C+MPU9250+MS5611

本帖最后由 john800422 于 2014-5-5 23:42 编辑

自己設計的 SmartIMU,使用四層板,手工焊接,第一次焊這麼小這麼密的,部分元件有點歪。



*** Description
SmartIMU 是一個集成微控制器 ( STM32F401C )、3-Axis 加速度計、3-Axis 陀螺儀、3-Axis 電子羅盤、氣壓計等感測器 ( MPU9250、MS5611 ) 於一體的模組,
可以透過 UART/I2C、SPI、USB 來讀取計算出載體的角度、加速度、速度、位移、高度 ... 等等資訊,除了上述,SmartIMU 也另外引出了第二個 SPI 和 4CH PWM,可以獨立成一片飛控板。

預計建立兩種模式:
1. 透過 SPI 讀取 Sensor
  此方案不須使用到 MCU,可以比"模式2"更接近實時,同時 MCU 也可以做其他處理。
2. 透過 MCU 讀取 Sensor
  此方案可以預先計算姿態來節省飛控負擔,同時會加載 IAP 功能,
  可以直接透過飛控板來更新程式碼,不需要再做燒錄的動作。

*** License
硬體(Hardware)採用 CC BY-SA 4.0 方式授權
軟體(Software)採用 MIT License 方式授權

*** Hardware
控制器  : STM32F401C 48Pin 84MHz DSP FPU
感測器  : MPU9250 + MS5611
其他   : 1*LED
外接介面 : 1*UART/I2C、2*SPI、1*USB、2*GPIO
PCB 尺寸 : 12.95 * 15.49mm

*** Related Documents
Update Records - Hackpad
Datasheet & BOM - Google Drive

























資料都放在 GitHub:
https://github.com/Hom-Wang/SmartIMU











john800422 发表于 2014-8-19 19:45:43

rantingting 发表于 2014-8-19 11:15
台湾哥 没有继续玩啊

暑假開始跑實驗室,比較沒有花太多時間在這些上面,
之後有想用藍芽 + IMU 對小四軸做室內定位,
所以這幾天在學習 nRF51822,附件是自己寫的幾個測試沒問題的代碼,
有興趣也可以一起學:)

程式都放在 Github 上:https://github.com/Hom-Wang/NRF51







john800422 发表于 2014-8-19 20:20:21

之前做的小四軸,用 SmartIMU 做的應用,
長 Motor to Motor ~ 80mm, 重 ~30g,
但是在設計上沒有考慮到電池的放置,
目前電池影響 RF 嚴重,容易斷線:(

或許有人有需要這些資料參考。









霸气侧漏 发表于 2014-5-5 14:54:03

好东西啊

登云钓月 发表于 2014-5-5 15:01:22

支持支持 相当漂亮

ICPACHONG 发表于 2014-5-5 15:01:47

谢谢!
楼主真是无私啊!!
用楼主开源的飞控板刚打了一次样,开始慢慢玩。。

qinkaiabc 发表于 2014-5-5 15:02:30

非常给力啊

nvampire 发表于 2014-5-5 15:03:09

樓主又出神器啊

cshp138 发表于 2014-5-5 15:32:44

{:smile:}很紧凑,话说那上下板连接的勾状铜条是什么东东

john800422 发表于 2014-5-5 15:51:06

cshp138 发表于 2014-5-5 15:32
很紧凑,话说那上下板连接的勾状铜条是什么东东

是測試點,底板主要是拿來測試 SmartIMU 的,不過效果不怎麼好,有些會接觸不良。

onev 发表于 2014-5-5 16:30:29

这里想问一下楼主 用你之前的开源资料里面的电子罗盘椭圆拟合得不到数据后来自己做了椭球拟合代入AHRSupdate();后 在开始的一段时间偏航角yaw会乱七八糟飘 大概十几二十秒吧   等飘完了就稳定了而且我用iPhone的指南针对比过 yaw角应该是没有问题的至少在肉眼看不出有多大的偏差   可问题在于开始时的漂移不知道是怎么回事纠结好久了也没找到原因   能否指点一二

leey 发表于 2014-5-5 16:34:12

看起来很小巧啊,真不错!!谢谢楼主分享。

DevLabs 发表于 2014-5-5 16:49:19

很喜欢,成本蛮高啊。

powerlabor001 发表于 2014-5-5 16:56:28

mark一把。

john800422 发表于 2014-5-5 17:03:05

onev 发表于 2014-5-5 16:30
这里想问一下楼主 用你之前的开源资料里面的电子罗盘椭圆拟合得不到数据后来自己做了椭球拟合代入AHRSu ...

這樣說我也不知道問題在哪裡

john800422 发表于 2014-5-5 17:04:52

DevLabs 发表于 2014-5-5 16:49
很喜欢,成本蛮高啊。

1 片成本約 18 美金

onev 发表于 2014-5-5 17:07:19

john800422 发表于 2014-5-5 17:03
這樣說我也不知道問題在哪裡

电子罗盘数据校正后送入AHRSupdate   然后出角度这时的角度yaw会七八糟跳   过一阵子就好   你没有碰到过这种情况是吗

john800422 发表于 2014-5-5 17:30:30

onev 发表于 2014-5-5 17:07
电子罗盘数据校正后送入AHRSupdate   然后出角度这时的角度yaw会七八糟跳   过一阵子就好   你没有碰到 ...

把四元數初始化做好應該可以減少這種狀況

976717326 发表于 2014-5-5 17:53:38

话说MS5611计算出来的高度值跳动会在±0.25m范围内跳动(自己看出来的),LZ有没有想过采用哪种方法滤波?不然用MS5611做定高简直不现实。我之前试过中值滤波,感觉效果不太好,还是波形比较乱,跳动比较大。用最简单的卡尔曼滤波的话,动态性又不够了。另外,我滤波效果只能到达±0.1m误差。如果LZ做过相关的测试或者有理想的滤波方法的话,求赐教。

john800422 发表于 2014-5-5 19:30:28

976717326 发表于 2014-5-5 17:53
话说MS5611计算出来的高度值跳动会在±0.25m范围内跳动(自己看出来的),LZ有没有想过采用哪种方法滤波? ...

目前還沒實現高度, 位移或速度的計算測量,
不過感覺可以試加速度計 + 氣壓計。

zyw19987 发表于 2014-5-5 20:09:48

ICPACHONG 发表于 2014-5-5 15:01
谢谢!
楼主真是无私啊!!
用楼主开源的飞控板刚打了一次样,开始慢慢玩。。


有空板出吗?

john800422 发表于 2014-5-5 21:04:15

zyw19987 发表于 2014-5-5 20:09
有空板出吗?

有空板,但本人住台灣,沒寄過大陸,運費應該不便宜,
另外 STM32F401C 也不好買,之前從 ARROR 花 66 美金運回來。

nongxiaoming 发表于 2014-5-5 21:11:02

肯下本啊,用料都比较贵比较难买呢!

lukefan2008 发表于 2014-5-5 21:13:10

台湾兄又有新进啊

rei1984 发表于 2014-5-5 21:37:10

支持lz 开源

skyxjh 发表于 2014-5-5 21:53:48

这个太强悍了,看样子不错。

study_hardware 发表于 2014-5-5 22:07:24

强烈支持台胞!感觉很厉害!是业余爱好吗?都是楼主自己搞的吗?

john800422 发表于 2014-5-5 22:25:55

study_hardware 发表于 2014-5-5 22:07
强烈支持台胞!感觉很厉害!是业余爱好吗?都是楼主自己搞的吗?

還是學生,都是自己做的,不過感覺花太多時間在硬件上了。

bygreencn 发表于 2014-5-5 22:52:56

好东西

凌海滨 发表于 2014-5-5 23:39:52

不错,做的很精致啊

xypple 发表于 2014-5-5 23:57:20

很好很强大,还很规范~

lxl_lw 发表于 2014-5-6 00:52:00

john800422 发表于 2014-5-5 21:04
有空板,但本人住台灣,沒寄過大陸,運費應該不便宜,
另外 STM32F401C 也不好買,之前從 ARROR 花 66 美 ...

好像顺丰可以,应该可以到付,哈哈……话说楼主用401,多少脚?

lxl_lw 发表于 2014-5-6 00:55:00

看到了,48脚的……

plc_avr 发表于 2014-5-6 09:02:20

同胞很给力啊!

rantingting 发表于 2014-5-6 09:09:21

非常漂亮,支持宝岛兄弟开源精神

kingqb 发表于 2014-5-6 09:11:52

给力,不知道9250和9150的性能有何区别,姿态解算算法不好搞。

309579471 发表于 2014-5-6 09:19:05

台湾哥,确实厉害。。

lydmom 发表于 2014-5-6 10:47:25

支持,好历害

zksniper 发表于 2014-5-6 11:30:47

MPU9250底部有接GND的热盘?

john800422 发表于 2014-5-6 14:09:48

kingqb 发表于 2014-5-6 09:11
给力,不知道9250和9150的性能有何区别,姿态解算算法不好搞。

I2C/SPI、噪音、量程

john800422 发表于 2014-5-6 14:11:04

zksniper 发表于 2014-5-6 11:30
MPU9250底部有接GND的热盘?

沒有接 GND 大焊盤,因為底下有小部分的走線。

zksniper 发表于 2014-5-6 14:27:45

john800422 发表于 2014-5-6 14:11
沒有接 GND 大焊盤,因為底下有小部分的走線。

看了下9250的手册,手册上说芯片底部是有exposed pad的,不知道实物芯片底部是否有这个,如果有的话,芯片所在的pcb顶层和底层不能走线,一来由于工艺问题导致过孔如果没有完全盖油,会形成短路,二来芯片底部走线会影响陀螺仪和磁力计

最好的办法是芯片所在的top layer什么都不要有,包括GND,而在芯片所在的bottom layer铺地,来屏蔽底部可能有的外界干扰源。

john800422 发表于 2014-5-6 17:10:25

zksniper 发表于 2014-5-6 14:27
看了下9250的手册,手册上说芯片底部是有exposed pad的,不知道实物芯片底部是否有这个,如果有的话,芯 ...

實體有大焊盤,
之前已經有考慮過這個問題,但為了讓體積小所以不放大焊盤,下面盡量不走線,
慣孔問題有放絲印做第二次覆蓋,目前沒有出現導通。

另外補充一下,MS5611 底下也是建議不布線。

lvyi913 发表于 2014-5-6 19:15:43

谢谢楼主!IMU!

yue621 发表于 2014-5-6 20:13:08

神器啊~~~支持楼主~!!!!S帅~!

363546178 发表于 2014-5-8 17:21:13

请问大神现MPU9250的磁力计的数据能够读取出来了吗?{:lol:}

john800422 发表于 2014-5-8 21:17:49

363546178 发表于 2014-5-8 17:21
请问大神现MPU9250的磁力计的数据能够读取出来了吗?

目前可以讀到 AK8963 Device ID,沒有繼續作測試。

danju 发表于 2014-5-14 13:28:06

很强悍,有现成的板子开卖么?

laber_1912 发表于 2014-5-14 13:42:44

我也在做9250,替换原来的9150,感觉至少里面的AK8963比A8975好用多了,就是传感器自检比9150繁琐。

john800422 发表于 2014-5-14 19:00:21

danju 发表于 2014-5-14 13:28
很强悍,有现成的板子开卖么?

目前沒有在販售

SMC 发表于 2014-6-6 17:44:59

john800422 发表于 2014-5-14 19:00
目前沒有在販售

你好,你做MPU6500的自检了吗?
自检的范围文档里面说在AN-MPU-9250A-03文档中,但这个文档在官网没找到。

john800422 发表于 2014-6-7 00:56:39

SMC 发表于 2014-6-6 17:44
你好,你做MPU6500的自检了吗?
自检的范围文档里面说在AN-MPU-9250A-03文档中,但这个文档在官网没找到 ...

目前事情較多,沒有再弄,
之前打算做的時候也找不到該文檔,
覺得某種程度上應該可以參考 MPU6050 的。

JQ_Lin 发表于 2014-6-7 10:34:09

john800422 发表于 2014-5-5 22:25
還是學生,都是自己做的,不過感覺花太多時間在硬件上了。

第一次看到你的帖子。赞!
顶你年轻有为的学生!

SMC 发表于 2014-6-7 14:40:06

john800422 发表于 2014-6-7 00:56
目前事情較多,沒有再弄,
之前打算做的時候也找不到該文檔,
覺得某種程度上應該可以參考 MPU6050 的。 ...

数据出来了,和MPU6050差别挺大,下面是三块电路板分别测出来的自检值,1000°/s,±4g。
gx=189 gy=199 gz=230 ax=172 ay=46 az=212
gx=190 gy=199 gz=223 ax=164 ay=6 az=242
gx=196 gy=205 gz=228 ax=160 ay=58 az=31

chehnobot 发表于 2014-6-8 22:19:05

给力,赞一个!

junjiedz 发表于 2014-6-9 21:36:47

好帖好帖,年轻有为!

esdart 发表于 2014-6-9 21:38:39

做的太漂亮了

易如视讯 发表于 2014-6-10 00:38:19

john800422 发表于 2014-6-7 00:56
目前事情較多,沒有再弄,
之前打算做的時候也找不到該文檔,
覺得某種程度上應該可以參考 MPU6050 的。 ...

你好 可以要下你QQ吗 方便交流

john800422 发表于 2014-6-10 01:44:45

易如视讯 发表于 2014-6-10 00:38
你好 可以要下你QQ吗 方便交流

沒在用 QQ,有問題可以直接提出來

virgoshh0130 发表于 2014-6-12 20:17:31

问一下 那个铜圈叫什么名字 哪有卖的

xueyulangren 发表于 2014-6-13 17:36:25

谢谢分享,学习啦

wjhltk 发表于 2014-6-17 11:49:33

先收藏,以后再详细研究。

jiangtianyu007 发表于 2014-6-19 17:10:38

之前用的是F429 这次怎么换MCU了?

li3p 发表于 2014-6-19 17:27:40

jiangtianyu007 发表于 2014-6-19 17:10
之前用的是F429 这次怎么换MCU了?

IMU上之前版本是没有MCU的,利用外部的MCU。

jiangtianyu007 发表于 2014-6-19 22:19:06

li3p 发表于 2014-6-19 17:27
IMU上之前版本是没有MCU的,利用外部的MCU。

那这样的话芯片是否选的有点过好了?

li3p 发表于 2014-6-24 23:27:30

jiangtianyu007 发表于 2014-6-19 22:19
那这样的话芯片是否选的有点过好了?

呵呵,不好评估,得看计算量吧?主要是挺难买啊...

创瑞科技 发表于 2014-7-12 10:34:16

使用辅助i2c ,AK8963读不了id 是怎么回事。 MPU6500寄存器配置如下
   // {寄存器地址,寄存器值},
              {0x6B,1   }, // 退出睡眠模式,设取样时钟为陀螺X轴。
      {0x19,4   }, // 取样时钟4分频,1k/4,取样率为25Hz。
      {0x1A,2   }, // 低通滤波,截止频率100Hz左右。
      {0x1B,3<<3}, // 陀螺量程,2000dps。
      {0x1C,2<<3}, // 加速度计量程,8g。
      {0x37,0x32}, // 中断信号为高电平,推挽输出,直到有读取操作才消失,直通辅助I2C。
//      {0x38,1   }, // 使用“数据准备好”中断。
      {0x6A,0x20}, // 使用辅助I2C。关闭i2c_mst

创瑞科技 发表于 2014-7-12 10:59:51

363546178 发表于 2014-5-8 17:21
请问大神现MPU9250的磁力计的数据能够读取出来了吗?

同求{:handshake:}

honami520 发表于 2014-7-12 14:12:39

很不错的开源,收下了

nhlijiaming 发表于 2014-7-21 14:02:00

可以读取磁力计的ID, 正在移植到TM4C上面
TI的库不好用{:dizzy:}

情迷MJ比莉珍 发表于 2014-7-22 11:32:34

这可真是几好的、1

zhangdaozi 发表于 2014-7-23 21:47:42

ICPACHONG 发表于 2014-5-5 15:01
谢谢!
楼主真是无私啊!!
用楼主开源的飞控板刚打了一次样,开始慢慢玩。。


我和想知道你的几个传感器调通了没有,有成品飞起来吗。还是在研究姿态算法还是。。。

ackk 发表于 2014-7-23 22:00:47

楼主用弹簧固定非常哟创意,但是从你的图来看,那些半圆的孔都是功能引脚,弹簧又是导体,这样搞不是有问题吗?莫非是摆拍还是经过处理过?求解释。谢谢

jxx315315 发表于 2014-7-23 23:10:38

请教下楼主, imu中的stm32f401不好买到,是否可以换成F103?硬件上需不需要改动呢?

john800422 发表于 2014-7-24 03:12:53

jxx315315 发表于 2014-7-23 23:10
请教下楼主, imu中的stm32f401不好买到,是否可以换成F103?硬件上需不需要改动呢? ...

F103T 與 F401C 腳位數不一樣,無法直接兼容。

ICPACHONG 发表于 2014-7-24 09:13:36

zhangdaozi 发表于 2014-7-23 21:47
我和想知道你的几个传感器调通了没有,有成品飞起来吗。还是在研究姿态算法还是。。。
...

传感器和无线都调通了,工作忙,停了一段时间

superfight 发表于 2014-7-24 09:39:59

5611LZ有进展么?除了做滤波还有什么提高精度的方法?和加速度进行一定的融合?

HZKJ 发表于 2014-7-24 09:44:31

很漂亮,话说这么好的电路该开个钢网吧。

机器人天空 发表于 2014-7-24 09:54:20

真漂亮{:lol:}

zgcxd 发表于 2014-7-24 16:16:14

本帖最后由 zgcxd 于 2014-7-24 16:18 编辑

又出集成传感器板啊

jxx315315 发表于 2014-7-24 18:16:42

john800422 发表于 2014-7-24 03:12
F103T 與 F401C 腳位數不一樣,無法直接兼容。

f405的呢, pin脚兼容吧?有没有48脚的可以直接换?

wanming2008 发表于 2014-8-7 10:59:30

兄弟,功耗有没有测试过。10轴+MCU的功耗为多少。其实传感器可以更换。主要还是F401在做惯性导航以及PDR算法时的功耗是多少?ST的人说是50MHZ 陀螺仪采样频率200HZ下功耗MCU只有2mA。这个数据不可思议。不知道您有没有测试过。

lynx19890808 发表于 2014-8-14 09:29:27

牛人牛铁 怒顶!

snowblow 发表于 2014-8-17 20:44:28

加油 加油
好帖留名

rantingting 发表于 2014-8-19 11:15:48

台湾哥 没有继续玩啊

rantingting 发表于 2014-8-19 21:31:30

john800422 发表于 2014-8-19 20:20
之前做的小四軸,用 SmartIMU 做的應用,
長 Motor to Motor ~ 80mm, 重 ~30g,
但是在設計上沒有考慮到電 ...

wow超级精致啊 你做的都是精致漂亮的作品……

moon891207 发表于 2014-8-30 10:51:45

你的遥控器还是用的你之前发的帖子的做的遥控器?

bygreencn 发表于 2014-9-6 19:28:28

有没有谁评估下这两个芯片配合后输出精度能在什么水平

bli19 发表于 2014-9-6 20:42:04

小四轴不错啊,不过405的话是不是太豪华了?

xukkkkkk 发表于 2014-9-13 17:42:44

john800422 发表于 2014-8-19 20:20
之前做的小四軸,用 SmartIMU 做的應用,
長 Motor to Motor ~ 80mm, 重 ~30g,
但是在設計上沒有考慮到電 ...

发射端加个pA会好很多,东西很精致,不像我代码能飞就行了,飞的乐趣比写代码好玩多了,等飞腻了再继续写

Tyron 发表于 2014-9-21 19:33:00

非常mini的飞控

wmm20031015 发表于 2014-9-21 22:34:20

顶楼主,得空了打个板玩一下{:lol:}

zynh_1020 发表于 2014-10-4 11:54:25

我SPI的MISO一直没有数据,SPI通讯正常,10M频率域MPU9250通讯
求解

哈哈孩Holmes 发表于 2014-10-4 12:13:51

开源硬件真是好东西

so_so_so_so 发表于 2014-10-4 15:45:11

很不错的作品,学习。

翔宇 发表于 2014-10-4 20:49:47

樓主好土豪,看了你的好多帖子,數百個樓層,感覺你就是個小土豪啊~開源很詳細。話說迷你四軸很不錯,有時間我自己做個,想問一下,mini四軸可以用你之前做的大四軸遙控器控制嗎?我軟件方面功底有限,不知道是否可以直接使用?最後謝謝分享。{:tongue:}

Puppey 发表于 2014-10-7 15:13:38

非常好的资料。有时间看看。0 0 先Mark下。话说半孔是不是要加钱!

mfkiwl 发表于 2014-10-7 15:26:37

支持open hardware

qufuta 发表于 2014-10-7 17:31:49

非常不错的资料,希望能喝楼主合作哈。。。。

yygg_you 发表于 2014-11-10 18:18:05

不错记录一下
页: [1] 2
查看完整版本: 【開源】SmartIMU 使用 STM32F401C+MPU9250+MS5611