bmm150 — Magnétomètre 3 axes BMM150¶
Pilote pour le capteur géomagnétique 3 axes Bosch BMM150 via I2C. Lors de la construction, le pilote réinitialise le périphérique par logiciel, le bascule en mode de fonctionnement normal au débit ODR demandé et lit les registres de réglage utilisés par les équations de compensation Bosch pour convertir les mesures brutes en valeurs de champ magnétique calibrées.
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 bmm150 import BMM150
imu = BMM150(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.magnet()))
time.sleep_ms(100)
Classes¶
- class bmm150.BMM150(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x10, magnet_odr: int = 30)¶
Construit une instance
BMM150, réinitialise la puce par logiciel, vérifie son identifiant de puce, la configure en mode normal àmagnet_odrHz et lit les registres de réglage d’usine.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
0x10par défaut.magnet_odrDébit de données de sortie du magnétomètre en Hz. Doit être l’une des valeurs
2,6,8,10,15,20,25ou30; toute autre valeur lève une erreurValueError.
- magnet_raw() tuple[int, int, int, int]¶
Interroge l’indicateur de disponibilité des données et renvoie les mesures brutes signées
(x, y, z, hall)sous forme d’entiers, les bits inférieurs au LSB ayant déjà été décalés. Lève une erreurOSError("Data not ready")si aucun échantillon ne devient disponible au bout de dix tentatives.