bmi270 — Centrale inertielle 6 axes BMI270¶
Pilote pour la centrale inertielle 6 axes basse consommation Bosch BMI270 (accéléromètre 3 axes et gyroscope 3 axes) via I2C. Le pilote exécute la séquence complète d’initialisation du BMI270 lors de la construction — réinitialisation logicielle, désactivation du mode d’économie d’énergie, téléversement du blob de configuration et vérification de l’état — avant de configurer les débits de données de sortie et les plages pleine échelle demandés.
La classe peut éventuellement être reliée à une instance externe de magnétomètre bmm150.BMM150 afin que les appelants puissent traiter une paire BMI270 + BMM150 comme un seul périphérique 9 axes via la méthode magnet().
Note
Le mode SPI n’est pas pris en charge par ce pilote ; fournir un bus autre qu’I2C lève une erreur ValueError.
Exemple
import time
from machine import Pin, I2C
from bmi270 import BMI270
imu = BMI270(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.accel()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
Classes¶
- class bmi270.BMI270(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x68, gyro_odr: float = 100, gyro_scale: int = 2000, accel_odr: float = 100, accel_scale: int = 4, bmm_magnet: BMM150 | None = None)¶
Construit une instance
BMI270et exécute la séquence complète d’initialisation avec chargement de la configuration. Lève une erreurOSErrorsi l’identifiant de la puce ne correspond pas ou si la séquence de chargement échoue.busUn bus
machine.I2Cconfiguré auquel le capteur est connecté.csRéservé au mode SPI. Doit rester à
None; le SPI n’est pas actuellement implémenté et fournir un bus autre qu’I2C lève une erreurValueError.addressAdresse I2C 7 bits du périphérique. Vaut
0x68par défaut ; certaines cartes câblent la broche SDO à l’état haut, ce qui sélectionne0x69.gyro_odrDébit de données de sortie du gyroscope en Hz. Doit être l’une des valeurs
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800ou1200.gyro_scalePlage pleine échelle du gyroscope en degrés par seconde. Doit être l’une des valeurs
125,250,500,1000ou2000.accel_odrDébit de données de sortie de l’accéléromètre en Hz. Mêmes valeurs possibles que pour
gyro_odr.accel_scalePlage pleine échelle de l’accéléromètre en g. Doit être l’une des valeurs
2,4,8ou16.bmm_magnetInstance
bmm150.BMM150facultative. Lorsqu’elle est fournie, la méthodemagnet()la délègue ; sinon,magnet()renvoie des zéros.
- reset() None¶
Émet la commande de réinitialisation logicielle du BMI270. Après cet appel, le périphérique doit être réinitialisé avant toute utilisation ultérieure.
- gyro() tuple[float, float, float]¶
Renvoie le vecteur du gyroscope
(x, y, z)en degrés par seconde, mis à l’échelle selongyro_scale.