fusion_hat.modules.magnetometer Modul

class fusion_hat.modules.magnetometer.MagnetometerType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[Quellcode]

Basisklassen: Enum

mag_QMC6310 = 1
mag_QMC5883P = 2
mag_QMC5883L = 3
mag_HMC5883L = 4
fusion_hat.modules.magnetometer.convert_2_int16(value)[Quellcode]
fusion_hat.modules.magnetometer.i2c_ack(bus, addr)[Quellcode]

Prüfen, ob ein Gerät auf der angegebenen I2C-Adresse antwortet

Parameter:
  • bus – SMBus-Instanz

  • addr – Zu prüfende I2C-Adresse

Rückgabe:

True, wenn das Gerät antwortet, andernfalls False

Rückgabetyp:

bool

class fusion_hat.modules.magnetometer.QMC6310(bus: smbus2.SMBus, addr: int = 28, field_range='8G')[Quellcode]

Basisklassen: object

DEF_ADDR = 28

# Definiere die Registeradresse des QMC6310-Kompasssensors

QMC6310_REG_DATA_START = 1
QMC6310_REG_DTAT_X = 1
QMC6310_REG_DTAT_Y = 3
QMC6310_REG_DTAT_Z = 5
QMC6310_REG_STATUS = 9
QMC6310_REG_CONTROL_1 = 10
QMC6310_REG_CONTROL_2 = 11

# Definiere die Registerparameterkonfiguration des Sensors

QMC6310_VAL_MODE_SUSPEND = 0
QMC6310_VAL_MODE_NORMAL = 1
QMC6310_VAL_MODE_SINGLE = 2
QMC6310_VAL_MODE_CONTINUOUS = 3
QMC6310_VAL_ODR_10HZ = 0
QMC6310_VAL_ODR_50HZ = 4
QMC6310_VAL_ODR_100HZ = 8
QMC6310_VAL_ODR_200HZ = 12
QMC6310_VAL_OSR1_8 = 0
QMC6310_VAL_OSR1_4 = 16
QMC6310_VAL_OSR1_2 = 32
QMC6310_VAL_OSR1_1 = 48
QMC6310_VAL_OSR2_1 = 0
QMC6310_VAL_OSR2_2 = 64
QMC6310_VAL_OSR2_4 = 128
QMC6310_VAL_OSR2_8 = 192
QMC6310_VAL_MODE_SET_RESET_ON = 0
QMC6310_VAL_MODE_SET_ON = 1
QMC6310_VAL_MODE_SET_RESET_OFF = 2
RANGE = {'12G': 4, '2G': 12, '30G': 0, '8G': 8}
LSB = {'12G': 2.5, '2G': 15, '30G': 1, '8G': 3.75}
QMC6310_VAL_SELF_TEST_ON = 64
QMC6310_VAL_SELF_TEST_OFF = 0
QMC6310_VAL_SOFT_RST_ON = 128
QMC6310_VAL_SOFT_RST_OFF = 0
read_raw()[Quellcode]

Rohdaten des Magnetometers lesen

Rückgabe:

[x, y, z] rohe Magnetfeldwerte

Rückgabetyp:

list

read_magnet()[Quellcode]

Magnetometerdaten in Gauss-Einheiten lesen ( konsistent mit anderen Magnetometer-Klassen )

Rückgabe:

(x, y, z) Magnetfeldwerte in Gauss

Rückgabetyp:

tuple

class fusion_hat.modules.magnetometer.HMC5883L(bus: smbus2.SMBus, addr: int = 30)[Quellcode]

Basisklassen: object

HMC5883L 3-Achsen-Magnetometersensor-Treiberklasse Zur Messung der Stärke des Magnetfeldes der Erde, geeignet für Richtungsbestimmung und Berechnung des Heading-Winkels

DEF_ADDR = 30
REG_CONFIG_A = 0
REG_CONFIG_B = 1
REG_MODE = 2
REG_OUT_X_H = 3
_read_word(reg_h)[Quellcode]

Einen vorzeichenbehafteten 16-Bit-Integer vom Sensor lesen

Parameter:

reg_h – High-Byte-Registeradresse

Rückgabe:

Konvertierter vorzeichenbehafteter 16-Bit-Integer

Rückgabetyp:

val

read_magnet()[Quellcode]

Magnetometerdaten lesen

Rückgabe:

X-, Y-, Z-Achsen-Magnetfeldstärkewerte ( Einheit: Gauss ) Hinweis: Die Datenregisterreihenfolge des HMC5883L ist X, Z, Y

Rückgabetyp:

x, y, z

class fusion_hat.modules.magnetometer.QMC5883L(bus: smbus2.SMBus, addr: int = 13)[Quellcode]

Basisklassen: object

QMC5883L 3-Achsen-Magnetometersensor-Treiberklasse Zur Messung der Stärke des Magnetfeldes der Erde, ist eine gängige Alternative zum HMC5883L

DEF_ADDR = 13
REG_CONTROL = 9
REG_SET_RESET = 11
REG_OUT_X_L = 0
_read_word_le(reg_l)[Quellcode]

Einen vorzeichenbehafteten 16-Bit-Integer vom Sensor im Little-Endian-Format lesen Hinweis: QMC5883L verwendet das Little-Endian-Format zur Datenspeicherung

Parameter:

reg_l – Low-Byte-Registeradresse

Rückgabe:

Konvertierter vorzeichenbehafteter 16-Bit-Integer

Rückgabetyp:

val

read_magnet()[Quellcode]

Magnetometerdaten lesen

Rückgabe:

X-, Y-, Z-Achsen-Magnetfeldstärkewerte ( Einheit: Gauss ) Hinweis: Die Datenregisterreihenfolge des QMC5883L ist X, Y, Z ( unterschiedlich zum HMC5883L )

Rückgabetyp:

x, y, z

class fusion_hat.modules.magnetometer.QMC5883P(bus: smbus2.SMBus, addr: int = 44)[Quellcode]

Basisklassen: object

QMC5883P 3-Achsen-Magnetometersensor-Treiberklasse Eine weitere Version der QMC5883-Serie mit der I2C-Adresse 0x2C

DEF_ADDR = 44
REG_X_LSB = 1
REG_STATUS = 9
REG_MODE = 10
REG_CONFIG = 11
static _to_i16(lsb, msb)[Quellcode]

Zwei Bytes in einen vorzeichenbehafteten 16-Bit-Integer umwandeln

Parameter:
  • lsb – Low-Byte-Wert

  • msb – High-Byte-Wert

Rückgabe:

Konvertierter 16-Bit-Integer mit Vorzeichen

Rückgabetyp:

v

read_magnet()[Quellcode]

Magnetometerdaten lesen Liest 6 Bytes beginnend beim Register 0x01 ( Little-Endian-Vorzeichenformat ) Eigenschaften: Gibt bei Fehler Null zurück und unterbricht nicht die Hauptschleife

Rückgabe:

X-, Y-, Z-Achsen-Magnetfeldstärkewerte ( Einheit: Gauss )

Rückgabetyp:

x, y, z

class fusion_hat.modules.magnetometer.Magnetometer(mag_type=None, field_range='8G')[Quellcode]

Basisklassen: object

Magnetometersensor-Treiberklasse Integriert die Magnetometer QMC6310, HMC5883L, QMC5883L und QMC5883P

read()[Quellcode]

Magnetometerdaten lesen

Rückgabe:

(x, y, z) Magnetfeldwerte in geeigneten Einheiten basierend auf dem Sensortyp None: wenn kein Magnetometer initialisiert ist

Rückgabetyp:

tuple

get_type()[Quellcode]

Den Typ des initialisierten Magnetometers abrufen

Rückgabe:

Magnetometertyp

Rückgabetyp:

str