Bienvenue sur le site STM32 pour l’éducation

Contexte

La réforme des lycées introduit un nouvel enseignement suivi par tous les élèves de seconde générale et technologique : SNT (Sciences Numériques et Technologie). Un des thèmes abordés par cet enseignement est l’Internet des Objets (IdO)1, couvert par le chapitre “Informatique embarquée et objets connectés”, qui représente l’extension d’Internet à des choses et à des lieux du monde physique.

L’objectif est d’amener ces jeunes à un premier niveau de compréhension de l’Internet des Objets. L’enjeu est de favoriser une orientation choisie, en l’occurrence ici vers l’ingénierie du numérique. La part du « numérique » et de « l’informatique » dans les enseignements a été fortement augmentée avec la réforme du lycée.

Objectif

L’objectif de STM32 pour l’éducation est de fournir aux enseignants du lycée et aux lycéens des tutoriels open-source pour la conception de supports pédagogiques et pour l’initiation à l’Internet des Objets pour l’enseignement de SNT (Sciences Numériques et Technologie).

Ces supports s’appuient sur les cartes de développement NUCLEO ou DISCOVERY et permettent de réaliser des montages électroniques et des programmes pour les microcontrôleurs STM32 avec les langages C/C++ et MicroPython.

Les tutoriels sont également utilisables par d’autres enseignements de première et terminale générales, notamment en spécialité NSI (Numérique et Sciences Informatiques), en spécialité SI (Sciences de l’ingénieur), ou en série technologique STI2D (Sciences et Technologies de l’Industrie et du Développement Durable).

Partenaires

Les partenaires de STM32 pour l’éducation sont:

Comment contribuer ?

Enseignant, Etudiant, Lycéen, Ingénieur, Hobbyiste, vous avez réalisé un complément à ces tutoriels ? N’hésitez pas nous contacter pour contribuer au projet !

stm32python-contact@imag.fr

Contributeurs

  • Erwan LE SAINT
  • Michael ESCODA
  • Richard PHAN
  • Romaric NOLLOT
  • Guy CHATEIGNIER
  • Didier DONSEZ
  • Baptiste JOLAINE
  • Aurélien REYNAUD
  • Pedro LOPES
  • Gaël LEMIERE
  • Robin FARGES
  • Florian VIOLET
  • Leïla MICHELARD
  • Manon CHAIX
  • Gloria NGUENA
  • Jeremy SLAMA
  • Alex FOUILLEUL
  • Nicolas GIROUD
  • Yannick MARIETTI

Contenu du site

Vous trouverez ci-dessous la liste de toutes les pages du STM32 Python pour un accès direct à celles-ci :


Comment utiliser Fritzing pour décrire des montages pour le kit STM32 MicroPython ?

Comment utiliser Fritzing pour décrire des montages pour le kit STM32 MicroPython ?

Jupyter

Comment utiliser le kit STM32 MicroPython avec Jupyter

Interfaçage avec Jupyter

Interfaçage avec Jupyter

Utilisation d'un notebook Jupyter avec la carte MicroPython

Utilisation d'un notebook Jupyter avec la carte MicroPython

Autres kits STM32Python

Description des autres kits pédagogiques STM32Python

Le Kit pédagogique NUCLEO-WB55

Description du kit pédagogique STM32python basé sur la NUCLEO-WB55

Glossaire

Glossaire

Des transistors aux microcontrôleurs

Introduction aux microcontrôleurs et aux systèmes embarqués

Les microcontrôleurs et l'architecture STM32

Les bases pour comprendre ce qu'est un microcontrôleur et en particulier les microcontrôleurs de la famille STM32.

Les transistors, les puces, le numérique

Les bases pour comprendre les fondations des technologies numériques

Programmer un microcontrôleur

L'essentiel pour comprendre ce que signifie programmer un microcontrôleur.

Tutoriel AppInventor

Utiliser MIT App Inventor

Comment créer des applications clientes pour la NUCLEO-WB55 avec MIT App Inventor

Emission et lecture de messages hors-connexion avec plusieurs cartes NUCLEO-WB55

Utilisation du protocole GAP pour émission et lecture de messages hors-connexion avec plusieurs NUCLEO-WB55.

Echange de la température et de l’humidité entre deux NUCLEO-WB55

Utilisation du standard Bluetooth SIG pour que deux cartes NUCLEO-WB55 puissent échanger des données environnementales.

Echanges de chaînes de caractères entre deux NUCLEO-WB55

Simulation d'un échange bi-directionnel de type UART avec le BLE (Nordic UART service)

Communication avec MIT App Inventor pour publier une température et contrôler une LED de la NUCLEO-WB55

Connexion BLE entre la NUCLEO-WB55 et l'application MIT App Inventor en utilisant le protocole Blue-ST

Communication avec MIT App Inventor pour échanger des données de température et d'humidité

Connexion BLE entre la NUCLEO-WB55 et l'application MIT App Inventor en utilisant un service environnemental construit avec le standard Bluetooth SIG

Echange de chaînes de caractères entre MIT App Inventor et une NUCLEO-WB55

Exemple de mise en oeuvre du service BLE-UART de Nordic Semiconductors entre une NUCLEO-WB55 et l'application MIT App Inventor sur un smartphone.

Communication avec ST BLE Sensor

Mise en oeuvre du BLE avec la carte NUCLEO-WB55 et l'application pour smartphone ST BLE Sensor

Station environnementale Blue-ST

Création d'une station environnementale connectée en BLE avec le protocole Blue-ST

Présentation du BLE

Le BLE et ses protocoles

Utilisation du BLE avec la carte NUCLEO-WB55

Utilisation du BLE avec la carte NUCLEO-WB55

Mise en oeuvre du capteur de température et d'humidité relative HTS221

Tutoriels pour la mise en oeuvre du capteur de température et d'humidité relative HTS221 avec MicroPython

Tutoriels pour la carte d'extension X-NUCLEO IKS01A3

Tutoriels pour la carte d'extension X-NUCLEO IKS01A3 en MicroPython

Mise en oeuvre de l'accéléromètre LIS2DW12

Tutoriels pour la mise en oeuvre de l'accéléromètre LIS2DW12 avec MicroPython

Mise en oeuvre du magnétomètre 3D LIS2MDL et programmation d'une boussole

Tutoriels pour la mise en oeuvre du magnétomètre 3D LIS2MDL et la programmation d'une boussole avec MicroPython

Mise en oeuvre du baromètre et thermomètre LPS22HH et programmation d'un altimètre

Tutoriels pour la mise en oeuvre du baromètre et capteur de température LPS22HH et la programmation d'un altimètre barométrique avec MicroPython

Mise en oeuvre de l'accéléromètre et du gyroscope LSM6DSO

Tutoriels pour la mise en oeuvre de l'accéléromètre et du gyroscope LSM6DSO avec MicroPython

Mise en oeuvre du capteur de température de précision STTS751

Tutoriels pour la mise en oeuvre du capteur de température de précision STTS751 avec Micropython

Echantillonner une valeur analogique

Tutoriels pour la mise en oeuvre d'une conversion analogique-numérique (ADC) avec MicroPython

Appel des broches Arduino dans les scipts MicroPython

Appel de broches Arduino par les scripts MicroPython sur la NUCLEO-WB55

Faire clignoter une LED

Tutoriels pour faire clignoter une LED avec MicroPython

Faire clignoter plusieurs LED simultanément

Comment créer une application multitâche avec MicroPython

Programmer un ou plusieurs boutons

Tutoriels pour interagir avec des boutons, y compris ceux de la NUCLEO-WB55 avec MicroPython

Gérer des boutons par interruptions

Tutoriels pour interagir avec des boutons en utilisant le mécanisme des interruptions avec MicroPython

Programmer un chenillard

Tutoriel pour programmer un chenillard avec MicroPython

Démarrer avec MicroPython et la NUCLEO-WB55

Démarrer avec MicroPython et la NUCLEO-WB55

Horloge temps-réel

Mise en oeuvre de la Real Time Clock (RTC) du STM32WB55 en MicroPython

Utiliser la communication série

Tutoriels pour faire communiquer deux cartes NUCLEO-WB55 par leur port série avec MicroPython

Le chien de garde (Watchdog Timer)

Mise en oeuvre du chien de garde (Watchdog Timer) du STM32WB55 en MicroPython

Téléchargement

Liens de téléchargement des firmwares et tutoriels, liens vers des ressources sur des sites partenaires

Foire aux Questions

Foire aux Questions pour résoudre vos problèmes

Explorons le firmware MicroPython pour la NUCLEO-WB55

Présentation et utilisation du firmware MicroPython pour la NUCLEO-WB55

Capteurs de température et d'humidité DHT11 et DHT22

Mise en oeuvre des capteurs de température et d'humidité DHT11 et DHT22 (Grove et autres) en MicroPython

Centrale à inertie 6 axes LSM303D

Mise en oeuvre de la centrale à inertie 6 axes LSM303D de STMicroelectronics en MicroPython

Capteur de gaz multicanaux MiCS-6814

Mise en oeuvre un module Grove capteur de gaz multicanaux MiCS-6814 sur bus I2C en MicroPython

Accéléromètre 3 axes MMA7660FC

Mise en oeuvre de l'accéléromètre 3 axes MMA7660FC Grove en MicroPython

Capteur de pression intégré MPX5700AP

Mise en oeuvre du capteur de pression intégré [MPX5700AP](https://docs.rs-online.com/6bdd/0900766b8138445c.pdf) Grove en MicroPython

Capteur de température (thermistance)

Mise en oeuvre du module capteur de température Grove v1.2 avec MicroPython

Lecteur RFID 125 kHz Grove

Mise en oeuvre du Lecteur RFID 125 kHz Grove en MicroPython

Capteur de lumière solaire SI1145

Mise en oeuvre du capteur de lumière solaire SI1145 Grove avec MicroPython

Alarme de mouvement

Création d'une alarme de mouvement avec un buzzer et un capteur de mouvements PIR sous MicroPython

Capteur de pression, température et humidité BME280

Mise en oeuvre un module Grove BME280 sur bus I2C en MicroPython

Capteur de pression, température, humidité et qualité d'air BME680

Mise en oeuvre un module Grove BME680 sur bus I2C en MicroPython

Capteur de pression et température BMP280

Mise en oeuvre un module Grove BMP280 sur bus I2C en MicroPython

Programmer un bouton et problématique de l'anti-rebond

Comment programmer un bouton et gérér la problématique de l'anti-rebond en MicroPython

Sonomètre

Mise en oeuvre du module capteur de sons Grove avec MicroPython

Buzzer et PWM

Mise en oeuvre du buzzer Grove avec MicroPython et explication de la PWM

LED infrarouge

Mise en oeuvre d'un module Grove LED infrarouge avec MicroPython

Sonar à ultrasons

Mise en oeuvre du capteur de distance par ultrasons US100 Grove en MicroPython

Sonde étanche de température DS18X20

Mise en oeuvre la sonde étanche DS18X20 Grove en MicroPython

Module GPS

Mise en oeuvre d'un module GPS UART avec MicroPython

Capteur d'inclinaison

Mise en oeuvre d'un module capteur d'inclinaison Grove avec MicroPython

Tutoriels avec des modules Grove et autres

Tutoriels avec des modules Grove et autres

Joystick

Mise en oeuvre du "thumb-joystick" Grove avec MicroPython

Clavier matriciel

Mise en oeuvre de la lecture d'une touche avec un clavier matriciel

Afficheur LCD 16 caractères x 2 lignes

Mettre en oeuvre un afficheur LCD 16 caractères x 2 lignes avec MicroPython

Afficheur LCD RGB 16 caractères x 2 lignes

Mettre en oeuvre un afficheur LCD RGB 16 caractères x 2 lignes avec MicroPython

LED RGB chaînable

Mise en oeuvre de modules Grove LED RGB chaînables avec MicroPython

LED RGB Neopixel (WS2813 Mini)

Mise en oeuvre d'un module Grove LED RGB Neopixel (WS2813 Mini) avec MicroPython

Barre de LED Grove MY9221

Mise en oeuvre de la barre de LED Grove MY9221 en MicroPython

Module suiveur de ligne

Mise en oeuvre d'un module Grove suiveur de ligne avec MicroPython

Capteur de luminosité, photodiode

Mise en oeuvre du module capteur de luminosité Grove avec MicroPython

Afficheur matrices de LED 8x8 MAX7219

Mise en oeuvre d'un afficheur 4 matrices de LED 8x8 MAX7219 sur bus SPI en MicroPython

Capteur de température de précision MCP9808

Mise en oeuvre un module Grove capteur de température de précision MCP9808 sur bus I2C en MicroPython

Capteur de gaz carbonique MH-Z16

Mise en oeuvre du capteur de gaz carbonique MH-Z16 Grove avec MicroPython

Enregistrement d’un fichier audio sur carte micro-SD

Enregistrement d’un fichier audio sur carte micro-SD

Emission-réception IR en code Morse

Emission-réception entre deux NUCLEO-WB55 en code Morse avec une LED infrarouge

Contrôle moteur avec un pont en H

Mise en oeuvre d'un moteur avec un pont en H

Contrôle d'un moteur pas à pas

Mise en oeuvre d'un moteur pas à pas

Détecteur de mouvement PIR

Mise en oeuvre d'un détecteur de mouvement PIR avec MicroPython

Adaptateur Nintendo NunChuk

Mise en oeuvre de l'adaptateur Gove pour manette Nintendo NunChuk

Afficheur OLED 1308

Mise en oeuvre d'un afficheur OLED 0.96 pouces Grove avec MicroPython

Capteur de gestes PAJ7620U2

Mise en oeuvre d'un module Grove capteur de geste PAJ7620U2 avec MicroPython

Potentiomètre

Mise en oeuvre du potentiomètre Grove avec MicroPython

Contrôle moteur avec un relais ou transistor

Mise en oeuvre d'un moteur avec un relais ou un transistor

Module RFID RC522 13.56 MHz

Mise en oeuvre de la lecture et de l'écriture de badges RFID en MicroPython avec un module RC522 13.56 MHz

Horloge temps-réel DS1307

Mise en oeuvre du module Grove Horloge temps-réel DS1307 en MicroPython

Horloge temps-réel PCF85063TP

Mise en oeuvre du module Grove Horloge temps-réel de précision PCF85063TP en MicroPython

Capteur de CO2 SCD30

Mise en oeuvre du capteur de CO2 SCD30 Grove avec MicroPython

Module carte SD

Mettre en oeuvre un mdoule carte SD sur bus SPI avec MicroPython

Servomoteur

Mettre en oeuvre un servomoteur avec MicroPython

Capteur de qualité de l'air SGP30

Mise en oeuvre un module capteur de qualité de l'air SGP30 sur bus I2C en MicroPython

Capteur de température et humidité SHT31

Mise en oeuvre un module Grove capteur de température et humidité SHT31 sur bus I2C en MicroPython

Manette Nintendo SNES

Lire les messages de la manette Nintendo SNES avec MicroPython

Capteurs d'humidité du sol

Mise en oeuvre des capteurs analogiques d'humidité du sol en MicroPython

Capteur de température et humidité TH02

Mise en oeuvre un module Grove capteur de température et humidité TH02 sur bus I2C en MicroPython

Thermistance

Mise en oeuvre de la lecture de la température avec une thermistance en MicroPython

Afficheur 4x7 segments TM1637

Mise en oeuvre de l'afficheur 7 segments 4 digits TM1637 avec MicroPython

Afficheur 8x7 segments TM1638

Mettre en oeuvre l'afficheur 8x7 segments TM1638 en MicroPython

Interrupteur tactile

Mise en oeuvre d'un interrupteur tactile avec MicroPython

Capteur de lumière numérique TSL2561

Mise en oeuvre du capteur de lumière numérique TSL2561 Grove avec MicroPython

Capteur de lumière numérique TSL2591

Mise en oeuvre du capteur de lumière numérique TSL2591 avec MicroPython

Variateur de lumière

Faire varier l'intensité lumineuse d'une LED avec MicroPython

Télémètre infrarouge VL53L0X

Mise en oeuvre du télémètre infrarouge VL53L0X Grove en MicroPython

Lecture du niveau d'eau

Acquisition du niveau d'eau avec un capteur d'eau

Rubans de LED Neopixel WS2812B et WS2813

Mise en oeuvre d'un ruban de LED WS2812B / WS2813 avec MicroPython

MicroPython pour STM32

MicroPython pour STM32 sur la NUCLEO-WB55

Guide de démarrage rapide Linux

Guide de démarrage rapide Linux

Guide de démarrage rapide sous Windows

Guide de démarrage rapide sous Windows

Projets et applications avec STM32python

Liste des projets et applications avec STM32python

Ressources

Ressources

La carte NUCLEO-WB55

La carte NUCLEO-WB55

Versions de µPython et STM32WB

Versions de µPython et STM32WB

RIOT

Comment reconstruire MicroPython avec RIOT OS

Exercices MicroPython avec RIOT OS pour la carte P-NUCLEO-WB55 et NUCLEO-WL55JC

Exercices MicroPython avec RIOT OS pour la carte P-NUCLEO-WB55 et NUCLEO-WL55JC

Comment utiliser le kit STM32 MicroPython au moyen de RIOT OS ?

Comment utiliser le kit STM32 MicroPython au moyen de RIOT OS

RIOT

Comment installer MicroPython avec RIOT OS

Station meteo avec Stm32duino

Developper une station meteo en C/C++ avec Stm32duino

Exercice avec le capteur sonore en C/C++ pour Stm32duino

Exercice avec le buzzer en C/C++ pour Stm32duino

Exercice avec le buzzer en C/C++ pour Stm32duino

Exercice avec le capteur de choc (tilt) en C/C++ pour Stm32duino

Exercice avec le capteur de choc (tilt) en C/C++ pour Stm32duino

Exercice avec la DEL Grove en C/C++ pour Stm32duino

Exercice avec la DEL Grove en C/C++ pour Stm32duino

Exercice avec la DEL utilisateur en C/C++ pour Stm32duino

Exercice avec la DEL utilisateur en C/C++ pour Stm32duino

Exercice avec la sonde étanche DS1820 Grove en C/C++ avec Stm32duino

Exercice avec la sonde étanche DS1820 Grove en C/C++ avec Stm32duino

Exercice de communication avec Firmata

Exercice de communication avec Firmata

Exercice avec le module GPS SIM28 Grove en C/C++ avec Stm32duino

Exercice avec le module GPS SIM28 Grove en C/C++ avec Stm32duino

Exercice avec les capteurs Grove en C/C++ pour Stm32duino

Exercice avec les capteurs Grove en C/C++ pour Stm32duino

Exercice avec la carte de communication LoRa/LoRaWAN I-NUCLEO-LRWAN1 en C/C++ pour Stm32duino

Exercice avec la carte de communication LoRa/LoRaWAN I-NUCLEO-LRWAN1 en C/C++ pour Stm32duino

Exercice avec la carte d'extension IKS01A1 en C/C++ pour Stm32duino

Exercice avec la carte d'extension IKS01A1 en C/C++ pour Stm32duino

Exercice avec la carte d'extension IKS01A3 en C/C++ pour Stm32duino

Exercice avec la carte d'extension IKS01A3 en C/C++ pour Stm32duino

Tutoriels avec Stm32duino en C/C++

Tutoriels avec Stm32duino en C/C++

Exercice avec le joystick Grove en C/C++ pour Stm32duino

Exercice avec le joystick Grove en C/C++ pour Stm32duino

Exercice avec l'afficheur LCD 16x2 Grove en C/C++ avec Stm32duino

Exercice avec l'afficheur LCD 16x2 Grove en C/C++ avec Stm32duino

Exercice avec le capteur de luminosité Grove en C/C++ pour Stm32duino

Exercice avec le capteur de luminosité Grove en C/C++ pour Stm32duino

Exercice de pilotage de moteurs avec la carte SparkFun Monster Moto Shield en C/C++ avec Stm32duino

Exercice de pilotage de moteurs avec la carte SparkFun Monster Moto Shield en C/C++ avec Stm32duino

Exercice avec l'adaptateur Nintendo Nunchuk Grove en C/C++ avec Stm32duino

Exercice avec l'adaptateur Nintendo Nunchuk Grove en C/C++ avec Stm32duino

Exercice avec le potentiomètre Grove en C/C++ pour Stm32duino

Exercice avec le potentiomètre Grove en C/C++ pour Stm32duino

Exercice avec des badges RFID en C/C++ avec Stm32duino

Exercice avec la lecture de badges RFID en C/C++ avec Stm32duino

Exercice avec Real Time Clock (RTC) en MicroPython

Exercice avec Real Time Clock (RTC) en MicroPython

Exercice avec la manette Nintendo SNES en C/C++ avec Stm32duino

Exercice avec la manette Nintendo SNES en C/C++ avec Stm32duino

Exercice avec le capteur de température Grove en C/C++ pour Stm32duino

Exercice avec le capteur de température Grove en C/C++ pour Stm32duino

Exercice avec afficheur 8x7-segments TM1638 en C

Exercice avec afficheur 8x7-segments TM1638 en C

Exercice avec le capteur tactile Grove en C/C++ pour Stm32duino

Exercice avec le capteur tactile Grove en C/C++ pour Stm32duino

Exercice avec le capteur de distance à ultrason Grove en C/C++ pour Stm32duino

Exercice avec le capteur de distance à ultrason Grove en C/C++ pour Stm32duino

Exercice avec la carte de géolocalisation GNSS X-NUCLEO-GNSS1A1 en C/C++ pour Stm32duino

Exercice avec la carte de géolocalisation GNSS X-NUCLEO-GNSS1A1 en C/C++ pour Stm32duino

STM32duino

Section STM32duino

Installer l'IDE Arduino et les packages pour STM32 sous Windows

Comment configurer l'environnement Arduino pour STM32 sous Windows

Configuration du module ESP-01 avec la NUCLEO-L476RG

Configuration du module ESP-01 avec la NUCLEO-L476RG

Configuration du module HC-06 avec la NUCLEO-L476RG

Configuration du module HC-06 avec la NUCLEO-L476RG

Anatomie du microcontrôleur STM32L476RG

Glossaire concernant l'anatomie du microcontrôleur STM32L476RG

Projets et applications avec STM32duino

Liste des projets et applications avec STM32duino

Construire une station météo connectée avec STM32duino

Tutoriel pour construire une station météo connectée avec STM32duino sur la base d'une carte NUCLEO-L476RG

Les modules et capteurs externes

Les modules et capteurs utilisés par notre station météo

La carte NUCLEO-L476RG

Revue de la carte NUCLEO-L476RG

Mappage périphériques - broches pour la NUCLEO-L476RG

Revue du mappage périphériques internes du microcontrôleur STM32L476RG sur les broches de la NUCLEO-L476RG

Connectivité, protocoles et services

Vue d'ensemble de la connectivité, des protocoles et des services utilisés par notre station météo

Lire les capteurs environnementaux

Le sketch Arduino final pour lire les capteurs environnementaux

Sauvegarder des paramètres dans la mémoire Flash

Le sketch Arduino final pour sauvegarder des paramètres dans la mémoire Flash

Enregistrer sur une carte SD

Le sketch Arduino final pour enregistrer sur une carte SD

Utiliser le mode Basse Consommation

Le sketch Arduino final pour utiliser le mode Basse Consommation

Utiliser le chien de garde indépendant

Le sketch Arduino final pour utiliser le chien de garde indépendant

Configurer et connecter le Wi-Fi

Le sketch Arduino final pour configurer et connecter le Wi-Fi

Gérer la date, l’heure et le fuseau horaire

Le sketch Arduino final pour gérer la date, l’heure et le fuseau horaire

Utiliser le protocole MQTT avec ThingsBoard

Le sketch Arduino final pour utiliser le protocole MQTT avec ThingsBoard

Utiliser le protocole HTTP avec OpenWeather

Le sketch Arduino final pour utiliser le protocole HTTP avec OpenWeather

Communication série en Bluetooth

Le sketch Arduino final pour la communication série en Bluetooth

Le sketch final

Le sketch Arduino final pour notre station météo

Les périphériques intégrés au microcontrôleur STM32L476RG

Présentation du microcontrôleur STM32L476RG et de ses périphériques intégéres, notamment ceux utilisés par notre station météo

Les chaînes de compilation et le modèle STM32duino

Présentation des chaînes de compilation et du modèle STM32duino


Notes

  1. En anglais on traduit “Internet des Objets” par “Internet of things”, abrégé par IoT