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:
objectHMC5883L 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:
objectQMC5883L 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:
objectQMC5883P 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:
objectMagnetometersensor-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