Illustre les modules 0 à 2 (9 figures)
Bibliothèque commune schemas/outils.py (boîtes, flèches, chronogrammes, séquences). M0 : chaîne de développement, séquence BOOT/RESET. M1 : architecture, comparatif Uno/ESP32-S3, diviseur de tension. M2 : pull-up, rebonds, chenillard, protocole WS2812. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d933e348c0
commit
30d0e356a6
@@ -68,10 +68,14 @@ Une fois le paquet installé :
|
||||
Si l'upload échoue avec un message « Failed to connect », maintenez le bouton BOOT appuyé, appuyez brièvement sur RESET, relâchez BOOT, puis relancez le téléversement. Ce geste force la carte en mode bootloader.
|
||||
:::
|
||||
|
||||
{#fig-m00-boot-reset width=90%}
|
||||
|
||||
## 5. Premier programme : Blink
|
||||
|
||||
Nous allons vérifier que toute la chaîne (code → compilation → upload → exécution) fonctionne, en faisant clignoter la LED intégrée.
|
||||
|
||||
{#fig-m00-chaine-developpement}
|
||||
|
||||
```cpp
|
||||
// Sur la plupart des DevKitC ESP32-S3, la LED simple (non RGB) est sur la broche 2.
|
||||
// Vérifiez la sérigraphie de votre carte : elle peut varier.
|
||||
|
||||
@@ -17,6 +17,8 @@ L'ESP32-S3 va plus loin qu'un microcontrôleur classique (type ATmega328 de l'Ar
|
||||
|
||||
## 2. Architecture interne de l'ESP32-S3
|
||||
|
||||
{#fig-m01-architecture}
|
||||
|
||||
### 2.1 Cœurs de calcul
|
||||
|
||||
- Double cœur Xtensa LX7 cadencé jusqu'à 240 MHz.
|
||||
@@ -49,10 +51,14 @@ L'ESP32-S3 dispose d'un contrôleur USB OTG natif, permettant la programmation e
|
||||
| Broches ADC | 10 bits, 5 entrées | 12 bits, jusqu'à 20 entrées |
|
||||
| PWM | Limité (Timer matériel) | LEDC — jusqu'à 8 canaux configurables |
|
||||
|
||||
{#fig-m01-uno-vs-s3}
|
||||
|
||||
::: {.callout-warning title="Point de vigilance : tension 3,3 V"}
|
||||
Toutes les broches GPIO de l'ESP32-S3 fonctionnent en logique 3,3 V et ne tolèrent pas 5 V en entrée. Un signal 5 V (capteur, module tiers) doit être abaissé via un diviseur de tension ou un convertisseur de niveau logique avant d'être connecté à une broche.
|
||||
:::
|
||||
|
||||
{#fig-m01-diviseur-tension width=65%}
|
||||
|
||||
## 4. Lire le brochage (pinout) de la carte
|
||||
|
||||
Avant de câbler quoi que ce soit, il est indispensable de repérer sur votre carte :
|
||||
|
||||
@@ -35,6 +35,8 @@ Une entrée numérique non connectée (« flottante ») peut lire un état aléa
|
||||
- `INPUT_PULLUP` : la broche est tirée à 3,3 V par défaut (état HIGH) ; le bouton doit relier la broche à GND pour donner un état LOW à l'appui.
|
||||
- `INPUT_PULLDOWN` : disponible sur l'ESP32-S3 (contrairement à l'AVR classique) — la broche est tirée à 0 V par défaut.
|
||||
|
||||
{#fig-m02-pull-up width=70%}
|
||||
|
||||
```cpp
|
||||
#define BUTTON_PIN 5
|
||||
|
||||
@@ -56,10 +58,14 @@ void loop() {
|
||||
Un bouton mécanique génère plusieurs transitions HIGH/LOW parasites en quelques millisecondes lors de l'appui. Un simple `delay(50)` après lecture suffit pour un usage pédagogique ; pour un projet robuste, on mesure le temps écoulé avec `millis()` plutôt que d'utiliser `delay()` (voir Module 6 sur les interruptions et timers).
|
||||
:::
|
||||
|
||||
{#fig-m02-rebonds}
|
||||
|
||||
## 3. Exercice guidé : chenillard de LED
|
||||
|
||||
Câblez 4 LED (avec résistances de 220 Ω) sur 4 GPIO libres, puis reproduisez un effet de chenillard :
|
||||
|
||||
{#fig-m02-chenillard width=75%}
|
||||
|
||||
```cpp
|
||||
const int leds[] = {4, 5, 6, 7};
|
||||
const int nbLeds = 4;
|
||||
@@ -87,6 +93,8 @@ Contrairement à une LED classique qui ne prend que deux états (allumé/éteint
|
||||
|
||||
Le protocole WS2812 impose un timing très précis (de l'ordre de la centaine de nanosecondes) pour distinguer un bit 0 d'un bit 1. Le générer « à la main » avec digitalWrite serait peu fiable ; on utilise donc une bibliothèque dédiée qui exploite les ressources matérielles du microcontrôleur pour respecter ce timing.
|
||||
|
||||
{#fig-m02-ws2812}
|
||||
|
||||
### 4.2 Installation de la bibliothèque
|
||||
|
||||
- Dans l'IDE : Croquis \> Inclure une bibliothèque \> Gérer les bibliothèques.
|
||||
|
||||
Reference in New Issue
Block a user