LIS3DH三轴加速度计-实现欧拉角(俯仰角,横滚角)
1. LIS3DH管脚定义
PS:LIS3DH和mpu6050的X和Y方向是相反的, mpu6050如下图所示:
2.LIS3DH加速度计介绍
由于LIS3DH只可以得到XYZ加速度,无法获取角速度,所以LIS3DH是无法测出偏航角(yaw).
3. LIS3DH之转换欧拉角介绍
3.1偏航角(yaw)
如下图所示,偏航角是指机头在水平面上的投影与地轴之间的夹角,以机头右偏为正.范围为[-180,180]
PS:由于LIS3DH无法测出,跳过.
3.2俯仰角(pitch)
如下图所示, 俯仰角是指机头与水平面的夹角,当飞机平行时则为0,抬头时则为正,范围为[-180,180]
以45°为例,来解析LIS3DH
如下图所示:
转换为角度图为:
所以转换为角度为:
pitch = (short)(atan2((float)(-y),z) * / 3.14159); //转换为度数
3.3 横滚角(roll)
如下图所示, 横滚角指飞机两翼所在的平面与平行线之间的夹角,机体向右滚为正,范围为[-180,180].
横滚角和俯仰角类似,不过变成了X与Z轴之间比例了.
所以转换为角度为:
pitch = (short)(atan2((float)(-y),z) * / 3.14159); //转换为度数
4.初始化代码
unsigned char Lis3dh_init(void)
{
u8 val; unsigned char data; i2cInit(); data = 0x47;
if(i2cwrite(0x18, 0x20, , &data))return ; //50HZ reg1 data = ;
if(i2cwrite(0x18, 0x21, , &data))return ; // reg2 data = 0x00;
if(i2cwrite(0x18, 0x22, , &data))return ; // reg3 data = 0X00;
if(i2cwrite(0x18, 0x23, , &data))return ; // +-2g reg4 data = 0x00;
if(i2cwrite(0x18, 0x24, , &data))return ; // reg5 return ;
}
设置为+2g量程,并且传感器刷新率为50hz,也就是说我们延时20ms左右去读一次传感器即可.
5.运行代码
void CalcXYZ(short x,short y,short z)
{
short pitch ,roll;
u16 maxG=; pitch = (short)(atan2((float)(-y),z) * / 3.14159); //转换为度数
roll = (short)(atan2((float)(x),z) * / 3.14159); //转换为度数 printf("x%03dmg y%03dmg z%03dmg pitch:%3d roll:%3d \r\n",x,y,z,pitch,roll);
} int main()
{
u8 i;
u8 buf[];
short X,Y,Z; printf("Gsensor_init%d\r\n",Lis3dh_init()); while()
{
i2cread(0x18,0x27, ,&i); //读取0x27,判断是否有数据
if((i&0x08))
{
for(i=;i<;i++)
i2cread(0x18,0X28+i, ,&buf[i]); X = buf[]*+ buf[]; Y = buf[]* + buf[]; Z = buf[]* + buf[]; X=(short)((float)(X)*/*); Y=(short)((float)(Y)*/*); Z=(short)((float)(Z)*/*); CalcXYZ(X,Y,Z);
}
} }
6.打印截图
6.1当俯仰角pitch接近90°时
如上图可以看到,y是负的1000mg,这是因为它的y方向向下,所以计算俯仰角时,我们用的(0-y).
6.1当俯仰角pitch为0,翻滚角为45°时
如上图可以看到X值为707左右,由于物体自重力为1000,所以707/1000,刚好对应sin45°(0.707)
LIS3DH三轴加速度计-实现欧拉角(俯仰角,横滚角)的更多相关文章
- Arduino I2C + 三轴加速度计LIS3DH
LIS3DH是ST公司生产的MEMS三轴加速度计芯片,实现运动传感的功能.主要特性有: 宽工作电压范围:1.71 ~ 3.6V 功耗:低功耗模式2μA:正常工作模式.ODR = 50Hz时功耗11μA ...
- Arduino I2C + 三轴加速度计ADXL345
ADXL345是ADI公司生产的三轴数字加速度计芯片,与ST的LIS3DH功能接近.主要特性有: 工作电压:2.0 ~ 3.6V 功耗:待机功耗0.1μA:工作时与数据输出频率(ODR)有关,如ODR ...
- [每日电路图] 8、三轴加速度计LIS3DH电路图及功耗等指标
看TI的官网资料:http://www.st.com/web/en/catalog/sense_power/FM89/SC444/PF250725 一.初次接触关注的信息: 1.1.概述中的关键信息 ...
- [算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本
一.有啥用 这里用的是LIS3DH三轴加速计,输出为X.Y.Z轴的加速度,通过串口连接电脑,电脑里运行matlab脚本通过串口实时获取数据并做可视化显示. 这里虽然是针对LIS3DH的,其实稍作修改即 ...
- 【雕爷学编程】Arduino动手做(48)---三轴ADXL345模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- STC8H开发(七): I2C驱动MPU6050三轴加速度+三轴角速度检测模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- 三轴陀螺仪与加速度计如何辅助 iPhone 定位的
在所有之前解释一下陀螺仪 根据Wiki的定义:「陀螺仪是用于测量角度或维持方向的设备,基于角动量守恒原理.」 这句话的要点是测量角度或维持方向,这是 iPhone 4 为何搭载此类设备的原因.机械陀螺 ...
- STM32—驱动六轴MPU6050输出欧拉角
文章目录 一.MPU6050介绍 1.MPU6050与陀螺仪.加速度计的关系: 2.整体概括 3.引脚说明 4.基本配置及相关寄存器 电源管理寄存器1 陀螺仪配置寄存器 加速度计配置寄存器 FIFO使 ...
- STC8H开发(六): SPI驱动ADXL345三轴加速度检测模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
随机推荐
- 基于Orangpi Zero和Linux ALSA实现WIFI无线音箱(一)
作品已经完成,先上源码: https://files.cnblogs.com/files/qzrzq1/WIFISpeaker.zip 全文包含三篇,这是第一篇,作为前言和概述. 第二篇:基于Oran ...
- [日志分析] Access Log 日志分析
0x00.前言: 如何知道自己所在的公司或单位是否被入侵了?是没人来“黑”,还是因自身感知能力不足,暂时还没发现?入侵检测是每个安全运维人员都要面临的严峻挑战.安全无小事,一旦入侵成功,后果不堪设想. ...
- Hadoop大数据部署
Hadoop大数据部署 一. 系统环境配置: 1. 关闭防火墙,selinux 关闭防火墙: systemctl stop firewalld systemctl disable firewalld ...
- Kubernetes 在生产环境中常用架构
Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...
- B哥竟然也被裁了,聊一聊我的看法
B哥的故事 B哥是在17年底朋友聚会上认识的一个哥们,因为都是程序员,也聊得来.就加了微信.今年是他北漂的第三个年头了. B哥是从小南方长大的一个男孩,高中学习还凑凑活活,勉强过了二本,上了大学没人管 ...
- [翻译 EF Core in Action 1.6]你的第一个EF Core应用程序
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- 你必须知道的 SmartSql !
介绍 SmartSql = MyBatis + Cache(Memory | Redis) + R/W Splitting +Dynamic Repository + Diagnostics .... ...
- 什么是移动BI
移动商务智能(移动商务智能或移动智能)定义为一个包含技术和组织元素的系统,可向用户提供历史和/或实时信息,以便在智能手机和平板电脑等移动设备上进行分析笔记本电脑),以实现有效的决策和管理支持,以提高公 ...
- ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程
[回顾]前4篇交代了JsAPI的背景.资源如何获取,简介了数据与视图分离的概念与实现,剖析了页面的大骨架. 这篇开始,讲Map类. 转载注明出处,博客园/CSDN/B站/知乎:秋意正寒 目录:http ...
- 安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)
1.为什么要集成腾讯X5内核? X5内核相对于系统webview,具有下述明显优势: 1) 速度快:相比系统webview的网页打开速度有30+%的提升: 2) 省流量:使用云端优化技术使流量节省20 ...