imu — imu-sensor¶
Modulen imu används för att läsa av IMU-sensorn under kamerasensorn.
Anteckning
IMU-sensorn (och denna modul) finns inte på alla OpenMV Cam-modeller.
För när kamerakortet ligger på ett bord med framsidan uppåt:
X pekar åt höger om kamerasensorn.
Y pekar nedåt under kamerasensorn (mot kortets underkant).
Z pekar i motsatt riktning mot kamerasensorn (in i bordet).
Exempelanvändning – avläs den råa accelerometern, gyrot och temperaturen:
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)
Exempelanvändning – detektera åt vilket håll kameran är lutad:
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)
Funktioner¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Returnerar accelerationen för
(x, y, z)som en flyttalstupel i milli-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Returnerar vinkelhastigheten för
(x, y, z)som en flyttalstupel i milli-grader-per-sekund.
- imu.roll() float¶
Returnerar kameramodulens rollvinkel i grader.
0 -> Kameran står upp.
90 -> Kameran är roterad åt vänster.
180 -> Kameran är upp och ned.
270 -> Kameran är roterad åt höger.
- imu.pitch() float¶
Returnerar kameramodulens pitchvinkel i grader.
0 -> Kameran står upp.
90 -> Kameran pekar nedåt.
180 -> Kameran är upp och ned.
270 -> Kameran pekar uppåt.