陀螺仪简单使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了陀螺仪简单使用相关的知识,希望对你有一定的参考价值。


/
// ViewController.m
// 陀螺仪使用
//
// Created by ** on 16/7/28.
// Copyright © 2016年 **. All rights reserved.
//

#import "ViewController.h"
#import <CoreMotion/CoreMotion.h>


/*
提前:使用陀螺仪需要导入CoreMotion框架
*/
@interface ViewController ()

/** 动作管理者 */
@property (nonatomic,strong)CMMotionManager *motionManager;
/** 队列 */
@property (nonatomic,strong)NSOperationQueue *quene;
@end

@implementation ViewController

- (void)viewDidLoad
[super viewDidLoad];

// 初始化
self.motionManager = [[CMMotionManager alloc] init];
self.quene = [[NSOperationQueue alloc] init];

// 调用加速器
// [self configureAccelerometer];

// 调用陀螺仪
[self configureGrro];


// 加速器
- (void)configureAccelerometer

// 判断加速器是否可用,pull方式,5.0以后已经舍弃
// if([_motionManager isAccelerometerAvailable])
// [_motionManager setAccelerometerUpdateInterval:1/40.0]; //设置加速器采样频率
// [_motionManager startAccelerometerUpdates];
//
// else
// NSLog(@"加速器不能使用");
//

// push方式
if([_motionManager isAccelerometerAvailable])
// 设置采样频率
[_motionManager setAccelerometerUpdateInterval:1/40.0];
// 开始采集数据
[_motionManager startAccelerometerUpdatesToQueue:_quene withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error)

NSLog(@"%lf %lf %lf",accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z);

if(fabs(accelerometerData.acceleration.x)>2.0||fabs(accelerometerData.acceleration.y) > 2.0||fabs(accelerometerData.acceleration.z) > 2.0)
NSLog(@"检查到震荡");


];
else

NSLog(@"加速器不能使用");


// 陀螺仪使用
- (void)configureGrro

if([_motionManager isGyroAvailable])
[_motionManager setGyroUpdateInterval:1];
[self.motionManager startGyroUpdatesToQueue:_quene withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error)
NSLog(@"%lf %lf %lf",gyroData.rotationRate.x,gyroData.rotationRate.y,gyroData.rotationRate.z);
];
else
NSLog(@"陀螺仪不能使用");


- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.


@end


以上是关于陀螺仪简单使用的主要内容,如果未能解决你的问题,请参考以下文章

使用陀螺仪和加速度计获取方向

Unity3D中手机陀螺仪的使用

STM32陀螺仪角度跟踪

iPhone 陀螺仪 - 为啥 YAW 和 PITCH 连接?

:加速计与陀螺仪

:加速计与陀螺仪