imu — imu-sensor¶
De imu-module wordt gebruikt voor het uitlezen van de IMU-sensor onder de camerasensor.
Notitie
De IMU-sensor (en deze module) is niet op alle OpenMV Cam-modellen aanwezig.
Voor wanneer het camerabord met de voorkant naar boven op een tafel ligt:
X wijst naar rechts van de camerasensor.
Y wijst naar beneden onder de camerasensor (richting de onderkant van het bord).
Z wijst in de tegenovergestelde richting van de camerasensor (de tafel in).
Voorbeeldgebruik – peil de ruwe versnellingsmeter, gyroscoop en temperatuur:
import imu
import time
while True:
ax, ay, az = imu.acceleration_mg()
gx, gy, gz = imu.angular_rate_mdps()
t = imu.temperature_c()
print("accel (mg) : {:8.1f} {:8.1f} {:8.1f}".format(ax, ay, az))
print("gyro (mdps): {:8.1f} {:8.1f} {:8.1f}".format(gx, gy, gz))
print("temp (degC): {:5.1f}".format(t))
time.sleep_ms(200)
Voorbeeldgebruik – detecteer in welke richting de camera gekanteld is:
import imu
import time
while True:
r = imu.roll()
if abs(r - 90) < 15:
print("camera rotated left")
elif abs(r - 270) < 15:
print("camera rotated right")
elif abs(r - 180) < 15:
print("camera upside down")
else:
print("camera upright")
time.sleep_ms(100)
Functies¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Retourneert de versnelling voor
(x, y, z)als een float-tuple in milli-g’s.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Retourneert de hoeksnelheid voor
(x, y, z)als een float-tuple in milli-graden-per-seconde.
- imu.roll() float¶
Retourneert de rolhoek van de cameramodule in graden.
0 -> Camera staat rechtop.
90 -> Camera is naar links gedraaid.
180 -> Camera staat ondersteboven.
270 -> Camera is naar rechts gedraaid.
- imu.pitch() float¶
Retourneert de pitchhoek van de cameramodule in graden.
0 -> Camera staat rechtop.
90 -> Camera wijst naar beneden.
180 -> Camera staat ondersteboven.
270 -> Camera wijst naar boven.