Tuto 6 : Programmation de la carte STM32 Nucleo F446RE avec MicroPython

Plan :

1. Préparer les outils pour Flasher MicroPython sur la carte Nucleo F446RE

2. Flasher MicroPython sur la carte Nucleo F446RE

3. Vérifier le Flash de MicroPython sur la carte

4. Préparer PyCharm pour programmer la carte avec MicroPython

5. Créer un nouveau projet MicroPython dans Pycharm

6. Configurer PyCharm pour programmer la carte avec MicroPython

7. Tester un programme Micropython sur l’IDE PyCharm

1. Préparer les outils pour Flasher MicroPython sur la carte Nucleo F446RE :

a. Téléchargez le firmware MicroPython approprié pour votre carte à partir du site Web officiel de MicroPython : https://micropython.org/download/.

Dans notre cas, on a utilisé le firmware « NUCLEO_F446RE-20241025-v1.24.0.hex »

b. Utilisez un outil de flashage comme STM32CubeProgrammer ou dfu-util (Linux/Mac) pour flasher le firmware sur votre carte STM32 Nucleo F446RE.

Dans notre cas, on a opté pour STM32CubeProgrammer disponible en téléchargement, par inscription, via le site Web officiel : https://www.st.com/en/development-tools/stm32cubeprog.html.

c. Installez l’outil STM32CubeProgrammer.

d. Téléchargez et installer un outil de communication série tel que PuTTY : https://www.putty.org/

2. Flasher MicroPython sur la carte Nucleo F446RE :

a. Démarrez l’outil STM32CubeProgrammer.

b. Connectez la carte STM32 Nucleo F446RE via USB à votre ordinateur.

c. Cliquez sur Connecter pour connecter votre carte à l’outil STM32CubeProgrammer.

d. Sous « Erasing & Programming », recherchez le fichier du firmware « NUCLEO_F446RE-20241025-v1.24.0.hex »

e. Flashez le fichier firmware en appuyant sur le bouton « start programming ».

3. Vérifier le Flash de MicroPython sur la carte :

a. Vérifiez le port série utilisé pour connecter la carte sur « Gestionnaire des périphériques »

Dans notre cas, c’est le port COM7.

b. Utilisez PuTTY pour ouvrir le port série de la carte. N’oubliez pas de changer le port série et la vitesse en 115200.

c. Cliquez sur Open pour lier l’outil à votre carte via le port série COM7.

d. Appuyez sur le bouton RESET de votre carte puis vérifiez si vous voyez le MicroPython REPL (une invite comme >>>).

Si tout va bien, l’invite >>> va s’afficher avec l’indication de MicroPython, sa version et la carte utilisée.

e. Testez la communication comme indique l’exemple suivant :

4. Préparer PyCharm pour programmer la carte avec MicroPython :

a. Sous le Terminal Pycharm, installez le package PySerial en utilisant la commande : pip install pyserial

b. Installez le plugin MicroPython : Allez dans Fichier > Paramètres > Plugins.

c. Recherchez « MicroPython » et installez le plugin.

d. Redémarrez PyCharm après l'installation.

5. Créer un nouveau projet MicroPython dans Pycharm :

a. Créez un nouveau projet dans PyCharm.

b. Créez un nouveau fichier Python pour votre projet. Utilisez le nom « main » pour le nom de fichier.

6. Configurer PyCharm pour programmer la carte avec MicroPython :

a. Allez dans Fichier > Paramètres > Langages et frameworks > MicroPython.

b. Cochez la case de prise en charge de MicroPython.

c. Choisissez votre carte STM32 dans la liste des cartes prises en charge. Si STM32 n’existe pas, utilisez le type de carte « Pyboard ». Pyboard et STM32 sont basés sur le même microcontrôleur.

d. Spécifiez le port série sur lequel votre STM32 est connecté (dans notre exemple, COM7).

e. Exclurez le fichier .idea : Allez dans File/Setting/Projet : Nom_Projet/Project Structure/

f. Installez les packages nécessaires pour le fonctionnement de Micropython sur Pycharm, en cliquant sur « Missing required Micropython packages ».

7. Tester un programme Micropython sur l’IDE PyCharm :

a. Tapez le script suivant dans votre fichier main.py :

b. Exécutez le programme en cliquant avec le bouton droit sur main.py puis choisir « Run Flash main.py »

L’exécutez du programme dans la carte commence par se connecter au port série (COM7) puis passe au chargement du programme dans la carte.

Et voilà l’exécution du programme sur la carte STM32 NucleoF446RE.