Vous êtes sur la page 1sur 30

DEDICACE

Nous dédions ce rapport à :


A nos familles
Tous ceux qui de prêt ou de loin, nous ont porté assistance.
REMERCIMENTS
Nous remercierons Dieu qui nous aide et nous donne la patience, le courage et la
force d’accomplir ce modeste travail.
Nous tenons aussi à remercier grandement notre Encadreur
M. AKAFFOU JEAN NICAISE
Pour sa grande disponibilité et ses précieux conseils.
Nous remercions également tous les enseignants du département Génie
Electrique et Electronique (G2E) de l’Ecole Supérieure d’Industrie (ESI) qui
nous a encadré tout au long de cette étude
AVANT-PROPOS
La connaissance et la formation constituent des piliers du développement, du
progrès et du succès économique d’un pays. C’est au regard de cette réalité et
pour ne pas rester en marge du développement que la Côte d’Ivoire, dès les
premières heures de son indépendance, a mis un accent particulier sur la
formation et l’éducation.
En effet, en moins de deux décennies d’indépendance, elle s’est dotée de
structures de formation et de recherche dont l'Institut Agricole de Bouaké (IAB),
l'Ecole Nationale Supérieure d’Agronomie (ENSA), l'Institut National Supérieur
d’Enseignement Technique (INSET) et l'Ecole Nationale Supérieure des
Travaux Publics (ENSTP). Etablissement à caractère administratif, l’Institut
National Polytechnique Félix HOUPHOUËT-BOIGNY (INP-HB) de
Yamoussoukro, créé par décret 96-678 du 04 Septembre 1996, nait de la fusion
de ces quatre (4) grands établissements. Suite à cette restructuration, on assiste à
la création de huit (8) grandes écoles que sont :
L’Ecole Supérieure d’Agronomie (ESA) ;
L’Ecole Supérieure d’Industrie (ESI) ;
L’Ecole Supérieure de Commerce et d’Administration des Entreprises (ESCAE)
- L’Ecole Supérieure des Travaux Publics (ESTP) ;
- L’Ecole Supérieure des Mines et de Géologie (ESMG) ;
- L’Ecole de Formation Continue et de Perfectionnement des Cadres
(EFCPC) ;
- Les Classes Préparatoires aux Grandes Ecoles (CPGE) ;
- L’Ecole Doctorale Polytechnique (EDP).
Par ailleurs, L’ESI est chargée de la formation des ingénieurs et des techniciens
supérieurs dans les principaux domaines de l’industrie. Et de ce fait, elle a en
charge notre formation de Technicien Supérieur en Electrotechnique et
Automatismes Industriels (EAI).
SOMMAIRE
INTRODUCTION..................................................................................................................................9
PREMIERE PARTIE :.........................................................................................................................10
NOTIONS DE COURS........................................................................................................................10
1. Généralités sur les microcontrôleurs et les microprocesseurs...................................................11
2. Microprocesseur de la Raspberry Pi et sa carte.........................................................................13
3. Microcontrôleur de l’Arduino et la carte..................................................................................15
DEUXIEME PARTIE :........................................................................................................................22
1. But............................................................................................................................................24
2. Powerswitch Tail......................................................................................................................24
3. Composants nécessaires...........................................................................................................24
4. Construction.............................................................................................................................24
5. Programme...............................................................................................................................25
6. Application du projet................................................................................................................26
CONCLUSION....................................................................................................................................27
SIGLES ET ABREVIATIONS
LISTES DES FIGURES
Figure 1: microcontrôleur.....................................................................................................................11
Figure 2: microprocesseur....................................................................................................................11
Figure 3: carte Raspberry Pi..................................................................................................................14
Figure 4: Carte Arduino........................................................................................................................15
Figure 5: Entrée et sortie de la carte Arduino......................................................................................17
Figure 6: Entrée de l’Arduino................................................................................................................18
Figure 7: Tensions d’alimentation........................................................................................................19
Figure 8: Interface du logiciel...............................................................................................................20
Figure 9 : Un PowerSwitch Tail.............................................................................................................23
Figure 10: Schéma de raccordement du projet d'interrupteur à minuterie.........................................24
LISTE DES TABLEAUX
RESUME
INTRODUCTION

A notre époque, la nécessité de mettre en place des moyens de facilité


la vie de tout être humain est primordial et exige une certaine
connaissance du domaine informatique et de l’automatisme.
L'objectif du cours Microcontrôleurs n'est pas simplement de savoir
utiliser la carte Arduino et la Raspberry Pi mais surtout l'occasion
d'aborder des problèmes de programmation partant du langage C au
langage Python en mettant en évidence certaines informations
techniques concernant l'exploitation des périphériques intégrés
PREMIERE PARTIE :
NOTIONS DE COURS
1. Généralités sur les microcontrôleurs et les microprocesseurs
1.1. Définitions
Microcontrôleur
Un microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en anglais)
est un circuit intégré qui rassemble les éléments essentiels d'un ordinateur :
processeur, mémoires (mémoire morte et mémoire vive), unités périphériques et
interfaces d'entrées-sorties.

Figure 1: microcontrôleur
Dans un microcontrôleur, CPU, RAM, ROM, ports IO, interfaces série et
minuteries sont intégrés dans une seule puce. Dans l’ensemble, les
microcontrôleurs sont utilisés dans les systèmes embarqués tels que les fours à
micro-ondes et les machines à laver. Ces appareils sont conçus pour effectuer
une tâche particulière.
Microprocesseur
Un microprocesseur est un processeur dont tous les composants ont été
suffisamment miniaturisés pour être regroupés dans un unique boitier.
Fonctionnellement, le processeur est la partie d’un ordinateur qui exécute les
instructions et traite les données des programmes.

Figure 2: microprocesseur
Dans une puce de microprocesseur, les éléments de mémoire et les périphériques
IO sont connectés de manière externe à la CPU. En d'autres termes, la RAM, la
ROM, les interfaces série, les ports d'E / S, les temporisateurs sont connectés à
la CPU en externe. Certaines applications courantes utilisant des
microprocesseurs sont les ordinateurs et les ordinateurs portables. Leurs
applications effectuent de nombreuses activités de traitement, telles que la
navigation sur le Web, les calculs mathématiques, la création de documents, les
jeux, l'édition d'images, etc.

1.2. Différence entre microprocesseur et microcontrôleur


Définition
Un microprocesseur est un composant qui exécute les instructions et les tâches
associées au traitement informatique. Un microcontrôleur est un circuit intégré
compact conçu pour un fonctionnement spécifique dans un système intégré.
Usage
Un microprocesseur est utilisé pour les applications nécessitant un traitement
intensif, tandis qu'un microcontrôleur est utilisé pour une application effectuant
une tâche particulière.
Connexion des éléments
Dans un microprocesseur, la mémoire, les ports IO, les minuteries, etc. sont
connectés à la CPU en externe. Dans un microcontrôleur, la CPU et tous les
autres éléments sont intégrés dans une seule puce ou une carte.
Tâche
Une application utilisant un microprocesseur n'est pas prédéfinie. D'autre part, la
tâche d'une application utilisant un microcontrôleur est prédéfinie.
Mémoire requise
Les applications basées sur un microprocesseur effectuent plusieurs tâches. Par
conséquent, cela nécessite plus de mémoire. Un microcontrôleur effectue une
seule tâche. Par conséquent, il ne nécessite pas plus de mémoire et de ports IO.
Vitesse de l'horloge
La vitesse d'horloge d'un microprocesseur supérieure à celle d'un
microcontrôleur.
Traitement de l'information
Les microprocesseurs sont 32 bits ou 64 bits. Un microcontrôleur peut être 8
bits, 16 bits ou 32 bits.
Interfaces Périphériques
Un microprocesseur utilise les interfaces USB, UART et Ethernet haut débit. Un
microcontrôleur utilise I2C, UART et SPI pour les interfaces périphériques.
Consommation d'énergie
Par rapport au microcontrôleur, un microprocesseur consomme plus d'énergie.
Coût
Un microprocesseur coûte plus cher qu'un microcontrôleur.
Taille
La taille de la carte de microprocesseur est plus grande qu'une puce de
microcontrôleur.
Applications
Les ordinateurs personnels et les ordinateurs portables sont des applications
utilisant un microprocesseur. Four à micro-ondes, machine à laver sont quelques
exemples d'applications utilisant des microcontrôleurs.
2. Microprocesseur de la Raspberry Pi et sa carte
2.1. Le microprocesseur de la Raspberry Pi
Le Raspberry Pi possède un processeur ARM11 à 700 MHz. Il inclut 1, 2 ou 4
ports USB, un port RJ45 et 256 Mo de mémoire vive pour le modèle d'origine
jusqu'à 8 Go sur les dernières versions).

2.2. La carte Raspberry Pi


Un Raspberry Pi est un ordinateur monocarte doté du système d'exploitation
Linux, de prises USB pour raccorder un clavier et une souris, ainsi que d'un
connecteur HDMI pour raccorder un écran. Il existe quelques variantes dont
certaines ne sont plus disponibles. Tous les modèles de Raspberry Pi sont plus
ou moins compatibles et la réalisation des exemples présentés dans ce livre ne
devrait pas vous poser de difficultés, même si vous avez un vieux Raspberry Pi.
La figure 3-1 présente un Raspberry Pi 2 modèle B. Sur le côté droit de la carte,
vous trouverez quatre ports USB qui peuvent servir à raccorder un clavier et une
souris ou d'autres périphériques, comme une imprimante, un scanner ou une clé
USB. Au-dessous des ports USB, vous trouverez une prise RJ45 Ethernet qui
permet de relier le Raspberry Pi à votre routeur domestique via un câble. Vous
devrez connecter votre Raspberry Pi au réseau pour avoir accès à Internet et
installer des logiciels sur votre nano-ordinateur. Peut-être préférerez-vous vous
passer de câble et utiliser une clé Wi-Fi USB ? Un adaptateur de ce type ne
coûte que quelques euros et se branche sur un port USB. Veillez toutefois à
choisir un adaptateur compatible. Vous trouverez une liste de composants
compatibles sur http://elinux. org/RPi_VerifiedPeripherals.

Figure 3: carte Raspberry Pi

Si nous continuons à faire le tour de la carte Raspberry Pi dans le sens horaire,


nous arrivons au connecteur audio stéréo et vidéo composite. Cette prise sert
surtout au raccordement d'un casque audio ou au branchement d'un câble
auxiliaire connecté à des haut-parleurs, mais le connecteur contient aussi une
prise supplémentaire qui vous permet de raccorder un moniteur vidéo composite
utilisant un câble spécial. En général, le connecteur vidéo HDMI sert surtout à
brancher un moniteur ou un téléviseur, car sa qualité est bien meilleure que la
vidéo composite. Entre les prises HDMI et audio, vous trouverez un connecteur
plat permettant de brancher une caméra spécialement conçue pour le Raspberry
Pi. À côté de la prise HDMI se trouve un connecteur micro USB qui sert
uniquement à l'alimentation électrique du Raspberry Pi à l'aide d'un adaptateur
5V. Au-dessus du connecteur d'alimentation micro USB, sur la face inférieure
de la carte, se trouve un connecteur microSD. Le Raspberry Pi n'intègre pas de
disque dur ordinaire ; à la place, le système d'exploitation et tous les fichiers
sont stockés sur une carte microSD. Sur la face supérieure de la carte, vous
trouverez un ensemble de broches GPIO (GeneralPurpose Input/Output) qui
peuvent être utilisées pour raccorder le Raspberry Pi à divers circuits
électroniques. Avant la sortie du modèle Raspberry Pi B+, les Raspberry Pi
n'étaient dotés que de 26 broches sur le connecteur GPIO au lieu des 40
illustrées à la figure. Tous les projets présentés dans ce livre se contentent des 26
broches d'origine qui ont été conservées sur les modèles plus récents. Donc les
projets devraient fonctionner même si vous avez un ancien Raspberry Pi.

3. Microcontrôleur de l’Arduino et la carte


3.1. Généralité
Un microcontrôleur est un système qui ressemble à un ordinateur : il a une
mémoire, un processeur, des interfaces avec le monde extérieur. Les
microcontrôleurs ont des performances réduites, mais sont de faible taille et
consomment peu d’énergie, les rendant indispensables dans toute solution
d’électronique embarquée (voiture, porte de garage, robots, …). La carte
Arduino n’est pas le microcontrôleur le plus puissant, mais son architecture a été
publiée en open-source, et toute sa philosophie s’appuie sur le monde du libre,
au sens large.

Figure 4: Carte Arduino


La carte Arduino se relie a un ordinateur par un câble USB. Ce câble permet à la
fois l’alimentation de la carte et la communication série avec elle.
3.2. Microcontrôleur Arduino
Le microcontrôleur de la carte Arduino UNO est un ATMega328. C'est un
microcontrôleur
ATMEL de la famille AVR 8bits. Les principales caractéristiques sont :
FLASH = mémoire programme de 32Ko
SRAM = données (volatiles) 2Ko
EEPROM = données (non volatiles) 1Ko
Digital I/O (entrées-sorties Tout Ou Rien) =3 ports PortB, PortC, PortD (soit 23
broches en tout I/O)
Timers/Counters : Timer0 et Timer2 (comptage 8 bits), Timer1 (comptage
16bits)
Chaque timer peut etre utilise pour generer deux signaux PWM. (6 broches
OCxA/OCxB)
Plusieurs broches multifonctions : certaines broches peuvent avoir plusieurs
fonctions différentes, choisies par programmation. Elles ont alors plusieurs
noms sur le brochage (voir ci-avant) Par exemple, les broches PB1, PB2, PB3,
PD3, PD5, PD6 peuvent servir de sortie PWM (Pulse Width Modulation), c'est-
à-dire des sorties qui joueront le rôle de sorties analogiques. Elles correspondent
aux broches des connecteurs 3,5,6,9,10 et 11. Cet autre rôle possible est lie aux
timers et ces broches sont alors appelées OCxA ou OcxB dans la documentation.
Ce sont les mêmes broches, mais pour une autre fonction. Si vous regardez à
nouveau le brochage, vous constaterez que toutes les broches sont
multifonctions.
PWM = 6 broches OC0A(PD6), OC0B(PD5), 0C1A(PB1), OC1B(PB2),
OC2A(PB3),
OC2B(PD3)
Les broches du PORTC peuvent etre converties par un convertisseur Analog
toDigital.
Analog to Digital Converter (résolution 10bits) = 6 entrées multiplexées
ADC0(PC0) a ADC5(PC5)
Gestion bus I2C (TWI Two Wire Interface) = le bus est exploité via les broches
SDA(PC5) /SCL(PC4).
Port série (USART) = émission/réception série via les broches TXD(PD1)
/RXD(PD0)
Comparateur Analogique = broches AIN0(PD6) et AIN1 (PD7) peut déclencher
interruption Watchdog Timer programmable
3.3. Carte Arduino
3.3.1 ENTRES ET SORTIE
Les entrées / sorties (I/O – input/output) représentent le moyen qu’à la carte
Arduino d’interagir avec l’extérieur. Les sorties sont contrôlées par la carte, cela
permet au programme du microcontrôleur de déclencher des actions (allumer ou
d’éteindre une LED, un ventilateur, un moteur). Les entrées sont lues par le
microcontrôleur, ce qui lui permet de connaitre l’état du système auquel il est
relié. Il y a deux sortes d’I/O : les I/O numériques, et les I/O analogiques.
ENTREES ET SORTIE ANALOGIQUE
Les entrées / sorties numériques ne peuvent prendre que deux valeurs, la valeur
LOW (~ GND, 0 V), et la valeur HIGH (~ 5 V). La valeur d’un port numérique
peut donc être codée sur un bit, 0 ou 1, true ou false. La carte Arduino comporte
14 I/O numériques (appelées DIGITAL sur la carte), numérotées de 0 à 13 (voir
le schéma ci-dessus), et appelées D0, D1, D2, … D13. Chacun de ces ports peut-
être déclare comme étant une entrée ou comme une sortie dans le programme du
microcontrôleur. Les deux premiers ports (D0 et D1) sont réservés à la
communication série, il ne faut pas les utiliser. Le dernier port, D13, possède un
indicateur lumineux, une LED qui s’allume quand le port est HIGH, et qui
s’éteint quand le port est LOW. Le port GND est la masse de la carte (0 V).

Figure 5: Entrée et sortie de la carte Arduino


Concernant la la sortie, chacun des 14 ports numériques de la carte peuvent être
utilisés en sortie. Si un port est déclaré comme une sortie, le microcontrôleur
contrôle la valeur de ce port. Les sorties numériques ne peuvent pas fournir une
grande puissance électrique (40 mA max sur 5 V). On les utilise pour échanger
des informations (par exemple les ports D0 et D1 servent à la Communication
série avec l’ordinateur), ou pour déclencher des actions : par exemple allumer
une LED
ENTREE ET SORTIS NUMERIQUE
Une entrée analogique est une sorte de voltmètre : la carte lit la tension qui est
appliquée sur le port. Cependant le microcontrôleur ne travaille qu’avec des
chiffres : il faut donc transformer la tension appliquée en sa valeur numérique.
C’est le travail du convertisseur analogue/digital, dit « CAD ».

Figure 6: Entrée de l’Arduino


Le CAD de la carte Arduino travaille sur 10 bits : il accepte en entrée une
tension comprise entre 0 V et Vref une tension de référence, et fournit au
microcontrôleur un chiffre entier compris entre 0 et 1023 (= 210 - 1). Une
tension inferieure a 0 V est lue comme 0, une tension supérieure a Vref est lue
comme 1023, une tension intermédiaire est lue comme un entier entre 0 et 1023,
avec une relation linéaire. La tension Vref est 5 V par défaut, mais cette valeur
peut être changée dans le programme. La carte arduino ne possède pas de vraie
sortie analogique, capable de produire une tension d’une valeur arbitraire choisie
par l’utilisateur. Certains ports numériques peuvent cependant servir de sortie
analogique en utilisant la technique de PWM (Pulse Width Modulation) : il
s’agit des ports 3, 5, 6, 9, 10 et 11 (signales par un ~ sur la carte). Ces ports
peuvent simuler une tension entre 0 et 5 V en basculant rapidement entre leur
état LOW (O V) et HIGH (5 V). La valeur moyenne de la tension est alors 2.5 V
si le port passe autant de temps dans un état que dans l’autre, mais en changeant
ce rapport, la valeur moyenne de la tension peut être contrôlée de 0 à 5 V.
Tensions de référence
La carte arduino fournit des ports permettant d’accéder a certaines tensions de
référence.
GND est la référence de la carte arduino par rapport a laquelle toutes les
différences de tension sont mesurées. Si la carte est reliée a l’ordinateur par un
câble USB, cette tension est celle de la terre. Les ports 5V et 3V3 donnent accès
aux tensions de 5 V et de 3.3 V. Ces tensions sont normalement régulées et
précises. Une exception : quand la carte est branchée sur un port USB sans
alimentation externe, le port 5 V ne provient plus de la carte Arduino mais
directement du câble USB, la tension de référence 5 V n’est alors plus aussi bien
régulée. VIN est la tension de l’alimentation externe, quand il y en a une.

Figure 7: Tensions d’alimentation


Port USB
Le port USB permet à la fois l’alimentation de la carte Arduino et la
communication série entre la carte et l’ordinateur. Une fois connectée, la carte
Arduino apparaît dans le gestionnaire de matériel de votre ordinateur, connecté à
un port série (COM1, COM4, …). Vous devez vérifier que l’IDE (le programme
fourni par Arduino) est bien configurée pour dialoguer sur le bon port COM (et
pour le bon type de carte Arduino !). L’IDE permet de scanner le port COM et
de récupérer les messages éventuels de la carte
Logiciel d’Arduino
. La façon dont le microcontrôleur gère ses entrées / sorties est fixée par un
programme, contenu dans le microcontrôleur. Ce programme doit être écrit par
l’utilisateur. En pratique, l’utilisateur écrit le programme en langage C, en
utilisant un environnement de développement spécialisé (IDE) installé sur un
ordinateur. Ce programme est ensuite compilé et téléversé dans le
microcontrôleur par liaison série (USB). Nous utiliserons l’IDE standard
Arduino (arduino.exe). Il suffit de taper le code dans la fenêtre dédiée, de
compiler et de televerser le programme sur la carte arduino. La carte doit être
reliée a l’ordinateur par un câble USB.
Figure 8: Interface du logiciel

Une fois televerse dans le microcontrôleur, le programme s’exécute. La fonction


setup () s’exécute une seule fois, la fonction Loop () s’exécute en boucle. De
nombreux exemples de programmes sont disponibles via le menu
Fichier/Exemples de l’IDE, classes par thèmes. N’hésitez pas à vous inspirer de
ces exemples pour vos propres programmes. N’hésitez pas non plus a regarder
sur internet les nombreux sites d’exemples et de conseils lies a Arduino, mais
essayez de bien comprendre la logique des exemples que vous utiliserez.
LANGUAGE DE PROGRAMMATION
DEUXIEME PARTIE :
Interrupteur à minuterie
Raspberry Pi
1. But
Ce projet utilise un Raspberry Pi et un PowerSwitch Tail pour piloter
l'alimentation d'un petit appareil électrique.

2. Powerswitch Tail
Le PowerSwitch Tail est un contacteur statique muni d'une prise d'alimentation
en CA d'un côté et d'une sortie en CA de l'autre.

Figure 9 : Un PowerSwitch Tail


Des bornes à vis connectent le côté LED de l'optocoupleur (série de résistances
intégrées) et une petite LED rouge s'allume quand le SSR est activé.

3. Composants nécessaires
En plus d'un Raspberry Pi, les composants suivants sont nécessaires pour la
réalisation du projet.
-PowerSwitchTail
-Straps flexibles femelles/mâles
-Lampe

4. Construction
La figure suivante présente le raccordement du circuit du projet.
Figure 10: Schéma de raccordement du projet d'interrupteur à minuterie
Si Vous examinez attentivement l’étiquette du PowerSwitch Tail, vous y lirez
que l'entrée est comprise entre 3 et 12 V CC pour 3-30 mA. Le courant requis
pour l'entrée varie en fonction de la tension, donc l'extrémité la plus basse de la
plage correspond à l'entrée 3 V. En fait, à 3,3 V, le PowerSwitch Tail nécessite
environ 6 mA, ce qui est compatible avec une broche GPIO du Raspberry Pi.

5. Programme

import RPi.GPIO as GPIO


import time
GPIO.setmode(GPIO.BCM)
control_pin = 18
GPIO.setup(control_pin, GPIO.OUT)
try:
while True:
duration_str = input(«Durée allumée en minutes : «) #
duration = int(duration_str) * 60

GPIO.output(control_pin, True)
time.sleep(duration)
GPIO.output(control_pin, False)
finally:
print(“Nettoyage")
GPIO.cleanupO
Le programme est aussi très simple ; il commence par les importations et les
définitions de constantes habituelles.
- Avec while True, la boucle est exécutée à l'infini, car la condition True
n'est jamais False. C'est la seule raison pour laquelle une boucle while se
termine (à moins d'appuyer sur Ctrl-C).
- La boucle principale vous invite à saisir une durée en minutes pendant
laquelle la lampe doit être allumée.
- Convertit la valeur string duration en un nombre entier de minutes à l'aide
d'int, puis ce nombre est multiplé par 60 pour être converti en secondes.
- La broche GPIO 18 est définie sur l'état HIGH (True) pour activer le
PowerSwitchTail et allumer l'appareil qui est branché sur sa prise CA
- Passé le délai fixé, la broche GPIO est définie sur l'état LOW pour
désactiver le SSR. La boucle redémarre et vous invite à saisir une
nouvelle « durée allumée. »

6. Application du projet
Le PowerSwitchTail peut commuter jusqu'à 15 A. Vous pouvez donc y brancher
divers appareils, à part les plus puissants, comme les bouilloires électriques ou
les sèche-cheveux. Une petite lampe de chevet est un bon point de départ.
Exécutez le programme et lorsque s'affiche l'invite vous demandant de saisir une
durée, tapez le chiffre 1, soit 1 minute puis appuyez sur Entrée. L'appareil
branché sur le PowerSwitchTail devrait alors s’allumer ; la petite LED d'état du
PowerSwitch Tail s'allume aussi. Au bout d'une minute, le PowerSwitch Tail
s'éteint.
CONCLUSION
BIBLIOGRAPHIE
WEBOGRAPHIE
ANNEXES
TABLE DES MATIERES

Vous aimerez peut-être aussi