由于公司要求,了解了一下IOS上传感器数据的处理方式,在此作为记录。


Core Motion

Core Motion是IOS提供的一个封装好的框架,核心运动框架,可以很方便地获取基本九轴传感器的数据(加速度计,陀螺仪和磁力计),还提供了高通滤波的算法,直接获取剥离了重力加速度的加速度分量。


Core Motion的数据结构

  • CMAccelerometerData
    实际包含一个结构体acceleration(类型:CMAcceleration),提供三轴加速度值,如下所示:
typedef struct {
double x;
double y;
double z;
} CMAcceleration;
// A structure containing 3-axis acceleration data.
  • CMGyroData
    实际包含一个结构体rotationRate(类型:CMRotationRate),提供三轴角速度值,如下所示:
typedef struct {
double x;
double y;
double z;
} CMRotationRate;
// A structure containing 3-axis rotation rate data. 
  • CMMagnetometerData
    实际包含一个结构体magneticField(类型:CMMagneticField),提供三轴磁力值,如下所示:
typedef struct {double x;double y;double z;
} CMMagneticField;
// A structure containing 3-axis magnetometer data.
  • CMDeviceMotion
    包含四种数据

    • attitude(类型:CMAttitude) 姿态

      // Returns the attitude of the device.
      其中包含欧拉角度(roll,pitch,yaw),四元组 (CMQuaternion),还有一个旋转矩阵(CMRotationMatrix)
      multiplyByInverseOfAttitude方法

    • rotationRate(类型:CMRotationRate) 角速度

      // Returns the rotation rate of the device for devices with a gyro.
      和上述的陀螺仪角速度一致

    • gravity(类型:CMAcceleration) 重力加速度

      // Returns the gravity vector expressed in the device’s reference
      frame. Note that the total acceleration of the device is equal to
      gravity plus userAcceleration.

    • userAcceleration(类型:CMAcceleration) 用户的加速度,即高通滤波后的加速度

      // Returns the acceleration that the user is giving to the device.
      Note that the total acceleration of the device is equal to gravity
      plus userAcceleration.

    • magneticField (类型:CMCalibratedMagneticField) 磁场数值

      //Returns the magnetic field vector with respect to the device.

还有一些磁场校准的精度数据CMMagneticFieldCalibrationAccuracy等等


数据获取方式

push方式

1.创建运动管理对象

CMMotionManager *mgr = [[CMMotionManageralloc]init];

2.判断加速器是否可用

if(mgr.isAccelerometerAvailable){
}

3.设置采样间隔

mgr.accelerometerUpdateInterval= 1.0/60.0;// 1秒钟采样60次

4.开始采样

-(void)startAccelerometerUpdatesToQueue:(NSOperationQueue*)queue withHandler:(CMAccelerometerHandler)handler;

pull方式

1.创建运动管理对象

CMMotionManager *mgr = [[CMMotionManageralloc]init];

2.判断加速器是否可用

if(mgr.isAccelerometerAvailable){
}

3.开始采样

-(void)startAccelerometerUpdates;

4.在需要时获取数据

CMAcceleration acc = mgr.accelerometerData.acceleration;

Device Motion信息的提供

CMDeviceMotion中的所有数据都是可读数据,用户可以直接从中获取需求的数据,比如说重力加速度等等,而不只是传感器的原始数据,IOS提供的库已经对原始数据进行了加工处理


以上信息总结至多个博文
IOS传感器的基本使用
Core Motion框架使用方法
CoreMotion可以测到的各种值

IOS 传感器Core Motion相关简述相关推荐

  1. iOS传感器数据采集

    传感器信息采集项目到了一定的节点,总结一下iOS中传感器信息采集的相关知识. 代码下载:https://github.com/haojinming/SensorInIOS Accelerometer ...

  2. iOS传感器:实现一个随屏幕旋转的图片

    作者 非典型技术宅 关注 2017.05.24 17:22* 字数 1568 阅读 351评论 7喜欢 14 在写上一个动画系列的时候学到了非常多的知识,也认识了很多人.例如受邀进入了某个神秘的动效组 ...

  3. 陀螺仪重力感应(the gyroscope gravity induction)and (core Motion Framework)

    在iOS4之前,加速度计由UIAccelerometer类来负责采集工作,而电子罗盘则由Core Location接管.而iPhone4的推出,由于加速度计的升级(有消息说使用的是这款芯片)和陀螺仪的 ...

  4. SwiftUI Core Motion 基础教程

    Core Motion 过程加速度计,陀螺仪,计步器和与环境有关的事件. 使用教程 Core Motion报告来自iOS设备的内置硬件的运动和环境相关数据,包括来自加速度计和陀螺仪以及计步器,磁力计和 ...

  5. iOS传感器开发——为APP添加手机密码、指纹进行安全验证

    iOS传感器开发--为APP添加手机密码.指纹进行安全验证 一.引言 iPhone5s之后,iPhone硬件上已支持进行指纹识别的功能,相应的,一些新的api也可以应用于APP中,进行用户安全的验证. ...

  6. iOS硬编解码相关知识

    1.软编与硬编概念 1.1 软编码:使用CPU进行编码. 实现直接.简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点. 1.2 硬编码:不使用CPU进行编码 ...

  7. 转:基于iOS上MDM技术相关资料整理及汇总

    转自:http://www.mbaike.net/mdm/6.html 一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企 ...

  8. iOS传感器集锦、飞机大战、开发调试工具、强制更新、Swift仿QQ空间头部等源码

    iOS精选源码 飞机大作战 MUPhotoPreview -简单易用的图片浏览器 image LLDebugTool是一款针对开发者和测试者的调试工具,它可以帮... image 多个UIScroll ...

  9. ios开发学习笔记--Core Motion

    iOS开发学习笔记之CoreMotion-运动传感器 官网文档:CoreMotion Framework Reference 一.     简介 现在的苹果手机都基本有运动传感器,能够过获取到设备的加 ...

最新文章

  1. redis php 书,php中redis的使用
  2. 3、ShardingSphere 之 Sharding-JDBC 实现水平分库
  3. 2020全国大学生数学建模竞赛【论文格式、时间节点及作品提交要求、竞赛题目下载、评分要点】【微信公众号:校苑数模】
  4. 设计模式学习笔记(三)之静(动)态代理模式、适配器模式
  5. 英特尔显示器音频_英特尔也玩马甲?有关USB TypeC的冷知识你了解多少
  6. MySQL乱码问题如何排查
  7. 树(2)-----leetcode(层、深度、节点)
  8. 小程序的好处是什么?
  9. python2中文乱码
  10. 酱茄教你怎么用URL Scheme H5链接打开微信小程序
  11. Owin Katana 的底层源码分析
  12. 详细讲解电脑怎么录屏 电脑录制视频的方法
  13. linkedin 架构_投票:您如何使用LinkedIn?
  14. Oracle:错误码ORA-28040 的坑
  15. PHP正则表达式教程
  16. firefox linux 中文字体,Ubuntu下的Firefox字体配置方案
  17. ImageJ Nikon_尼康“小世界”竞赛的获胜者揭示了微小的彩色世界|尼康|小世界|nikon|显微镜...
  18. TZOJ 3315 买火车票(线段树区间最小值)
  19. 攻防世界MISC 功夫再高也怕菜刀
  20. Nancy朋友的时间线

热门文章

  1. Java--SimHash实现文本标题内容相似度计算
  2. ubuntu安装PGI以及问题解决
  3. Grub2 制作多系统U盘启动
  4. ACTF出题(dropper+master_of_dns)
  5. EBS发票AP常用表
  6. 【致远FAQ】V5V8.0sp1_致信客户端支持国产化PC吗?
  7. Margin 在WPF中的用法
  8. 【零声教育】C/C++Linux服务器开发/高级架构师 课程
  9. CC1310低功耗高速率Sub1G微控制器芯片CC1310F128RSMR
  10. ygbook和ptcms哪个好_杰奇CMS 和 PTCMS 有什么区别? 为什么很多人选择杰奇?