Un nouvel espoir (de téléverser)
Padawan du fer à souderAcolyte du fer à souder ★ ⚠️ Méfie-toi du Côté Obscur : le câble USB « charge seulement ».⚠️ Arme rebelle repérée : le câble USB « charge seulement ». D'une cruauté remarquable.
📡 Transmission de l'Alliance · R2-DuPont
« Ton premier défi paraît simple : établir la connexion. Mais méfie-toi. Dans l'atelier, les plus grands ennemis ne sont pas les Seigneurs noirs. Ce sont les câbles USB « charge seulement ». »
🛰️ Haut commandement · Opération Contre-Circuit
« Les rebelles veulent couper notre liaison avec l'unité de contrôle. Rétablis la communication. Vérifie le câble USB. Nos renseignements confirment l'existence d'un modèle particulièrement dangereux : « charge seulement ». Une arme d'une cruauté remarquable. »
Objectif : préparer l'ordinateur, puis envoyer un tout premier programme dans l'ESP32 pour faire clignoter sa LED bleue. Pas de câblage : juste la carte et le câble.
🧭 Notions de la mission : La tension · L'intensité · La résistance · La LED · Les circuits · Anatomie d'un programme · Tableaux, boucles, fonctions · Le temps
Équipement de mission¶
💻 Logiciels
- Arduino IDE 2
- Cartes « esp32 » d'Espressif
- Pilote CP210x (Windows, si besoin)
🌐 Connexion internet
Oui : plusieurs centaines de Mo à télécharger
🔓 Missions à réussir avant
Aucune : c'est le point de départ !
🛠️ Outils
Un ordinateur Windows ou Linux
⏱️ Durée
30 à 45 min (surtout des téléchargements)
Étape 1 · Installer l'Arduino IDE¶
L'Arduino IDE est le logiciel dans lequel on écrit les programmes et qui les envoie dans la carte. Il est gratuit.
- Aller sur la page officielle : arduino.cc/en/software.
- Télécharger Arduino IDE 2 (version 2.3.10 au moment où on écrit ces lignes) pour ton système.
Lancer l'installeur téléchargé et accepter les choix proposés. Si Windows demande d'installer des pilotes (drivers) pendant l'installation, accepter.
Le fichier est une AppImage. La rendre exécutable, puis la lancer :
chmod +x arduino-ide_2.3.10_Linux_64bit.AppImage
./arduino-ide_2.3.10_Linux_64bit.AppImage --no-sandbox
Sans --no-sandbox, l'IDE s'arrête aussitôt avec une erreur chrome-sandbox sur certaines distributions : c'est normal, l'option règle le problème.
- Passer l'IDE en français : File → Preferences → Language → Français, puis redémarrer l'IDE.
Étape 2 · Apprendre à l'IDE à parler ESP32¶
À l'installation, l'IDE ne connaît que les cartes Arduino. Il faut lui ajouter les cartes ESP32.
- Ouvrir Fichier → Préférences.
-
Dans le champ « URL de gestionnaire de cartes supplémentaires », coller cette adresse officielle d'Espressif (le fabricant de l'ESP32) :
-
Valider avec OK.
- Ouvrir le gestionnaire de cartes : Outils → Carte → Gestionnaire de carte… (ou l'icône de carte électronique dans la barre de gauche).
- Chercher esp32, et installer « esp32 » par Espressif Systems.
Ne pas confondre
Il existe aussi « Arduino ESP32 Boards » par Arduino : ce n'est pas le bon. Prendre celui d'Espressif Systems.
Le téléchargement est gros (plusieurs centaines de Mo) : c'est le moment d'aller chercher un verre d'eau.
Étape 3 · Brancher la carte et vérifier que l'ordinateur la voit¶
Brancher l'ESP32 avec le câble de données. La LED rouge s'allume : la carte est alimentée.
- Faire un clic droit sur le bouton Démarrer → Gestionnaire de périphériques.
- Déplier Ports (COM et LPT) : une ligne « Silicon Labs CP210x USB to UART Bridge (COM3) » doit apparaître (le numéro peut varier).
- Si la carte apparaît avec un point d'exclamation jaune, installer le pilote officiel CP210x de Silicon Labs : silabs.com – pilotes CP210x, puis débrancher / rebrancher.
-
Juste après le branchement, taper :
Une ligne doit mentionner cp210x et ttyUSB0.
-
Autoriser ton utilisateur à utiliser le port série (une seule fois) :
Puis se déconnecter et se reconnecter de la session (ou redémarrer) pour que ce soit pris en compte.
-
Si
ttyUSB0apparaît puis disparaît aussitôt, le service brltty (pour les plages braille) l'intercepte. S'il ne te sert pas :
Rien n'apparaît du tout ?
Dans 9 cas sur 10, c'est le câble : c'est un câble de charge. Voir le câble USB.
Étape 4 · Régler l'IDE pour notre carte¶
Dans le menu Outils :
| Réglage | Choix | Remarque |
|---|---|---|
| Carte | esp32 → ESP32 Dev Module | Le modèle générique qui convient à notre carte |
| Port | COM3 (Windows) ou /dev/ttyUSB0 (Linux) | Celui qui apparaît quand la carte est branchée |
| Upload Speed | 921600 | Descendre à 115200 si le téléversement échoue |
| Tous les autres | Laisser par défaut |
Pour mieux comprendre ce qui se passe
Fichier → Préférences → cocher « Afficher les résultats détaillés pendant : le téléversement ». En cas de problème, les messages seront bien plus parlants.
Étape 5 · Écrire le programme¶
L'IDE propose un exemple Blink (Fichier → Exemples → 01.Basics → Blink), mais il ne marche pas tel quel sur notre carte : il utilise un nom, LED_BUILTIN, que la carte « ESP32 Dev Module » ne connaît pas. On obtient l'erreur :
On écrit donc notre propre version, en donnant directement le numéro de la broche de la LED bleue : 2.
- Fichier → Nouveau croquis.
- Effacer tout ce qui est écrit, déplier le programme ci-dessous, puis le taper (ou le copier) :
Le programme · cliquer pour l'afficher
// Mission 0 · Premier signal
// Fait clignoter la LED bleue de l'ESP32 et écrit ON / OFF à l'écran.
#define LED 2 // la LED bleue est reliée à la broche GPIO 2
void setup() { // setup() s'exécute UNE fois, au démarrage
pinMode(LED, OUTPUT); // la broche 2 devient une sortie
Serial.begin(115200); // on ouvre la communication avec l'ordinateur
Serial.println("R2-DuPont en ligne !");
}
void loop() { // loop() se répète à l'infini
digitalWrite(LED, HIGH); // allume la LED
Serial.println("ON");
delay(500); // attend 500 millisecondes (une demi-seconde)
digitalWrite(LED, LOW); // éteint la LED
Serial.println("OFF");
delay(500);
}
- Enregistrer : Fichier → Enregistrer sous… → mission0_premier_signal.
Ce qu'on apprend ici
Tout programme Arduino a deux parties : setup(), exécutée une seule fois au démarrage, et loop(), qui tourne en boucle pour toujours. Les lignes qui commencent par // sont des commentaires : l'ordinateur les ignore, ils servent aux humains.
🎓 Académie : Anatomie d'un programme · La LED
Étape 6 · Vérifier, puis téléverser¶
- Cliquer sur ✓ Vérifier (Ctrl+R) : l'IDE traduit le programme pour l'ESP32. La première fois, c'est long (une à deux minutes). Doit s'afficher : « Compilation terminée ».
- Cliquer sur → Téléverser (Ctrl+U) : le programme part dans la carte.
Dans la zone du bas, on doit voir défiler :
Bloqué sur « Connecting…….. » ?
Pendant que ces points défilent, maintenir le bouton BOOT de la carte appuyé, jusqu'à ce que « Writing at… » apparaisse. Puis le relâcher.
Étape 7 · Observer le résultat¶
- La LED bleue clignote : allumée une demi-seconde, éteinte une demi-seconde.
- Ouvrir le moniteur série : Outils → Moniteur série (ou la loupe en haut à droite). En bas de la fenêtre, régler la vitesse sur 115200 baud. Les messages défilent :
Pas de LED bleue sur ta carte ?
Certaines cartes n'en ont pas. Si le moniteur série affiche bien ON / OFF, le programme tourne : la mission est réussie quand même.
🎓 Académie : Le temps
Si ça coince¶
| Symptôme | Cause probable | Solution |
|---|---|---|
| Aucun port dans Outils → Port | Câble de charge, ou pilote manquant | Changer de câble ; installer le pilote CP210x (Windows) ; groupe dialout (Linux) |
'LED_BUILTIN' was not declared |
Exemple Blink d'origine | Utiliser notre code avec #define LED 2 |
Bloqué sur Connecting… |
La carte n'entre pas en mode programmation | Maintenir BOOT pendant la connexion |
Permission denied: /dev/ttyUSB0 (Linux) |
Droits sur le port série | sudo usermod -aG dialout $USER, puis se reconnecter |
| Le moniteur affiche des caractères bizarres | Mauvaise vitesse | Régler le moniteur sur 115200 baud |
| Tout marche mais la LED ne clignote pas | Pas de LED bleue sur cette carte | Le moniteur série fait foi |
OpenOCD: GDB Server Quit Unexpectedly, Can't find debug.cfg |
Le bouton Débogage (l'insecte ▷🐞) a été cliqué au lieu de Téléverser | Utiliser la flèche → Téléverser. Notre ESP32 ne peut pas être débogué sans sonde spéciale (JTAG) : on débogue avec Serial.println() |
| Une carte au nom inattendu (« ALKS ESP32 »…) en bas de la fenêtre | L'IDE a deviné la carte d'après la puce USB | Choisir soi-même Outils → Carte → ESP32 Dev Module (dans la famille ESP32 + Bluepad32 Arduino à partir de la mission 1) |
Défis bonus¶
Trois petits défis à partir du programme de la mission. Chaque solution est rangée dans un holocron scellé : essaie d'abord par toi-même, l'indice est là si tu bloques, et le code d'accès du maître de l'atelier ouvre la solution.
Défi 1 · Deux fois plus vite¶
Fais clignoter la LED deux fois plus vite. Quelle ligne faut-il changer ?
Indice
Les pauses sont écrites en millisecondes dans les delay(...). Combien y en a-t-il dans loop() ?
Défi 2 · Le battement de cœur¶
Fais un battement de cœur : deux clignotements rapides, puis une pause. Boum-boum… boum-boum…
Indice
Il faut un flash court, un petit silence, un deuxième flash court, puis une longue pause. Compte les delay dont tu as besoin.
Défi 3 · Ton prénom au démarrage¶
Écris ton prénom dans le moniteur série au démarrage, à la place de « R2-DuPont en ligne ! ».
Indice
Le message de démarrage est écrit une seule fois, dans setup(), entre guillemets.
Variante : quatre LEDs d'un coup (en parallèle)¶
Avant la piste d'atterrissage, une étape simple : 4 LEDs branchées toutes sur D2, avec le même programme que la mission 0. Elles clignotent toutes ensemble, en même temps que la LED bleue.
- Chaque LED a sa propre résistance de 330 Ω, et tous ces petits ensembles vont de D2 à GND.
- Ne pas partager une seule résistance pour plusieurs LEDs : elles s'allumeraient de façon inégale.
- Chaque LED tire environ 4 mA ; une broche supporte raisonnablement une vingtaine de mA, donc 3 ou 4 LEDs par broche, pas plus.
- Les brancher l'une derrière l'autre (en série) ne marche pas : il faudrait plus de 3,3 V pour les allumer toutes.

🎓 Académie : Les circuits · L'intensité · La résistance · La LED
Défi bonus : la piste d'atterrissage¶
Quatre LEDs qui s'allument l'une après l'autre, dans un sens puis dans l'autre, comme les feux d'une piste d'atterrissage de vaisseau. C'est ce qu'on appelle un chenillard.
Matériel du défi
- 4 LEDs classiques : rouge, jaune, verte… et même bleue (elle demande un peu plus de tension, mais chez nous elle s'allume bien, voir la vidéo)
- 4 résistances de 330 Ω (orange · orange · marron · or) — voir le code couleur
- Une plaque d'essai et 5 câbles Dupont mâle-mâle
Le câblage¶
Chaque LED a sa propre broche et sa propre résistance. Les résistances rejoignent toutes la ligne − de la plaque, elle-même reliée au GND du support.
| LED | Broche du support | Patte longue (+) | Patte courte (−) | Résistance |
|---|---|---|---|---|
| 1 | D18 | colonne 1 | colonne 2 | de la colonne 2 à la ligne − |
| 2 | D19 | colonne 4 | colonne 5 | de la colonne 5 à la ligne − |
| 3 | D21 | colonne 7 | colonne 8 | de la colonne 8 à la ligne − |
| 4 | D22 | colonne 10 | colonne 11 | de la colonne 11 à la ligne − |
| — | GND | câble vers la ligne − |
Pourquoi la résistance est-elle de l'autre côté cette fois ?
Elle peut se placer avant ou après la LED : ce qui compte, c'est qu'elle soit sur le chemin du courant. Ici, la mettre côté − permet de la brancher directement sur la ligne − de la plaque.
🎓 Académie : La résistance · Les circuits
En vrai¶

D'autres angles dans les holo-archives.
Le code¶
🎓 Académie : Tableaux, boucles, fonctions · Le temps
À toi d'écrire le programme ! Il doit allumer D18, D19, D21 et D22 l'une après l'autre, puis revenir en arrière.
Indice 1
Commence avec une seule LED sur D18 : c'est le programme de la mission 0 avec 18 à la place de 2. Puis ajoute les autres, une par une.
Indice 2
Un tableau évite d'écrire quatre fois la même chose : const int LEDS[] = {18, 19, 21, 22};. Ensuite, LEDS[0] vaut 18, LEDS[1] vaut 19… et une boucle for peut les parcourir.
Pour aller plus loin¶
- Change
VITESSEpour un décollage en urgence (50) ou une approche en douceur (400). - Allume les LEDs deux par deux, puis toutes ensemble pour un « feu vert, décollage autorisé ».
Indice
Crée une fonction paire(a, b) qui allume deux LEDs en même temps, et une fonction toutes(etat) qui allume ou éteint les quatre d'un coup.
Validation¶
- L'Arduino IDE est installé, en français
- Les cartes ESP32 d'Espressif sont installées
- L'ordinateur voit la carte (un port apparaît)
- Le programme se téléverse sans erreur
- La LED bleue clignote et le moniteur série affiche ON / OFF
- Bonus : la piste d'atterrissage fonctionne