/
// 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
陀螺仪简单使用
最新推荐文章于 2024-02-01 20:50:02 发布