OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13793|回复: 23

L3G4200D的陀螺仪LSM303DLH+MPU-3050加速度计罗盘

[复制链接]

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
发表于 2012-12-18 16:49:36 | 显示全部楼层 |阅读模式
最近要用LSM303DLH+MPU-3050来做跟姿态有关的项目,之前用的是GY50和GY51,现在考虑到要把板子改小,所以准备用GY83,也就是LSM303DLH+MPU-3050来代替GY50和GY51,但是现在发现一个问题。GY50和GY51都有8个外部引脚,GY83有10个引脚。但是我测试的时候发现只用4个引脚就能正常工作,VCC、GND、SDA和SCL,其他的像DR、INT1、INT2、ADDR连不连都没有影响。初次接触这种惯性器件,不太理解为什么。既然不用也可以为什么要设计这些引脚呢?还请原子哥和做过这方面的大神指教。





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-18 19:11:14 | 显示全部楼层
知道的大神帮下忙啊。。。小弟不胜感激!
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2012-12-18 20:10:26 | 显示全部楼层
MEMS的初始化設定 不是可以設定那些中斷腳是由哪些事件觸發
如果沒有要用到中斷有沒有拉出來應該沒差吧~因為我也都沒有接那些腳@@ 

請問你的LSM303DLH加速度讀出來 可以量到Z軸的重力加速度嗎?
我用的是LSM303DLHC
平放在桌子上的時候 加速度計的值好奇怪 Z軸量不到重力加速度...


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-18 21:16:14 | 显示全部楼层
回复【楼主位】玄心空月:
---------------------------------
引出来是给需要的人用的,当然你可以不用。
比如我用的ADXL345,也有INT1,INT2,但是实际上我的代码并没用到,也就是没有设置这两个脚输出信号,如2楼所说的。
如果你希望通过中断来处理数据,就会用到这两个脚了,可以提供单片机中断信号。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-18 21:35:57 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
谢谢原子哥,但是还有一点不懂。对左图来说,我用插针只把下边四个引脚连接了,上边四个引脚,从左到右依次是DR,INT2,INT1,ADDR,说中断没用到我明白了,但是那个DR和ADDR不用也可以是为什么呢?那是不是可以说,如果我只做简单的应用,只需要用到IIC的两根线SDA,SCL就可以了?
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-18 21:38:27 | 显示全部楼层
回复【3楼】civic7366:
---------------------------------
那个DR引脚不是DataReady吗?为啥不用它也行呢?
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
393
金钱
393
注册时间
2012-3-4
在线时间
69 小时
发表于 2012-12-18 23:29:33 | 显示全部楼层
为什么不用MPU6050呢 集成陀螺仪跟加速度计?
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-19 10:52:17 | 显示全部楼层
回复【7楼】sun:
---------------------------------
右边图是LSM303DLH+MPU-3050,也是集成了陀螺仪和加速度计啊
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2012-12-19 13:44:33 | 显示全部楼层
回复【6楼】玄心空月:
---------------------------------
那隻腳在L3GD20不是  DRDY/INT2嗎...
一樣的意思吧....
如果你有使能(Watermark/Overrun/Empty)等等事件...
事件發生時它應該會送出一個pluse(猜的...我沒用過...)

回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-19 13:53:45 | 显示全部楼层
回复【9楼】civic7366:
---------------------------------
谢谢你啊~那是不是可以说,如果我只做简单的应用,只需要用到IIC的两根线SDA,SCL就可以了?其他的线都可以不用?还有,看数据手册时那个Watermark到底是个什么东东?
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2012-12-19 14:04:57 | 显示全部楼层
回复【10楼】玄心空月:
---------------------------------
那個我自己理解是FIFO的深度...
就是FIFO裡的數據會跟Watermark level can be configured to WTM4:0 in FIFO_CTRL_REG (2Eh).
這個位址你設定的做比較,當你的FIFO裡面的可用數據達到你設定的Watermark 就表示事件成立

如果你在程式裡 自己去讀資料 只要接電源 接地 跟SDA,SCL
不過你的MEMS記得要設定成持續更新 
在CTRL_REG4 (23h)的BDU
Block data update. Default value: 0
(0: continuos update; 1: output registers not updated until MSb and LSb reading)

話說...你程式是自己寫的嗎? 可以交流一下嗎@@?
我加速度值讀出來好奇怪...不知道還要做啥處理...
我用得是LSM303DLHC跟L3GD20...

回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-19 16:35:30 | 显示全部楼层
回复【11楼】civic7366:
---------------------------------
我现在正在学习,还不是太懂。之前做过这个的几个学长弄的时候,他们用到了卡尔曼滤波,刚读出来的传感器数据误差会比较大,必须滤波后才能使用。假药经过多次校准数据才基本可用。
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-20 16:55:44 | 显示全部楼层
回复【11楼】civic7366:
---------------------------------
civic,想请教你一下,我用GY-83模块得到了陀螺仪、加速度计、和罗盘的数据,但是不太理解数据的含义,想请你帮我解释下直接从寄存器读出来的数据都表示什么?谢谢你啦~~
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2012-12-20 17:11:20 | 显示全部楼层
回复【13楼】玄心空月:
---------------------------------
我沒有用MPU-3050...
我用的是LSM303DLHC+L3GD20

你是要問底下這些怎麼結合嗎?
OUT_X_L_A 
OUT_X_H_A
.......

它的數據是以s16表示
你把從OUT_X_H_A跟OUT_X_L_A得到的數據
以高8位跟低8位的方式放到s16的變數裡 
就會得到X軸的加速度了...其他軸也一樣
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-20 17:46:47 | 显示全部楼层
回复【14楼】civic7366:
---------------------------------
嗯,数据我知道怎么组合。我想问的是读出来的那些数据都表示什么意义?
下边是我读陀螺仪数据的代码:
X_L = I2C_ReadByte(MPU3050_ADDR,GYRO_XOUT_L);
X_H = I2C_ReadByte(MPU3050_ADDR,GYRO_XOUT_H);
Y_L = I2C_ReadByte(MPU3050_ADDR,GYRO_YOUT_L);
Y_H = I2C_ReadByte(MPU3050_ADDR,GYRO_YOUT_H);
Z_L = I2C_ReadByte(MPU3050_ADDR,GYRO_ZOUT_L);
Z_H = I2C_ReadByte(MPU3050_ADDR,GYRO_ZOUT_H);

Gyro_Data[0] = (X_L & 0x00FF) |((X_H << 8) & 0xFF00);
Gyro_Data[1] = (Y_L & 0x00FF) |((Y_H << 8) & 0xFF00);
Gyro_Data[2] = (Z_L & 0x00FF) |((Z_H << 8) & 0xFF00);
从串口观察到的数据如下
陀螺仪的:244 393 111 加速度计的:8192 244 393  罗盘的:0 8192 244 
我就是不太明白这些数字表示的具体意义,想问你的是这个问题,麻烦你啦~~
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2012-12-20 20:53:42 | 显示全部楼层
回复【15楼】玄心空月:
---------------------------------
你看LSM303DLH的data sheet第11頁

你的FS(full-scale)如果設定
00(正負2g) 單位就是 1mg/digit
01(正負4g) 單位就是 2mg/digit
11(正負8g) 單位就是 3.9mg/digit

data sheet寫的~我不知道有沒有理解錯誤~
就是他16bit解析度好像是騙人的...因為你要表示正負2000(2g)不需要到16位...
像我full-scale設定2g 我隨便拿起來晃一晃 數值就可以飆到正負4~5千
很奇怪...超過full-scale了...
我現在發生的情況是 我平放在桌子上的時候 量不到重力加速度
XYZ軸都只是在正負 32 64 96 這3個亂跳
可是拿起來搖晃的時候~數值又會有很大的變化
搞不懂到底是好的還是壞的....

羅盤是看增益...就是你得到的數值是有被加強過的
你的罗盘的:0 8192 244  我覺得怪怪的ㄋ....因為我看到的數值3軸沒有差那麼多的 我拿起來晃過了...
加速度计的:8192 244 393 請問你的8192是Z軸ㄇ? 或者是你X軸是朝上或朝下的@@?


回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-20 21:42:20 | 显示全部楼层
回复【16楼】civic7366:
---------------------------------
我那都是按照X、Y、Z轴的顺序输出的,加速度计X轴始终是8192,拿起来晃也不行;
最奇怪的是罗盘的,X轴始终是0,Y轴始终是8192,我拿起来晃这两个轴的数据都不变,只有Z轴变化剧烈,好奇怪
不知道怎么回事
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2012-12-21 01:41:50 | 显示全部楼层
回复【17楼】玄心空月:
---------------------------------
我的問題解決了@@
我的LSM303DLHC跟LSM303DLH寄存器有點不太一樣
LSM303DLHC的CTRL4_A的地方有一個 HR高解析度使能位....那個地方不可以使能....
我把他disable之後就正常了...終於對重力加速度有反應了...
發現它解析度真的是16bit的(32767~-32768) data sheet都寫得不清不楚...
目前我設定FS 正負2g 重力加速度數據為16xxx(大概1g)
當我設定成 正負4g時 重力加速度數據變為8xxx 
把X或Y軸朝下 也都可以量到了...終於比較正常了...
只是板子平放時...除了Z軸有16xxx之外 X軸跟Y軸都有值= =
X軸值還滿大的2xxx...不曉得要怎麼校正

角速度計也是 沒有在動板子 就有值了...
目前只有磁方位計看起來比較正常 浮動的數值很小...

你用的是LSM303DLH 確定你的單位是要看data sheet 11的表
跟我不太一樣~因為我手邊有inemo 大概看過裡面LSM303DLH 部分的程式碼

你拿起來晃數值都不會變就有點扯了...
該不會沒有使能持續更新吧...
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-21 15:21:32 | 显示全部楼层
回复【18楼】civic7366:
---------------------------------
持续更新位使能了的,这是我串口捕获到的数据,好奇怪,感觉有几个死轴
207 216 -70 8192 207 216 201 8192 207 
228 220 -55 8192 228 220 201 8192 228 
236 212 -48 8192 236 212 4298 8192 236 
223 197 -46 8192 223 197 4298 8192 223 
200 186 -31 8192 200 186 4298 8192 200 
170 177 0 8192 170 177 8393 8192 170 
120 152 12 8192 120 152 8393 8192 120 
106 136 28 8192 106 136 24777 8192 106 
91 117 31 8192 91 117 24777 8192 91 
77 100 26 8192 77 100 12490 8192 77 
60 81 7 8192 60 81 12490 8192 60 
-215 44 -59 8192 -215 44 12490 8192 -215 
-5 14 -94 8192 -5 14 -32568 8192 -5 
-66 -26 -124 8192 -66 -26 -32568 8192 -66 
-110 -73 -153 8192 -110 -73 8393 8192 -110 
-158 -159 -198 8192 -158 -159 8393 8192 -158 
-230 -201 -223 8192 -230 -201 -32566 8192 -230 
-506 -234 -241 8192 -506 -234 -32566 8192 -506 
-272 -244 -248 8192 -272 -244 -24374 8192 -272 
-284 -226 -241 8192 -284 -226 -24374 8192 -284 
-20 -178 -199 8192 -20 -178 24777 8192 -20 
-224 -167 -183 8192 -224 -167 24777 8192 -224 
-202 -160 -173 8192 -202 -160 24777 8192 -202 
-191 -157 -166 8192 -191 -157 -28471 8192 -191 
-188 -158 -161 8192 -188 -158 -28471 8192 -188 
-188 -169 -167 8192 -188 -169 -12087 8192 -188 
-223 -177 -177 8192 -223 -177 -12087 8192 -223 
-506 -182 -190 8192 -506 -182 16586 8192 -506 
-267 -181 -206 8192 -267 -181 16586 8192 -267 
-11 -172 -216 8192 -11 -172 16585 8192 -11 
-251 -161 -209 8192 -251 -161 16585 8192 -251 
-190 -136 -196 8192 -190 -136 -32567 8192 -190 
-166 -125 -186 8192 -166 -125 -32567 8192 -166 
-157 -118 -179 8192 -157 -118 -12088 8192 -157 
-160 -116 -175 8192 -160 -116 -12088 8192 -160 
-167 -112 -166 8192 -167 -112 24776 8192 -167 
-196 -103 -159 8192 -196 -103 24777 8192 -196 
-206 -93 -152 8192 -206 -93 24777 8192 -206 
-205 -90 -148 8192 -205 -90 -12088 8192 -205 
-198 -89 -151 8192 -198 -89 -12088 8192 -198 
-206 -85 -147 8192 -206 -85 -24377 8192 -206 
-213 -69 -137 8192 -213 -69 -24377 8192 -213 
-173 -58 -124 8192 -173 -58 -20280 8192 -173 
-148 -48 -112 8192 -148 -48 -20280 8192 -148 
-130 -36 -101 8192 -130 -36 -28473 8192 -130 
-119 -26 -92 8192 -119 -26 -28473 8192 -119 
-100 -17 -66 8192 -100 -17 24776 8192 -100 
-56 -14 -53 8192 -56 -14 24776 8192 -56 
-39 -11 -41 8192 -39 -11 24776 8192 -39 
-26 -7 -32 8192 -26 -7 24777 8192 -26 
这是怎么回事呢?
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2012-12-21 15:40:47 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,从加速度计相应的寄存器直接读出来的数据应该就是相应轴的加速度吧?如果不动就应该是重力加速度吧?从陀螺仪、罗盘的寄存器直接读出来的数据又是什么呢?
回复 支持 反对

使用道具 举报

15

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2013-2-5
在线时间
0 小时
发表于 2013-4-7 21:42:30 | 显示全部楼层
回复【20楼】玄心空月:
---------------------------------
你好我想知道你的磁场数据处理是怎么样的,现在正常可用了么?
回复 支持 反对

使用道具 举报

15

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2012-12-5
在线时间
1 小时
 楼主| 发表于 2013-4-8 19:00:13 | 显示全部楼层
回复【21楼】lyballack:
---------------------------------
可用。磁场数据作为卡尔曼滤波参数传进滤波算法。
回复 支持 反对

使用道具 举报

15

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2013-2-5
在线时间
0 小时
发表于 2013-4-11 18:26:09 | 显示全部楼层
回复【22楼】玄心空月:
---------------------------------
卡尔曼滤波是对磁场的数据进行校正还是什么的?
回复 支持 反对

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-4-11 22:19:09 | 显示全部楼层
楼主做完了?九轴融合?
效果怎么样
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-21 16:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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