2010-06-25 6 views
7

Tôi đang tạo một ứng dụng dựa trên gia tốc sử dụng cocos2d và tôi nhận thấy rằng có thể đặt khoảng thời gian cập nhật gia tốc.iPhone: Pin xả gia tốc nhanh (60Hz) có cập nhật nhanh không?

[[UIAccelerometer sharedAccelerometer] setUpdateInterval: (1.0f/60.0f)]; 

Cập nhật công cụ gia tốc rất thường xuyên như thế này (60 lần một giây) một lượng pin đáng kể?

Trả lời

9

Theo bảng dữ liệu gia tốc LIS302DL, nó tiêu thụ ~ 0,75 mWatts công suất ở tốc độ cập nhật 100Hz và 0,00 mWatts công suất khi ở chế độ chờ (tức là không có kết quả đọc). Vì vậy, câu trả lời ngắn gọn là "Có", nhưng ngoài đỉnh đầu của tôi, tôi không thể đặt những con số đó theo quan điểm để cung cấp cho bạn ý tưởng về "bao nhiêu phút đúng giờ" từ pin.

Đề xuất của tôi sẽ là thực hiện một chút thử nghiệm. Tìm tốc độ cập nhật thấp nhất cung cấp kết quả khả quan.

1
+0

Ah, cảm ơn. :) Bạn có biết số lần nó thường cập nhật bao nhiêu lần khi bạn không chạm vào phương thức -setUpdateInterval: không? –

+0

Tôi chỉ đang thực hiện tìm kiếm nhanh trên google để cung cấp cho bạn câu trả lời nhanh. Tuy nhiên, tôi không biết tốc độ cập nhật mặc định. Tôi sẽ đề nghị bạn nên cập nhật nó với tốc độ tương tự như tốc độ khung hình của bạn. Bởi vì tôi nghĩ rằng nó sẽ là khôn ngoan để cập nhật màn hình cùng một lúc ngay sau khi bạn nhận được dữ liệu gia tốc mới. – VOX

2

Từ Event Handling Guide for iPhone OS:

Khi cấu hình khoảng thời gian cập nhật cho các sự kiện tăng tốc, nó là tốt nhất để chọn một khoảng thời gian mà giảm thiểu số các sự kiện giao và vẫn đáp ứng các nhu cầu của ứng dụng của bạn. Rất ít ứng dụng cần tăng tốc sự kiện được phân phối 100 lần mỗi giây. Sử dụng tần số thấp hơn ngăn ứng dụng chạy thường xuyên và do đó có thể cải thiện thời lượng pin.

Theo đó, phần đắt tiền hơn có tần suất cập nhật cao có thể là ứng dụng của bạn phải xử lý từng sự kiện gia tốc đó thay vì chạy không tải trong một thời gian dài hơn.

Ngoài ra, từ iPhone Application Programming Guide:

Nếu bạn sử dụng lớp UIAccelerometer nhận thường xuyên tốc sự kiện, vô hiệu hóa việc cung cấp những sự kiện khi bạn không cần đến chúng. Tương tự, hãy đặt tần suất của sự kiện phân phối đến giá trị nhỏ nhất là phù hợp với nhu cầu của bạn.

+1

Thông tin thêm về cách "tắt phân phối các sự kiện đó", từ Hướng dẫn xử lý sự kiện được liên kết ở trên: "Để ngừng phân phối sự kiện tăng tốc, hãy đặt đại biểu của đối tượng UIAccelerometer được chia sẻ thành không. nil cho phép hệ thống biết rằng nó có thể tắt phần cứng gia tốc khi cần thiết và do đó tiết kiệm pin. " –

15

Với các số trong câu trả lời được chấp nhận, việc sử dụng năng lượng bởi gia tốc thực tế là không đáng kể. Hit thực sự của bạn sẽ đến từ ứng dụng của bạn có để xử lý các sự kiện và do đó làm cho CPU không ngủ thường xuyên hơn.

3GS có pin 4,51 Watt. Chỉ xả từ gia tốc khi chạy ở 100 hz sẽ tiêu hao pin trong khoảng (khoảng 6000 giờ) (giả sử giá trị 0,75 mW là chính xác)

(Ngoài ra, iPhone 4 có pin 5,25 Watt giờ, 4S 5,3 Whr và 5 5.45 Whr, trong trường hợp bạn tò mò)