Aller au contenu

📚 SĂ©quence SNT – Informatique EmbarquĂ©e et Objets ConnectĂ©s

Guide professeur – Vue d'ensemble


Organisation de la séquence (4 séances)

Séance Titre Notions du programme couvertes Durée Outils
S01 Présentation générale SystÚmes embarqués, capteurs, actionneurs, IHM, IoT, sûreté, sécurité 1h Notebook Jupyter
S02 Réaliser une IHM avec micro:bit IHM, capteur, actionneur, acquisition de données, commande 2h Tinkercad + micro:bit (MicroPython)
S03 Projet : concevoir son propre objet connecté IHM complÚte, algorithme de contrÎle, capteur + actionneur 2h Tinkercad + micro:bit (MicroPython)
S04 Évaluation Toutes les notions de la sĂ©quence 1h Notebook Jupyter

Couverture du programme officiel

Contenus et capacités attendues

Contenu Capacité attendue Séance
SystÚmes informatiques embarqués Identifier des algorithmes de contrÎle des comportements physiques à travers les données des capteurs, l'IHM et les actions des actionneurs S01, S02
Interface homme-machine (IHM) Réaliser une IHM simple d'un objet connecté S02, S03
Commande d'un actionneur Écrire des programmes simples de commande d'un actionneur S02, S03
Acquisition de donnĂ©es d'un capteur Écrire des programmes simples d'acquisition de donnĂ©es S02, S03

Toutes les capacités du programme sont couvertes.


Prérequis élÚves

  • Bases Python : variables, boucles for et while, conditions if/elif/else, fonctions simples
  • Utilisation basique d'un navigateur web (pour Tinkercad)
  • Pas de prĂ©requis en Ă©lectronique : Tinkercad est entiĂšrement simulĂ©

Fichiers de la séquence

Fichier Type Destination
S01_presentation_informatique_embarquee.ipynb Notebook élÚve Distribuer en début de S01
S01_CORRECTION.ipynb Notebook professeur Usage professeur uniquement
S02_IHM_microbit_tinkercad.ipynb Notebook élÚve Distribuer en début de S02
S02_CORRECTION.ipynb Notebook professeur Usage professeur uniquement
S03_projet_IHM_autonomie.ipynb Notebook élÚve Distribuer en début de S03
S03_CORRECTION.ipynb Notebook professeur Usage professeur uniquement
S04_evaluation.md Évaluation Ă©lĂšve Distribuer en dĂ©but de S04

Notes pédagogiques par séance

SĂ©ance 1 – PrĂ©sentation gĂ©nĂ©rale (1h)

Objectif principal : poser le vocabulaire de base et donner du sens à la notion de systÚme embarqué.

Point d'attention : bien distinguer les trois composants fondamentaux : capteur (mesure → numĂ©rique), actionneur (numĂ©rique → action physique), IHM (interaction humaine). La confusion entre capteur et actionneur est trĂšs frĂ©quente chez les Ă©lĂšves — par exemple, croire que le thermomĂštre « chauffe » la piĂšce.

Déroulement suggéré : - 10 min : accroche par une vidéo ou une photo de carte micro:bit / voiture autonome - 20 min : lecture de la partie cours (Parties 1 à 4) avec commentaires oraux - 25 min : questions 1 à 5 en autonomie ou binÎme - 5 min : mise en commun sur la synthÚse finale

DiffĂ©renciation : - La question 3 (voiture autonome) peut ĂȘtre approfondie par les Ă©lĂšves rapides grĂące Ă  une recherche documentaire sur les niveaux d'autonomie SAE (0 Ă  5). - La question 5 (attaque Mirai) peut faire l'objet d'une discussion orale collective si le temps manque pour une rĂ©ponse Ă©crite.

Erreurs frĂ©quentes : - Confondre sĂ»retĂ© (safety) et sĂ©curitĂ© (security) — deux mots proches en français mais distincts techniquement - Penser que seuls les ordinateurs et smartphones contiennent des systĂšmes embarquĂ©s - Ne pas trouver d'exemples au-delĂ  du smartphone et de la voiture

Questions bonus pour les élÚves avancés : - Un distributeur de billets : quels sont ses capteurs, actionneurs et IHM ? - Cherchez la différence entre un microprocesseur et un microcontrÎleur. - Est-ce que votre téléphone est un systÚme embarqué ? Justifiez.


SĂ©ance 2 – RĂ©aliser une IHM avec Tinkercad (2h)

Objectif principal : passer Ă  la pratique — programmer une carte micro:bit simulĂ©e pour crĂ©er une IHM fonctionnelle avec un capteur et un actionneur.

Pré-requis technique : créer un compte Tinkercad est gratuit et ne nécessite pas d'adresse e-mail avec certaines configurations (compte « élÚve » possible). Prévoir 5 min en début de séance pour la connexion.

DĂ©roulement suggĂ©rĂ© : - 5 min : connexion Tinkercad et crĂ©ation du projet - 20 min : ActivitĂ© 1 – prise en main (display.scroll, display.show) - 30 min : ActivitĂ© 2 – boutons et compteur (was_pressed, while True) - 40 min : ActivitĂ© 3 – station mĂ©tĂ©o (capteur tempĂ©rature + IHM complĂšte) - 15 min : ActivitĂ© 4 (bonus) + question finale de bilan - 10 min : mise en commun collective

Point d'attention – erreur piĂšge : dans l'ActivitĂ© 3, le code de dĂ©part Ă©crit temperature = temperature(), ce qui crĂ©e un conflit de nom : Python Ă©crase la fonction temperature() avec la variable du mĂȘme nom. À la deuxiĂšme itĂ©ration de la boucle, l'appel de temperature() provoque une erreur TypeError. Insister sur ce point — c'est l'erreur la plus frĂ©quente et la plus dĂ©routante. La solution est de nommer la variable t, temp ou temp_c.

Point d'attention – is_pressed() vs was_pressed() : is_pressed() renvoie True tant que le bouton est maintenu, ce qui fait s'incrĂ©menter un compteur des dizaines de fois par seconde. was_pressed() se dĂ©clenche une seule fois par appui. Ce point mĂ©rite une dĂ©monstration en direct.

Point d'attention – display.scroll() bloquant : par dĂ©faut, display.scroll() bloque l'exĂ©cution du programme jusqu'Ă  la fin du dĂ©filement. Si des boutons sont appuyĂ©s pendant ce temps, ils ne sont pas dĂ©tectĂ©s. Montrer le paramĂštre wait=False comme solution.

Tableau des erreurs fréquentes :

Erreur Cause Correction
temperature = temperature() Conflit de nom variable/fonction Renommer : t = temperature()
is_pressed() dans un compteur Incrémentation en boucle rapide Utiliser was_pressed()
Oubli de while True Programme s'exécute une seule fois Encapsuler dans while True
display.scroll() qui bloque Comportement bloquant par défaut Ajouter wait=False
Indentation incorrecte SyntaxError ou comportement inattendu Vérifier 4 espaces dans while

Remarque sur la matrice LED : c'est un excellent exemple pĂ©dagogique de composant polyvalent — elle est Ă  la fois IHM sortie (communique une info Ă  l'utilisateur), actionneur (produit de la lumiĂšre) et mĂȘme capteur (mesure la luminositĂ© ambiante en mode lecture). Utiliser ce cas pour montrer que les catĂ©gories ne sont pas toujours exclusives.

Activité bonus (dé) : utilise les images personnalisées Image("...") et l'indexation de liste. Réservée aux élÚves maßtrisant déjà les listes Python.


SĂ©ance 3 – Projet en autonomie (2h)

Objectif principal : concevoir et programmer un objet connecté complet de A à Z, en autonomie guidée.

DĂ©roulement suggĂ©rĂ© : - 15 min : choix du projet, remplissage de la fiche de projet et du tableau des composants - 20 min : rĂ©daction de l'algorithme en pseudo-code → validation professeur obligatoire avant de coder - 50 min : codage et tests dans Tinkercad - 15 min : remplissage de la grille de test - 10 min : prĂ©paration et prĂ©sentation orale du projet

Point d'attention – valider l'algorithme avant le code : le passage professeur Ă  l'Ă©tape 2 est crucial. Un algorithme incorrect mĂšne Ă  30 minutes de dĂ©bogage stĂ©rile. VĂ©rifier que la structure while True / if / elif / else est logiquement cohĂ©rente, que les variables sont initialisĂ©es, et qu'il n'y a pas d'ambiguĂŻtĂ© dans les conditions.

Conseil d'organisation : constituer les binÎmes à l'avance et s'assurer que les projets sont variés dans la classe (éviter que tous choisissent le projet 1).

Complexité des projets :

Projet Difficulté Public cible
1 – Alerte canicule ⭐⭐ Facile Tous les Ă©lĂšves
2 – Jeu de rĂ©action ⭐⭐ Facile Tous les Ă©lĂšves
4 – Boussole affichĂ©e ⭐⭐ Facile Tous les Ă©lĂšves
5 – DĂ©tecteur de mouvement ⭐⭐⭐ Moyen ÉlĂšves Ă  l'aise
3 – Minuteur de sport ⭐⭐⭐⭐ Difficile ÉlĂšves avancĂ©s
6 – Mini-jeu de mĂ©moire ⭐⭐⭐⭐ Difficile ÉlĂšves avancĂ©s
7 – Projet libre Variable Sur validation

Remarque sur le projet 4 (Boussole) : la boussole nécessite un calibrage (compass.calibrate()) et n'est pas simulable dans Tinkercad car elle dépend d'un vrai champ magnétique. Si votre établissement possÚde de vraies cartes micro:bit, ce projet y est mieux adapté. Sinon, orienter les élÚves vers un autre projet.

Questions de passage pour vĂ©rifier la comprĂ©hension : lors des rondes en classe, poser ces questions oralement plutĂŽt que de lire le code : - Montre-moi le capteur dans ton code. Comment la valeur est-elle rĂ©cupĂ©rĂ©e ? - Que se passe-t-il si je change cette valeur dans la simulation ? - Pourquoi as-tu mis was_pressed() plutĂŽt que is_pressed() ici ? - À quoi sert le sleep() Ă  la fin de ta boucle ? - Qu'est-ce que ton programme ferait si on supprimait la boucle while True ?

PrĂ©sentation orale : mĂȘme courte (2-3 min par binĂŽme), elle a une vraie valeur pĂ©dagogique — reformuler en langage naturel ce que fait le programme est un excellent indicateur de comprĂ©hension rĂ©elle.


SĂ©ance 4 – Évaluation (1h)

Structure de l'évaluation :

Exercice Contenu Points
Ex. 1 – Vocabulaire Reliage, tableau composants, mots manquants /6
Ex. 2 – Lecture de programme Analyse, description, modification de code /6
Ex. 3 – Écriture de programme Algorithme + code complet (alarme plante) /8
Ex. 4 – Bonus RĂ©flexion sur les enjeux sociĂ©taux /2
Total /20

Consignes Ă  rappeler aux Ă©lĂšves : - La documentation micro:bit n'est pas autorisĂ©e - Les exercices sont indĂ©pendants — commencer par celui qu'on maĂźtrise le mieux - Pour l'exercice 3, rĂ©diger l'algorithme avant le code (mĂȘme conseil qu'en S03)

Points de vigilance pour la correction :

  • Ex. 1.1 : accepter toute formulation correcte du sens, pas seulement un mot clĂ© exact
  • Ex. 2.3 : la matrice LED peut ĂȘtre acceptĂ©e comme « IHM sortie » ou « actionneur » — les deux sont corrects
  • Ex. 2.4 : vĂ©rifier que la condition A and B est placĂ©e avant les conditions sĂ©parĂ©es de A et B
  • Ex. 3 : l'essentiel est la structure while True + lecture capteur + if/elif/else + boutons. Ne pas pĂ©naliser les erreurs mineures de syntaxe si la logique est correcte

Correction de l'exercice 3 (programme complet attendu) :

from microbit import *

while True:
    t = temperature()

    if button_a.was_pressed():
        display.scroll(str(t) + "C", wait=False)

    elif button_b.was_pressed():
        if t < 10 or t > 30:
            display.show(Image.NO)
        else:
            display.show(Image.YES)

    else:
        if t < 10:
            display.show(Image.SKULL)
            display.scroll("GEL !", wait=False)
        elif t <= 30:
            display.show(Image.HAPPY)
        else:
            display.show(Image.ANGRY)
            display.scroll("CHAUD", wait=False)

    sleep(300)

BarÚme indicatif pour l'exercice 3 : - Algorithme structuré et lisible : 2 pts - from microbit import * + while True : 1 pt - Lecture correcte du capteur (t = temperature()) : 1 pt - Structure if/elif/else pour les 3 zones de température : 2 pts - Gestion des boutons A et B : 2 pts


Évaluation alternative – Évaluation pratique sur machine

Si vous souhaitez une évaluation pratique sur Tinkercad plutÎt qu'écrite, voici une proposition :

Fournir aux Ă©lĂšves un programme incomplet Ă  complĂ©ter dans Tinkercad, par exemple un systĂšme de dĂ©tection de chute (accĂ©lĂ©romĂštre) avec un score et un affichage. Les consignes peuvent ĂȘtre rĂ©digĂ©es en Markdown ou dans un notebook Jupyter. Cette approche Ă©value mieux les compĂ©tences de programmation rĂ©elle mais est plus longue Ă  corriger.


Ressources complémentaires


Matériel nécessaire

Séance Matériel Remarque
S01 Ordinateurs avec Jupyter 1 par élÚve ou 1 pour 2
S02 Ordinateurs avec accÚs Tinkercad 1 par élÚve ou 1 pour 2, compte Tinkercad créé
S03 Ordinateurs avec accĂšs Tinkercad Idem S02
S04 Ordinateurs avec Jupyter 1 par élÚve, évaluation individuelle

Optionnel : si votre Ă©tablissement possĂšde de vraies cartes micro:bit, la sĂ©ance S02 peut ĂȘtre rĂ©alisĂ©e sur matĂ©riel rĂ©el. Le code MicroPython est identique. L'avantage est de pouvoir tester l'accĂ©lĂ©romĂštre et la boussole rĂ©els.