Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Rapport Esp32

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 13

SOMMAIRE

INTRODUCTION.....................................................................................................2

I. PRESENTATION DE LA CARTE ESP32........................................................2

1. Description matérielle......................................................................................2

2. Caractéristiques techniques et brochage d’une carte ESP32............................4

3. Application de la carte ESP32.........................................................................5

II. LES INTERRUPTIONS SUR L’ESP32..........................................................6

1. Définition et rôle..............................................................................................6

2. Types d’interruption et leur fonctionnement sur l’ES32..................................7

a- INTERRUPTION EXTERNES....................................................................7

b- INTERRUPTION INTERNES.....................................................................9

III. EXPLOITATION DE L’INTERRUPTION SUR L’ESP32 EN C ARDUINO


11

CONCLUSION....................................................................................................... 13
objectif : Dans notre travail, il s'agit de faire une étude descriptive de L'ESP32(description
matérielle et brochage), ensuite expliquer le fonctionnement des interruptions sur L'ESP32 et
son exploitation avec le langage C Arduino.

INTRODUCTION

La carte ESP32 est une carte de développement basée sur le système sur une
puce ESP32, qui est un microcontrôleur à double cœur, doté de fonctionnalités
Wi-Fi et Bluetooth intégrées. Elle est largement utilisée dans le développement
de projets IoT (Internet des objets), grâce à ses capacités de connectivité sans fil,
sa faible consommation d'énergie et sa flexibilité.
L'ESP32 dispose de nombreux ports d'entrée/sortie (E/S) pour connecter divers
capteurs, actionneurs et périphériques, tels que des capteurs de température, des
capteurs de lumière, des afficheurs LED et des servomoteurs. En particulier, la
gestion des interruptions est un aspect crucial de la programmation sur l'ESP32.
Les interruptions permettent au microcontrôleur de réagir immédiatement à des
événements externes, comme le changement d'état d'un capteur, sans avoir à
vérifier en continu l'état des entrées. Cela optimise les performances et la
réactivité des applications IoT.
En utilisant des bibliothèques compatibles avec des plates-formes de
développement telles qu'Arduino et ESP-IDF (Espressif IoT Développent
Framework), il est possible d'implémenter des programmes d'interruption pour
gérer des événements en temps réel.

I. PRESENTATION DE LA CARTE ESP32


1. Description matérielle

La carte ESP32 est une carte électronique programmable construite autour du


microcontrôleur ESP32.
Elle est associée à divers composants électroniques et dispose d'interfaces pour
l'alimentation, la
programmation, et la
communication avec
des modules ou des
composants externes.

L’ESP32 & INTERRUPTION ROBOTIQUE 2


 Microcontrôleur dual-core :
- Il utilise un processeur Xtensa LX6 (un ou deux cœurs selon les modèles)
capable de fonctionner jusqu'à 240 MHz.
- Mémoire flash intégrée (généralement 4 Mo) et SRAM.
 Connectivité :
- Wi-Fi 802.11 b/g/n intégré avec support pour mode point d'accès, station
et point d’accès/station simultanés.
- Bluetooth 4.2 et BLE (Bluetooth Low Energy), ce qui permet des
connexions à faible consommation d’énergie et des fonctionnalités de
communication sans fil.
 Entrées/Sorties (I/O) :
- GPIOS : Le ESP32 dispose de nombreux pins d'entrée/sortie numériques
(jusqu'à 34 GPIOs) que vous pouvez configurer pour diverses fonctions
(PWM, ADC, SPI, I2C, etc.).
- ADC/DAC : Il a des convertisseurs analogique-numérique (ADC) de 12
bits et des convertisseurs numérique-analogique (DAC) de 8 bits.
- PWM : Le module de modulation de largeur d'impulsion (PWM) intégré
permet de contrôler des moteurs, des LEDs, etc.
 Modules de communication :
- SPI, I2C, UART : Interfaces série standard pour la communication avec
d'autres périphériques comme les capteurs ou les affichages.
- CAN bus : Support pour des applications automobiles ou d'automatisation
industrielle.

L’ESP32 & INTERRUPTION ROBOTIQUE 3


 Basse consommation d'énergie :
- Le ESP32 dispose de plusieurs modes de veille pour réduire la
consommation d'énergie, ce qui est idéal pour les applications IoT
alimentées par batterie.
 Support du développement :
- Compatible avec Arduino IDE, PlatformIO, et les environnements de
développement spécifiques comme ESP-IDF (Espressif IoT Development
Framework).
- Support pour les langages de script comme MicroPython ou JavaScript
(grâce à Espruino).
- Écosystème de bibliothèques et de frameworks bien établi, avec une large
communauté d’utilisateurs.

2. Caractéristiques techniques et brochage d’une carte ESP32


Les caractéristiques de la carte ESP32 peuvent être résumées à travers les
principaux éléments ci-dessous.
 Alimentation :
- 5 Vcc via micro-USB
- 3,3 Vcc via broches Vin
 Microcontrôleur : ESP32
 Microprocesseur : Tensilica LX6 Dual-Core
 Fréquence : 240 MHz
 Mémoire SRAM : 512 kB
 Mémoire Flash : 4 Mb
 E/S disponibles :
- 15 E/S digitales dont 10 compatibles PWM
- 2 x sorties analogiques (DAC)
- 15 x entrées analogiques (ADC)
 Interfaces : I2C, SPI, 2 x UART
 Interface Wifi 802.11 b/g/n 2,4 GHz

L’ESP32 & INTERRUPTION ROBOTIQUE 4


 Bluetooth : Classique / BLE
 Antenne intégrée
 Température de service : -40 à 125 °C
 Dimensions : 48 x 26 x 11,5 mm

Le brochage de la carte ESP32 WROOM se présente comme suit :

Figure 2: brochage ESP32

3. Application de la carte ESP32

Les applications courantes de l’esp32 se trouvent dans plusieurs domaines entre


autres :

- Automatisation domestique : contrôle des appareils : L'ESP32 peut être


utilisé pour contrôler des appareils électroménagers (comme des lampes,
des thermostats ou des appareils audio)

L’ESP32 & INTERRUPTION ROBOTIQUE 5


- Robotique : utilisé dans des robots pour le contrôle des moteurs, la
gestion des capteurs, et la communication sans fil, et aussi dans le
domaine des drones pour la communication avec les téléphones.
- Applications Industrielles
Surveillance et contrôle à distance : Utilisé pour des systèmes de
surveillance en temps réel des machines et des équipements industriels.
- Smart Agriculture : suivi des cultures : Utilisé pour mesurer l'humidité
du sol, la température, et d'autres paramètres environnementaux pour
optimiser les rendements agricoles.

II. LES INTERRUPTIONS SUR L’ESP32


1. Définition et rôle

Une interruption est un processus qui est déclenché de manière asynchrone par
un évènement extérieur, qui interrompt momentanément l’exécution du code en
cours, pour exécuter du code plus critique.
Son rôle consiste à interrompre momentanément le programme principal exécuté
pour effectuer un autre travail. Quand cet autre travail est terminé, on retourne
à l’exécution du programme principal à l’endroit exact où il l’avait été laissé.
Cet autre travail s’appelle le programme d’interruption.

Figure 3: Cycle de fonctionnement des interruptions

L’ESP32 & INTERRUPTION ROBOTIQUE 6


NB : Il est très important que le programme d’interruption ait un temps
d’exécution le plus court possible. On ne fera donc aucun calcul compliqué et
aucun appel à des fonctions longues.

2. Types d’interruption et leur fonctionnement sur l’ES32

Il existe plusieurs types d’interruption que peut gérer la carte ESP32, chacune
avec un rôle spécifique. Voici les deux principaux types d'interruptions et leur
fonctionnement :
-Interruptions externes ou matérielles.
-Interruptions internes.

a- INTERRUPTION EXTERNES
Les interruptions externes sont générées par des événements externes au
microcontrôleur, comme un signal provenant d'un périphérique connecté à un
port GPIO (General Purpose Input Output).
Exemples d'événements externes :
 Un bouton poussoir est pressé.
 Un capteur envoie un signal (comme un capteur de mouvement PIR).
Dans notre cas avec l 'ESP32 , celui-ci surveille constamment l'état de ses
broches GPIO. Si une interruption est activée sur une broche donnée, une autre
fonction est exécutée dès que la condition d'interruption (comme un changement
d'état de la broche) est remplie.
NB : Pour l'ESP32, toutes les broches du GPIO peuvent être utilisées en
interruption, à l'exception de GPIO 6 à GPIO 11.

FONCTIONNEMENT
Le fonctionnement de l’interruption externe sur l’esp32 est le suivant :

L’ESP32 & INTERRUPTION ROBOTIQUE 7


Détection d’un évènement → Interruption du programme principal →
Exécution du code de l’interruption → Le processeur reprend là où il
s’est arrêté.

 DETECTION DE L’EVENEMENT
La détection de l’évènement est basée sur la forme du signal arrivant sur
la broche de la carte ESP32.

Figure 4: allure du signal arrivant au pin


On peut choisir le mode de détection de l’évènement, à cet effet il en
existe plusieurs types :
- Front montant (RISING) : L’interruption est déclenchée lorsque
le signal passe de l’état bas (0) à l’état haut (1).
- Front descendant (FALLING) : L’interruption se produit
lorsque le signal passe de l’état haut (1) à l’état bas (0).
- Changement d'état (CHANGE) : L'interruption est déclenchée à
chaque fois que le signal change, qu’il passe de bas à haut ou de
haut à bas.
- État haut (HIGH) : L’interruption est déclenchée lorsque le signal
reste à l’état haut.
- État bas (LOW) : L’interruption est déclenchée lorsque le signal
reste à l’état bas.
NB : Les modes RISING et FALLING sont les plus utilisés. Noter
que si vous utilisez les modes LOW et HIGH, l’interruption se
déclenchera en boucle tant que le signal ne change pas d’état

 CONFIGURATION DE L’INTERRUPTION SUR L’ESP32

L’ESP32 & INTERRUPTION ROBOTIQUE 8


Pour configurer une interruption sur une broche GPIO de l’ESP32, il est
nécessaire d’utiliser la fonction attachInterrupt(), qui associe une
fonction de traitement (ISR - Interrupt Service Routine) à la broche
concernée.
Fonction « attachInterrupt() »
La fonction « attachInterrupt () » scrute indépendamment un port GPIO
d’interruption externe sans bloquer l’exécution du programme et à la
détection d’un événement sur le port un sous‐ programme d’interruption
est automatiquement exécuté.
EXEMPLE :
void setup () {
attachInterrupt (pin_interruption, function_interruption , Mode_detection) ;
}

 EXECUTION DE LA FONCTION EXECUTEE APRES


l’INTERRUPTION
Une fois que l'interruption est déclenchée, l’ESP32 arrête momentanément
l'exécution de son programme principal et exécute la fonction
d’interruption. Elle est souvent courte et simple car elle doit se terminer
rapidement pour que l’ESP32 puisse retourner à son programme normal.

 RETOUR AU PROGRAMME PRINCIPAL :


Une fois la fonction d’interruption terminée, le programme principal
reprend là où il s'était arrêté.

b- INTERRUPTION INTERNES

Les interruptions internes sont déclenchées par des événements internes au


microcontrôleur, comme un chronomètre, une horloge interne, ou des
périphériques internes comme les UART ou SPI.

FONCTIONNEMENT :

L’ESP32 & INTERRUPTION ROBOTIQUE 9


Le principe de fonctionnement est le même que celle des intérruptions externes.
La différence majeure est dans ce cas les interruptions sont déclenchées par des
évènements internes à la carte ESP32
Exemples d'événements internes :
- Débordement de minuterie (timer overflow),
- Fin de transmission ou réception de données sur un périphérique de
communication (UART, SPI, I2C),
- Expiration du chien de garde (watchdog timer),
- Gestion de l’alimentation (Power Management Interrupts).
Les types courants d’interruptions internes sur l’ESP32 :

 INTERRUPTIONS DE TIMER
Elle permet de générer des intérruptions à des intervalles définis, d’où
déclencher des actions périodiques.
Fonctionnement :
 Un timer interne compte jusqu’à une valeur prédéfinie.
 Lorsqu'il atteint cette valeur, il déclenche une interruption.
 Une fonction d’interruption associée à ce timer s’exécute, réalisant
l’action souhaitée (par exemple, un calcul ou une mise à jour d’état).
Exemple : Utilisation d’une minuterie pour clignoter une LED toutes les
secondes

 INTERRUPTIONS DU PERIPHERIQUE UART


Elle est utilisée lors de la communication série. Cela permet de gérer la
communication sans vérifier en permanence l'état des données transmises
ou reçues.
Fonctionnement :
 Lorsqu'un caractère est reçu ou envoyé par l’UART, une interruption
est déclenchée.
 La fonction d’interruption gère la réception ou l'envoi des données
sans avoir besoin d’un polling constant.

L’ESP32 & INTERRUPTION ROBOTIQUE 10


Exemple : Réception d'un caractère via la communication série et
déclenchement d'une ISR pour stocker ce caractère dans un buffer.

 INTERRUPTIONS I2C OU SPI


Le fonctionnement est le meme qu’avec l’UART.

III. EXPLOITATION DE L’INTERRUPTION SUR L’ESP32


EN C ARDUINO

L’utilisation des interruptions sur l’ESP32 est similaire à celle sur l’Arduino
avec la fonction attachInterrupt(). Ainsi donc pour créer l’interruption en
langage C arduino , on procède ainsi :
1. Attribuer un pin pour détecter l’interruption attachInterrupt()

 attachInterrupt (GPIOPin, fonction_interrupt, Mode) ;


Le mode peut etre : LOW , HIGH , RISING , FALLING ou CHANGE
2. Créer la fonction qui va être exécutée lorsque l’interruption est
déclenchée

 void IRAM_ATTR fonction_interrupt () {


// Contenu de la fonction
}
NB : Il est conseillé d’ajouter le flag IRAM_ATTR pour que le code de la
fonction soit stocké dans la RAM (et non pas dans la Flash), afin que la fonction
s’exécute plus rapidement.

Pour mieux comprendre la notion d’interruption sur l’ESP32, nous allons faire
un exemple.
EXEMPLE D’UTILISATION D’INTERRUPTION

L’ESP32 & INTERRUPTION ROBOTIQUE 11


Il s’agit de faire clignoter une LED lorsqu’on appuie sur un bouton . On va
utiliser les interruptions pour gérer l’événement et libérer le processeur pour
qu’il puisse faire d’autres tâches.

Figure 5:Code d'interruption avec Bouton Poussoir et led

L’ESP32 & INTERRUPTION ROBOTIQUE 12


CONCLUSION

L'ESP32, en tant que microcontrôleur puissant et polyvalent, intègre des


fonctionnalités avancées qui le rendent idéal pour des projets nécessitant une
gestion efficace des ressources et des événements externes. Les interruptions, un
des aspects les plus critiques de la programmation embarquée, permettent au
processeur de réagir rapidement à des événements matériels ou logiciels sans
être constamment engagé dans des boucles de surveillance, ce qui améliore à la
fois l'efficacité et la réactivité des systèmes. Cependant, l'utilisation des
interruptions doit être soigneusement planifiée pour éviter certains pièges
courants, tels que les conditions de course, les problèmes de synchronisation et
les conflits de ressources partagées

L’ESP32 & INTERRUPTION ROBOTIQUE 13

Vous aimerez peut-être aussi