mpaper_touch_paint.ino

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

Application de dessin basique utilisant le contrôleur tactile GT911 et le framebuffer e-Ink.

Matériel : M5Paper avec écran tactile capacitif. Logiciel : M5Paper.h. Exécution : Touchez l'écran pour dessiner des points. Le coin supérieur gauche sert de bouton 'Effacer'. Notez que l'e-Ink a un temps de rafraîchissement, donc le dessin peut paraître saccadé si update() est appelé trop souvent.

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);
  }
}

← Retour à la fiche