mpaper_touch_paint.ino

M5Stack M5Paper · Archivo : mpaper_touch_paint.ino · Lenguaje : C++ · Uso : Dessiner à l'écran tactile en temps réel avec le stylet ou le doigt.

Aplicación de dibujo básica que utiliza el controlador táctil GT911 y el framebuffer e-Ink.

Hardware: M5Paper con pantalla táctil capacitiva. Software: M5Paper.h. Ejecución: Toca la pantalla para dibujar puntos. La esquina superior izquierda actúa como botón 'Borrar'. Ten en cuenta que el e-Ink tiene tiempo de refresco, por lo que el dibujo puede parecer entrecortado si se llama a update() con demasiada frecuencia.

mpaper_touch_paint.ino

#include <M5Paper.h>

void setup() {
  M5.begin();
  M5.display.clear();
  M5.display.update();
  Serial.begin(115200);
}

void loop() {
  M5.update();
  
  // Vérifier si un toucher est détecté
  if (M5.TP.Touched()) {
    uint16_t x = M5.TP.GetX();
    uint16_t y = M5.TP.GetY();
    
    // Dessiner un point noir
    M5.display.drawPixel(x, y, BLACK);
    
    // Pour un effet "crayon", dessiner aussi les points adjacents
    M5.display.drawPixel(x + 1, y, BLACK);
    M5.display.drawPixel(x, y + 1, BLACK);
    M5.display.drawPixel(x - 1, y, BLACK);
    M5.display.drawPixel(x, y - 1, BLACK);
    
    // Mettre à jour l'écran (attention au clignotement e-Ink)
    // On peut limiter la fréquence de mise à jour pour la performance
    static uint32_t lastUpdate = 0;
    if (millis() - lastUpdate > 100) {
      M5.display.update();
      lastUpdate = millis();
    }
  }
  
  // Effacer l'écran si on touche le coin en haut à gauche
  if (M5.TP.Touched() && M5.TP.GetX() < 50 && M5.TP.GetY() < 50) {
    M5.display.clear();
    M5.display.update();
    delay(500);
  }
}

← Volver a la ficha