# Formation Arduino (ESP32-S3) Support de formation en 13 modules (00 à 12) plus une synthèse du matériel. Les sources sont en Markdown [Quarto](https://quarto.org) (`modules/*.qmd`) et produisent des PDF. | Fichier | Sujet | |---|---| | `00-installation` | Installation de l'environnement | | `01-architecture` | Découverte du microcontrôleur ESP32-S3 | | `02-gpio-neopixel` | Entrées/sorties numériques et LED NeoPixel | | `03-pwm-adc` | Signaux analogiques : PWM et ADC | | `04-serie-debug` | Communication série et débogage | | `05-i2c-spi` | Bus I2C et SPI | | `06-interruptions-timers` | Interruptions matérielles et timers | | `07-wifi` | Wi-Fi : station, point d'accès, client HTTP | | `08-serveurweb` | Serveur web embarqué | | `09-ble` | Bluetooth Low Energy | | `10-energie` | Gestion de l'énergie | | `11-mqtt` | IoT et MQTT | | `12-projetfinal` | Projet final | | `synthese-materiel` | Synthèse et liste de matériel | ## Générer les documents sans ligne de commande Après avoir téléchargé le dépôt (bouton « Télécharger » → ZIP, puis décompresser), double-cliquez sur le fichier correspondant à votre système : | Système | Fichier à lancer | |---|---| | Windows | `Generer-documents.bat` | | macOS | `Generer-documents.command` (la première fois : clic droit → Ouvrir, pour passer l'avertissement de sécurité) | | Linux | `generer-documents.sh` (clic droit → « Exécuter comme un programme », ou `./generer-documents.sh` dans un terminal) | Une fenêtre s'ouvre et vous guide : 1. elle vérifie que **Python**, **Quarto** et les polices **Noto Sans / Noto Sans Mono** sont installés, et propose de les installer automatiquement sinon (sous Linux, les polices sont généralement déjà présentes) ; 2. elle prépare l'environnement Python des schémas (dossier `.venv`, une seule fois) ; 3. elle vous demande le **format** (PDF, LibreOffice .odt ou site web HTML) et les **supports** à produire (tous, ou un seul module) ; 4. elle génère les documents et ouvre le dossier `_output/modules` qui les contient. Il suffit de taper le numéro de votre choix puis Entrée (Entrée seul = choix par défaut). ## Organisation ``` modules/ sources des supports (.qmd) scripts/ assistant de génération (appelé par les fichiers Generer-documents.*) modele/ gabarit PDF (Typst) et thème de coloration du code schemas/ schémas décrits en Python (schemdraw + matplotlib), rendus en svg/ et png/ _quarto.yml configuration du projet _output/ PDF générés (non versionnés) ``` ## Produire les PDF Prérequis : [Quarto](https://quarto.org/docs/get-started/) (inclut Pandoc et Typst) et les polices libres [Noto Sans et Noto Sans Mono](https://notofonts.github.io/) (paquets `noto-fonts` sous Arch, `fonts-noto-core fonts-noto-mono` sous Debian/Ubuntu). ``` quarto render # tous les supports quarto render modules/03-pwm-adc.qmd # un seul support ``` Les PDF sont créés dans `_output/modules/`. Pour obtenir aussi du Word ou de l'ODT, ajouter `docx:` ou `odt:` sous `format:` dans `_quarto.yml`. ## Modifier ou ajouter un schéma Les images de `schemas/svg/` sont versionnées : il n'est nécessaire de les régénérer que si l'on modifie un schéma. ``` python -m venv .venv .venv\Scripts\python -m pip install -r schemas/requirements.txt .venv\Scripts\python schemas\generer.py # ou : generer.py m03 ``` Un schéma est une fonction Python déclarée dans `schemas/mXX_*.py` (liste `FIGURES`), puis appelée dans le `.qmd` : ```markdown ![Légende de la figure](../schemas/svg/m03-servo-50hz.svg){#fig-m03-servo-50hz} ``` ## Historique Les supports étaient à l'origine au format `.odt` ; ils restent récupérables via le tag `avant-quarto`.