imu — IMU-hjälpmodul för Arduino Nano 33 BLE Sense¶
Anteckning
Den här sidan dokumenterar Python-modulen imu för Arduino Nano 33 BLE Sense (ett litet omslag kring de inbyggda IMU-drivrutinerna). För OpenMV:s C-nivåmodul imu som levereras med kameramodellerna OPENMV_N6, OPENMV_RT1060 och OPENMV_AE3, se imu — imu-sensor.
Den här modulen är ett tunt kortspecifikt omslag som exponerar den inbyggda tröghetsmätningsenheten (IMU) på Arduino Nano 33 BLE Sense som ett enda IMU-objekt. Båda hårdvarurevisionerna av kortet hanteras transparent:
Rev 1 använder en enda LSM9DS1 9-axlig IMU.
Rev 2 kombinerar en Bosch BMI270 (accelerometer + gyroskop) med en Bosch BMM150-magnetometer.
Konstruktorn söker på I2C-bussen efter BMI270-adressen (0x68) och väljer den matchande drivrutinen automatiskt, så att användarkod kan skrivas en gång och köras på båda revisionerna.
Exempel:
import time
import imu
from machine import Pin, I2C
bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
sensor = imu.IMU(bus)
while True:
print('Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.accel()))
print('Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.gyro()))
print('Magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.magnet()))
print("")
time.sleep_ms(100)
class IMU¶
- class imu.IMU(bus: 'machine.I2C')¶
Konstruera ett IMU-objekt bundet till en I2C-buss.
bus är en initierad
machine.I2C-instans ansluten till de inbyggda IMU-enheterna.
Vid konstruktion skannas bussen: om en enhet svarar på adressen
0x68instansieras ett par bestående avBMI270ochBMM150(Nano 33 BLE Sense Rev 2), annars instansieras enLSM9DS1(Rev 1). Den underliggande drivrutinen behålls i attributetimuoch konfigureras med standardomfång och utdatahastigheter.- accel() tuple[float, float, float]¶
Returnera den senaste accelerometeravläsningen som en
(x, y, z)-tupel i enheten g (standardtyngdaccelerationer).