L3G4200陀螺仪学习
L3G4200D传感器学习
L3G4200D是意法(ST)半导体公司推出的一款MEMS运动传感器:三轴数字输出陀螺仪,可测量物体绕X、Y、Z三轴运动夫人角速度的变化,测量范围为±250, ±500, ±1000, 和 ±2000°/sec(dps)。通过测量角速度的变化,可以判别出物体的运动状态,所以也称为运动传感器,换句话说,这传感器可以让我们的设备知道自己“在哪儿和去哪儿”(where they are or where they are going),提供16位数据输出,输出值为16位数值的补码,以及可配置的低通和高通滤波器等嵌入式数字功能,支持IIC和SPI总线两种通讯方式。
一、传感器的测量方向和内部引脚图
引脚说明如下:
Pin |
名称 |
功能 |
1 |
Vdd_IO |
电源IO脚 |
2 |
SCL/SPC |
I2C串行时钟/SPI串口时钟 |
3 |
SDA/SDI/SDO |
I2C串行数据/SPI串行数据输入/3-wire串行接口数据输出 |
4 |
SDO/SA0 |
SPI串行数据输出/ I2C设备的地址不显着位 |
5 |
CS |
SPI启用 I2C / SPI模式选择(1: I2C模式; 0: SPI启用) |
6 |
DRDY/INT2 |
数据就绪/FIFO中断 |
7 |
INT1 |
可编程中断 |
8 |
Reserved |
接地 |
9 |
Reserved |
接地 |
10 |
Reserved |
接地 |
11 |
Reserved |
接地 |
12 |
Reserved |
接地 |
13 |
GND |
0V供应 |
14 |
PLLFILT |
锁相环环路滤波器 |
15 |
Reserved |
连接到Vdd |
16 |
Vdd |
电源 |
二、传感器寄存器的配置过程
1、初始化传感器(选择量程、高通滤波模式,设置中断使能等,对相应的控制寄存器进行写操作)
2、读取数据(首先读状态寄存器(STATUS_REG),若ZYXDA=1,则可以读数,否则等待。为减小误差,在编写程序时要设置连续读数多次,然后取平均值。)
三、主要寄存器介绍
1、控制寄存器
①CTRL_REG1(地址:20H):选择输出数据速率。输出带宽,以及X、Y、Z轴的使能
DR1 |
DR0 |
BW1 |
BW0 |
PD |
Zen |
Yen |
Xen |
DR1-DR0和BW1-BW0配置对应的输出速率和带宽如下表(其中:ODR为数据输出频率,Cut_Off为滤除频率)
DR<1:0> |
BW<1:0> |
ODR{Hz} |
Cut_Off |
00 |
00 |
100 |
12.5 |
00 |
01 |
100 |
25 |
00 |
10 |
100 |
25 |
00 |
11 |
100 |
25 |
01 |
00 |
200 |
12.5 |
01 |
01 |
200 |
25 |
01 |
10 |
200 |
50 |
01 |
11 |
200 |
70 |
10 |
00 |
400 |
20 |
10 |
01 |
400 |
25 |
10 |
10 |
400 |
50 |
10 |
11 |
400 |
110 |
11 |
00 |
800 |
30 |
11 |
01 |
800 |
35 |
11 |
10 |
800 |
50 |
11 |
11 |
800 |
110 |
PD |
0:掉电模式 1:普通模式或者休眠模式(默认为0 ) |
Zen |
Z轴使能 0:不启用 1:启用(默认1) |
Yen |
Y轴使能 0:不启用 1:启用(默认1) |
Xen |
X轴使能 0:不启用 1:启用(默认1) |
对于PD处于3个模式中的哪一个则看下表:
模式 |
PD |
Zen |
Yen |
Xen |
掉电模式 |
0 |
- |
- |
- |
休眠模式 |
1 |
0 |
0 |
0 |
普通模式 |
1 |
- |
- |
- |
②CTRL_REG2(地址:21H):选择高通滤波模式和高通截止频率
0 |
0 |
HPM1 |
HPM0 |
HPCF3 |
HPCF2 |
HPCF1 |
HPCF0 |
高通滤波器模式选择配置
HPM1 |
HPM0 |
高通滤波器模式 |
0 |
0 |
普通模式(reset reading HP_RESET_FILTER) |
0 |
1 |
滤波器参考信号 |
1 |
0 |
普通模式 |
1 |
1 |
根据中断自动设定 |
高通截止频率Hz
HPCF<3:0> |
ODR=100Hz |
ODR=200Hz |
ODR=400Hz |
ODR=800Hz |
0000 |
8 |
15 |
30 |
56 |
0001 |
4 |
8 |
15 |
30 |
0010 |
2 |
4 |
8 |
15 |
0011 |
1 |
2 |
4 |
8 |
0100 |
0.5 |
1 |
2 |
4 |
0101 |
0.2 |
0.5 |
1 |
2 |
0110 |
0.1 |
0.2 |
0.5 |
1 |
0111 |
0.05 |
0.1 |
0.2 |
0.5 |
1000 |
0.02 |
0.05 |
0.1 |
0.2 |
1001 |
0.01 |
0.02 |
0.05 |
0.1 |
③CTRL_REG3(地址:22H):中断使能
I1_Int1 |
I1_Boot |
H_Lactive |
PP_OD |
I2_DRDY |
I2_WTM |
I2_ORun |
I2_Empty |
相关功能配置如下:
I1_Int1 |
INT1脚中断使能(0:Disable,1:Enable)默认0 |
I1_Boot |
INT1脚引导状态可用(0:Disable,1:Enable)默认0 |
H_Lactive |
INT1脚中断激活配置(0:高,1:低)默认0 |
PP_OD |
Push- Pull / Open drain. (0: Push- Pull; 1: Open drain)默认0 |
I2_DRDY |
DRDY/INT2数据准备(0: Disable; 1: Enable)默认0 |
I2_WTM |
DRDY/INT2的FIFO WaterMark中断(0: Disable; 1: Enable)默认0 |
I2_ORun |
DRDY/INT2的FIFO溢出中断(0: Disable; 1: Enable)默认0 |
I2_Empty |
DRDY/INT2的FIFO空中断(0: Disable; 1: Enable)默认0 |
④CTRL_REG4(地址:23H):选择量程
BDU |
BLE |
FS1 |
FS0 |
- |
ST1 |
ST0 |
SIM |
相关配置如下表:
BDU |
数据块更新.(0:持续更新,1:输出寄存器在MSB和LSB读时才更新)默认为0 |
BLE |
大/小 尾端数据选择(0:数据LSB在地位地址,1:数据LSB在高位地址)默认0 |
FS1-FS0 |
满量程选择(00:250dps;01:500dps;10:2000dps;11:2000dps)(默认00) |
ST1-ST0 |
自检使能(00:普通模式;01:Self test 0 (+);10:--;11:Self test 1 (-)) |
SIM |
SPI串行接口模式选择(0:四线接口;1:三线接口) |
⑤CTRL_REG5(地址:24H):FIFO使能,高通滤波使能
BOOT |
FIFO_EN |
-- |
HPen |
INT1_Sel1 |
INT1_Sel0 |
Out_Sel1 |
Out_Sel0 |
相关配置:
BOOT |
重启内存内容(0:普通模式; 1:重启内存内容)默认0 |
FIFO_EN |
FIFO(0: FIFO disable; 1: FIFO Enable)默认0 |
HPen |
高通滤波器使能(0: HPF disabled; 1: HPF enabled)默认0 |
INT1_Sel1- INT1_Sel0 |
INT1选择配置 ,默认0 |
Out_Sel1- Out_Sel0 |
外部选择配置,默认0 |
⑥STATUS_REG(地址:27H):状态寄存器,数据就绪可读
ZYXOR |
ZOR |
YOR |
XOR |
ZXYDA |
ZDA |
YDA |
XDA |
相关配置
ZYXOR |
X,Y,Z轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0 |
ZOR |
Z轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0 |
YOR |
Y轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0 |
XOR |
X轴数据溢出(0:没有溢出1:在读之前,新数据已经将先前的数据覆盖)默认0 |
ZYXDA |
X,Y,Z轴新数据(0:没有获取新数据1:获取新数据)默认0 |
ZDA |
Z轴新数据(0:没有获取新数据1:获取新数据)默认0 |
YDA |
Y轴新数据(0:没有获取新数据1:获取新数据)默认0 |
XDA |
X轴新数据(0:没有获取新数据1:获取新数据)默认0 |
2、数据寄存器(共6个,每个轴的角速度由两个字节组成,分成高位和低位,数据以二进制补码形式存储):
OUT_X_L(地址:28H):X轴角速度 低位
OUT_X_H(地址:29H):X轴角速度 高位
OUT_Y_L(地址:2AH):Y轴角速度 低位
OUT_Y_H(地址:2BH):Y轴角速度 高位
OUT_Z_L(地址:2CH):Z轴角速度 低位
OUT_Z_H(地址:2DH):Z轴角速度 高位
L3G4200陀螺仪学习相关推荐
- ardupilot BMI088加速度陀螺仪学习
目录 文章目录 目录 摘要 1.BMI088简介 1.加速度特性 2.陀螺仪特性 3.安装方向及接线 4.常用的寄存器 1.加速度寄存器 2.陀螺仪寄存器 2.BMI088代码学习 1.BMI088初 ...
- 基于STC15W408AS单片机的陀螺仪显示器设计
提示:本文属于技术的交流,如有抄袭请联系删除. 文章目录 前言 一.STC15W408AS单片机 二.总体设计 1.硬件设计 (1)原理图设计 a.MCU设计 b.传感器接口设计 c.液晶显示 d.电 ...
- iOS 重力感应 学习1 陀螺仪 水平仪 指南针
小球可以随着重力感应 四处乱撞. 放大了坐标位移 就可以看见小球动了. 然后规定小球的路径 当滑到中间时候 弹出一张图片 作为提示. 我做了一个小demo 效果不错哦 CMMotionManager ...
- 学习记录--陀螺仪模块(MPU6050:IIC通信,us延时函数)
一,mpu6050模块基础(参考HAL库开发指南) 二,CUBEMX配置 用模拟IIC,只需要打开一个串口打印数据就行,IO口的配置直接写在板级支持包的init里了 三,keil中代码(参考正点原子与 ...
- Pixhawk学习5.2——传感器标定之陀螺仪
相对于加速度计,Pixhawk中陀螺仪的校准比较简单. 陀螺仪的主要量测量为角速度,其安装在飞控中之后的量测模型如下: Wm = K * Mi * Wb + delta + n 其中: Wm[3] 为 ...
- 安卓开发陀螺仪!首发10万字Android开发实战文档,进阶学习资料!
Gradle是什么? Gradle是一种构建语言,目前是Android的默认构建工具,我们编写的编译脚本,其实就是玩Gradle的API,所以从它更底层的意义上看,是一个编程框架. 因为涉及的内容很多 ...
- 【学习随记】js获取手机陀螺仪
// 使用vue<div id="app"><ul><li>设备是否提供绝对定位(absolute)数据: {{absolute}}</l ...
- 机器人带陀螺仪走钢丝_Sphero RVR 一个无所不能的可编程机器人!
2019年Kickstarter宣传视频 https://www.zhihu.com/video/1200749647498735616 有史以来功能最全面的编程机器人 Sphero RVR 延续了S ...
- 深度学习在三维环境重建中的应用
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉联盟 最经典的计算机视觉问题是3-D重建.基本 ...
- 由粗到精学习LVI-SAM基础:多传感器内外参标定原理
作者丨Alvin一路向东@知乎 来源丨https://zhuanlan.zhihu.com/p/462759422 编辑丨3D视觉工坊 一.最小二乘法 1.1 线性最小二乘 遇到线性问题通常采用最小二 ...
最新文章
- Vector:动态数组的使用和说明
- 扒网站:模板小偷 单页模板扒手
- 目标检测之两阶段算法--Fast R-CNN详解
- java web 三层架构
- 出埃及记:摩西劈开红海
- 深度学习(花书)+ 动手学深度学习(李沐)资料链接整理
- JVM垃圾回收机制,万字详解
- Android SystemServer 进程
- 组合排列中重复数问题
- “我爱淘”冲刺阶段Scrum站立会议8
- 2018入门微单相机推荐
- linux12k8s --> 03二进制安装
- html5饼图颜色渐变,Highcharts 渐变饼图
- 在私有云上创建虚拟机
- Windows10和Ubuntu双系统如何卸载Ubuntu系统
- 2020年编程语言排行榜!
- LCD段码液晶屏开模过程参数
- linux qt自带例子无法,出现Qt_5未在文件libQt5Widgets.so.5中定义导致软件无法使用的解决...
- 前端代码规范工具ESLint和Prettier
- navicat登录oracle问题
热门文章
- 尚硅谷大数据课程flink1.13代码实现与笔记记录
- Monkey 命令 基本参数介绍
- IPQ8072开机wifi crash问题
- EPT DATA数据库能查到1998-2013年工业企业数据库
- 信号与线性系统分析(吴大正,郭宝龙)(2-冲激函数)
- log4j日志设置error级别以上
- clover写入efi_MAC 10.14 安装教程10-基于黑果小兵大神EFI文件的修改过程
- B站(IT速成之JAVA速成班 300分钟算法面试)跟做笔记
- 【交换机在江湖】第十二章 VLAN基础篇
- oracle 转换日期的函数,Oracle日期常用函数转换教程