8位2g加速度数据为例

  • 计算静态时X,Y,Z哪个轴朝下
typedef struct
{int8_t x;int8_t y;int8_t z;
}accel_xyz_data_f;/*** @brieaf 计算最后静态的轴指向,0-X,1-Y,2-Z
*/
static uint8_t calc_last_axis(accel_xyz_data_f *accel_xyz_data)
{uint8_t buf[3];buf[0] = accel_xyz_data->x >= 0 ? accel_xyz_data->x : -accel_xyz_data->x;buf[1] = accel_xyz_data->y >= 0 ? accel_xyz_data->y : -accel_xyz_data->y;buf[2] = accel_xyz_data->z >= 0 ? accel_xyz_data->z : -accel_xyz_data->z;uint8_t axis = 0;uint8_t max = buf[0];for(uint8_t i=1; i<3; i++){                       if(buf[i] > max)axis = i; max = buf[i];                            }return axis;}
  • 测试数据
  accel_xyz_data_f xyz;xyz.x = 0;xyz.y = 0;xyz.z = 64; uint8_t mode = calc_last_axis(&xyz);
  • 结果为z轴
  • 计算pitch和roll角度,并转换成360度格式
#include "math.h"
/*** @brieaf 计算pitch,roll角度
*/
static void calc_pitch_roll_angle(int16_t *pitch,int16_t *roll,accel_xyz_data_f *xyz,uint8_t mode)
{int16_t temp_pitch,temp_roll;switch(mode){case 0:    // 基于X轴temp_pitch = (int16_t)(atan2((float)(xyz->z),xyz->x) * 180 / 3.14159f);     temp_roll  = (int16_t)(atan2((float)(xyz->y),xyz->x) * 180 / 3.14159f);        //转换为度数break;case 1:   // 基于Y轴temp_pitch = (int16_t)(atan2((float)(xyz->z),xyz->y) * 180 / 3.14159f);  temp_roll  = (int16_t)(atan2((float)(xyz->x),xyz->y) * 180 / 3.14159f);        //转换为度数break;case 2:  // 基于Z轴temp_pitch = (int16_t)(atan2((float)(xyz->y),xyz->z) * 180 / 3.14159f);   temp_roll  = (int16_t)(atan2((float)(xyz->x),xyz->z) * 180 / 3.14159f);        //转换为度数break;}if(temp_pitch < 0)temp_pitch += 360;if(temp_roll < 0)temp_roll += 360;*pitch = temp_pitch; *roll = temp_roll;
}
  • 测试数据
  accel_xyz_data_f xyz;xyz.x = 6;xyz.y = -6;xyz.z = 62;int16_t pitch,roll;calc_pitch_roll_angle(&pitch,&roll,&xyz,2);
  • 结果pitch为355度,roll为5度

3D加速度传感器计算角度相关推荐

  1. ST公司 Lis2dh12 三轴加速度传感器,计算加速度值转成角度值

    目录 概述 项目上使用了一款Lis2dh12三轴加速度传感器.开发前要准备的工作. 1.原理图: 1.1.创建lis2dh12.c文件 1.2.在此重点说明,如果想调传感器的中断灵敏度,注意:关注1. ...

  2. 加速度传感器芯片MMA8451Q初步——倾角计算与校准值

    MMA845xQ系列是飞思卡公司出品的一系列加速度传感器芯片,通过测量XYZ三轴的加速度可以检测倾角,自由落体,翻转,脉冲,振动等一系列运动状态. 我用的是14位精度的MMA8451Q.单片机型号为S ...

  3. 平方根计算在加速度传感器中的应用

    帮助实际使用场景中,用户手持传感器,不受正反面.侧面影响,准确识别动作. 平方根运算,可以解决加速度传感器,判断X.Y.Z任意方向的运动幅度. 下面展示原始数据及示平方根后的数据在曲线图中的展示. x ...

  4. Android通过手机的传感器计算手机的移动加速度

    第一次写博客,非常的担心自己的表达能力不足造成大家的不便,如有不便请谅解,我会继续努力.写出更高质量更好的博客分享. 本人的公司是做无人机的,之前采用手机获取经纬度的数据给飞控进行跟随功能的开发,但是 ...

  5. 三轴加速度传感器和六轴惯性传感器_一文读懂汽车MEMS惯性传感器的七大应用(上)...

    本文中,我们将研究汽车MEMS惯性传感器的应用,描述它们的工作原理,并讨论如何利用MEMS惯性传感器来实现更大的应用改进. 当前,微机电系统(MEMS)传感器已被大多数汽车工程师视为尖端技术或边缘技术 ...

  6. 溢出检测单符号位法_设计经验:如何用三轴加速度传感器检测倾斜角?

    本文介绍了三轴加速度传感器的特性,并通过一个典型的应用--检测倾斜角--对单轴.双轴和三轴加速度传感器进行了比较,并给出了选型建议. 在前两篇文章中,我们介绍了单/双轴加速度传感器在来检测倾斜角上的应 ...

  7. linux加速度传感器校准,加速度传感器校准方法及装置与流程

    本申请涉及传感器校准领域,具体而言,涉及一种加速度传感器校准方法及装置. 背景技术: 在移动终端中,导航软件的使用频率越来越高,比如说百度地图.高德导航等.目前,移动终端通常包含加速度传感器,在导航过 ...

  8. 关于加速度传感器方面内容汇总

    收藏的解析很好的文章 MPU6050原理详解及实例应用:https://blog.csdn.net/guosir_/article/details/78325208 数据手册 ADI ADXL345: ...

  9. 传感器之方向:使用加速度传感器和地磁传感器共同实现

    布局很简单: activity: /*** 方向加速度:使用加速度传感器和地磁传感器共同实现.* 此模拟简易指南针功能.*/public class ActOrientationSensor exte ...

最新文章

  1. 某公司Java面试题
  2. CCF 2015年题目题解 - Python
  3. 你不应该忽略的五个机器学习项目一览
  4. Windows服务二:测试新建的服务、调试Windows服务
  5. 利用最新的开源软件构建日志管理系统
  6. MyBatis 简介
  7. 【aspnetcore】模拟中间件处理请求的管道
  8. Python语法学习第三天--元组
  9. C语言学习心得 Caiwentao
  10. Google Earth Studio黑科技,教你一键制作震撼的地球俯冲航拍等视频素材
  11. 移动硬盘计算机限制打不开,移动硬盘突然打不开并且要求格式化怎么解决
  12. 阿里云香港服务器配置选择帮助文档(超详细)
  13. Druid 统计监控页面无法打开
  14. 书单 | 做数字化转型,离不开这10本书!
  15. python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字
  16. 35、ubuntu20.04搭建瑞芯微的npu仿真环境和测试rv1126的Debain系统下的yolov5+npu检测功能以及RKNN推理部署以及RTSP视频流解码
  17. mysql-5.7.27-winx64 安装教程
  18. 昌平区有什么可以玩的地
  19. 编译原理—中间代码生成、布尔表达式翻译、短路计算、控制流语句翻译、条件语句、循环语句
  20. 如何用纯前端去写购物车_索尼商城购物车

热门文章

  1. java基础加强视频zxx(1-32)
  2. Sketch 53.2 最新版抢先下!Sketch 53.2最新功能介绍
  3. DELL2950 服务器阵列配置
  4. AT24C02的使用说明和完整代码-51单片机
  5. 计算机图形学-二维图形变换 笔记总结与代码实战
  6. 在zip文件中添加目录
  7. Itunes 恢复时,卡在正在访问iTunes Store 停止不前的处理方法
  8. 采用ip限制访问次数
  9. Android模拟器快捷键 Eclipse 快捷键
  10. 304.软件项目管理--范围计划