i2c_basic_motor_control.py
Ejemplo mínimo para comunicarse con el módulo vía I2C en Linux (Raspberry Pi) para controlar un solo motor.
Utiliza la biblioteca smbus. Verifique la dirección I2C (0x24) con i2cdetect. Los registros de control dependen del firmware específico de la tarjeta; esta estructura es una plantilla para adaptar a los registros exactos del datasheet.
i2c_basic_motor_control.py
import smbus
import time
# Adresse I2C par défaut du module
ADDR = 0x24
bus = smbus.SMBus(1)
# Registre de contrôle du moteur 1 (Exemple simplifié basé sur la doc technique standard M5Stack)
# Note : Les registres exacts peuvent varier selon le firmware, consulter la doc officielle
REG_MOTOR1_CTRL = 0x01
# Valeur de vitesse (0-255) et direction
# 0x00: Stop, 0x01: Forward, 0x02: Backward
# Pour ce pilote, souvent une valeur signée ou un registre vitesse + registre direction
# Exemple générique : Écrire une vitesse positive
try:
# Activer le moteur 1 en marche avant à 50% de puissance
# Hypothèse registre : Bit 7: En, Bits 6-0: PWM
bus.write_byte_data(ADDR, REG_MOTOR1_CTRL, 0x80 | 128)
print("Moteur 1 démarré en marche avant")
time.sleep(2)
# Arrêt d'urgence
bus.write_byte_data(ADDR, REG_MOTOR1_CTRL, 0x00)
print("Moteur 1 arrêté")
except Exception as e:
print(f"Erreur I2C : {e}")