imu-data-read.py

Módulo de IA AIWorld P1 para BPI-M2 Ultra y Berry · Archivo : imu-data-read.py · Lenguaje : python · Uso : Lire les données brutes de l'accéléromètre/gyroscope ICM20602 via I2C.

Script Python que utiliza smbus para consultar el sensor inercial ICM20602 conectado a través de I2C.

El sensor ICM20602 está en el bus I2C 1 (verifique con i2cdetect -y 1). Habilite I2C a través de la configuración del kernel Vecoo. Este script lee datos sin procesar; la conversión a g o dps requiere leer los registros de sensibilidad. Ejecute con sudo python3 imu_read.py.

imu-data-read.py

import smbus
import time

# Adresse I2C typique de l'ICM20602 (0x68 ou 0x69 selon AD0)
I2C_BUS = 1
ICM_ADDR = 0x68

# Registres de base
WHO_AM_I = 0x75
ACCEL_XOUT_H = 0x3B
GYRO_XOUT_H = 0x43

try:
    bus = smbus.SMBus(I2C_BUS)
except OSError:
    print("Erreur: Impossible d'ouvrir le bus I2C. Vérifiez le module i2c-dev.")
    exit(1)

# Vérification de la présence du capteur
who_am_i = bus.read_byte_data(ICM_ADDR, WHO_AM_I)
print(f"ID Capteur (WHO_AM_I): 0x{who_am_i:02X}")

# Lecture des données d'accélération (X, Y, Z)
# Nécessite souvent une configuration initiale des registres de contrôle
accel_x = bus.read_word_data(ICM_ADDR, ACCEL_XOUT_H) >> 8
accel_y = bus.read_word_data(ICM_ADDR, ACCEL_YOUT_H) >> 8
accel_z = bus.read_word_data(ICM_ADDR, ACCEL_ZOUT_H) >> 8

print(f"Accélération: X={accel_x}, Y={accel_y}, Z={accel_z}")

← Volver a la ficha