127 lines
3.1 KiB
Python
127 lines
3.1 KiB
Python
'''
|
|
Gyroscope
|
|
============
|
|
|
|
The gyroscope measures the rate of rotation around a device's x, y,
|
|
and z axis.
|
|
|
|
The :class:`Gyroscope` provides access to public methods to
|
|
use gyroscope of your device.
|
|
|
|
Simple Examples
|
|
---------------
|
|
|
|
To enable gyroscope::
|
|
|
|
>>> from plyer import gyroscope
|
|
>>> gyroscope.enable()
|
|
|
|
To disable gyroscope::
|
|
|
|
>>> gyroscope.disable()
|
|
|
|
To get the rate of rotation along the three axes::
|
|
|
|
>>> gyroscope.rotation
|
|
(-0.0034587313421070576, -0.0073830625042319298, 0.0046892408281564713)
|
|
|
|
To get the uncalibrated rate of rotation along the three axes along with the
|
|
drift compensation::
|
|
|
|
>>> gyroscope.rotation_uncalib
|
|
()
|
|
where the first three values show the rate of rotation w/o drift
|
|
compensation and the last three show the estimated drift along the three
|
|
axes.
|
|
|
|
Supported Platforms
|
|
-------------------
|
|
Android, iOS
|
|
|
|
'''
|
|
|
|
|
|
class Gyroscope:
|
|
'''
|
|
Gyroscope facade.
|
|
|
|
.. versionadded:: 1.3.1
|
|
'''
|
|
|
|
@property
|
|
def rotation(self):
|
|
'''
|
|
Property that returns the rate of rotation around the device's local
|
|
X, Y and Z axis.
|
|
|
|
Along x-axis: angular speed around the X axis
|
|
Along y-axis: angular speed around the Y axis
|
|
Along z-axis: angular speed around the Z axis
|
|
|
|
Returns (None, None, None) if no data is currently available.
|
|
'''
|
|
return self.get_orientation()
|
|
|
|
@property
|
|
def rotation_uncalib(self):
|
|
'''
|
|
Property that returns the current rate of rotation around the X, Y and
|
|
Z axis. An estimation of the drift on each axis is reported as well.
|
|
|
|
Along x-axis: angular speed (w/o drift compensation) around the X axis
|
|
Along y-axis: angular speed (w/o drift compensation) around the Y axis
|
|
Along z-axis: angular speed (w/o drift compensation) around the Z axis
|
|
|
|
Along x-axis: estimated drift around X axis
|
|
Along y-axis: estimated drift around Y axis
|
|
Along z-axis: estimated drift around Z axis
|
|
|
|
Returns (None, None, None, None, None, None) if no data is currently
|
|
available.
|
|
'''
|
|
return self.get_rotation_uncalib()
|
|
|
|
@property
|
|
def orientation(self):
|
|
'''
|
|
WARNING:: This property is deprecated after API Level 8.
|
|
Use `gyroscope.rotation` instead.
|
|
|
|
Property that returns values of the current Gyroscope sensors, as
|
|
a (x, y, z) tuple. Returns (None, None, None) if no data is currently
|
|
available.
|
|
'''
|
|
return self.get_orientation()
|
|
|
|
def enable(self):
|
|
'''
|
|
Activate the Gyroscope sensor.
|
|
'''
|
|
self._enable()
|
|
|
|
def disable(self):
|
|
'''
|
|
Disable the Gyroscope sensor.
|
|
'''
|
|
self._disable()
|
|
|
|
def get_orientation(self):
|
|
return self._get_orientation()
|
|
|
|
def get_rotation_uncalib(self):
|
|
return self._get_rotation_uncalib()
|
|
|
|
# private
|
|
|
|
def _enable(self):
|
|
raise NotImplementedError()
|
|
|
|
def _disable(self):
|
|
raise NotImplementedError()
|
|
|
|
def _get_orientation(self):
|
|
raise NotImplementedError()
|
|
|
|
def _get_rotation_uncalib(self):
|
|
raise NotImplementedError()
|