Nucléo – Utiliser des LEDs RGB pilotables indépendamment

LEDs RGB Pilotables LED WS2812 Les LEDs de type WS2812 sont la combinaison de 3 LEDs trichromes (rouge, verte et bleue) et d’un circuit de commande numérique (registres à décalage et PWM pour chacune des couleurs). Elles se pilotent donc

Matlab / Calculer une FFT

Retour Matlab Page en construction !! Calculer la FFT d’un signal Un des calculs les plus utilisés dans le traitement du signal (électrique ou traitement d’image) est la transformée de Fourier discrète. L’un des algorithmes permettant d’obtenir ce résultat est la

MATLAB / Systèmes et asservissement / Approche graphique / SimuLink

Retour Matlab Simulink Simulink est un environnement graphique associé à Matlab. Il permet l’utilisation de schémas bloc pour représenter des systèmes et les simuler. Lancement de Simulink Simulink peut se lancer depuis Matlab ou indépendamment. Depuis Matlab, il faut cliquer sur

MATLAB / Systèmes et asservissement / Approche système

Retour Matlab Dans tous les exemples précédents, la mise en forme des graphiques n’est pas complète. Afin de produire des graphiques pertinents, il est indispensable d’ajouter un titre (title) des légendes (legend), de préciser les grandeurs et leurs unités sur chacun

Sympy / Premiers pas en calcul formel

SymPy est une bibliothèque Python a usage scientifique notamment mathématiques utilisée pour le calcul formel. Cette bibliothèque permet de réaliser du calcul symbolique ou formel. Sur des aspects purement mathématiques, il permet l’écriture et le traitement d’équations, la simplification, le calcul de dérivées,

Python / Pillow / Traitement d’image

Quelques fonctionnalités Obtenir le mode de l’image Pillow supporte en particulier les formats suivants : binaire, niveau de gris, RGB, RGBA et CMYK ( cyan, magenta, yellow and key). Pour en savoir plus sur les modes reconnus : Concepts of Pillow. Pour connaître le mode

Python / Convertir une image en matrice

Lorsqu’on travail sur des images, il est souvent utile de pouvoir accéder aux données de chaque pixel par l’intermédiaire d’un système matriciel. Pour cela, il existe plusieurs méthodes d’ouverture d’une image et de conversion des données dans un format compatible

Python / PyQt / Intégrer des graphiques dans une fenêtre PyQt

PyQtGraph La bibliothèque PyQtGraph ( https://www.pyqtgraph.org/ ), basée sur PyQt, permet l’affichage de courbes et d’images à l’intérieur de fenêtre PyQt. Cette bibliothèque n’est pas native dans Anaconda et il faut au préalable l’installer par la commande : conda install -c conda-forge

Nucléo – Générer un signal rectangulaire

Comment générer un signal rectangulaire ? NIVEAU 1 Objectifs Pré-requis Déboguer son programme et utiliser l’affichage série Modulation de largeur d’impulsions Principe La modulation en largeur d’impulsions (MLI ou PWM – Pulsed Witdh Modulation – en anglais) est une méthode

Python / PyQt / Première interface graphique

Qt est un ensemble de librairies, initialement développées en C++, pour le développement d’interfaces graphiques. Actuellement, deux versions coexistent : Qt 5 et Qt 6. Ces bibliothèques fournissent également des fonctionnalités pour la gestion des réseaux, des processus indépendants, la

Python / Comparatif C/C++ vs Python

Dans les exemples suivants, nous allons voir l’intérêt de passer par des bibliothèques préconçues, notamment en terme de temps de calcul. Cas des vecteurs Pour cet exemple, nous allons nous baser sur les vecteurs suivants : Ce code génère deux

Python / Scipy / Transformée de Fourier

Ce tutoriel s’appuie sur la sous-bibliothèque fft de la bibliothèque SciPy. Vous trouverez des rappels sur la transformée de Fourier et sa version discrétisée sur la page suivante : Transformée de Fourier & FFT Transformée de Fourier Depuis la sous-bibliothèque

Python / Scipy / Premiers pas

Ce tutoriel est en cours de rédaction / approbation. SciPy est une bibliothèque Python a usage scientifique notamment mathématiques très utilisée en ingénierie. SciPy est extrêmement rapide pour résoudre les problèmes liés à l’algèbre linéaire. L’algèbre linéaire traite des équations

Python / Récupération de données dans un fichier

Ouverture d’un fichier de données CSV Dans cet exemple, nous souhaitons récupérer les données acquises par l’intermédiaire d’un oscilloscope. Ces données sont stockées sous la forme d’un fichier de données de type CSV (tableur). Ce fichier peut être télécharger ci-dessous

Nucleo – Piloter une LED de puissance

Comment piloter une LED de puissance ? NIVEAU 2 – Notion obligatoire pour la suite Objectifs Pré-requis Piloter une LED Régler la luminosité d’une LED Connexion d’un bandeau de LEDs classique (12V) Principe de fonctionnement Les bandeaux de LED sont

Python / Matplotlib / Graphiques 3D

Ce tutoriel est en cours de rédaction / approbation. Tracés 3D avec colormesh Il est possible de réaliser des tracés en 3D avec Matplotlib mais il peut être souvent plus pertinent pour une meilleure lisiblité de réaliser un tracé à

Python / Matplotlib / Animations

Ce tutoriel est en cours de rédaction / approbation. Animations avec matplotlib Un module marrant mais pas souvent utile de matplotlib permet d’animer le contenu d’un graphique à partir de fonction Nous allons voir les bases pour faire de petites

Python / Scipy / Régressions et ajustements

Ce tutoriel est en cours de rédaction / approbation. Régression linéaire Lorsque l’on a un jeu de données expérimentales permettant de relier deux grandeurs physiques, il est intéressant de trouver la loi qui fait le lien entre elles. Une première

Python / Numpy / Matrices et calculs

Ce tutoriel est en cours de rédaction / approbation. Création de matrices Pour être plus explicite, cette indexation revient à faire deux opérations à la suite. La première consiste à la récupération d’une colonne de la matrice : Puis à

Python / Matplotlib / Premiers pas

Matplotlib est une bibliothèque pour Python orientée sur la visualisation de données. Installation de la bibliothèque Matplotlib est installée par défaut avec la plupart des distributions Python (comme Anaconda). Elle peut cependant être installé sur Python par l’une des commandes suivantes

Python / Bases du langage

En tant qu’étudiant.e à l’Institut d’Optique, vous avez accès, sur les machines Windows, à la distribution Anaconda 3, basée sur la version Python 3.9, incluant l’IDE Spyder 5 et les bibliothèques Numpy, OpenCV, PyQT5 et bien d’autres… Mais ça veut

Python / Numpy / Premiers pas

Numpy est une bibliothèque incontournable pour les scientifiques. Les deux principales motivations de son utilisation sont : Cette bibliothèque permet la mise en forme des données pour de nombreuses autres bibliothèques scientifiques plus poussées : Pandas, Scipy, Scikit-image, OpenCV, Kears,

Python / OpenCV

OpenCV OpenCV (Open Source Computer Vision Library: http://opencv.org) est un ensemble de méthodes open-source pour la vision par ordinateur. Cette bibliothèque est portée sur un grand nombre de langages de programmation : C/C++, Python… Une bibliothèque pour le traitement d’images La

Python / PySerial / Premier script

Pour pouvoir tester les exemples de ces tutoriels, vous devez installer la bibliothèque PySerial. Sa documentation complète est disponible en ligne : https://pypi.org/project/pyserial/ PySerial est une bibliothèque Python permettant d’ouvrir et de transférer des données par l’intermédiaire des liaisons séries

Nucleo – Trouver des informations dans la documentation

Comment trouver des informations dans la documentation technique ? NIVEAU 1 Objectifs Trouver l’information sur les différentes fonctions disponibles en ligne Importer de nouvelles bibliothèques de fonctions Comprendre la structure simplifiée d’un microcontroleur Pré-requis Déboguer son programme et utiliser l’affichage

Nucleo – Utiliser des bibliothèques externes

Comment utiliser des bibliothèques externes ? NIVEAU 1 Objectifs Utiliser des bibliothèques existantes (proposées par la communauté MBED) Pré-requis Trouver des informations dans la documentation Attention ! Cette page n’est pas encore modifiée pour KEIL STUDIO ! Les informations qu’elle

Nucléo – Stocker des données sur une carte SD en SPI

Comment stocker des données sur une carte SD en SPI ? NIVEAU 3 Objectifs Ajouter de l’espace mémoire à l’aide d’une carte SD en SPI Créer et lire des fichiers ASCII sur une carte SD (système de fichier FAT) Pré-requis

Nucleo – Déboguer son programme et utiliser l’affichage Série

Comment déboguer son programme ?Comment utiliser l’affichage Série ? NIVEAU 1 Objectifs Pré-requis Piloter une LED Débogage Lorsqu’on développe une application “standard” sur un ordinateur, il est facile de rajouter des lignes supplémentaires pour afficher des informations de débogage :

Nucleo – Piloter une LED

Comment piloter une LED ? NIVEAU 1 – Notion obligatoire pour la suite Objectifs Pré-requis Tester ma première application Sorties numériques Bon, c’est bien beau tout ça, mais comment spécifier dans le compilateur que je veux utiliser telle broche en

Nucleo – Tester ma première application

Comment tester ma première application sur Nucléo ? Notion obligatoire pour la suite Objectifs Pré-requis Créer un projet sous MBED N.B. Ce tutoriel peut être complété par la page suivante, Découvrir les microcontrôleurs des cartes Nucléo, qui fournit des compléments

Nucleo – Créer un projet sous MBED

Comment créer un projet sous MBED ? Notion obligatoire pour la suite Objectifs Pré-requis Qu’est-ce qu’un IDE ? Un IDE, pour integrated development environment, ou EDI en français (Environnement de Développement Intégré) est un ensemble d’outils proposés pour aider les

Nucleo / Communiquer sans fil entre deux systèmes

Il existe plusieurs méthodes pour transmettre des informations entre deux systèmes distants. Parmi ces méthodes, nous allons détailler ici les suivantes : Utilisation du composant nRF24L01 (module Olimex MOD24NRF et bibliothèque MBED – ) Utilisation du composant RN42 (module VP)

Arduino / Installer et lancer le logiciel Arduino

Comment installer et lancer le logiciel Arduino ? Notion obligatoire pour la suite Le développement d’une application embarquée nécessite : du matériel spécifique, ici une carte Arduino (et d’autres composants qui seront ajoutés au fur et à mesure des tutoriels)

LTSpice / Saisir un schéma

Simuler sous LTSpice Simulation temporelle Simulation fréquentielle Spice est un logiciel libre, sans interface graphique, de simulation de circuits électroniques, à partir de modèle plus ou moins complexe de composants. LT Spice utilise le coeur de simultion Spice mais propose

LTSpice / Simuler et afficher les résultats

LTSpice Simulation temporelle Simulation fréquentielle Maintenant que vous êtes au point pour la saisie des schémas sous LTSpice, voyons comment simuler un circuit. Il existe 3 grandes formes de simulations sous LTSpice : Dans ce tutoriel, nous nous intéresserons à

LTSpice / Réaliser une simulation temporelle

LTSpice Simuler sous LTSpice Simulation fréquentielle Une première analyse possible d’un système est l’étude de sa réponse à un signal d’entrée particulier en fonction du temps. On parle alors de simulation temporelle. Parmi les signaux classiques, on peut citer un

LTSpice / Réaliser une simulation fréquentielle

LTSpice Simuler sous LTSpice Simulation temporelle Une autre possibilité de simulation est l’étude de la réponse en fréquence d’un système. On parle alors de simulation fréquentielle. Le signal à appliquer est alors un signal sinusoïdal dont on peut faire varier

MATLAB / Signaux et affichages

Retour Matlab Créer des signaux Il est alors possible de créer des signaux numériques par cette méthode. L’exemple suivant permet de créer un vecteur, nommé fa, contenant les valeurs d’un sinus de fréquence f1 et d’amplitude A. Afficher une courbe y=f(x)

MATLAB / Systèmes et réponse en fréquence

Retour Matlab Systèmes Fonction de transfert Un système peut-être mathématiquement modélisé par sa fonction de transfert , qui est une fraction rationnelle de deux polynomes et . Il s’agit de la relation qui lie le signal d’entrée au signal de sortie

Développer des systèmes autour des Raspberry Pi

Les cartes de développement Raspberry Pi sont des mini-ordinateurs, basés sur des microcontroleur ARM (les mêmes que ceux qu’on retrouve dans les téléphones portables). Ces cartes ont la particularité de proposer l’accès à une série d’entrées-sorties numériques que l’on peut

QUCS / Réaliser une simulation fréquentielle

Simuler avec QUCS Saisir un schéma Simulation temporelle Simulation fréquentielle Maintenant que vous êtes au point pour la saisie des schémas sous QUCS, voyons comment simuler un circuit. Il existe plusieurs formes de simulations sous QUCS. Les deux principales sont

QUCS / Réaliser une simulation temporelle

Simuler avec QUCS Saisir un schéma Simulation temporelle Simulation fréquentielle Maintenant que vous êtes au point pour la saisie des schémas sous QUCS, voyons comment simuler un circuit. Il existe plusieurs formes de simulations sous QUCS. Les deux principales sont

QUCS / Saisir un schéma

Simuler avec QUCS Saisir un schéma Simulation temporelle Simulation fréquentielle Pour pouvoir simuler un circuit électronique, et après avoir créer son projet, il faut tout d’abord saisir le schéma du circuit. Lorsque vous créez un nouveau projet, le logiciel ouvre,

QUCS / Installer, configurer, simuler…

Simuler avec QUCS Saisir un schéma Simulation temporelle Simulation fréquentielle QUCS est un logiciel de simulation de circuits électroniques, à partir de modèle plus ou moins complexe de composants. Il est disponible sur Windows, Linux et Mac OS à l’adresse suivante

Câbler sur une platine de prototypage

Les platines de prototypage, appelées également breadboard, permettent de réaliser des montages électroniques sans soudure à l’aide de composant traversant. Chaque ligne horizontale numérotée (sur l’image précédente) représente un équipotentiel où il est possible d’insérer les broches des composants. Des

Arduino – Logiciel / Carte de développement

Logiciel / Carte de développement Etapes de conception Lorsqu’on souhaite développer un programme embarqué, par exemple sur une carte de développement de type Arduino Uno, quelques étapes de développement sont nécessaires : Lister les entrées / sorties du système Rédiger

Arduino – Structure d’un programme

Structure d’un programme Voici un exemple de code pour Arduino. Nous décomposerons chacune des parties par la suite. #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);int led = 13;int bp = 6;void setup() { // initialize the digital pin as

Arduino – Structures conditionnelles

Structures conditionnelles Afin de rendre certaines parties du code exécutable sous certaines conditions, il est possible d’ajouter des conditions logiques.Il en existe de 3 sortes. Structure SI / SINON La première permet d’exécuter un bloc d’instructions si une condition logique

Arduino – Moniteur Série / Débogage

Débogage Sur un système embarqué, il est difficile de connaître l’état d’avancement du programme puisque, par défaut, il ne possède pas d’écran de visualisation.Pour remédier à ceci, il existe (au moins) deux solutions : utiliser une broche de sortie, connectée

Arduino – Entrées / Sorties Numériques

Entrées / Sorties Numériques La carte Arduino Uno permet d’interagir avec son environnement et ainsi piloter des systèmes comportant des capteurs (analogiques ou numériques) et des actionneurs. Nous allons voir dans cette section comment la carte peut interagir avec des

Arduino – Sorties Modulées

Sorties Modulées Afin de piloter certains actionneurs “lents” à l’aide d’une tension continue, on peut appliquer le principe de la modulation de largeur d’impulsions (ou PWM – Pulse Width Modulation). Principe Cette méthode consiste à appliquer un signal rectangulaire de

Arduino – Entrées Analogiques

Entrées Analogiques La carte Arduino Uno possède 6 entrées analogiques, reliées à un convertisseur analogique/numérique qui renvoie un code numérique sur 10 bits, soit une valeur comprise entre 0 et 1023. La pleine échelle est de 5V, c’est à dire

Microcontrôleurs / Comment se programme un microcontroleur ?

Etapes de programmation Ecriture du code source Tout comme les processeurs généralistes (qui équipent la plupart des ordinateurs), les microcontrôleurs ne comprennent que du langage de bas niveau, encore appelé assembleur. Cependant, ces langages étant difficiles à comprendre et à

Microcontroleurs / Qu’est-ce qu’un microcontroleur ?

Qu’est-ce qu’un microcontroleur ? Un microcontroleur est un composant électronique actif (c’est à dire nécessitant une alimentation externe) permettant de faire du traitement numérique de l’information de manière embarquée. Ils peuvent se présenter sous différents formats selon leurs applications. Structure

Microcontrôleurs / Qu’est-ce qu’un registre ?

Organisation de la mémoire d’un microcontroleur Mémoire programme Mémoire données Différents registres Les registres sont des espaces mémoires adressables indépendamment par le microcontroleur. Selon les registres, ils sont soient à : usage général : permettant ainsi de stocker des données

Microcontrôleurs / Quelle est la structure d’un programme embarqué ?

L’exemple de cette page se base sur un microcontroleur PIC16F Quelques règles de base Ressources limitées Les microcontroleurs sont des calculateurs simplifiés et dont la principale préoccupation est de répondre le plus rapidement possible à une sollicitation extérieure. Ainsi, tout

Microchip PIC16F / Matériels et logiciels nécessaires

Cette page et ses descendantes sont encore en cours de construction… Les microcontroleurs PIC16F Les éléments indispensables pour programmer Le logiciel MPLABX Le compilateur XC8 Le programmateur/debogueur ICD3 Le microcontroleur PIC16F1503/1509 La carte d’étude Pour pouvoir travailler de manière plus

Microchip PIC16F / Prise en main de l’IDE / MPLABX

Cette page et ses descendantes sont encore en cours de construction… L’environnement L’environnement de développement MPLABX ainsi que toutes les étapes pour la création d’un projet et le téléversement sur la cible microcontrôleur de votre programme sont décrits dans cette page.

Microchip PIC16F / Structure interne PIC16F150x

Cette page et ses descendantes sont encore en cours de construction… Structure interne du PIC16F150x Les microcontroleurs de type PIC16F150x, de la société Microchip, sont des unités de calculs embarquées sur 8 bits prévues pour des utilisations industrielles et cadencées

Microchip PIC16F / Registres internes PIC16F150x

Cette page et ses descendantes sont encore en cours de construction… Organisation de la mémoire du PIC16F150x Les microcontroleurs PIC16F possèdent deux espaces mémoires distincts : l’un pour le programme, l’autre pour les données. On parle alors d’une architecture Harvard

Microchip PIC16F / Entrées-Sorties Numériques

Cette page et ses descendantes sont encore en cours de construction… Les broches du PIC16F1509 Les microcontroleurs de la famille des PIC16F possèdent des broches spécifiques d’entrées/sorties regroupées dans des ports d’entrées/sorties. Ces ports sont nommés PORTx (où x est

Microchip PIC16F / Utiliser une liaison SPI / PIC16F1509

Introduction Le protocole de communication SPI (Serial Peripheral Interface) permet d’établir une liaison de transmission de données série synchrone entre un maître et plusieurs esclaves. La liaison se fait à l’aide de 4 fils (voir schéma suivant – vu du maître) :

Microchip PIC16F / Utiliser une mémoire RAM / MCP 23 LCV1024 / PIC16F15xx

Introduction Le composant 23LCV1024 de Microchip (documentation) est une mémoire à accès aléatoire, c’est à dire volatile – perte de l’information lorsqu’elle n’est plus alimentée – de type statique, c’est à dire sans nécessité de rafraîchir les données régulièrement. Elle peut

MATLAB / Les bases

Retour Matlab Utiliser des scripts Matlab est également un langage interprété. Il est donc possible d’exécuter des lignes de code dans une fenêtre de commande (intégrée au logiciel Matlab). Pour faciliter la réutilisation et le débogage de ses codes, il

Caractériser statiquement un dipôle / récepteur

En électronique, la caractéristique statique d’un dipôle correspond à la relation qu’il existe entre la différence de potentiel à ses bornes et le courant le traversant, dans des conditions statiques, c’est-à-dire lorsque ces deux grandeurs ne sont pas dépendant du

Câbler une LED standard

Ce tutoriel peut être complété avec : Schéma de cablage Pour pouvoir garantir un point de fonctionnement correct (sans destruction du composant), il est indispensable de mettre une résistance en série avec une LED. Rappel : les LEDs standard de

Nucléo – Configurer une communication point à point de type RS232

Comment configurer une communication point à point de type RS232 ? NIVEAU 2 Objectifs Pré-requis Faire communiquer deux systèmes ensemble 1 Protocole RS232 Utilisation et définition Le protocole RS232 a longtemps été utilisé pour piloter des périphériques d’ordinateur (Modem, GBF,

Nucléo – Echanger des données entre un PC et un uC

Ou échanger des données entre deux microcontroleurs par l’intermédiaire d’un protocole “bas niveau” existant (SPI, I2C ou RS232 par exemple). Comment échanger des données entre deux systèmes communicants ? NIVEAU 3 Objectifs Etablir un protocole de communication de haut niveau