🛠 Utiliser les GPIO avec le M5Paper
Objectifs
Ce tutoriel vise à comprendre le fonctionnement des broches GPIO (General Purpose Input/Output) sur le M5Paper. Vous apprendrez à configurer une broche en sortie pour commander un composant externe simple, comme une LED, et à lire un état logique. Bien que le M5Paper soit principalement conçu pour l'affichage e-Ink, son cœur ESP32-D0WDQ6-V3 offre une flexibilité IoT classique. Nous allons explorer comment exploiter ces ressources matérielles pour des interactions physiques basiques, essentielles pour tout projet d'automatisation ou de capteur connecté.
Matériel nécessaire
- Une carte M5Paper (basée sur ESP32-D0WDQ6-V3)
- Un câble USB-C pour l'alimentation et le transfert de données
- Un ordinateur avec l'Arduino IDE installé (version 2.x recommandée)
- Une LED rouge et une résistance de 220 ohms (optionnel, pour la démonstration physique)
- Des fils de connexion (jumpers) si vous utilisez des composants externes
Étapes
- Configuration de l'environnement : Ouvrez l'Arduino IDE. Assurez-vous que le gestionnaire de cartes pour les kits M5Stack est installé. Sélectionnez le type de carte « M5Stack » et le port série correspondant à votre M5Paper.
- Comprendre le schéma de brochage : Le M5Paper expose plusieurs broches GPIO via son connecteur Grove ou ses pads de soudure. Pour ce tutoriel, nous utiliserons une broche GPIO standard. Notez que la broche spécifique dépend de votre configuration physique, mais le code reste identique pour la logique GPIO.
- Écrire le code de base : Créez un nouveau croquis. Dans la fonction
setup(), définissez la broche comme sortie. Dansloop(), alternez l'état de la broche pour simuler un clignotement ou une commande simple.
const int ledPin = 18; // Exemple de broche GPIO disponible
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
- Téléversement : Cliquez sur le bouton « Téléverser ». Surveillez la sortie série pour confirmer que le code s'exécute sans erreur. Si vous avez connecté une LED, elle devrait clignoter.
- Lecture d'entrée (Optionnel) : Modifiez le code pour utiliser
pinMode(pin, INPUT_PULLUP)etdigitalRead(pin)pour lire l'état d'un bouton poussoir connecté à une autre broche.
Vérification
Ouvrez le moniteur série à 115200 bauds. Si vous avez ajouté des instructions Serial.println(), vous devriez voir les états logiques s'afficher. Pour la sortie, observez le comportement de la LED ou mesurez la tension avec un multimètre entre la broche GPIO et la masse (GND). Une tension proche de 3,3V indique un état HIGH, et proche de 0V un état LOW.
Pour aller plus loin
Explorez les interruptions GPIO pour réagir instantanément aux changements d'état sans utiliser delay(), libérant ainsi le processeur pour d'autres tâches comme la mise à jour de l'écran e-Ink. Vous pouvez également combiner ces entrées-sorties avec le Wi-Fi pour envoyer des données à un serveur.