-
详解
MPU605
0
,用
STM32
读取原始数据,并相
互融合算出俯仰角、翻滚角、偏航角
6050
是什么?
MPU6050
是一个
6
轴运
动处理组件,包含了
3
轴加速度
p>
和
3
轴陀螺仪。
MPU-6000
为全球首例整合性
6
轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速
器时之轴间差的问题,减少了大量的包装空间。
MPU-6000
整合了
3
轴陀螺仪、
3
轴加速器,
并含
可藉由第二个
I2C
端口连接其他厂牌之加速器、
磁力传感器、
或其他传感器的数位运动处理
(DMP:
Digital Motion Processor)
硬件加
速引擎,由主要
I2C
端口以单一数据流的形式,向应用端输<
/p>
出完整的
9
轴融合演算技术
InvenSense
的运动处理资料库,可处
理运动感测的复杂数据,降低了运动处理运算对操作系统
的负荷,并为应用开发提供架构
化的
API
。
MPU-6000
的角速度全格感测范围为±
250
、±
500
、±
10
00
与±
2000
°
< br>/sec (dps)
,可准确追緃
快速与慢速动作,并
且,用户可程式控制的加速器全格感测范围为±
2g
、±
4g
±
8g
与±
p>
16g
。产
品传输可透过最高至
400kHz
的
I2C
或
最高达
20MHz
的
SPI
。
MPU-6000
可在不同电压下工作,
VDD
供电电压介为
2.5V
±
5%
、
3.0V
±
5%
或
3.3V
±
5%
,逻辑接
口
VVDIO
供电为
1.8V
±
5%
。
MPU-6
000
的包装尺寸
4x4x0.9mm(QFN)
,
在业界是革命性的尺寸。
其他
的特征包含内建的温度感测器、包含在运作环境中仅有±
1%
变动的振荡器。
2.
加速度传感器是干嘛用的?
总而言这,加速度传感器,其实是力传感器。
用来检查上下左右前后哪几个面都受了多少力(包
括重力)
< br>,然后计算角度。
3.
陀螺仪是干嘛用的?
简而言之,陀螺仪就是角速度检测仪。比如,一块板,以
X
轴为轴心,在一秒钟的时间转到了
90
度,那么它在
X
轴上的角速度就是
90
度
/
秒
(
DPS,
角速度单位,
Degree Per
Second
的缩
写°
/S
,体现了转动的快慢)
6050
分辨率是多少?
3
轴加速度
和
3
轴陀螺仪分别用了
3
个
16
位的
ADC,
p>
也就是说,加速度有
3
个
< br>16
位
ADC
,其中
每个轴使用了一个。也是说,每个轴输出的数据,是
2^16
也就是
-32768 ----
+32768
。陀螺
仪也是一样。
5.
单位换算
上面说的
-32768 --- +32768
,那么这个数字到底代表了什么呢?比如陀螺仪
32768
到底是指
角速度达到多少度
/
秒
?
这个其实是根据
MPU6050
设置的量程来决定
的,量程不一样,
32768
代表的值就不一样。
MPU6050
的
量程设置,
在
MPU6050::initialize()
(
库)
初始化
函数中进行了设置:
setFullScaleGyroR
ange(MPU6050_GYRO_FS_250);
setFullScal
eAccelRange(MPU6050_ACCEL_FS_2);
, 2g
秒
/
p>
度
250
分别设置为,
按陀螺仪来说,
MPU6050
有四个量程可选:
±
250
,±
500
,±
p>
1000
,±
2000
度
/s
比方说,设置了是
±
250 ,
那么
-32768 ---- +32768
就代表了
-250 ---- +250
< br>。此时它的
LSB(
拉傻
B
p>
,最低有效位
)
是
131
LSB/(
度
/s)
STM32
自带
I2C
,但一般有两个
I2C1
(
PB6,P
B7
)和
I2C2
(
< br>PB10,PB11
)
,而且,
I2C
分为硬件、
和模拟。
软件
i2c
是程序员使用程序控制
SCL,SDA
线输出高低电平,模拟
i2c
p>
协议的时序
.
硬件
i2c
程序员只要调用
i2c
的控
制函数即可,不用直接的去控制
SCL,SDA
高低电平的输出
本模块采用的是
IIC
通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方
便!
原始数据有:
AX
、
AY
、
AZ G
X
、
GY
、
G
Z
简单的算法之后可以得到
Roll
,
pitch
,
yaw
参考
MPU-6050
数据手册
引脚说明:
VDD
供电电压为
2.5V
±
5%
、
3.0V
p>
±
5%
、
3.3V
±
5%
;
VD
DIO
为
1.8V
±
5%
内建振荡器在工作温度范围内仅有±
1%
频率变化。可选外部时钟输入
32.768kHz
或
19.2MHz
找出几个重要的寄存器:
1
)
Register 25
–
Sample Rate Divider
(
SMPRT_DIV
)
8
位无符号值,通过该值将陀螺仪输出分频,得到采样频率
1
)
SMPLRT_DIV
的采样率。该寄存器指定陀螺
仪输出率的分频,用来产生
MPU-60X0
DMP
采样和运动检测的都是基于该采样率。
传感器寄存器的输出、
FIFO
输出、
采样率的计算公式
+ (1
率
/
陀螺仪的输出
采样率
=
SMPLRT_DIV)
。
,反之等于
1KHZ
当数字低通滤波器没有使能的时候,陀螺仪的输出平路等于
8KHZ
CONFIG
)
(
2
)
Register 26
–
Configuration
)
EXT_SYNC_SET
3
位无符号值,配置帧同步引脚的采样
1
DLPF_CFG
3
位无符号值,配置数字低通滤波器
)
2
。
引脚采样和数字低通滤波器
(
DLP
F
)
)
该寄
存器为陀螺仪和加速度计配置外部帧同步
(
FSYNC
FSYNC
引脚的一个外部信号进行采样。
EXT_SYNC_SET
通过配置,可以对连接到
FSY
NC
引脚上
的信号变化会被锁存,这样就能捕获到很短的频闪信
号。
信号状态。采样结束后,锁存器将复
位到当前的
FSYNC
根据下面的表格定义的值,<
/p>
采集到的数据会替换掉数据寄存器中上次接收到
的有效数据
的值对加速
度传感器和陀螺仪
DLPF_CFG
根据下表中来配置,
DLPF_CFG
数字低通滤波器是由.
滤波
)
(
p>
GYRO_CONFIG3
)
Regist
er 27
–
Gyroscope
Configuration
X
轴陀螺仪进行自我测试。
1
)
XG_ST
设置此位,
Y
轴陀螺仪进行自我测试
。
2
)
YG_ST
设置此
位,
轴陀螺仪进行自我测试。
)
3ZG_ST
设置此位,
Z
位无符号值。
选择陀螺仪的量程。
4
)
FS_SEL
2
这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。
、
陀螺仪自检允许用户测试陀螺仪的
机械和电气部分,通过设置该寄存器的
XG_ST
可以
激活陀螺仪对应轴的自检。每个轴的检测可以独立进行或同时进
YG_ST
和
ZG_ST bits
行。
未启用自检功能时传感器的输
-
自检的响应
=
打开自检功能时的传感器输出
出当
MPU-6000/MPU-6
050
数据手册的电气特性表中已经给出了每个轴的限制范围。
在
自检
的响
应值在规定的范围内,
就能够通过自检;
反之,
就不能通过自检。
选择陀螺仪输出的量程: