stick_imu.py

M5StickC Plus2 (M5Stack) — kit portable « stick » ESP32-PICO-V3-02 (SKU K016-P2) · Fichier : stick_imu.py · Langage : MicroPython · Usage : Lire l'accéléromètre du stick en MicroPython

Le firmware MicroPython M5Stack tourne sur le Plus2 : imu.accel() et lcd.text suffisent pour un inclinomètre scripté. En mode disque, on itère au drag-and-drop sans toolchain.

Matériel requis

Un M5StickC Plus2 (ESP32-PICO-V3-02, écran 135×240, boutons A/B/C, buzzer passif G2, IR + LED rouge G19, IMU MPU6886, micro, batterie 200 mAh). Aucun (firmware MicroPython M5Stack flashé).

Branchement

Aucun câblage. Flash via esptool/M5Launcher, copie de main.py en mode disque USB.

Fonctionnement

Le module imu encapsule le MPU6886 et renvoie les trois axes en g ; le dessin lcd efface la zone puis redessine (pas de framebuffer). Le cercle suit la gravité. Dans l'Arduino IDE (paquet esp32), carte « M5StickCPlus2 » ; bibliothèque « M5StickCPlus2 » ou M5Unified. Sur la v2 sans PMIC, maintenez le bouton C > 2 s pour allumer ; HOLD (G4) maintient l'alimentation.

Pour aller plus loin

Ajoutez le buzzer (module speaker) pour un niveau à bulle sonore, ou loguez l'activité en fichier .csv.

stick_imu.py

# MicroPython M5StickC : IMU + ecran sans Arduino IDE.
# Firmware « M5StickC » (base M5Stack) flash sur le Plus2.
from m5stack import lcd, imu
import time

lcd.clear()
lcd.text(10, 10, "IMU MicroPython", lcd.WHITE, 3)

while True:
    ax, ay, az = imu.accel()          # en g, tuple
    roll = int(180 * ay / 9.81)       # approximation petits angles
    pitch = int(180 * ax / 9.81)
    lcd.rect(0, 60, 240, 80, lcd.BLACK, lcd.BLACK)
    lcd.text(10, 66, "ax=%+.2f ay=%+.2f" % (ax, ay), lcd.GREEN, 3)
    lcd.text(10, 96, "roll=%+d pitch=%+d" % (roll, pitch), lcd.CYAN, 2)
    # fleche vers le bas = gravite
    x = 120 + max(-100, min(100, int(ax * 100)))
    y = 120 + max(0, min(14, int(ay * 14)))
    lcd.circle(x, y, 5, lcd.RED, lcd.RED)
    time.sleep_ms(80)

← Retour à la fiche