tôi dường như không thể tìm thấy bất kỳ tài liệu trực tuyến về vấn đề này, và những gì tôi đang googling được đem lại cho tôi rất nhiều thông tin mâu thuẫn ...Phạm vi của máy gia tốc trên iPhone là gì?
Trả lời
Từ iphonedevsdk.com:
Các gia tốc sử dụng trong lần đầu tiên và iPhone thế hệ thứ hai (và tôi cũng giả sử các chạm iPod) hoạt động ở hai chế độ: +/- 2 g và +/- 8 g. (Trên thực tế, khi bạn quan sát, họ gia tốc báo cáo hơi bên ngoài phạm vi danh nghĩa. Độ chính xác không phải là spec'ed bên ngoài phạm vi đó, mặc dù.)
của Apple hoạt động chúng trong +/- 2 g chế độ . Có một sự cân bằng: Độ phân giải hiện tại là là 0,008 g, theo biểu dữ liệu (mặc dù iPhone thế hệ đầu tiên của chúng tôi sử dụng 0,016868604, theo một phiên bản sửa đổi của AccelerometerGraph). Ở chế độ +/- 8 g, độ phân giải sẽ gấp bốn lần cruder.
Tôi cho rằng Apple đã quyết định rằng độ phân giải tốt hơn sẽ hữu ích hơn phạm vi rộng hơn. (Tôi thà thấy độ phân giải tốt hơn là độ phân giải hơn 0,018 g. Vì vậy, không phải của chúng tôi hoàn toàn hài lòng.)
Bạn không thể thay đổi chế độ bằng bất kỳ tính năng nào được xuất bản của API. Kể từ khi chúng chuyển động tăng tốc thành , chúng có thể cho phép thay đổi chế độ và chỉ cần xem chế độ khi đổi lại giá trị A/D, trước khi tăng tốc. (Số nơi rõ ràng để đặt chế độ sẽ là trong cuộc gọi thiết lập ứng dụng để nhận thông tin gia tốc .) Tuy nhiên, đối với tính tương thích lạc hậu, HĐH sẽ phải đặt chế độ gia tốc thành +/- 2 g ở đầu ứng dụng. Và không có quy trình nền nào có thể được phép đặt chế độ gia tốc .
tôi tạo ra các ứng dụng sau đây để thử để kiểm tra các dãy ...
UIAccelerometer *objAccelerometer;
UILabel *lblxmin, *lblxmax, *lblymin, *lblymax, *lblzmin, *lblzmax;
UILabel *lblxnow, *lblynow, *lblznow;
float xmin = 0.0, xmax = 0.0, ymin = 0.0, ymax = 0.0, zmin = 0.0, zmax = 0.0, xnow = 0.0, ynow = 0.0, znow = 0.0;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
//NSLog (@"%f, %f, %f", acceleration.x, acceleration.y, acceleration.z);
xnow = acceleration.x;
ynow = acceleration.y;
znow = acceleration.z;
if (xnow < xmin) { xmin = xnow; }
if (ynow < ymin) { ymin = ynow; }
if (znow < zmin) { zmin = znow; }
if (xnow > xmax) { xmax = xnow; }
if (ynow > ymax) { ymax = ynow; }
if (znow > zmax) { zmax = znow; }
lblxmin.text = [NSString stringWithFormat:@"%f", xmin];
lblymin.text = [NSString stringWithFormat:@"%f", ymin];
lblzmin.text = [NSString stringWithFormat:@"%f", zmin];
lblxmax.text = [NSString stringWithFormat:@"%f", xmax];
lblymax.text = [NSString stringWithFormat:@"%f", ymax];
lblzmax.text = [NSString stringWithFormat:@"%f", zmax];
lblxnow.text = [NSString stringWithFormat:@"%f", xnow];
lblynow.text = [NSString stringWithFormat:@"%f", ynow];
lblznow.text = [NSString stringWithFormat:@"%f", znow];
}
-(void) invokeAccelerometer {
objAccelerometer = [UIAccelerometer sharedAccelerometer];
objAccelerometer.delegate = self;
objAccelerometer.updateInterval = (1.0/10.0);
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
lblxmin = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 40)];
lblxnow = [[UILabel alloc] initWithFrame:CGRectMake(100, 10, 100, 40)];
lblxmax = [[UILabel alloc] initWithFrame:CGRectMake(200, 10, 100, 40)];
lblymin = [[UILabel alloc] initWithFrame:CGRectMake(10, 60, 100, 40)];
lblynow = [[UILabel alloc] initWithFrame:CGRectMake(100, 60, 100, 40)];
lblymax = [[UILabel alloc] initWithFrame:CGRectMake(200, 60, 100, 40)];
lblzmin = [[UILabel alloc] initWithFrame:CGRectMake(10, 110, 100, 40)];
lblznow = [[UILabel alloc] initWithFrame:CGRectMake(100, 110, 100, 40)];
lblzmax = [[UILabel alloc] initWithFrame:CGRectMake(200, 110, 100, 40)];
[self.view addSubview:lblxmin];
[self.view addSubview:lblxnow];
[self.view addSubview:lblxmax];
[self.view addSubview:lblymin];
[self.view addSubview:lblynow];
[self.view addSubview:lblymax];
[self.view addSubview:lblzmin];
[self.view addSubview:lblznow];
[self.view addSubview:lblzmax];
[self invokeAccelerometer];
[super viewDidLoad];
}
Vấn đề là, khi tôi xoay iPod của tôi dọc theo trục ngang/dọc và sau đó lật lại thật kỹ, có giá trị như:
xmin -1,271802
xmax 1,180959
ymin -1,344477
ymax 1,108285
zmin -2,30713
Zmax 2,325581
Nhược bằng tôi lấy iPod và lắc heck ra khỏi nó, tôi nhận được ...
x -2,325581 để 2,307413
y -2,325581 để 2,307413
z -2,307413 để 2,325581
Bất cứ ý tưởng gì nó đo?
Điều tốt nhất tôi đã đi lên với là:
dọc trục
x = -1 nếu nghiêng bên trái (< |)
x = 1 nếu nghiêng tất cả các cách ở bên phải (|>)
- nơi cách mà màn hình đối mặt và | được dưới cùng của iPod
y ~ -1 nếu màn hình đang đối mặt với bạn, vuông góc với sàn ("đứng lên")
y ~ 1 nếu phải đối mặt với đi từ bạn (và lộn ngược)
Ứng dụng aGauge hiển thị dữ liệu thô này đến từ gia tốc kế khi bạn di chuyển thiết bị. Nó cũng có thể giúp bạn tìm ra ngưỡng "lật" cho thiết bị của bạn.
- 1. Phạm vi của * CSS hack là gì?
- 2. Phạm vi của phiên HTTP là gì?
- 3. Phạm vi của glTexParameter trong OpenGL là gì?
- 4. Phạm vi của StaticResource trong tài nguyên WPF là gì?
- 5. Phạm vi của một lớp tĩnh là gì?
- 6. Phạm vi của glVertexAttribPointer và glEnableVertexAttribArray là gì?
- 7. Phạm vi của biến lambda trong C# là gì?
- 8. Phạm vi của Trình quản lý tải là gì?
- 9. Phạm vi của hàm trong Javascript/ECMAScript là gì?
- 10. Phạm vi của <ui:param> trong JSF là gì?
- 11. Mục đích của phạm vi $ trong scala.Predef là gì?
- 12. Là $ rootScope cha mẹ của phạm vi $ trên cùng?
- 13. phạm vi đường ray và tham gia
- 14. Tham gia phạm vi ngày trùng lặp
- 15. Giảm vi phạm bản quyền của các ứng dụng iPhone
- 16. Phạm vi của bluetooth là gì và đúng là 1: 1?
- 17. Phạm vi của XACT_ABORT
- 18. Phạm vi của Windows HANDLE trên ứng dụng 64 bit là gì?
- 19. Cách diễn giải các bài đọc gia tốc từ iPhone
- 20. Phạm vi của typedefs
- 21. Sử dụng JavaFX 2.2 Chú thích (và máy gia tốc)
- 22. Phạm vi vi phạm truy cập '0xc0000005' chính xác là gì?
- 23. Tốc độ Android dựa trên các giá trị gia tốc
- 24. Cách Nike + GPS trên iPhone nhận được bản cập nhật gia tốc trong nền?
- 25. Phạm vi biến trong chuỗi `class_eval` là gì?
- 26. "gotchas" khi phát triển trò chơi trên iPhone là gì?
- 27. Trong ECMAScript5, phạm vi "sử dụng nghiêm ngặt" là gì?
- 28. Phạm vi mặc định của đậu được đặt tên là CDI là gì?
- 29. Relation trên phạm vi trên ActiveRecord
- 30. Lọc gia tốc Android?
Điều này phải nằm trong một câu hỏi khác –