Présentation
En se basant sur la carte STeaM32 développée dans le cadre du PIA3, cette action fournit aux enseignants un ensemble de ressources pédagogiques intégrant de l'IoT pour mettre en œuvre une démarche d'ExAO (expérimentation assistée par ordinateur) en utilisant uniquement des outils open source. Les ressources s'adressent aussi bien aux élèves de spécialité en électronique qu'aux collégiens et lycéens en filière générale et technologique.
Objectifs
- Fournir des ressources pédagogiques pour l'ExAO basées sur la carte STeaM32
- Utiliser exclusivement des outils open source pour la démarche expérimentale
- Adresser un public large : du collège au lycée, filières générales, technologiques et spécialité électronique



Partenaires

Ressources21
Découvrir la carte STeaMi
Prise en main de la carte éducative STeaMi : découverte du hardware (7 capteurs, écran OLED, radio), premiers programmes en MicroPython ou MakeCode, et idées de projets.

Prendre en main MicroPython avec Thonny
Mettre en place un environnement desktop, gratuit et hors-ligne pour programmer la STeaMi en MicroPython avec Thonny : installation, configuration de la communication entre Thonny et la carte, et premier programme LED RGB + boutons.

Prendre en main MicroPython avec VS Code
Mettre en place un environnement desktop, gratuit et hors-ligne pour programmer la STeaMi en MicroPython avec VS Code : installation, configuration de la communication entre VS Code et la carte, et premier programme LED RGB + boutons.
Prendre en main la STeaMi sur l'éditeur Vittascience
Mettre en place un environnement web (ou desktop) gratuit pour programmer la STeaMi en MicroPython et en blocs avec Vittascience : installation, configuration de la communication entre Vittascience et la carte, premier programme LED RGB + boutons.
Découvrir les bases de MicroPython
Prise en main de la programmation en MicroPython : variables, boucles, conditions, fonctions, et les bonnes pratiques pour structurer son code sur la STeaMi.
Faire clignoter une LED
Premier programme MicroPython sur la STeaMi : piloter la LED RGB intégrée avec le module `machine`, comprendre la boucle infinie et les délais. Portage de la fiche LED de Let’s STEAM.
Construire un premier circuit sur breadboard
Premier circuit électronique externe à la STeaMi : câbler trois LED et leurs résistances sur une breadboard, les relier au connecteur Edge, et les piloter une à une depuis MicroPython. Pose les bases pour les fiches suivantes qui utilisent du matériel externe.
Utiliser des boutons-poussoirs
Lire les boutons A et B intégrés à la STeaMi en MicroPython, comprendre la logique inverse (pull-up) et la détection de transition. Mini-jeu à deux joueurs : le premier qui appuie gagne. Portage de la fiche boutons de Let’s STEAM.
Mesurer la lumière ambiante
Lire le capteur APDS-9960 intégré à la STeaMi, observer les variations de lumière dans Thonny et piloter la LED RGB selon un seuil.
Contrôler avec un potentiomètre
Câbler un potentiomètre rotatif au connecteur Edge de la STeaMi, lire sa valeur via l'ADC en MicroPython, et l'utiliser pour faire varier la luminosité d'une LED externe en PWM. Introduit les concepts d'ADC et de PWM avec le couple read_u16() / duty_u16().
Envoyer des messages en code Morse
Programmer un émetteur Morse avec le buzzer piézo intégré et les boutons A et B de la STeaMi. Génération d'une fréquence audio par bascule rapide d'une broche, codage à longueur variable et envoi de messages en code Morse international.
Composer une mélodie
Piloter le buzzer piézo intégré à la STeaMi en MicroPython, comprendre le lien entre fréquence et hauteur de note, et composer une mélodie sous forme de liste de couples (fréquence, durée). Portage de la fiche musique de Let’s STEAM.
Fabriquer un thérémine
Construire un thérémine en MicroPython : le capteur de distance VL53L1X intégré à la STeaMi pilote la fréquence du buzzer via un Timer PWM matériel. Introduit la conversion de plages de valeurs avec une fonction map_val() et le son continu non bloquant.
Mesurer l'inclinaison avec l'accéléromètre
Lire l'accéléromètre ISM330DL intégré à la STeaMi en MicroPython : affichage de l'accélération (X, Y, Z) et de l'orientation sur l'écran OLED, détection de choc par calcul de la norme du vecteur accélération.
Afficher du texte sur l'écran OLED
Afficher du texte sur l'écran OLED 128×128 intégré à la STeaMi, en MicroPython avec la bibliothèque steami_screen. Positions cardinales, framebuffer, animation et mise en page d'un tableau de bord.
Afficher un thermomètre très lisible
Lire la température depuis le capteur WSEN-PADS intégré à la STeaMi et l'afficher sur l'écran OLED avec une jauge en arc de cercle, la valeur numérique en grand et un indicateur de confort thermique, sans aucun câblage externe. L'étape d'amélioration ajoute la pression atmosphérique et un historique graphique.
Créer une alarme de mouvement
Fabriquer une alarme à double protection avec la STeaMi en MicroPython : l'accéléromètre ISM330DL détecte si on déplace la carte, le capteur de distance VL53L1X détecte une intrusion à moins de 20 cm. Le bouton Menu sert d'interrupteur pour armer / désarmer, le buzzer sonne l'alerte.
Animer avec un servomoteur
Câbler un mini-servomoteur (SG-90 ou équivalent) au connecteur Edge de la STeaMi et le piloter en MicroPython via machine.PWM à 50 Hz. Comprendre le signal PWM standard servo (impulsions 1-2 ms pour 0-180°) et l'encapsuler dans une fonction regler_servo(angle).
Fabriquer un minuteur électronique
Construire un minuteur à œufs en MicroPython : décompte affiché sur l'écran OLED intégré, barre de progression animée et alarme sonore via le buzzer. Introduit la boucle non bloquante avec ticks_ms() et ticks_diff() pour mesurer le temps sans figer le programme.
Collecter des données avec la STeaMi
Programmer un datalogger en MicroPython : enregistrement de la température et de la pression (WSEN-PADS) ainsi que de l'humidité (HTS221) dans un fichier CSV sur la mémoire de la STeaMi, export sur ordinateur et visualisation dans un tableur.
Dépanner la STeaMi
Page de référence transverse pour le projet I-Novmicro #2 : problèmes courants (câble incompatible, port série, MicroPython non installé, programme déjà en cours, main.py en boucle) et leurs solutions, indépendamment de l'IDE utilisé.
