从 Apple Watch(而不是 iphone)获取加速度计和陀螺仪数据?
Get accelerometer and gyroscope data from apple watch (and not the iphone)?
看到 this question 后,我尝试编写一个快速程序,将手表加速度计和陀螺仪数据保存到文件中。
@implementation InterfaceController{
NSMutableArray *accData;
bool recording;
}
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
// Configure interface objects here.
self.motionManager = [[CMMotionManager alloc] init];
[self.motionManager setAccelerometerUpdateInterval:.01];
}
- (IBAction)startStopRecording {
if (!recording){//We are starting to record.
recording = YES;
accData = [[NSMutableArray alloc] init];
[self.startRecording setTitle:@"Stop Recording"];
[self.motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
[accData addObject:[NSString stringWithFormat:@"%f, %f, %f", accelerometerData.acceleration.x, accelerometerData.acceleration.y, accelerometerData.acceleration.z]];
}];
}else{
recording = NO;//we are stopping the recording
[self.motionManager stopAccelerometerUpdates];
[self.startRecording setTitle:@"Start Recording"];
[InterfaceController openParentApplication:@{ @"accData": accData } reply:^(NSDictionary *replyInfo, NSError *error) { //this method saves the array to a csv file.
NSLog(@"Data has been saved.");
}];
}
}
我绘制了这些数据,在我的一生中,无论我怎么摇手表,我所有的图都是这样的:
直到8个小时后,我开始怀疑我不是从手表上抓取加速度数据,而是从phone上抓取的(仍然坐在我旁边的table上) .我 运行 进行了一些测试并确认这正是正在发生的事情。
这让我想到了最初的问题。如何从手表而不是从 iPhone 中拉出 acceleration/gyro/data?
问题是我不是 运行 watchOS2。我以为我是,但它仍处于测试阶段,我还没有安装它。我得到的数据是来自 phone 的加速度计数据。此外,目前,您只能使用 watchOS2 从手表获取 acc 数据,而不能获取陀螺仪数据。
您可以使用 CoreMotion 框架获取 activity 数据。
虽然我只能获得加速数据,但陀螺仪经常 return 错误。
看到 this question 后,我尝试编写一个快速程序,将手表加速度计和陀螺仪数据保存到文件中。
@implementation InterfaceController{
NSMutableArray *accData;
bool recording;
}
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
// Configure interface objects here.
self.motionManager = [[CMMotionManager alloc] init];
[self.motionManager setAccelerometerUpdateInterval:.01];
}
- (IBAction)startStopRecording {
if (!recording){//We are starting to record.
recording = YES;
accData = [[NSMutableArray alloc] init];
[self.startRecording setTitle:@"Stop Recording"];
[self.motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
[accData addObject:[NSString stringWithFormat:@"%f, %f, %f", accelerometerData.acceleration.x, accelerometerData.acceleration.y, accelerometerData.acceleration.z]];
}];
}else{
recording = NO;//we are stopping the recording
[self.motionManager stopAccelerometerUpdates];
[self.startRecording setTitle:@"Start Recording"];
[InterfaceController openParentApplication:@{ @"accData": accData } reply:^(NSDictionary *replyInfo, NSError *error) { //this method saves the array to a csv file.
NSLog(@"Data has been saved.");
}];
}
}
我绘制了这些数据,在我的一生中,无论我怎么摇手表,我所有的图都是这样的:
直到8个小时后,我开始怀疑我不是从手表上抓取加速度数据,而是从phone上抓取的(仍然坐在我旁边的table上) .我 运行 进行了一些测试并确认这正是正在发生的事情。
这让我想到了最初的问题。如何从手表而不是从 iPhone 中拉出 acceleration/gyro/data?
问题是我不是 运行 watchOS2。我以为我是,但它仍处于测试阶段,我还没有安装它。我得到的数据是来自 phone 的加速度计数据。此外,目前,您只能使用 watchOS2 从手表获取 acc 数据,而不能获取陀螺仪数据。
您可以使用 CoreMotion 框架获取 activity 数据。 虽然我只能获得加速数据,但陀螺仪经常 return 错误。