À faire avant la séance
L’installation de PlatformIO (voir le prérequis ci-dessus) et du support ESP32 doit être terminée.
Installer la chaîne ESP32-S3 et valider ton premier flashage
Vérification de la toolchain
Configurer PlatformIO pour la XIAO ESP32S3 et faire clignoter la LED embarquée, avant d'ajouter une LED externe.
Pré-requis :
Logiciels :
Ce tutoriel a pour but de vérifier que chacun a une chaîne de développement fonctionnelle avant d’attaquer la suite des aventures sur les microcontrôleurs. Au TD2, ce même montage accueillera les modules de la mallette ; au TD3, vous concevrez la carte qui les réunit.
Dans VSCode, ouvre l’onglet PlatformIO (icône fourmi dans la barre latérale) puis New Project.
Configure :
pong-esp32Seeed Studio XIAO ESP32S3ArduinoPlatformIO génère un dossier avec un fichier platformio.ini et un dossier src/ contenant main.cpp. Ajoute la ligne monitor_speed à la main.
; platformio.ini
[env:seeed_xiao_esp32s3]
platform = espressif32
board = seeed_xiao_esp32s3
framework = arduino
monitor_speed = 115200
Le connecteur USB-C de la XIAO est relié directement à l’USB natif de l’ESP32-S3 : il n’y a pas de puce USB-série, donc aucun driver à installer. Branche la carte avec un câble USB-C qui transporte des données (beaucoup de câbles ne font que charger).
COM apparaît dans le Gestionnaire de périphériques (« Périphérique série USB »)./dev/cu.usbmodem…./dev/ttyACM0 ; ton utilisateur doit appartenir au groupe dialout pour y accéder sans sudo.PlatformIO détecte le port tout seul au moment de l’upload.
Remplace le contenu de src/main.cpp par le code ci-dessous, puis clique sur Upload (flèche →) dans la barre bleue PlatformIO en bas de VSCode.
#include <Arduino.h>
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); // LOW allume la LED de la XIAO
delay(500);
digitalWrite(LED_BUILTIN, HIGH); // HIGH l'éteint
delay(500);
}
La LED orange intégrée (LED_BUILTIN) doit clignoter à 1 Hz. Montre ta carte qui clignote avant de passer à la suite : c’est la seule sortie attendue de ce TD1.
S’il te reste du temps, câble une LED externe avec sa résistance série entre la broche D3 (GPIO4) et GND. C’est ta première sortie physique : un montage d’essai, à retirer ensuite : au TD2, D3 accueille le buzzer de la mallette, et sur la carte de la console, le connecteur I2C.

La photo montre une autre carte ESP32-S3 : le principe est le même, seule la broche change (D3 sur la XIAO). Cette LED externe est câblée de façon classique (anode côté broche) : HIGH l’allume.
Voici le code nécessaire au fonctionnement de cette démonstration.
#include <Arduino.h>
constexpr int LED_PIN = D3; // GPIO4
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
Le calcul de la résistance série est détaillé dans le concept GPIO & monde numérique.