Vous êtes sur la page 1sur 56

Introduction à

l’électronique
embarquée
2

Objectifs du
u Maîtriser les bases de l’électronique

cours u Utiliser et traiter des signaux électriques

u Développer des applications C bas niveau


pour microcontrôleur

u Concevoir un système électronique complet


autour d’un microcontrôleur
3

Présentation orale du projet (50 %)


Evaluation
u

u Evaluation écrite (50%)


u Deux tests écrits d’une vingtaine de minutes

u Rendu des TP pour ajuster les notes des tests


écrits

u Evaluation de suivi (non notée)


4

u Semaine 1

Plan du u

u
Introduction
Découverte de l’Arduino

cours u

u
Physique pour l’électronique
Découverte du Stm32

u Semaine 2
u Moteur courant continu
u Amplification et filtrage électronique
u Présentation du projet

u Semaine 3
u Projet
u CAO pour l’électronique (en Visio)
5
Présentation du projet

u Groupe de 3

u 10h en cours + travail personnel

u Conception de l’électronique d’une voiture


u Commande moteur
u Capteur de recul
u Signaux sonores
u Tableau de bord
u …
6

Evaluation de
suivi
1- Introduction 7

u Objectif :
u Comprendre les enjeux de l'électronique embarqué, les compétences
nécessaires et les applications possibles.
u Plan :
u Définition de l’électronique
u Définition des systèmes embarqués
u Compétences
Qu’est ce que 8

l’électronique ?

u Définition : domaine de la physique


qui étudie et utilise les variations de
grandeurs électriques.

u Utilisation de composants pour


créer/maîtriser ces variations. :
u Résistances
u Diodes
u Transistors
u Processeur
u Microcontrôleur
Les différents type 9
d’électroniques
u Electronique de puissance :
u Transfert d’un force électrique élevée
u Réseau EDF, Prise électrique,
convertisseur (chargeur de téléphone)

u Micro-électronique :
u Transfert/traitement de signaux
électriques d’information :
u Ampli de guitare, capteur, processeur

u Electronique logiciel :
u Développement à l’aide d’un langage
de programmation des cartes
électroniques
Systèmes 10

embarqués
u Tout système électronique qui n’est
pas un ordinateur de bureau

u Répond à une application précise

u Contraintes :
u Temps réel
u Ressources limitées
u Faible consommation
11
Systèmes
embarqués

u Application typique d’un


système d’électronique
embarqué :
12

Compétences u Développement de code C, temps réel, sur un


microcontrôleur
pour
l’électronique u Caractéristiques électroniques des capteurs /
actionneurs
embarqué
u Traitement du signal électrique

u Communication électronique
2- Découverte de l'Arduino 13

u Objectif :
u Premier pas autour de la carte Arduino et son environnement de
développement.
u Plan :
u Arduino
u Définition technique
u Compilation de codes et IDE
u Fonctions élémentaires
u TP 1
14
Arduino, qu’est-ce que
c’est ?

u C’est une marque fabriquant des cartes


d’évaluation tel que l'Arduino LEONARDO construit
autour d’un microcontrôleur (ex: ATMega32u4) et
des périphériques (ex: port USB).
Définitions 15

u Microprocesseur
u Unité de calculs d’un ordinateur, exécute les instructions machines

u Périphériques
u Unité permettant l’interaction du processeur avec le monde extérieur :
u GPIO
u Port USB, Ethernet
u Alimentation

u Microcontrôleur
u Microprocesseur avec certains périphériques intégrés sur la même puce

u Carte d’évaluation
u Microcontrôleur + périphériques
u Facilite le test de microcontrôleurs avec un ensemble de
périphériques préinstallés sur une même carte. Pas de souci de
soudure ou d’électronique.
Cross-compilation 16

u Qu’est ce que la cross-compilation ?

u Compilation depuis une architecture hôte


d’un exécutable pour une architecture
cible.
17
L’IDE Arduino

u Permet :
u Développement
u Cross-compilation
u Téléversement
u Communication série
Arduino <-> PC
Périphériques importants 18

u Contrôleur GPIO

u Lecture/écriture de tension électrique pilotée


depuis le code

u Peut prendre l’état 0 (tension min) ou 1


(tension max)

u Contrôleur série

u Périphérique (UART) qui permet une


communication série avec un autre appareil

u Mappé sur le port physique USB


19
Fonctions
élémentaires
u Fonctions qui vont permettre de manipuler avec
du code le processeur et les périphériques

u setup()
u Appelée une seule fois au début du code

u Initialise les éléments de la carte d’évaluation

u loop()
u Appelée indéfiniment à chaque frame

u Contient le code applicatif


20
pinMode(GPIO, CONFIG)

• Fonction généralement appelée lors


du setup
• Défini la configuration d’un GPIO
• une sortie => pinMode(1, OUTPUT);
Fonctions • une entrée => pinMode(1,
INPUT_PULLUP);
élémentaires
digitalWrite(GPIO, ETAT)

• Définit l’état d’un GPIO


• Etat haut => digitalWrite(1, HIGH);
• Etat bas => digitalWrite(1, LOW);
21
digitalRead(GPIO)

• Lit l’état d’un GPIO et le


retourne
• Etat = digitalRead(GPIO)
Fonctions
élémentaires Delay(t)

• Marque une pause dans le


code de t milliseconde
• Pause 1 seconde =>
delay(1000)
22
Serial.begin(baudrate)

•Initialise une connexion série à la vitesse baudrate


•Serial.begin(9600)

Serial.print(message)

Fonctions •Ecrit un message sur le port série

élémentaires Serial.read()

•Lit un message reçu sur le port série et le retourne


•incomingByte = Serial.read()

Serial.available()

•Retourne True si un message est disponible


23

Fonctions u L’ensemble des fonctions, variables et


structures natives du langage Arduino se
élémentaires trouvent ici:

https://www.arduino.cc/reference/en/
24

TP1 :
Découverte
de l’Arduino
25
3- Physique pour
l’électronique
u Objectif :

u Apprendre à utiliser des composants


électroniques (résistance, moteur, etc.) en
respectant leurs caractéristiques physiques.
u Plan:
u Le courant et la tension électriques
u Résistance et loi d’ohm
u Diodes
u Danger et dimensionnement des composants
u TP2
26
Le courant
électrique
u Qu’est ce qu’un courant électrique ?
Le courant électrique 27

u C’est un mouvement de charge, les électrons (charge négative),


dans un conducteur.

u L’intensité électrique (I) d’un courant électrique mesuré en Ampères


(A), l’intensité correspond au débit de charges.
u L’intensité est notée par convention dans le sens inverse du
mouvement des électrons.
28
La tension électrique

u Qu’est ce qu’une tension électrique ?


29
La tension
électrique

u C’est la force électromotrice qui va


créer le déplacement des électrons
(le courant)

u Cette force est due à un


déséquilibre de charges, la borne +
va attirer les électrons notés e-

u Le courant va rééquilibrer les


charges

u Une tension est mesurée en Volt (V)


et est notée U
30

La tension
électrique
Courant / tension 31

u Analogie avec la pression


hydraulique
32

Les sources

u Source de courant :
génère un courant I dans
un circuit

u Source de tension :
génère une tension U
dans un circuit
Propriétés 33
mathématiques

u Loi des nœuds (simplifiée)

u La somme des courants sur


un nœud est égale à 0

u Deux courants en parallèle


s’additionnent en 1 seul
courant résultant
34
Propriétés
mathématiques
u Loi des mailles (simplifiée)

u La tension résultante de deux


tensions superposées
correspond à la somme de
ces tensions

u On additionne les
déséquilibres de charges

u Deux tensions en série


s’additionnent
Résistance et 35
loi d’ohm
u La résistance est un conducteur qui
s'oppose au passage d'un courant
électrique sous une tension
électrique donnée. En outre, elle freine
le passage des électrons.

u Plus la résistance est forte, moins le


courant est élevé

u On mesure la valeur d’une résistance


noté R en ohm
Résistance et 36
loi d’ohm
u Loi d’ohm : U = R * I ou R =U/I

u La résistance est le rapport entre le


potentiel électrique (la tension) et le
débit réel d’électrons qui se
déplace (le courant)

u Une résistance permet de fixer un


courant dans un circuit sous tension
37
La Diode Anode Cathode

u Définition : une diode est un composant


électronique qui ne laisse passer le courant que dans
un sens. Il faut que la tension à ses bornes soit
supérieur à sa tension de seuil pour que le courant
circule.

u Si U < tension seuil, alors la diode est bloqué, aucun


courant

u La courant circule uniquement de l’anode (V+) vers


la cathode (V-)

u Elle possède aussi un intensité de courant maximum


a ne pas dépasser pour la griller: Imax

u Une LED est une diode qui émet de la lumière d’une


intensité proportionnelle au courant qui la traverse.
38
Les dangers

u Surtension

u Lorsque qu’un trop fort courant induit par une trop forte
tension ou une résistance trop faible traverse un
conducteur, celui-ci se met a surchauffer et peut griller.

u Court-circuit

u Lorsque l’on relit sans résistance deux bornes d’un


générateur de tension, on créer un courant très élevé, ce
qui par le même principe de la surtension crée un
surintensité et grille les composants.
Dimensionnement des 39
composants

u Questions :

u A - On veut fixer un courant de 10 mA entre


une de tension 5V, comment faire ?

u B - Dessiner le montage

u C - Calculer la résistance
40
Dimensionnement
des composants
u On souhaite relié à l’aide d’un fil deux
GPIOs d’un Arduino, l’un à l’état haut (5v),
l’autre à l’état bas (0v), les port GPIOs
peuvent supporter un courant maximum de
100 mA.

u Qu’elle est le risque encouru ?

u Dessiner le schéma du montage

u Comment y remédier ?
41

Dimensionnement
On souhaite placer une LED de tension de seuil
des composants
u
1.2V entre une borne 3.3v et une borne 0V. La
diode accepte un courant maximum de 20 mA.

u Quel montage faut-il faire ?

u Quelles sont les valeurs des composants du circuit ?


4- Découverte de la Stm32 42

u Objectif :
u Comprendre et utiliser la logique de développement en interruption
u Prendre en main une carte de développement Stm32

u Plan :
u Logique des interruptions
u Stm32
u Cube MX, configuration
u Libraire HAL, fonction élémentaire
u ADC
u TP2
43
Méthode de la
scrutation

u Méthode bloquante

u On attend dans la boucle principale


qu’un événement se produise

u On lit/écrit sur les périphériques


séquentiellement, chacun leur tour
Limite de la 44
méthode
scrutation :

u Que se passe-t-il si l’on presse


le bouton reset lors de
l’exécution de la fonction
delay() ?

u Scrutation = à ne pas faire !


Logique des 45
interruptions
u Méthode des interruptions :

u On souhaite être notifié uniquement et à chaque


fois quand les périphériques produisent un
événement, méthode non-bloquante

u Lorsque la notification est reçue, on interrompt


l’exécution du code de la boucle et on exécute la
fonction d’interruption associée.

u On déclenche une interruption sur la variation d’un


signal
46
Logique des
interruptions

u Interruptions front montant :

u Lorsque le signal passe de l’état bas à


l’état haut

u Interruptions front descendant :

u Lorsque le signal passe de l’état haut à


l’état bas
47
Logique des
interruptions

u Exemple de code pour une


interruption GPIO en front
montant
Timer et 48
interruptions
u Un timer est un périphérique interne au
microcontrôleur qui va s’incrémenter
automatiquement

u Un timer 8 bits va compter de 0 à 255, puis


recommencer en boucle

u Un timer qui atteint sa limite peut générer un


interruption

u Pour compter, on peut donc remplacer la fonction


bloquante delay() par une interruption non
bloquante
49
Logique des interruptions:

u Comparaison entre la méthode de


scrutation et celle d’interruption

u Exemple d’un compteur avec un


bouton Reset
50
Présentation du Stm32

u Fabriqué par STMicroelectronics

u Microcontrôleur : STM32F401

u Carte d’évaluation : Nucléo 64

u Nombreux périphériques :
u Communication série
u Convertisseur analogique
u Bouton poussoir intégré
u LED intégrée
51
IDE du Stm32
u Logiciel Stm32CubeIDE

u Comme l’IDE Arduino:


u Développement
u Cross-compilation
u Téléversement

u En plus de l'Arduino :
u Interface graphique de la configuration de la carte : CubeMX
u Debugger

u Ne possède cependant pas de terminal série intégré


52
Cube MX

u CubeMx permet la configuration


graphique d’un carte Stm32 sans
connaissances spécifiques des registres
hardwares

u CubeMx génère automatiquement le


code de configuration au bon endroit
du projet
53
Développement en
Stm32
u Utilisation de la librairie HAL :

u Regroupe un ensemble de fonctions permettant de


piloter le matériel

u Lien de la documentation HAL pour les microcontrôleurs


Stm32f401 :

https://www.st.com/resource/en/user_manual/um1725-description-of-stm32f4-hal-and-lowlayer-
drivers-stmicroelectronics.pdf

u La fonction loop() du monde Arduino est remplacée par une


boucle while dans le code du script main.c, générée
automatiquement par l’IDE Stm32. Les configurations
s’effectuent avant cette boucle while.
54
Conversion
analogique/numérique

u Définition : transformation d’un signal réel


en un signal exploitable informatiquement

u Dans le cas d’un microphone, on


récupère des valeurs physiques
analogiques de l’onde sonore, que l’on
va stocker en mémoire avec des valeurs
numériques.
Conversion 55
analogique/numérique

u Signal analogique :
u Il peut prendre toutes les valeurs
u Il est défini à chaque instant dans un intervalle donné

u Signal numérique :
u Il est défini sur un ensemble de valeurs discrètes, selon sa
résolution
u Il est défini par des échantillons espacés dans le temps,
selon sa fréquence d’échantillonnage
u Manipulable par un processeur
u Peut être stocké en mémoire

u Convertisseur ADC :
u Transforme un signal analogique en signal numérique :
u Echantillonnage
u Quantification
Exercice : 56
produit en croix
u Le but est de retrouver la valeur réelle du capteur à partir de la
valeur de l’ADC

u Une balance peut mesurer un poids compris entre 0 et 100Kg

u La balance émet un signal analogique correspondant au poids


compris entre 0V et 5V
u 0 kg ó 0V
u 100 kg ó 5V

u L’ADC convertit la tension lue entre 0V et 5V selon sa résolution,


pour un ADC de résolution 8 bits (de 0 à 255) on a:
u 0V ó 0
u 5V ó 255

u Question :
u Quelle est la formule pour convertir la valeur lue par l’ADC
au poids correspondant ?

Vous aimerez peut-être aussi