Système Embarqué - Séance 2 PDF

Document Details

InspiringConsonance

Uploaded by InspiringConsonance

Université Cadi Ayyad - Faculté des Sciences Semlalia - Marrakech

2024

Mohammed AMEKSA

Tags

embedded systems computer architecture microcontrollers electronics

Summary

This document provides an overview of Embedded Systems & AI (M115-122). The document covers embedded system architecture. It focuses on the different components and functionalities of embedded systems 2024/2025

Full Transcript

Embedded Systems & AI (M115-122) Ch2. Architecture des systèmes embarqués Découvrir l’architecture matérielle et logicielle typique d’un SE Comprendre la différence entre Microprocesseurs vs Microcontrôleurs...

Embedded Systems & AI (M115-122) Ch2. Architecture des systèmes embarqués Découvrir l’architecture matérielle et logicielle typique d’un SE Comprendre la différence entre Microprocesseurs vs Microcontrôleurs Approfondir quelques notions utiles autour de la mémoire 2024 / 2025 40 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué LES ENTRÉS DE SYSTÈME COMPOSANTS COMPOSANTS MATÉRIELS LOGICIELS LES SORTIES DE SYSTÈME 2024 / 2025 41 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué COMPOSANTS MATÉRIELS ▪ Question : ▼ Quelles sont les fonctionnalités principales d’un SE ? ▪ Réponse : ▼ Traitement de données ▼ Stockage de données ▼ Interaction avec le monde extérieur ▪ Acquisition de données ▪ Actions sur l’environnement ▪ Communication 2024 / 2025 42 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué COMPOSANTS MATÉRIELS ▪ Traitement de données : Microprocesseur ou microcontrôleur ▪ Stockage de données : ▼ Volatile : registres, cache, mémoire vive (RAM, SRAM, DRAM...) ▼ Non volatile : mémoire morte (ROM, PROM, EPROM,...), support de stockage de masse ▪ Interaction avec le monde extérieur : périphériques ▼ De communication : contrôleur I2C, SPI, CAN, ethernet, WiFi, … ▼ D’acquisition : capteurs, convertisseur analogique-numérique A2D,... ▼ De sortie : convertisseur numérique-analogique D2A, LED, pilotage de moteur... ▪ Interconnexion processeur / autres composants : Bus ▪ Composants annexes : alimentation 2024 / 2025 43 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué COMPOSANTS MATÉRIELS Capteurs Actionneurs Mémoire 2024 / 2025 44 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué COMPOSANTS MATÉRIELS ▪ Capteur : ▼ mesurer la quantité physique et à la convertir en quantité électrique / signal analogique ▪ Convertisseur AD : ▼ Analogique vers digital convertisseur permet de convertir un signal analogique (signal envoyé par le capteur) vers une donnée digital prête à être exploiter par le processeur ▪ Mémoire : ▼ utilisée pour stocker des informations. Les SE contient principalement deux cellules de mémoire 1) Volatile 2) Mémoire non-volatile (nous allons détailler ça dans les diapo suivants). ▪ Processeur : ▼ Ce composant traite les données capturés et réalisé une tâche spécifié ▪ Convertisseur DA : ▼ digital vers analogique convertisseur convertir des données digital déjà traité et transmises par le processeur aux données analogiques ▪ Actionneur : ▼ Transformer des données provenant du processeur en des actions physiques (Mouvement mécanique, Changement d'état physique, Production de lumière ou de son) 2024 / 2025 45 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué COMPOSANTS MATÉRIELS Le Cas d’Arduino UNO ▪ CPU : ▼ Microcontrôleur Atmega328P intègre un CPU 8-bit, qui execute les instructions ▪ Mémoire : Composée de RAM, ROM , et EEPROM ▼ RAM (2 KB) : stocke des variables temporairement lors de l’exécution du programme ▼ Flash (32 KB) : Stocke le programme écrit par l’utilisateur ▼ EEPROM (1 KB) : Mémoire non-volatile stocke des données permanentes ▪ Périphériques intégrés : l’ATmega328P possède ▼ Des timers (horloge) ▼ Un ADC (analogique-numérique convertisseur) ▼ Des interfaces de communication 2024 / 2025 46 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué COMPOSANTS LOGICIELS Les composants logiciels d’un SE, se compose généralement de plusieurs éléments différents qui servent à : ▼ Initialisation et configuration ▼ Système d'exploitation ou environnement d'exécution ▼ le logiciel d'application lui-même ▼ la gestion des erreurs ▼ le support de débogage et de maintenance Logiciel d’application Logiciel d’application Logiciel d’application Couche système Couche système Couche système Middleware Système d’exploitation Middleware Middleware Système d’exploitation Pilotes de périphériques Pilotes de périphériques Pilotes de périphériques MATÉRIELS MATÉRIELS MATÉRIELS 2024 / 2025 47 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué C O M P O S A N T S L O G I C I E L S « Système d'exploitation ou environnement d'exécution » Un système d’exploitation (OS) pour systèmes embarqués, parfois appelé RTOS (Real-Time Operating System), assure la gestion des ressources et le contrôle des tâches en temps réel. Ses principales fonctions incluent : ▼ Gestion des tâches : Permet l’exécution simultanée de plusieurs processus. ▼ Gestion de la mémoire : Allocation et libération de la mémoire pour les applications. ▼ Gestion des interruptions : Répond aux événements matériels nécessitant une action immédiate. ▼ Communication inter-processus : Facilite l'échange de données entre différentes tâches. NB: Pour les SE un environnement d'exécution peut être utilisé à la place d'un OS, ce qui est courant dans les systèmes très limités en ressources 2024 / 2025 48 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué C O M P O S A N T S L O G I C I E L S «Logiciel d'application» C’est lui qui fournit la logique métier et les fonctionnalités principales du système embarqué. Il est spécifiquement développé pour accomplir les tâches définies, telles que : ▼ Traitement des données provenant des capteurs ▼ Contrôle des actionneurs pour influencer le comportement du système ▼ Communication avec d'autres systèmes ou réseaux ▼ Interface utilisateur, dans les systèmes qui nécessitent une interaction humaine Le développement de ce logiciel est souvent optimisé pour répondre à des contraintes strictes en matière de temps, de consommation d'énergie, et de mémoire 2024 / 2025 49 Ch1. Architecture des systèmes embarqués 1. Composants matériels et logiciels d'un système embarqué C O M P O S A N T S L O G I C I E L S «Gestion des erreurs» La gestion des erreurs est essentielle dans un SE, sert à garantir un fonctionnement robuste et sécurisé. Les fonctionnalités associées à cette partie comprennent : ▼ Détection des erreurs : Identifier les erreurs matérielles ou logicielles à partir de signaux anormaux. ▼ Correction des erreurs : Implémentation de mécanismes pour récupérer après une erreur (comme des routines de redémarrage partiel ou complet). ▼ Tolérance aux pannes : Conception du logiciel pour continuer à fonctionner de manière partielle ou dégradée en cas de dysfonctionnement. La gestion des erreurs est cruciale dans des systèmes critiques comme les systèmes embarqués automobiles, médicaux, ou aéronautiques 2024 / 2025 50 Ch2. Architecture des systèmes embarqués 2. Microprocesseurs vs Microcontrôleurs ▪ Microprocesseur : Il s’agit d’une unité centrale de traitement (CPU) qui n'intègre que la partie calcul. Il dépend de composants externes (mémoire, périphériques) pour fonctionner. ▼ Exemple : Intel Core i7 ▪ Microcontrôleur : Un microcontrôleur intègre dans un seul circuit intégré le processeur, la mémoire, et des périphériques d'entrée/sortie. Il est utilisé pour des tâches embarquées où les ressources sont limitées. ▼ Exemple : ATmega328P de l'Arduino UNO 2024 / 2025 51 Ch2. Architecture des systèmes embarqués 2. Microprocesseurs vs Microcontrôleurs Microprocesseur Horloge & circuit de contrôle Unité ENTRÉE arithmétique et Registres SORTIE logique (ALU) MÉMOIRE C’est un circuit intégré appelé souvent unité centrale de traitement (CPU), chargé d'exécuter des instructions et d'effectuer des opérations arithmétiques et logiques. Il est composé d'une unité de contrôle, d'une unité arithmétique et logique (ALU), de registres et d'interfaces pour la mémoire et les entrées/sorties, le tout synchronisé par un signal d'horloge. 2024 / 2025 52 Ch2. Architecture des systèmes embarqués 2. Microprocesseurs vs Microcontrôleurs Microcontroller Mémoire microcontrolleur Microprocesseur Ports E/S micro controlleur Petit Contrôle tous Horloge ADC Série E/S Autres les opérations ▪ « ordinateur sur puce » / “Computer on the chip” ▪ Le microcontrôleur comporte toutes les caractéristiques des microprocesseurs. 2024 / 2025 53 Ch2. Architecture des systèmes embarqués 2. Microprocesseurs vs Microcontrôleurs Critère Microcontrôleur Microprocesseur Un circuit intégré qui inclut un processeur, de Unité centrale de traitement (CPU) qui Définition la mémoire, des E/S et d'autres composants nécessite des périphériques externes (mémoire, dans une seule puce E/S, etc.) Intègre la mémoire (RAM, ROM) et parfois Utilise une mémoire externe (RAM, ROM) Mémoire d'autres composants comme un connectée via un bus convertisseur A/N Système Souvent sans système d'exploitation ou avec Utilise un système d'exploitation complet d’exploitation un RTOS (Windows, Linux, etc.). Moins cher, adapté pour des solutions Plus cher, conçu pour des applications plus Coût spécifiques ou de petite taille complexes Énergie Faible consommation Consommation élevée Puissance de Limitée (Une tâche bien spécifié) Élevée (plusieurs taches) calcul Interfaces E/S ports E/S intégrés des interfaces externes Critère Microcontrôleur Microprocesseur Support limité, souvent exécute une seule Support complet du multitâche avec gestion Multitâche tâche à la fois des processus complexes Compact, intègre plusieurs composants dans Généralement plus grand car nécessite des Taille physique une seule puce composants externes Systèmes embarqués, robots, appareils Applications Ordinateurs, serveurs, stations de travail, etc électroménagers, capteurs, etc. Exemples Arduino (ATmega328), ESP32, STM32 Intel Core, AMD Ryzen, ARM Cortex-A VS 2024 / 2025 55 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs ▪ Les microcontrôleurs sont divisés en plusieurs catégories en fonction de la mémoire, de l'architecture, des bits et du jeu d'instructions…. Jeu Bits Mémoire Architecture Famille d’instructions Mémoire 8-bit CISC Von-Neumann 8051 externe Mémoire 16-bit RISC Harvard Motorola embarquée 32-bit PIC Texas National ARM Autres Famille 8051 INTEL ATMEL Dallas Phillips Siemens 2024 / 2025 56 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 1. En fonction des bits : ▼ 8-bit : peut traiter 8 bits à la fois, utilisés pour des petites tâches simples. Exemple : 8031 et 8051 ▼ 16-bit : plus puissants que les 8 bits, avec plus de capacité pour effectuer des opérations arithmétiques et logiques nécessitant une précision et des performances accrues Exemple : 8096 ▼ 32-bit utilisés dans des applications contrôlées automatiquement, telles que les machines opérationnelles automatiques, les appareils médicaux, etc. 2024 / 2025 57 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 2. En fonction de mémoire : ▼ Mémoire externe : ce type de microcontrôleur est conçu de telle manière qu'il ne possède pas de mémoire de programme sur la puce Exemple : intel 8031 ▼ Mémoire embarquée : ce type est conçu de manière à ce que tous les éléments (programmes et données, compteurs, horloges, ports d'E/S) se trouvent sur la même puce 2024 / 2025 58 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 3. En fonction de jeu d’instructions : Le jeu d'instructions, c’est quoi déjà ? ▪ Jeu d’instructions : l’ensemble des instructions machine qu’un processeur peut exécuter ▪ Instruction machine : Une opération élémentaire que le processeur peut accomplir, elle se compose de deux champs : ▼ Le code opération, représente l’action que le processeur doit accomplir ▼ Le code opérande, définissant les paramètres de l’action Architecture x86 Architecture ARM ➔ méthodologie CISC ➔ méthodologie RISC 2024 / 2025 59 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 3. En fonction de jeu d’instructions : Exemple en langage assembleur Instruction = un code d'opération (op code) + un opérande (champ d’adresse) op code : est l'opération à réaliser, comme load, add, subtract, multiply, store, compare, jump, et halt Opérande : sur quoi l'opération est effectuée, spécifie un emplacement mémoire où se trouvent les données requises par l'instruction (parfois on l’appelée champ d'adresse) 1. charge une copie du contenu de l'emplacement mémoire x dans l'accumulateur du CPU, 2. puis ajoute une copie du contenu de l'emplacement mémoire y à ce qui est déjà dans l'accumulateur. 3. Ensuite, il stocke une copie du résultat dans l'emplacement z. 4. Enfin, le programme s'arrête 2024 / 2025 60 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 3. En fonction de jeu d’instructions : Instructions en Instructions en code langage d'assembleur machine binaire ▼ Chaque opération a son propre code binaire, ▼ chaque opérande est converti en une adresse mémoire numérique Traduites ▼ Lorsqu'un programme commence à Mémoire (RAM) s'exécuter, toutes ces instructions en code machine sont chargées dans la mémoire principale 2024 / 2025 61 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 3. En fonction de jeu d’instructions : ▼ chaque instruction de code machine est récupérée de la mémoire dans le registre d'instruction actuel “current instruction register” du CPU pour être exécutée current instruction register 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 8 cellules (bits) 24 cellules (bits) ➔ Stocker le code d'opération ➔ Stocker l’opérande 𝟐𝟖 code d'opérations différents 𝟐𝟐𝟒 adresses mémoire différentes, 16.7 millions d’adresses mémoire différentes Comment peut-on augmenter la quantité de mémoire qu'un programme peut adresser ? 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 5 cellules (bits) 27 cellules (bits) ➔ Stocker le code d'opération ➔ Stocker l’opérande 𝟐𝟓 (32) opérations possibles 𝟐𝟐𝟕 adresses mémoire différentes, 137 millions d’adresses mémoire différentes 2024 / 2025 62 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 3. En fonction de jeu d’instructions : RISC (Reduced Instruction Set Computer) CISC (Complex Instruction Set Computer) Moins de bits alloués au code d'opération Plus de bits alloués au code d'opération ➔ Un ensemble d'instructions plus réduit ➔ Un ensemble d'instructions plus large Chaque instruction fait moins Chaque instruction peut accomplir davantage Pour additionner deux nombres : Pour additionner deux nombres : LDA X ADD X, Y ADD Y Plus d'instructions nécessaires pour une tâche donnée. Moins d'instructions nécessaires pour une tâche donnée. Le nombre de cycles d'horloge nécessaires pour exécuter une la réalisation d'une tâche avec le moins de lignes de code instruction est réduit possible. Mais plus de cycles sont nécessaires par instruction. Plus de RAM nécessaire pour stocker les instructions Le code exécutable prend moins de place en RAM exécutables Plus de localisations mémoire peuvent être accessibles Moins de localisations mémoire peuvent être accessibles directement directement 2024 / 2025 63 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 4. En fonction d’architecture : ▼ Von-Neumann : utilise une seule unité de mémoire dans laquelle sont stockées à la fois les données et les instructions. Adresses CPU Données Mémoire (Prog + ALU Registres Contrôle data) Unité de contrôle Entrées Sorties CPU Mémoire 2024 / 2025 64 Ch2. Architecture des systèmes embarqués 2. Types des Microcontrôleurs 4. En fonction d’architecture : ▼ Harvard : une architecture dans laquelle l'unité de mémoire est divisée en deux parties pour stocker individuellement les données et les instructions Adresses Adresses Mémoire Mémoire (Données) (Programme) Données CPU Données E/S Éléments 2024 / 2025 65 Ch2. Architecture des systèmes embarqués 2. Microprocesseurs vs Microcontrôleurs ✓ Faible coût ✓ Petite taille ✓ Moindre puissance ▶ Microcontrôleur est le meilleur choix ✓ Fonctionnalités multiples ✓ Les applications à haute performance ✓ Besoin d’une GUI sophistiquée consommation ▶ Microprocesseur est le choix idéal d'énergie Performance Le prix 2024 / 2025 66 Ch2. Architecture des systèmes embarqués 3. Mémoire : introduction ▪ Mémoire : l'ensemble des dispositifs de stockage utilisés pour conserver et accéder aux instructions de programme ainsi qu'aux données nécessaires au bon fonctionnement du système ▪ Elle fonctionne presque de la même façon que le registre. ▪ Une mémoire est conçue pour stocker en vrac des données, et c'est tout ce qu'elle peut faire Si elle peut Si elle perd ses conserver les données lorsque l'alimentation est Mémoire données sans alimentation coupée Volatile Non-Volatile 2024 / 2025 67 Ch2. Architecture des systèmes embarqués 3. Mémoire : volatile ▪ RAM (Random Access Memory) : stockage temporaire des données et du code en cours d'exécution ▼ SRAM (Static RAM) : Rapide, utilisée pour les registres et les tampons. Plus coûteuse et consomme plus d'énergie, mais ne nécessite pas de rafraîchissement ▼ DRAM (Dynamic RAM) : Utilisée pour stocker de plus grandes quantités de données à un coût moindre. Elle est plus lente que la SRAM et nécessite un rafraîchissement périodique 2024 / 2025 68 Ch2. Architecture des systèmes embarqués 3. Mémoire : non-volatile ▼ ROM (Read-Only Memory) : contient le code permanent (le programme de démarrage ou des données statiques), non modifiable ▼ PROM (Programmable ROM) : programmable une seule fois ▼ EPROM (Erasable PROM) : effaçable par UV, reprogrammable ▼ EEPROM (Electrically Erasable PROM) : effaçable électriquement, reprogrammable ▼ Flash : type d'EEPROM plus rapide et dense, utilisée pour le stockage du programme et des données permanentes largement utilisée dans les systèmes embarqués ROM PROM EPROM EEPROM 2024 / 2025 69 Atelier Pratique : « simulateur + réel » Mise en œuvre des résistances Pull-up et Pull-down Génération de signaux PWM (Pulse Width Modulation) Mise en œuvre des résistances Pull-up et Pull-down 2024 / 2025 72 TP2. Mise en œuvre des résistances Pull-up et Pull-down 1. Comprendre c’est quoi déjà ?! 1.Réalisez vous le schéma de montage suivant 2.Ensuite, écrivez un code Arduino dans lequel vous essayez de contrôler le comportement de LED en vous basant sur la valeur du PIN 2 : allumez la LED si la valeur du PIN est 1 (HIGH), et éteignez-la si la valeur est 0 (LOW). 3.Téléversez le code dans la carte, et essayez de toucher la table dans la carte se positionner; Que remarquez-vous? Essayez d’expliquer le comportement visualisé 2024 / 2025 73 TP2. Mise en œuvre des résistances Pull-up et Pull-down 2. Résistance PULL-UP Résistance PULL-UP ce type est plus utilisé que PULL- DOWN 1.Modifiez le schéma précédent de tell sort soit similaire à ce à coté 2.Essayez de répéter l’opération précédente (touchez la table) et voir si le même comportement est toujours là. Commentez-vous 2024 / 2025 74 TP2. Mise en œuvre des résistances Pull-up et Pull-down 3. Résistance PULL-DOWN 3. Maintenant essayez vous de modifier à nouveau le schéma pour qu’il soit similaire a cela à coté 4. Garder le même code arduino Que Remarquez-vous ?? Quelle est la déférence entre ce schéma et ce que nous avons déjà traité ?? 2024 / 2025 75 TP2. Mise en œuvre des résistances Pull-up et Pull-down 4. Résumé Résistance PULL-DOWN Résistance PULL-UP Résistance PULL-UP (interne) lorsque l'interrupteur est ouvert, le MCU est relié à GND lorsque l'interrupteur est ouvert, le MCU est tiré vers Vs Fonctionnellement équivalent à la configuration de la lorsque l'interrupteur est fermé, le MCU est à 5V (HIGH) lorsque l'interrupteur est fermé, le MCU est à 0V (LOW) résistance pull-up, mais vous n'avez pas besoin de la car il est directement connecté à Vs. car il est directement connecté à GND résistance supplémentaire Plus détails 2024 / 2025 76 Génération de signaux PWM (Pulse Width Modulation) 2024 / 2025 77 TP2. Génération de signaux PWM (Pulse Width Modulation) 1. Les entrées et sorties Arduino UNO E/S Numériques ▪ Les E/S numériques fonctionnent avec des signaux binaires, c’est-à-dire qu’elles peuvent être à l’état HIGH (5 volts) ou LOW (0 volts). ▪ Ils sont utilisés pour contrôler des composants numériques tels que des LEDs, des boutons, des interrupteurs, etc. 1 ▪ Ils offrent une précision de 1 bit (0 ou 1). E/S numériques ▪ L'Arduino Uno possède 14 entrées/sorties numériques, numérotées de 0 à 13. ▪ Elles peuvent être configurées comme entrées ou sorties, et peuvent lire ou écrire des tensions de 0 ou 5 volts. 2024 / 2025 78 TP2. Génération de signaux PWM (Pulse Width Modulation) 1. Les entrées et sorties Arduino UNO E/S Analogique ▪ Les E/S analogiques fonctionnent avec des signaux continus, c'est-à-dire qu'elles peuvent mesurer une tension sur une plage de valeurs. ▪ Ils sont utilisées pour interagir avec des composants analogiques tels que des capteurs de température, de lumière, de distance et de son etc. ▪ L'Arduino Uno possède 6 entrées analogiques, Entrées 2 analogiques numérotées de A0 à A5. ▪ Elles peuvent mesurer des tensions comprises entre 0 et 5 volts. 2024 / 2025 79 TP2. Génération de signaux PWM (Pulse Width Modulation) 1. Les entrées et sorties Arduino UNO E/S Analogique ▪ L'arduino uno ne possède pas de sorties analogiques, mais il est possible de simuler des sorties analogiques en utilisant la modulation de largeur d'impulsion (PWM). ▪ PWM est une technique qui consiste à envoyer des signaux numériques à une fréquence élevée pour Sorties analogiques simuler un signal analogique. PWM (~) ▪ Les broches de sortie PWM de l'Arduino Uno sont 2 les broches numériques 3, 5, 6, 9, 10 et 11 Elles sont repérées par le symbole tilde ~ ▪ Ces broches peuvent produire des signaux PWM avec une résolution de 8 bits, ce qui signifie que la largeur de l'impulsion peut varier sur 256 niveaux différents. Cela permet de contrôler la luminosité des LED, la vitesse des moteurs, ou tout autre dispositif qui nécessite un contrôle analogique. 2024 / 2025 80 TP2. Génération de signaux PWM (Pulse Width Modulation) 2. La fréquence ▪ La fréquence d’un signal périodique correspond au nombre de fois que la période se répète en UNE seconde. ▪ On la mesure en Hertz, noté Hz. Prenons l’exemple d’un signal logique (signal créneaux) qui émet un 1, puis un 0, puis un 1, puis un 0, etc. On va mesurer sa période (en temps) entre le début du niveau 1 et la fin du niveau 0. ▪ Ensuite, lorsque l’on aura mesuré cette période, on va pouvoir calculer sa fréquence (le nombre de périodes en une seconde) grâce à la formule suivante : 𝑭=𝟏/𝑻 ▪ Avec : F : fréquence du signal en Hertz (Hz) T : temps de la période en seconde (s) 2024 / 2025 81 TP2. Génération de signaux PWM (Pulse Width Modulation) 3. Le rapport cyclique Rapport cyclique ce dit Duty Cycle en anglais ▪ Le rapport cyclique, un mot bien particulier pour désigner le fait que le niveau logique 1 peut ne pas durer le même temps que le niveau logique 0. C’est avec ça que tout repose le principe de la PWM. (0/255 = 0%) ▪ C’est-à-dire que la PWM est un signal de fréquence fixe qui a un rapport cyclique qui varie avec le temps suivant les ordres (64/255 = ~25%) qu’elle reçoit. ▪ Le rapport cyclique est mesuré en pourcentage (%). Plus le pourcentage est élevé, plus le niveau logique 1 est présent dans (127/255 = ~50%) la période et moins le niveau logique 0 l’est. Et inversement. ▪ Le rapport cyclique du signal est donc le pourcentage de (191/255 = ~75%) temps de la période durant lequel le signal est au niveau logique 1 (255/255 = 100%) 𝑉𝑜𝑢𝑡 = 𝑉𝑜𝑙𝑡𝑎𝑔𝑒𝑚𝑎𝑥 ∗ 𝑅𝑎𝑝𝑝𝑜𝑟𝑡𝐶𝑦𝑐𝑙𝑖𝑞𝑢𝑒𝑓𝑟𝑎𝑐𝑡𝑖𝑜𝑛 2024 / 2025 82 TP2. Génération de signaux PWM (Pulse Width Modulation) 3. La PMW de l’Arduino ▪ La PWM (Pulse Width Modulation) : en français « Modulation à Largeur d’Impulsion (MLI) ». C’est un signal de fréquence fixe qui a un rapport cyclique qui varie avec le temps ▪ Les broches de la PWM : Sur votre carte Arduino UNO, vous devriez disposer de 6 broches qui sont compatibles avec la génération d’une PWM. Elles sont repérées par le symbole tilde ~. ▼ Voici les broches générant une PWM : 3, 5, 6, 9, 10 et 11. ▪ La fréquence de la PWM : ▼ Cette fréquence est fixe (elle ne varie pas au cours du temps). Pour votre carte Arduino UNO elle est d’environ 490Hz. ▪ La fonction analogWrite(int pin, int value) : Elle prend deux arguments : ▼ pin c’est le numéro de la broche où l’on veut générer la PWM ▼ Le second argument value représente la valeur du rapport cyclique à appliquer. Malheureusement on n’exprime pas cette valeur en pourcentage, mais avec un nombre entier compris entre 0 et 255 2024 / 2025 83 TP2. Génération de signaux PWM (Pulse Width Modulation) 3. La PMW de l’Arduino ▪ Exemple : 1. Essayez-vous de faire clignoter une LED à l’aide des sorties analogique 2. Maintenant modifiez le code pour qu'il produire des valeurs croissantes pour allumant la LED progressivement suivies de valeurs décroissantes (pour l’éteindre) 2024 / 2025 84 TP2. Génération de signaux PWM (Pulse Width Modulation) 4. La LED RGB ou RVB ▪ Une LED RGB est un composant électronique qui combine trois LED individuelles (rouge, verte et bleue) dans un seul boîtier. En contrôlant l'intensité de chaque LED, vous pouvez créer une large gamme de couleurs. Elle possède donc 4 broches et existe sous deux modèles : à anode commune et à cathode commune. ▼ Anode commune (+) : une seule broche ▼ Cathode commune (-) : une seule broche pour le positif et trois broches pour les pour le négatif et trois broches pour les couleurs rouge, verte et bleue. couleurs rouge, verte et bleue. 2024 / 2025 85 TP2. Génération de signaux PWM (Pulse Width Modulation) 4. La LED RGB ou RVB Cathode commune (-) 2024 / 2025 86 TP2. Génération de signaux PWM (Pulse Width Modulation) 4. La LED RGB ou RVB ▪ La lumière est composée de trois couleurs primaires qui sont : ▼ Le rouge Couleur Rouge, Vert, Bleu broches ▼ Rouge HIGH, LOW, LOW Le vert Vert LOW, HIGH, LOW ▼ Le bleu Bleu LOW, LOW, HIGH ▪ À partir de ces trois couleurs, il est possible de créer n’importe quelle autre couleur en mélangeant ces trois couleurs primaires entre elles. ▼ Par exemple, pour faire du jaune on va mélanger du rouge et du vert. ▪ La fonction analogWrite() prend un argument pour la PWM qui va de 0 à 255. 2024 / 2025 87 TP2. Génération de signaux PWM (Pulse Width Modulation) 4. La LED RGB ou RVB ▪ Dans les deux slides précédents nous avons détaillé le fonctionnement de la LED RGB de type « Cathode commune (-) », Essayez vous de s’informer et de faire la même chose sur l’autre type « Anode commune (+) » 2024 / 2025 88 Les entrées Analogiques « Potentiomètre » comme exemple ▪ Une entrée analogique est un type d'entrée qui permet de mesurer une tension variable. Contrairement aux entrées numériques qui ne peuvent lire que deux états (0 ou 1), les entrées analogiques peuvent lire une large plage de valeurs. ▪ Un potentiomètre est un composant électronique qui se comporte comme une résistance variable. Il est souvent utilisé pour contrôler un signal analogique, comme le volume sonore ou la luminosité d'une LED. On le retrouve couramment dans les radios, les amplificateurs et autres appareils électroniques. ▪ Il existe deux types principaux de potentiomètres: ▼ Potentiomètre rotatif ▼ Potentiomètre linéaire 2024 / 2025 89 TP2. Les entrées Analogiques « Potentiomètre » comme exemple 1. Type de potentiomètre Potentiomètre rotatif Potentiomètre linéaire ▪ Le plus commun. ▪ Moins utilisé que les potentiomètres rotatifs. ▪ Sa résistance varie en fonction de ▪ Sa résistance varie en fonction de la position la rotation d'un bouton. d'un curseur coulissant. ▪ Utilisé pour le contrôle du volume, ▪ Utilisé pour le mixage audio, les joysticks, etc. la luminosité, etc. européen Voici les symboles électroniques du potentiomètre américain 2024 / 2025 90 TP2. Les entrées Analogiques « Potentiomètre » comme exemple 2. Lecture de valeur ▪ Pour lire la valeur du potentiomètre, vous pouvez utiliser la fonction analogRead(). Cette fonction renvoie une valeur numérique comprise entre 0 et 1023, qui correspond à la tension lue sur l'entrée analogique. ▼ int valeurPotentiometre = analogRead(A0); 2024 / 2025 91 TP2. Les entrées Analogiques « Potentiomètre » comme exemple 3. Branchement ▪ Comme toute résistance, le potentiomètre modifie la tension d’un circuit. On va donc l’utiliser principalement comme entrée (input) sur une broche analogique (A0 à A5) de l’Arduino. ▪ Le potentiomètre possède 3 broches : ▼ Une alimentation (généralement, nous utilisons le +5V délivré par l’Arduino) ▼ Une sortie analogique ▼ Une masse 2024 / 2025 92 TP2. Les entrées Analogiques « Potentiomètre » comme exemple 3. Branchement Le potentiomètre dans ce démo produire des valeurs analogique entre 0 et 1023 On les convertis par la suite à un rapport cyclique varié entre 0 et 255, pour allumant/éteindre la LED progressivement 2024 / 2025 93

Use Quizgecko on...
Browser
Browser