En bref
| |
|
| Public |
Étudiants débutants en programmation embarquée ; quelques bases de C ou de programmation suffisent |
| Volume |
39 h : 4 h 30 de cours (CM), 10 h 30 de TD, environ 24 h de projet |
| Format |
Des cours courts, des TD où chacun teste les modules de la mallette, conçoit sa carte, la soude et y fait tourner un Pong, puis un projet en binôme |
| Matériel |
Un PC avec VSCode, PlatformIO et KiCad ; la mallette de modules (TD2) ; la carte de la console, fournie au TD4 |
| Évaluation |
Les checkpoints des TD et le projet Snake : voir Évaluation de l’atelier |
Objectifs
À la fin de l’atelier, vous saurez :
- Expliquer ce qu’est un microcontrôleur : son architecture (CPU, mémoires, périphériques) et le chemin du code jusqu’à la puce
- Tester un module inconnu et piloter des entrées et des sorties : GPIO, ADC, PWM, lues proprement (anti-rebond, calibration)
- Faire dialoguer des composants : choisir et câbler un bus série (UART, I2C, SPI), piloter un écran
- Structurer un programme embarqué : une game loop qui ne bloque jamais, une machine à états, un code découpé en modules
- Concevoir un circuit imprimé sous KiCad, du schéma au routage, puis souder et tester une carte
- Relier un microcontrôleur à un navigateur : point d’accès Wi-Fi, serveur web, WebSocket
- Mener un projet en binôme : se former en autonomie, faire des choix et les documenter
Organisation
L’atelier suit trois phases, chacune préparant la suivante :
| Phase |
Volume |
Format |
Résultat |
| Cours (CM1 à CM3) |
3 × 1 h 30 |
En amphithéâtre, sans manipulation |
Le vocabulaire et les concepts |
| TD (TD1 à TD4) |
1 h 30 + 3 × 3 h |
En salle, chacun sur son montage |
Les modules testés, la carte conçue et soudée, un Pong qui y tourne |
| Projet |
Environ 24 h |
En binôme, en autonomie encadrée |
Un Snake multijoueur sur la carte soudée |
Pendant les TD, chacun construit sa console pas à pas, en suivant les tutoriels : d’abord les modules sur breadboard, puis la carte, enfin un premier jeu. Pendant le projet, il n’y a plus de pas à pas : vous concevez votre jeu en vous appuyant sur ce que les TD vous ont appris.
L’installation de VSCode et de PlatformIO, et surtout le premier téléchargement de la plateforme ESP32, prennent du temps. Faites-les chez vous avant le TD1 : voir Installer VSCode et Installer PlatformIO. Avant le TD3, installez aussi KiCad et parcourez ses bases.
Déroulé des séances
Cours (4 h 30)
Les trois cours ont lieu en premier, à la suite : ils posent tout le vocabulaire et les concepts que les TD mettent ensuite en pratique.
| Séance |
Durée |
Contenu |
Supports |
| CM1 |
1 h 30 |
Ce qu’est un microcontrôleur, son architecture, la chaîne du code à la puce |
Slides CM1 |
| CM2 |
1 h 30 |
Niveaux logiques et datasheet, GPIO, charge par MOSFET, pull-up, anti-rebond, interruptions, ADC et PWM |
Slides CM2 |
| CM3 |
1 h 30 |
Bus UART, I2C et SPI, game loop, machine à états |
Slides CM3 |
TD (10 h 30)
Les TD viennent après les trois cours, et construisent la console en trois temps : tester les modules sur breadboard, concevoir la carte qui les réunit, puis la souder et y faire tourner un premier jeu. Avant chaque TD, relisez les concepts qu’il met en pratique : ses prérequis sont indiqués en tête du tutoriel.
| Séance |
Durée |
Contenu |
Concepts mobilisés |
Supports |
| TD1 |
1 h 30 |
Créer le projet, flasher le premier programme, lire le port série |
CM1 |
Vérification de la toolchain, Port série |
| TD2 |
3 h |
Tester sur breadboard les modules de la mallette : bouton, joystick, buzzer, écran |
CM2, CM3 |
Les modules de la mallette |
| TD3 |
3 h |
Concevoir la carte sous KiCad : schéma, validation 1, routage, validation 2 |
CM2, CM3 |
Concevoir la carte de la console |
| TD4 |
3 h |
Souder et tester la carte finale fournie (environ 1 h 30), puis y écrire un Pong à un joueur |
CM3 |
Souder et tester la carte, Le Pong sur la console |
Chaque TD se termine par des checkpoints à faire valider par l’encadrant en séance : ils comptent dans l’évaluation. Un TD non terminé se rattrape avant le suivant, car chacun s’appuie sur le précédent. En particulier, le routage doit être validé avant le TD4, où la carte finale vous est remise.
Projet (environ 24 h)
Le projet démarre sur la carte soudée au TD4, avec le Pong comme point de départ. Le découpage ci-dessous suit les jalons de l’énoncé du projet ; il peut évoluer selon l’avancement des binômes.
| Séance |
Durée |
Contenu |
Jalon visé |
| P1 |
3 h |
Lancement du projet, binômes, repo ; le Snake et le rôle du joueur 2 sur papier |
|
| P2 |
3 h |
Le Snake en solo : grille, déplacement, direction |
|
| P3 |
3 h |
Le Snake en solo : nourriture, croissance, collisions, machine à états |
1. Snake en solo |
| P4 |
3 h |
Le réseau : point d’accès, page web, WebSocket ; le protocole écrit |
2. Squelette réseau |
| P5 |
3 h |
Le joueur 2 : sa page et son rôle |
|
| P6 |
3 h |
Le joueur 2 intégré au jeu, jouable de bout en bout |
3. Le joueur 2 |
| P7 |
3 h |
La robustesse : déconnexions, messages invalides, parties enchaînées ; les tests |
4. Robustesse |
| P8 |
3 h |
Finalisation du repo, répétition, démonstration |
5. Documentation et démo |
Supports : les slides de lancement du projet, l’énoncé, le concept Wi-Fi, HTTP et WebSocket et le tutoriel ESP32, Wi-Fi et WebSocket.
Le rythme dépend de votre avancement : un jalon non atteint se rattrape avant le suivant. Les dates des séances et de la démonstration vous sont communiquées en début de projet.
Entre les séances
- Pendant les TD : terminer les checkpoints non validés, relire le concept de la séance suivante.
- Pendant le projet :
- une entrée de journal de bord par séance (ce qui a été fait, pourquoi, ce qui reste) ;
- un repo à jour : commit et push à la fin de chaque session de travail ;
- les issues du binôme tenues à jour.
Ressources