2010-06-25 9 views

Respuesta

9

De acuerdo con la hoja de datos del acelerómetro LIS302DL, consume ~ 0,75 mWatts de energía a una velocidad de actualización de 100 Hz y 0,0025 mWatts de energía en modo de espera (es decir, no se realizan lecturas).

Entonces, la respuesta corta es "Sí", pero fuera de mi cabeza, no puedo poner esos números en perspectiva para darte una idea de, digamos, "cuántos minutos de tiempo" se agota de la batería.

Mi recomendación sería hacer algunas pruebas. Encuentre la tasa de actualización más baja que proporcione resultados satisfactorios.

1
+0

Ah, gracias. :) ¿Sabes cuántas veces por segundo se actualiza normalmente cuando no tocas el método -setUpdateInterval:? –

+0

Estoy haciendo una búsqueda rápida en Google para darle una respuesta rápida. Sin embargo, no sé la tasa de actualización predeterminada. Sugeriría que lo actualices con la misma velocidad que tu framerate. Porque creo que sería aconsejable actualizar la pantalla al mismo tiempo tan pronto como obtenga datos del acelerómetro nuevos. – VOX

2

Desde el Event Handling Guide for iPhone OS:

Al configurar el intervalo de actualización para los eventos de aceleración, lo mejor es elegir un intervalo que minimiza el número de eventos entregados y aún cumple con las necesidades de su aplicación. Pocas aplicaciones necesitan aceleración eventos entregados 100 veces por segundo. El uso de una frecuencia más baja impide que su aplicación se ejecute con tanta frecuencia y puede mejorar la vida útil de la batería.

De acuerdo con esto, la parte más costosa de tener una alta frecuencia de actualización puede ser el hecho de que su aplicación tiene que procesar cada uno de esos eventos del acelerómetro, en lugar de permanecer inactivo por un período más largo.

Asimismo, desde el iPhone Application Programming Guide:

Si se utiliza la clase UIAccelerometer recibir acelerómetro eventos regulares, desactivar la entrega de esos eventos cuando no los necesita. Del mismo modo, establezca la frecuencia de la entrega del evento al menor valor que sea adecuado a sus necesidades.

+1

Más información sobre cómo "deshabilitar la entrega de esos eventos", de la Guía de manejo de eventos anteriormente vinculada: "Para detener la entrega de eventos de aceleración, establezca el delegado del objeto UIAccelerometer compartido en cero. Establezca el objeto delegado a nil le permite al sistema saber que puede apagar el hardware del acelerómetro según sea necesario y así ahorrar batería ". –

15

Dados los números en la respuesta aceptada, el uso de energía por el acelerómetro real es trivial. Su verdadero éxito provendrá de que su aplicación tenga que procesar los eventos y hacer que la CPU no duerma más a menudo.

El 3GS tiene una batería de 4.51 vatios por hora. Drenar solo desde el acelerómetro cuando se ejecuta a 100 Hz mataría la batería en aproximadamente 6000 horas (suponiendo que el valor de 0.75 mW es correcto)

(Además, el iPhone 4 tiene una batería de 5,25 vatios-hora, 4S 5.3 Whr y 5 5.45 Whr, en caso de que tenga curiosidad)

Cuestiones relacionadas