Carte Nucléo / Systèmes embarqués / Traitements numériques / Pilotage
De nouvelles versions (en anglais) sont en cours d’écriture : Nucleo Basics Nucleo Advanced
Les cartes Nucléo, produites par la société STMicroelectronics sont des cartes de prototypage rapide dans le domaine de l’électronique embarquée.
Pour vous guider dans l’apprentissage du prototypage rapide et le développement d’un système embarqué, nous vous proposons une série de tutoriels complémentaires.
Les outils nécessaires
Munissez-vous de votre carte Nucléo (les tutoriels ont été testés sur une carte de type L476RG et F767ZI).
Et connectez-vous sur le site de MBED pour bénéficier de l’environnement en ligne Keil Studio.
Les tutoriels proposés se basent sur la version 6 de MBED. Une description complète des fonctionnalités est disponible ici : https://os.mbed.com/docs/mbed-os/v6.15/apis/index.html
Accès aux brochages de la carte en cliquant sur l’image précédente.
Fichier de configuration / mbed_app.json
Afin de pouvoir utiliser les codes proposés dans l’ensemble des tutoriels, il est nécessaire d’ajouter un fichier mbed_app.json (ou de modifier l’existant) à votre application (à la racine de votre projet), incluant les lignes suivantes :
{ "requires": [ "bare-metal", "rtos-api", "sd","filesystem","fat_chan"], "target_overrides": { "*": { "target.printf_lib": "minimal-printf", "platform.minimal-printf-enable-floating-point": true, "platform.stdio-baud-rate": 115200, "target.components_add": [ "SD" ] } } }
Simulateur
Il existe à présent un simulateur de code MBED, pour la carte LPC1768 (carte originale MBED). Il est possible de suivre les différents exemples proposés et également de tester ses propres programmes sans carte de prototypage ! https://simulator.mbed.com/
Laissez-vous guider… Et prototypez !
Vous pouvez piocher au hasard dans les différents tutoriels suivants, regroupés par thèmes, ou bien suivre le GUIDE suivant.
Pour vous aider dans votre apprentissage, des QCM sont disponibles : Tous les QCMs
Quelques bibliothèques sont disponibles ici : Bibliothèques MBED 6
Il existe également un répertoire GITHUB pour les Maquettes et des Ressources (bibliothèques et exemples pour Python et Nucléo)
Les différents tutoriaux de formation sont regroupés en 5 catégories différentes :
Premiers Pas
Créer un projet sous MBED
Tester mon premier programme sur Nucléo
Piloter une LED
Déboguer son programme et utiliser l’affichage série
Différencier un microcontroleur d’un micro-ordinateur
Trouver des informations dans la documentation
Utiliser des bibliothèques externes OLD
Créer ses propres bibliothèques TO DO
Interfaçage
Récupérer une information numérique R_2022
Câbler un bouton-poussoir et détecter un front montant R_2022
Récupérer un signal analogique R_2022
Utiliser un écran LCD R_2022
Générer un signal rectangulaire
Régler la luminosité d’une LED
Piloter une LED de puissance
Générer une tension analogique R_2022
Contrôler un mouvement angulaire à l’aide d’un servomoteur R_2022
Faire varier la vitesse d’un moteur à courant continu R_2022
Connecter une source sonore R_2022
Générer un signal analogique périodique R_2022
Gestion du temps / Interruptions
Faire une action à intervalle régulier 2
Faire des actions à intervalle régulier 2
Générer un signal d’horloge sans GBF 2
Faire une action instantanément lors d’un évènement externe R_2022
Faire une action à intervalle régulier à une fréquence précise
Traitement / Asservissement
Caractériser un traitement numérique 2
Supprimer une fréquence parasite 2
Filtrer une bande fréquentielle / spectrale 3
Filtrer une bande fréquentielle plus efficacement 3
Mettre en place un asservissement numérique 3
Communications
Faire communiquer deux systèmes ensemble 1
Configurer une communication point à point RS232 2 MIS A JOUR
Echanger des données entre un PC et un uC 3 MIS A JOUR
Configurer un réseau point à point SPI 2
Interfacer un convertisseur numérique-analogique externe en SPI 3
Ajouter de la mémoire de données (SRAM) en SPI 4
Stocker des données sur une carte SD en SPI 4
Configurer un réseau adressable I2C 3
Interfacer un accéléromètre en I2C 4
Autres
Piloter des LED RGB “intelligentes” (type WS2812) 1 A VENIR
A venir…
- Piloter un moteur pas à pas : utilisation d’un pont en H (L293 ou L298 – voir tutoriel sur le contrôle de la vitesse d’un moteur à courant continu) et d’un driver (L297) – voir également ce document sur les moteurs : https://lense.institutoptique.fr/liesse/2019/Stage1/LIESSE_Moteurs.pdf / Voir aussi le tutoriel suivant : https://www.positron-libre.com/electronique/apprendre/moteur-pas-a-pas/circuit-commande-l297.php
- Corriger un asservissement numérique 4 – TOFINISH
- Réaliser une interface graphique sur un écran TFT 3 – TOFINISH
- RPLidar A2 – librairie : Exemple
- Faire communiquer deux système en BlueTooth (RN42 module) (en cours de rédaction)
A tester !!
- Writing your own library !!
- RN42 – Pour communication BT
- Moteur Pas à pas et Shield Motor Arduino
- Carte SD – MBED OS5
Pourquoi le traitement vidéo est-il compliqué sous Arduino ou Nucléo ? Et comment pallier à cela ? Le tout en image !!