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 – Faire varier la vitesse d’un moteur à courant continu
Comment faire varier la vitesse d’un moteur à courant continu ? NIVEAU 3 Objectifs Pré-requis Régler la luminosité d’une LED 2 2 Moteur à courant continu Un moteur à courant continu est un système permettant de transformer une énergie électrique
GIT / Utilisation à l’IOGS
https://iogs-digital-methods.notion.site/GitHub-Utilisation-l-IOGS-842876c8cadb4a5ea27d212185714324
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
Microchip PIC16F / Utiliser un convertisseur numérique analogique / AD7303 / PIC16F15xx
Introduction Le composant AD7303 de Analog Devices (documentation) est un convertisseur numérique analogique sur 8 bits à 2 sorties. Il peut être piloté via une interface SPI (voir tutoriel PIC16F1509) jusqu’à 30~MHz. On peut remarquer sur le diagramme fonctionnel précédent que ce convertisseur
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 – Faire communiquer deux systèmes en BlueTooth (RN 42 module)
Comment faire communiquer deux systèmes en BlueTooth par l’intermédiaire d’un module RN 42 ? NIVEAU 4 Les modules RN41/42 permettent d’établir une communication BlueTooth entre deux systèmes. Ces modules gèrent la connexion et la communication RF entre deux nœuds du
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