bmm150 — BMM150 3 tengelyes magnetométer

Illesztőprogram a Bosch BMM150 3 tengelyes geomágneses érzékelőhöz I2C felett. A példányosításkor az illesztőprogram szoftveresen újraindítja az eszközt, normál üzemmódba kapcsolja a kért ODR-en, és kiolvassa a Bosch kompenzációs egyenletei által használt trim regisztereket, amelyek a nyers leolvasásokat kalibrált mágneses térerősség-értékekké alakítják.

Megjegyzés

Az SPI módot ez az illesztőprogram nem támogatja; nem I2C busz átadása ValueError hibát vált ki.

Példa:

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)

Osztályok

class bmm150.BMM150(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x10, magnet_odr: int = 30)

Létrehoz egy BMM150 példányt, szoftveresen újraindítja a chipet, ellenőrzi a chip azonosítóját, normál módra konfigurálja magnet_odr Hz-en, és kiolvassa a gyári trim regisztereket.

bus

Egy beállított machine.I2C busz, amelyhez az érzékelő csatlakozik.

cs

Az SPI módhoz fenntartva. None értéken kell hagyni; az SPI jelenleg nincs implementálva, és nem I2C busz átadása ValueError hibát vált ki.

address

Az eszköz 7 bites I2C címe. Alapértelmezett értéke 0x10.

magnet_odr

A magnetométer kimeneti adatsebessége Hz-ben. A következő értékek egyike lehet: 2, 6, 8, 10, 15, 20, 25 vagy 30; bármi más ValueError hibát vált ki.

magnet_raw() tuple[int, int, int, int]

Lekérdezi az adatkész jelzőt, és visszaadja a nyers, előjeles (x, y, z, hall) leolvasásokat egész számokként, az LSB alatti bitek már kiléptetve. OSError("Data not ready") hibát vált ki, ha tíz próbálkozáson belül nem áll rendelkezésre minta.

magnet() tuple[float, float, float]

Beolvas egy friss mintát a magnet_raw() segítségével, és visszaadja a kompenzált mágneses térerősség-vektort (x, y, z). A kompenzáció a példányosításkor beolvasott trim értékeket használja, és megegyezik a Bosch által biztosított referencia C illesztőprogrammal.