rgb_status_led_ws2812.py
Control of the embedded RGB LED to signal states (e.g., error, running) via a simplified I2C interface.
The WS2812C LED is generally driven by the internal STM32. This code assumes the firmware exposes a register to change the color. Check the technical documentation for exact LED registers (often requiring a 3-byte or larger buffer).
rgb_status_led_ws2812.py
import smbus
import time
ADDR = 0x24
bus = smbus.SMBus(1)
# Registre de contrôle LED (Exemple fictif basé sur architecture M5Stack)
# Souvent les LEDs WS2812 sont contrôlées par un registre dédié ou via SPI interne
# Ici, on suppose un registre de commande LED accessible via I2C
REG_LED_CTRL = 0x50
# Fonction pour envoyer une couleur (R, G, B)
def set_led_color(r, g, b):
# Les WS2812 nécessitent souvent un format spécifique ou un buffer
# Exemple simplifié : Écriture directe si le firmware supporte le mapping RGB direct
# Sinon, il faut envoyer la séquence GRB
data = [g, r, b] # WS2812 est souvent GRB
try:
# Note : Vérifier si le module accepte les écritures de bloc pour la LED
# ou s'il faut passer par un registre de mode puis de valeur
bus.write_i2c_block_data(ADDR, REG_LED_CTRL, data)
except:
print("Erreur LED")
def blink_red():
while True:
set_led_color(255, 0, 0)
time.sleep(0.5)
set_led_color(0, 0, 0)
time.sleep(0.5)
if __name__ == "__main__":
print("Test LED Rouge")
blink_red()