bmm150 — Magnetómetro de 3 ejes BMM150¶
Controlador para el sensor geomagnético de 3 ejes Bosch BMM150 a través de I2C. Durante la construcción, el controlador reinicia el dispositivo por software, lo conmuta al modo de funcionamiento normal a la ODR solicitada y lee los registros de ajuste (trim) que utilizan las ecuaciones de compensación de Bosch para convertir las lecturas en bruto en valores calibrados de campo magnético.
Nota
Este controlador no admite el modo SPI; pasar un bus que no sea I2C genera un ValueError.
Ejemplo:
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)
Clases¶
- class bmm150.BMM150(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x10, magnet_odr: int = 30)¶
Construye una instancia de
BMM150, reinicia el chip por software, verifica su ID de chip, lo configura para el modo normal amagnet_odrHz y lee los registros de ajuste de fábrica.busUn bus
machine.I2Cconfigurado al que está conectado el sensor.csReservado para el modo SPI. Debe dejarse como
None; SPI no está implementado actualmente y proporcionar un bus que no sea I2C genera unValueError.addressDirección I2C de 7 bits del dispositivo. El valor predeterminado es
0x10.magnet_odrTasa de datos de salida del magnetómetro en Hz. Debe ser uno de los siguientes valores:
2,6,8,10,15,20,25o30; cualquier otro valor genera unValueError.