Algorithmique appliquée au SIN — Terminale STI2D
Finalité de la séquence
Concevoir, traduire et tester des algorithmes qui exploitent des capteurs et pilotent des actionneurs, d’abord en Python (simulation), puis en C sur microcontrôleur (Arduino).
Acquisition
Traitement
Filtrage
Commande
Communication
Validation
Compétences visées
- Analyser un besoin et identifier les entrées/sorties d’un système.
- Formaliser un algorithme (logigramme, pseudo-code, table de décision).
- Implanter et comparer une solution en Python puis en C.
- Tester, mesurer, interpréter et valider le fonctionnement.
- Améliorer la robustesse (anti-rebond, hystérésis, moyenne glissante).
Déroulé des séances
-
Algorithme, système, variables
Logigramme d’un système simple (ex: seuil de luminosité) → pseudo-code → simulation Python. -
Structures de contrôle & acquisition
Conditions, boucles, variables. Python (données simulées) puis Arduino (LDR, température, bouton). -
Traitement de données
Bruit de mesure, moyenne glissante, hystérésis, anti-rebond. Comparaison Python ↔ C. -
Commande d’actionneurs
Séquence logique et temporisations. Servo/LED/moteur; intégration sur un sous-système projet. -
Communication
Trames série et I²C (notions). Python ↔ Arduino, formatage et décodage minimal. -
Mini-projet d’évaluation
Cahier des charges court, schéma-bloc, pseudo-code, code fonctionnel, preuve de tests.
Contenus clés
Python (simulation)
- Structures: if/elif/else, for/while, fonctions.
- Listes de mesures, calculs glissants, tracés simples.
- Échanges via port série (console) pour visualisation.
C / Arduino (embarqué)
- Lecture analogRead()/digitalRead(), mappage et seuils.
- Anti-rebond, hystérésis, millis() pour temporisations.
- Pilotage servo/LED/moteur, trames série minimales.
Matériel & logiciels
- Carte Arduino UNO + Grove Beginner Kit (LDR, bouton, temp, etc.).
- Robot/servo ou sous-système du projet SIN.
- Environnement Python et IDE Arduino. Simulateur possible (Wokwi/Tinkercad).
Évaluation (mini-projet)
| Critère | Attendus |
|---|---|
| Compréhension du besoin | Entrées/sorties correctement identifiées, contraintes notées. |
| Formalisation | Logigramme lisible, pseudo-code structuré et cohérent. |
| Implantation | Python et C fonctionnels, choix techniques justifiés. |
| Validation | Mesures pertinentes, preuves de tests, interprétation claire. |
| Méthode | Versionnement simple, commentaires, schéma-bloc propre. |
Barème indicatif: 5 × 4 pts = 20
À la fin de la séquence, vous savez…
- Relier un besoin à un algorithme et à du code.
- Rendre une décision plus robuste avec filtrage et hystérésis.
- Commander un actionneur et échanger des données simples.
Conseil: gardez vos schémas et pseudo-codes, ils serviront pour le projet.