精华内容
下载资源
问答
  • 转载自http://blog.sina.com.cn/s/blog_6cd63a0b0101hhut.html1 详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角翻滚角偏航角

    转载自http://blog.sina.com.cn/s/blog_6cd63a0b0101hhut.html

    1.MPU6050是什么?

    MPU6050是一个6轴运动处理组件,包含了3轴加速度 和3轴陀螺仪。
    MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术
    InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
    MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。
    MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

    2.加速度传感器是干嘛用的?

    总而言这,加速度传感器,其实是力传感器。用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算角度。

    3.陀螺仪是干嘛用的?
    简而言之,陀螺仪就是角速度检测仪。比如,一块板,以X轴为轴心,在一秒钟的时间转到了90度,那么它在X轴上的角速度就是 90度/秒 (DPS, 角速度单位,Degree Per Second的缩写°/S ,体现了转动的快慢)

    4.MPU6050分辨率是多少?

    3轴加速度 和3轴陀螺仪分别用了3个16位的ADC, 也就是说,加速度有3个16位ADC,其中每个轴使用了一个。也是说,每个轴输出的数据,是2^16 也就是 -32768 —- +32768。陀螺仪也是一样。

    1. 单位换算
      上面说的-32768 — +32768 ,那么这个数字到底代表了什么呢?比如陀螺仪 32768 到底是指角速度达到多少度/秒 ?
      这个其实是根据MPU6050设置的量程来决定的,量程不一样,32768代表的值就不一样。

    MPU6050的量程设置,在 MPU6050::initialize() (MPU6050.cpp库)初始化函数中进行了设置:
    setFullScaleGyroRange(MPU6050_GYRO_FS_250);
    setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
    分别设置为,250度/秒 , 2g

    按陀螺仪来说,MPU6050 有四个量程可选:
    ±250,±500,±1000,±2000 度/s
    比方说,设置了是 ±250 , 那么-32768 —- +32768 就代表了 -250 —- +250 。此时它的LSB(拉傻B,最低有效位) 是 131 LSB/(度/s)

    STM32自带I2C,但一般有两个I2C1(PB6,PB7)和I2C2(PB10,PB11),而且,I2C分为硬件、和模拟。
    软件i2c是程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序.
    硬件i2c程序员只要调用i2c的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出

    本模块采用的是IIC通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方便!
    原始数据有:AX、AY、AZ GX、GY、GZ
    简单的算法之后可以得到 Roll,pitch,yaw
    参考MPU-6050数据手册
    引脚说明:
    这里写图片描述
    VDD 供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO 为1.8V± 5%
    内建振荡器在工作温度范围内仅有±1%频率变化。可选外部时钟输入32.768kHz 或19.2MHz
    找出几个重要的寄存器:
    1)Register 25 – Sample Rate Divider (SMPRT_DIV)
    这里写图片描述
    1)SMPLRT_DIV 8位无符号值,通过该值将陀螺仪输出分频,得到采样频率

    该寄存器指定陀螺仪输出率的分频,用来产生MPU-60X0的采样率。
    传感器寄存器的输出、FIFO输出、DMP采样和运动检测的都是基于该采样率。
    采样率的计算公式
    采样率 = 陀螺仪的输出率 / (1 + SMPLRT_DIV)
    当数字低通滤波器没有使能的时候,陀螺仪的输出平路等于8KHZ,反之等于1KHZ。
    2)Register 26 – Configuration (CONFIG)
    这里写图片描述
    1)EXT_SYNC_SET 3位无符号值,配置帧同步引脚的采样
    2)DLPF_CFG 3位无符号值,配置数字低通滤波器

    该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC)引脚采样和数字低通滤波器(DLPF)。
    通过配置EXT_SYNC_SET,可以对连接到FSYNC引脚的一个外部信号进行采样。
    FSYNC引脚上的信号变化会被锁存,这样就能捕获到很短的频闪信号。
    采样结束后,锁存器将复位到当前的FSYNC信号状态。
    根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据
    这里写图片描述
    数字低通滤波器是由DLPF_CFG来配置,根据下表中DLPF_CFG的值对加速度传感器和陀螺仪滤波
    这里写图片描述

    3)Register 27 – Gyroscope Configuration (GYRO_CONFIG)
    这里写图片描述
    1)XG_ST 设置此位,X轴陀螺仪进行自我测试。
    2)YG_ST 设置此位,Y轴陀螺仪进行自我测试。
    3)ZG_ST 设置此位,Z轴陀螺仪进行自我测试。
    4)FS_SEL 2位无符号值。选择陀螺仪的量程。
    这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。
    陀螺仪自检允许用户测试陀螺仪的机械和电气部分,通过设置该寄存器的 XG_ST、YG_ST和 ZG_ST bits可以激活陀螺仪对应轴的自检。每个轴的检测可以独立进行或同时进行。
    自检的响应 = 打开自检功能时的传感器输出 - 未启用自检功能时传感器的输出
    在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。当自检的响应值在规定的范围内,就能够通过自检;反之,就不能通过自检。
    根据下表,FS_SEL选择陀螺仪输出的量程:
    三轴加速度传感器MPU-6050

    4)Register 28 – Accelerometer Configuration (ACCEL_CONFIG)
    三轴加速度传感器MPU-6050
    1)XA_ST 设置为1时,X轴加速度感应器进行自检。
    2)YA_ST 设置为1时,Y轴加速度感应器进行自检。
    3)ZA_ST 设置为1时,Z轴加速度感应器进行自检。
    4)AFS_SEL 2位无符号值。选择加速度计的量程。

    具体细节和上面陀螺仪的相似。
    根据下表,AFS_SEL选择加速度传感器输出的量程。
    三轴加速度传感器MPU-6050
    5)Registers 59 to 64 – Accelerometer Measurements (ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H, ACCEL_YOUT_L, ACCEL_ZOUT_H, and ACCEL_ZOUT_L)
    三轴加速度传感器MPU-6050
    1)ACCEL_XOUT 16位2’s补码值。
    存储最近的X轴加速度感应器的测量值。
    2)ACCEL_YOUT 16位2’s补码值。
    存储最近的Y轴加速度感应器的测量值。
    3)ACCEL_ZOUT 16位2’s补码值。
    存储最近的Z轴加速度感应器的测量值。

    这些寄存器存储加速感应器最近的测量值。
    加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):一个内部寄存器,用户不可见。另一个用户可读的寄存器。内部寄存器中数据在采样的时候及时的到更新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去,避免了直接对感应测量值的突发访问。
    在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范围,都对应一个加速度的灵敏度ACCEL_xOUT,如下面的表中所示:
    三轴加速度传感器MPU-6050
    6)Registers 65 and 66 – Temperature Measurement (TEMP_OUT_H and TEMP_OUT_L)
    三轴加速度传感器MPU-6050
    1)TEMP_OUT 16位有符号值。
    存储的最近温度传感器的测量值。

    7)Registers 67 to 72 – Gyroscope Measurements (GYRO_XOUT_H, GYRO_XOUT_L, GYRO_YOUT_H, GYRO_YOUT_L, GYRO_ZOUT_H, and GYRO_ZOUT_L)

    三轴加速度传感器MPU-6050
    这个和加速度感应器的寄存器相似
    对应的灵敏度:
    三轴加速度传感器MPU-6050
    8)Register 107 – Power Management 1 (PWR_MGMT_1)
    三轴加速度传感器MPU-6050

    该寄存器允许用户配置电源模式和时钟源。它还提供了一个复位整个器件的位,和一个关闭温度传感器的位
    1)DEVICE_RESET 置1后所有的寄存器复位,随后DEVICE_RESET自动置0.
    2)SLEEP 置1后进入睡眠模式
    3)CYCLE 当CYCLE被设置为1,且SLEEP没有设置,MPU-60X0进入循环模式,为了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个采样数据。在LP_WAKE_CTRL(108)寄存器中,可以设置唤醒后的采样率和被唤醒的频率。
    4)TEMP_DIS 置1后关闭温度传感器
    5)CLKSEL 指定设备的时钟源

    时钟源的选择:
    三轴加速度传感器MPU-6050

    9)Register 117 – Who Am I (WHO_AM_I)
    三轴加速度传感器MPU-6050
    WHO_AM_I中的内容是MPU-60X0的6位I2C地址
    上电复位的第6位到第1位值为:110100
    为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址是 b1101000 ,当AD0引脚逻辑高电平时,设备的地址是 b1101001

    (2013.01.24)
    淘宝买的货终于到了,学习用所以没买好的,这个模块只要18块钱。
    三轴加速度传感器MPU-6050

    MPU-6000可以使用SPI和I2C接口,而MPU-6050只能使用I2C,其中I2C的地址由AD0引脚决定;寄存器共117个,挺多的,下面的是精简常用的,根据具体的要求,适当的添加。

    #define SMPLRT_DIV  0x19    //采样率分频,典型值:0x07(125Hz) */
    #define CONFIG   0x1A       // 低通滤波频率,典型值:0x06(5Hz) */
    #define GYRO_CONFIG  0x1B   // 陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s) */
    #define ACCEL_CONFIG 0x1C  // 加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz) */
    
    #define ACCEL_XOUT_H 0x3B  // 存储最近的X轴、Y轴、Z轴加速度感应器的测量值 */
    #define ACCEL_XOUT_L 0x3C
    #define ACCEL_YOUT_H 0x3D
    #define ACCEL_YOUT_L 0x3E
    #define ACCEL_ZOUT_H 0x3F
    #define ACCEL_ZOUT_L 0x40
    
    #define TEMP_OUT_H  0x41   // 存储的最近温度传感器的测量值 */
    #define TEMP_OUT_L  0x42
    
    #define GYRO_XOUT_H  0x43 // 存储最近的X轴、Y轴、Z轴陀螺仪感应器的测量值 */
    #define GYRO_XOUT_L  0x44 
    #define GYRO_YOUT_H  0x45
    #define GYRO_YOUT_L  0x46
    #define GYRO_ZOUT_H  0x47
    #define GYRO_ZOUT_L  0x48
    
    #define PWR_MGMT_1  0x6B // 电源管理,典型值:0x00(正常启用) */
    #define WHO_AM_I  0x75 //IIC地址寄存器(默认数值0x68,只读) */

    编程时用到的关于I2C协议规范:
    三轴加速度传感器MPU-6050

    展开全文
  • 偏航角俯仰角、滚动角

    千次阅读 2021-04-15 12:47:16
    将世界坐标系(GCS)转换为场景坐标系(SCS)时物体绕场景坐标系的三个坐标轴转过的角度就是三维姿态角偏航角俯仰角和滚动角。 1.偏航角 定义:实际航向与计划航向的夹角,向右偏为正。 2.俯仰角 定义:机体轴与...

    偏航角、俯仰角、滚动角

    在姿态估计中,常常会提到三个概念,就是偏航角、俯仰角和滚动角。姿态估计是物体在三维空间内方向的表征。通常描述物体姿态以大地作为参考系(标准坐标系)。将世界坐标系(GCS)转换为场景坐标系(SCS)时物体绕场景坐标系的三个坐标轴转过的角度就是三维姿态角偏航角、俯仰角和滚动角。
    在这里插入图片描述
    1.偏航角
    定义:实际航向与计划航向的夹角,向右偏为正。
    在这里插入图片描述

    2.俯仰角
    定义:机体轴与地平面之间的夹角。飞机抬头为正。
    在这里插入图片描述3.滚动角
    定义:物体绕前后轴线转动的角度。向右转动为正。
    在这里插入图片描述在这里插入图片描述

    展开全文
  • 详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角翻滚角偏航角 1.MPU6050是什么? MPU6050是一个6轴运动处理组件,包含了3轴加速度 和3轴陀螺仪。 MPU-6000为全球首例整合性6轴运动...

    详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角、翻滚角、偏航角


    1.MPU6050是什么?


    MPU6050是一个6轴运动处理组件,包含了3轴加速度 和3轴陀螺仪。
    MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术
    InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
    MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。
    MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。


    2.加速度传感器是干嘛用的?

    总而言这,加速度传感器,其实是力传感器。用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算 角度

    3.陀螺仪是干嘛用的?
    简而言之,陀螺仪就是 角速度检测仪。比如,一块板,以X轴为轴心,在一秒钟的时间转到了90度,那么它在X轴上的角速度就是 90度/秒    (DPS, 角速度单位,Degree Per Second的缩写°/S ,体现了转动的快慢)

    4.MPU6050分辨率是多少?

    3轴加速度 和3轴陀螺仪分别用了3个16位的ADC, 也就是说,加速度有3个16位ADC,其中每个轴使用了一个。也是说,每个轴输出的数据,是2^16 也就是 -32768 ---- +32768。陀螺仪也是一样。

    5. 单位换算
    上面说的-32768 --- +32768 ,那么这个数字到底代表了什么呢?比如陀螺仪 32768 到底是指角速度达到多少度/秒 ?
    这个其实是根据MPU6050设置的量程来决定的,量程不一样,32768代表的值就不一样。

    MPU6050的量程设置,在 MPU6050::initialize() (MPU6050.cpp库)初始化函数中进行了设置:
    setFullScaleGyroRange(MPU6050_GYRO_FS_250);
    setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
    分别设置为,250度/秒 , 2g

    按陀螺仪来说,MPU6050 有四个量程可选:
    ±250,±500,±1000,±2000 度/s
    比方说,设置了是 ±250 , 那么-32768    ---- +32768 就代表了 -250 ---- +250 。此时它的LSB(拉傻B,最低有效位) 是 131 LSB/(度/s)

    STM32自带I2C,但一般有两个I2C1(PB6,PB7)和I2C2(PB10,PB11),而且,I2C分为硬件、和模拟。
    软件i2c是程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序.
    硬件i2c程序员只要调用i2c的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出

    本模块采用的是IIC通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方便!
    原始数据有:AX、AY、AZ      GX、GY、GZ
    简单的算法之后可以得到 Roll,pitch,yaw

    参考MPU-6050数据手册

    引脚说明:

    三轴加速度传感器MPU-6050
    VDD 供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO 为1.8V± 5%

    内建振荡器在工作温度范围内仅有±1%频率变化。可选外部时钟输入32.768kHz 或19.2MHz

    找出几个重要的寄存器:

    1)Register 25 – Sample Rate Divider  (SMPRT_DIV)

    三轴加速度传感器MPU-6050
    1)SMPLRT_DIV 8位无符号值,通过该值将陀螺仪输出分频,得到采样频率 

     

      该寄存器指定陀螺仪输出率的分频用来产生MPU-60X0的采样率
      传感器寄存器的输出、FIFO输出、DMP采样运动检测都是基于该采样率。

      
    采样率的计算公式

                        采样率 = 陀螺仪的输出率 / (1 + SMPLRT_DIV)

      当数字低通滤波器没有使能的时候,陀螺仪的输出平路等于8KHZ,反之等于1KHZ。

    2)Register 26 – Configuration        (CONFIG)

    三轴加速度传感器MPU-6050

     1)EXT_SYNC_SET 3位无符号值,配置帧同步引脚的采样

     2)DLPF_CFG 3位无符号值,配置数字低通滤波器

     

     该寄存器为陀螺仪和加速度计配置外部同步(FSYNC)引脚采样和数字低通滤波器(DLPF
     通过配置EXT_SYNC_SET,可以对接到FSYNC引脚的一个外部信号进行采样 

     FSYNC引脚上的信号变化会被锁存,这样就能捕获到很短的频闪信号。
     采样结束后,锁存器将复位到当前FSYNC信号状态
     根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据

    三轴加速度传感器MPU-6050
    数字低通滤波器是由DLPF_CFG来配置,根据下表中DLPF_CFG的值对加速度传感器和陀螺仪滤波

    三轴加速度传感器MPU-6050

     

     

    3)Register 27 – Gyroscope Configuration   (GYRO_CONFIG)

    三轴加速度传感器MPU-6050
    1)XG_ST 设置此位,X轴陀螺仪进行自我测试
    2)YG_ST 设置此位,Y轴陀螺进行自我测试
    3)ZG_ST 设置此位,Z轴陀螺仪进行自我测试
    4)FS_SEL 2位无符号值。选择陀螺仪的量程

       这个寄存器是用来触发陀螺仪自检和配置陀螺仪满量程范围

       陀螺仪自检允许用户测试陀螺的机械和电气部分,通过设置该寄存器的 XG_ST、YG_ST和 ZG_ST bits可以激活陀螺仪对应轴的自检。每个轴的检测可以独立进行或同时进行。

        自检的响应 = 打开自检功能时的传感器输出 - 启用自检功能时传感器的输出

        在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。当自检的响应值在规定的范围内,就能够通过自检;反之,就不能通过自检。

        根据下表FS_SEL选择陀螺仪输出量程:

    三轴加速度传感器MPU-6050

     

    4)Register 28 – Accelerometer Configuration  (ACCEL_CONFIG)

    三轴加速度传感器MPU-6050
    1)XA_ST    设置为1时X轴加速度感应器进行自检。
    2)YA_ST    设置为1时Y轴加速度感应器进行自检。
    3)ZA_ST    设置为1时Z轴加速度感应器进行自检。
    4)AFS_SEL  2位无符号值。选择加速度计的量程

     

      具体细节和上面陀螺仪的相似。

      根据下表,AFS_SEL选择加速度传感器输出量程。

    三轴加速度传感器MPU-6050

    5)Registers 59 to 64 – Accelerometer Measurements (ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H, ACCEL_YOUT_L, ACCEL_ZOUT_H, and ACCEL_ZOUT_L)

    三轴加速度传感器MPU-6050

    1)ACCEL_XOUT  16位2’s补码值
       存储最近的X轴加速度感应器的测量值
    2)ACCEL_YOUT  16位2’s补码值
       存储最近的Y轴加速度感应器的测量值
    3)ACCEL_ZOUT  16位2’s补码值
       存储最近的Z轴加速度感应器的测量值

     

      这些寄存器存储加速感应器最近的测量值

       加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):一个内部寄存器,用户不可见。另一个用户可读的寄存器。内部寄存器中数据在采样的时候及时的到更新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去,避免了直接对感应测量值的突发访问。 

       在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范围,都对应一个加速度的灵敏度ACCEL_xOUT,如下面的表所示:

    三轴加速度传感器MPU-6050

    6)Registers 65 and 66 – Temperature Measurement   (TEMP_OUT_H and TEMP_OUT_L)

    三轴加速度传感器MPU-6050

    1)TEMP_OUT 16位有符号值
       存储最近温度传感器的测量值

     

    7)Registers 67 to 72 – Gyroscope Measurements    (GYRO_XOUT_H, GYRO_XOUT_L, GYRO_YOUT_H, GYRO_YOUT_L, GYRO_ZOUT_H, and GYRO_ZOUT_L)

     

    三轴加速度传感器MPU-6050
    这个和加速度感应器的寄存器相似

    对应的灵敏度:

    三轴加速度传感器MPU-6050

    8)Register 107 – Power Management 1   (PWR_MGMT_1)

    三轴加速度传感器MPU-6050

     

    该寄存器允许用户配置电源模式和时钟源它还提供了一个复位整个器件,和一个关闭温度传感器的

    1)DEVICE_RESET  置1后所有的寄存器复位,随后DEVICE_RESET自动置0.

    2)SLEEP         置1后进入睡眠模式  

    3)CYCLE         当CYCLE被设置为1,且SLEEP没有设置,MPU-60X0进入循环模式,为了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个采样数据。在LP_WAKE_CTRL(108)寄存器中,可以设置唤醒后的采样率和被唤醒的频率。

    4)TEMP_DIS      置1后关闭温度传感器

    5)CLKSEL        指定设备的时钟源   

     

    时钟源的选择:

    三轴加速度传感器MPU-6050
         

    9)Register 117 – Who Am I         (WHO_AM_I)

    三轴加速度传感器MPU-6050

     WHO_AM_I中的内容是MPU-60X0的6位I2C地址

    上电复位的第6位到第1位值为:110100

    为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址是 b1101000 ,当AD0引脚逻辑高电平时,设备的地址是 b1101001 

     

     

    (2013.01.24)

     淘宝买的货终于到了,学习用所以没买好的,这个模块只要18块钱。

    三轴加速度传感器MPU-6050

    MPU-6000可以使用SPI和I2C接口,而MPU-6050只能使用I2C,其中I2C的地址由AD0引脚决定;寄存器共117个,挺多的,下面的是精简常用的,根据具体的要求,适当的添加。

     

    #define SMPLRT_DIV  0x19    //采样率分频,典型值:0x07(125Hz) */
    #define CONFIG   0x1A       // 低通滤波频率,典型值:0x06(5Hz) */
    #define GYRO_CONFIG  0x1B   // 陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s) */
    #define ACCEL_CONFIG 0x1C  // 加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz) */

     

    #define ACCEL_XOUT_H 0x3B  // 存储最近的X轴、Y轴、Z轴加速度感应器的测量值 */
    #define ACCEL_XOUT_L 0x3C
    #define ACCEL_YOUT_H 0x3D
    #define ACCEL_YOUT_L 0x3E
    #define ACCEL_ZOUT_H 0x3F
    #define ACCEL_ZOUT_L 0x40

     

    #define TEMP_OUT_H  0x41   // 存储的最近温度传感器的测量值 */
    #define TEMP_OUT_L  0x42

     

    #define GYRO_XOUT_H  0x43 // 存储最近的X轴、Y轴、Z轴陀螺仪感应器的测量值 */
    #define GYRO_XOUT_L  0x44 
    #define GYRO_YOUT_H  0x45
    #define GYRO_YOUT_L  0x46
    #define GYRO_ZOUT_H  0x47
    #define GYRO_ZOUT_L  0x48

     

    #define PWR_MGMT_1  0x6B // 电源管理,典型值:0x00(正常启用) */
    #define WHO_AM_I  0x75 //IIC地址寄存器(默认数值0x68,只读) */

     

    编程时用到的关于I2C协议规范:

    三轴加速度传感器MPU-6050

     


    展开全文
  • 偏航角,滚动角,俯仰角

    千次阅读 2020-01-06 15:03:09
         ...1.偏航角(yaw)            简单的定义:就是实际航向与计划航向之间的夹角 ,如图所示             深刻的定...

         

     1.偏航角(yaw)

               简单的定义:就是实际航向与计划航向之间的夹角 ,如图所示

                深刻的定义:机轴(沿机头方向)水平投影与地轴的夹角,如图所示

                                        或者:如上图所示,机体坐标系xb轴在水平面上投影与地面坐标系xg轴(在水平面上,指向目标为正)之间的夹角,由xg轴逆时针转至机体xb的投影线时,偏航角为正,即机头右偏航为正,反之为负。

     根据以上定义的机体坐标系,偏航角是按照z轴旋转的。即偏航就是绕着重力方向为轴旋转

     2.俯仰角(pitch)

               简单的定义:机体轴(沿机头方向)与地平面(水平面 )之间的夹角,飞机抬头为正;

               深刻的定义:机体坐标系X轴与水平面的夹角。当X轴的正半轴位于过坐标原点的水平面之上(抬头)时,俯仰角为正,否则为负。

     根据以上定义的机体坐标系,俯仰角是按照y轴旋转的。也就是以翅膀所在的直线(机翼)为轴发生旋转。

    3.滚动角(roll)

               简单的定义:物体绕前后轴线转动的角度为横滚角;

               深刻的定义:机体坐标系zb轴与通过机体xb轴的铅垂面间的夹角,机体向右滚为正,反之为负。如图所画的,∠1=∠2=滚动角,也验证这个深刻的定义(我画的垂直的红色就是在包含机轴的垂直平面内)

    根据以上定义的机体坐标系,滚动角是按照x轴旋转的。也就是以机轴(绕着机身所在的那个轴)为轴发生旋转。

                        

     

                 俯仰角(pitch),滚动角(roll),偏航角(yaw)的旋转轴关系:

                

     

                     俯仰角(pitch),滚动角(roll),偏航角(yaw)与摄影测量的fai,omiga,Kappa角的关系:

           1.俯仰角(pitch)为fai角

           2.滚动角(roll)为omiga角

           3.偏航角(yaw)为Kappa角

    推荐博客:

    1.[图文]太原理工大学摄影测量学-第四章影像解析基础3-4 - 百度文库  https://wenku.baidu.com/view/98344e2d0129bd64783e0912a216147916117e24.html

    2,Unity5实战读书笔记 —— 航向偏角(pitch)、偏航(yaw)和侧滚(roll) - vv_017的博客 - CSDN博客  https://blog.csdn.net/vv_017/article/details/80208068

    3,无人机着陆信息预测与姿态控制 - 豆丁网  https://www.docin.com/p-982978977-f3.html

    4.偏航角_百度百科  https://baike.baidu.com/item/%E5%81%8F%E8%88%AA%E8%A7%92/4783835?fr=aladdin

    5.欧拉角pitch、yaw,roll的理解 - Dream World - CSDN博客  https://blog.csdn.net/sinat_27456831/article/details/50042915

    6.Re:请问:俯仰角,横滚角,偏航角_百度知道  https://zhidao.baidu.com/question/366050156485394932.html

     

    展开全文
  • 无人机的偏航角,滚动角,俯仰角解释

    万次阅读 多人点赞 2019-07-01 16:31:05
    1.偏航角(yaw) 简单的定义:就是实际航向与计划航向之间的夹角 ,如图所示 深刻的定义:机轴(沿机头方向)水平投影与地轴的夹角,如图所示 或者:如上图所示,机体坐标系xb轴在水平面上投影与地面坐标系xg...
  • yaw是偏航角,是‘摇头’,(在固定翼飞机中则由方向舵舵机控制) roll是旋转角,是“翻滚”,(在固定翼飞机中则由副翼舵机控制) 欧拉角是表达旋转的最简单的一种方式,形式上它是一个三维向量,其值分别代表物体...
  • 欧拉中的俯仰、横滚、偏航角

    万次阅读 多人点赞 2016-11-01 14:33:37
    yaw是偏航角,是‘摇头’ roll是旋转角,是“翻滚” 欧拉角是表达旋转的最简单的一种方式,形式上它是一个三维向量,其值分别代表物体绕坐标系三个轴(x,y,z轴)的旋转角度。这样的话,很容易想到,同样的一个...
  • 对来生成一个四元数的方法,是通过每个轴――对生成一个四元数,然后叉乘三个四元数得到一个四元数。   makeRotate() 还实现了获取将一个向量旋转到另一个向量的四元数,其关键是获取旋转(向量点乘)和...
  • 横滚角,俯仰角,航向角

    万次阅读 多人点赞 2013-08-18 22:18:04
    一般定义载体的右、前、上三个方向构成右手系 绕向前的轴旋转就是横滚角; 绕向右的轴旋转就是俯仰角; 绕向上的轴旋转就是航向角。
  • } } pitch是围绕X轴旋转,也叫做俯仰角,heading(yaw)是围绕Y轴旋转,也叫偏航角,(平行于z轴,就是水平旋转的,其他同理),roll是围绕Z轴旋转,也叫翻滚角偏航角解析如图: 原理:在添加完模型之后,写一...
  • 1. LIS3DH管脚定义 PS:LIS3DH和mpu6050的X和Y方向是相反的, mpu6050如下图所示: 2.LIS3DH加速度计介绍 ...如下图所示,偏航角是指机头在水平面上的投影与地轴之间的夹角,以机头右偏为正.范围为[...
  • mpu6050俯仰角和横滚角解算

    万次阅读 2015-03-13 13:29:15
    keil中的工程中的所有文件 rp.c #include #include <math.h> //Keil library #include <stdio.h> //Keil library #include #include "i2c.h" #include "mpu6050.h" //**************************
  • 载体坐标系与载体坐标系的关系是三个Euler角:yaw,pitch,...yaw是围绕Y轴旋转,也叫偏航角。即机头右偏航为正,反之为负。如下图所示: roll是围绕Z轴旋转,也叫翻滚角。机体向右滚为正,反之为负。如下图所...
  • 俯仰 (pitch) - 偏摆 (yaw) - 翻滚 (roll)

    万次阅读 多人点赞 2019-04-10 21:21:20
    俯仰 (pitch) - 偏摆 (yaw) - 翻滚 (roll) 1. 机体坐标系 机体坐标系是指固定在飞行器或者飞机上的遵循右手法则的三维正交直角坐标系,其原点位于飞行器的重心,OX 轴位于飞行器参考平面内平行于机身轴线并指向...
  • 视觉SLAM笔记(11) 欧拉角

    万次阅读 2019-09-28 10:00:22
    旋转描述、欧拉角(偏航角 yaw - 俯仰角 pitch - 滚转角 roll)、万向锁问题、奇异性问题
  • 姿态(Euler):yaw pitch roll

    千次阅读 2016-12-03 21:10:44
    转载:姿态角(Euler角):yaw pitch roll pitch是围绕X轴旋转,也叫做俯仰角;yaw是围绕Y轴旋转,也叫偏航角;roll是围绕Z轴旋转,也叫翻滚角;http://jingyan.baidu.com/article/0bc808fc2c0e851bd485b9ce.html
  • 绕三个轴的旋转值 pitch,yaw,roll 来自航空界的叫法,翻译为俯仰角偏航角翻滚角,非常形象。 它们不一定如上所述,但一定分别代表绕x,y,z的旋转值。 Ref: 四旋翼飞行器13——欧拉中的俯仰、横滚、偏航角 3. ...
  • 行偏角-倾斜-滚动

    千次阅读 2019-03-26 16:34:36
    绕y轴(垂直于轨道面)旋转的姿态角,称俯仰角; 绕z轴(垂直于0-xy面)旋转的姿态角,称偏角。 参考:https://blog.csdn.net/hxlove123456/article/details/83033387 更加详细:...
  • 由xg轴逆时针转至机体xb的投影线时,偏航角为正,即机头右偏航为正, 反之为负。 yaw是围绕Y轴旋转,也叫偏航角。 rool: 机体坐标系zb轴与通过机体xb轴的铅垂面间的夹角,机体向右滚为正, 反之为负。 roll...
  • 我们定义该物体的欧拉角[r p y]表示:绕x轴的为r (roll)即翻滚角,绕y轴的为p (pitch)即俯仰角,绕y轴的为y (yaw)即偏航角。那么物体在世界坐标系中的角速度是不是: w = [dr dp dy] 推导 我们定义物体欧拉角的...
  • 三维坐标系旋转——旋转矩阵到旋转之间的换算

    万次阅读 多人点赞 2019-04-23 20:38:18
    旋转矩阵到旋转之间的换算 solvepnp 单目三维位姿估计--------利用二维码求解相机世界坐标 solvepnp 单目三维位姿估计--------理论 在做单目三维位姿估计(即估计目标物相对相机的姿态或相机相对目标物的姿态...
  • 姿态解算之显式互补滤波法(MahonyAHRS) ...欧拉角的旋转顺序为: Z-X-Y,(即312的顺序) 绕Z轴转动是偏航角,绕x轴转动是俯仰角,绕y轴转动是横滚角。 由导航系到机体系的旋转矩阵为: #2 互补滤波的原理 两...
  • 三个角,偏航角(Yaw),横滚角(Roll),俯仰角(Pitch)。 pitch、yaw、roll三个角如下图所示: (1)翻滚角roll是围绕x轴旋转。 (2)俯仰角pitch是围绕y轴的旋转,可视为飞机的上下俯仰。 (3)偏航角yaw是...
  • 通过IMU模块可以得到三个角度信息,分别是Roll(翻滚角),Pitch(俯仰角)和Yaw(偏航角),翻滚角俯仰角偏航角的定义如下: //以飞机机头所对应方向为y轴正方向 翻滚角:飞机机体侧翻的角度(绕y轴旋转) 俯仰角:...
  • 许多小伙伴会忘记(俯仰角偏航角翻滚角)混淆或记不清。做三维GIS开发的、导航的,经常需要用到 Cesium中 heading pitch roll 中文定义 航空定义 CesiumJS中 对应笛卡尔旋转轴 俯仰角 pitch pitch X轴 ...
  • 无人机的PID参数调试

    千次阅读 2020-05-26 19:44:33
    似乎都是先调内环,也就是先调俯仰角翻滚角偏航角先不用调,因为俯仰角翻滚角调好了飞机就可以稳起来飞了,偏航角调不好无非是会自己转,但是飞机摔不了。 《四轴飞行器 DIY 基于STM32微控制器》 ...
  • 什么是欧拉角/姿态

    万次阅读 多人点赞 2019-05-29 15:25:04
    Yaw(偏航):欧拉角向量的y轴 Pitch(俯仰):欧拉角向量的x轴 Roll(翻滚): 欧拉角向量的z轴 想象一下飞机,yaw指水平方向的机头指向,它绕y轴旋转。Pitch指与水平方向的夹角,绕x轴旋转。Roll指飞机的翻滚,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 632
精华内容 252
关键字:

翻滚角俯仰角偏航角