stick_imu.py

M5StickC Plus2 (M5Stack) — kit vestible "stick" con ESP32-PICO-V3-02 (SKU K016-P2) · Archivo : stick_imu.py · Lenguaje : MicroPython · Uso : Lire l'accéléromètre du stick en MicroPython

El firmware MicroPython de M5Stack corre en el Plus2: imu.accel() y lcd.text bastan para un inclinómetro guionado. En modo disco, se itera arrastrando y soltando, sin toolchain.

Hardware necesario

Un M5StickC Plus2 (ESP32-PICO-V3-02, pantalla de 135×240, botones A/B/C, zumbador pasivo en G2, IR + LED rojo en G19, IMU MPU6886, micrófono, batería de 200 mAh). Ninguno (firmware MicroPython M5Stack programado).

Cableado

Sin cableado. Flash con esptool/M5Launcher, copia de main.py en modo disco USB.

Funcionamiento

El módulo imu envuelve el MPU6886 y devuelve tres ejes en g; el dibujo lcd borra la zona y redibuja (sin framebuffer). El círculo sigue la gravedad. En el Arduino IDE (paquete esp32), placa « M5StickCPlus2 »; biblioteca « M5StickCPlus2 » o M5Unified. En la v2 sin PMIC, mantenga el botón C más de 2 s para encender; HOLD (G4) mantiene la alimentación.

Para ir más lejos

Añada el zumbador (módulo speaker) para un nivel de burbuja sonoro, o registre la actividad en un .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)

← Volver a la ficha