Vérification de la toolchain

Installer la chaîne ESP32-S3 et valider ton premier flashage

Vérification de la toolchain

Configurer PlatformIO pour l'ESP32-S3 et faire clignoter la LED embarquée, avant d'ajouter une LED externe.

Durée :
Difficulté :
Documentation réalisée à 70% 70
Créée par :  Alban Petit

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. Chaque TD suivant ajoutera un périphérique au même montage : le câblage posé ici ne bougera plus.

  À faire avant la séance

L’installation de PlatformIO (voir le prérequis ci-dessus) et du support ESP32 doit être terminée.

1 - Créer le projet PlatformIO

Dans VSCode, ouvre l’onglet PlatformIO (icône fourmi dans la barre latérale) puis New Project.

Configure :

  • Name : pong-esp32
  • Board : Espressif ESP32-S3-DevKitC-1 (N16R8) (ou la référence exacte de ta carte)
  • Framework : Arduino

PlatformIO génère un dossier avec un fichier platformio.ini et un dossier src/ contenant main.cpp.

; platformio.ini généré
[env:esp32-s3-devkitc-1]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200

2 - Installer les drivers USB-série

La carte communique avec l’ordinateur via une puce USB-série (CP2102 ou CH340 selon le modèle). Sans le bon driver, le port ne s’affiche pas dans la liste des ports disponibles.

  • Windows : installer le driver du fabricant (Silicon Labs CP210x ou WCH CH340) si le Gestionnaire de périphériques affiche un point d’exclamation.
  • macOS / Linux : généralement reconnu nativement ; sur Linux, ton utilisateur doit appartenir au groupe dialout pour accéder au port sans sudo.

3 - Flasher le blink de base

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.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
}
  Ça ne flashe pas ?

Si l’upload échoue avec une erreur de timeout, maintiens le bouton BOOT de la carte appuyé pendant les 2 premières secondes de l’upload (jusqu’à ce que la ligne Writing at... apparaisse), puis relâche.

  La LED n'est pas une simple LED

Sur l’ESP32-S3-DevKitC-1, la LED embarquée est une RGB adressable (WS2812), pas une LED monochrome. Si digitalWrite(LED_BUILTIN, ...) ne produit aucun clignotement, remplace le corps de loop() par rgbLedWrite(RGB_BUILTIN, 40, 0, 0); puis rgbLedWrite(RGB_BUILTIN, 0, 0, 0); (en gardant les delay(500)). Sur une carte à LED monochrome, le code d’origine fonctionne tel quel.

4 - Validation individuelle

La LED 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.

Bonus - LED externe sur breadboard

S’il te reste du temps, câble une LED externe avec sa résistance série. C’est la première brique physique du montage qui restera figée jusqu’au projet.

BreadBoard

Voici le code nécessaire au fonctionnement de cette démonstration.

#define LED_PIN 4

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.

  Rendez-vous au tutoriel suivant

Le prochain tutoriel réutilise cette même carte et ce même projet PlatformIO : garde ton câblage tel quel, tu ajouteras boutons et joystick sans rien démonter.