Vous êtes sur la page 1sur 89

MICROCONTROLLEURS

COURS 1
Marin Iuliana
Évaluation en Microcontrolleurs
• Activité pendant le semestre: 50 points dont
• Activité en TP (Tests et activité au fil du semestre) : 50 points
• Activité de laboratoire 10 points
• Devoirs 10 points
• Tests 10 points
• Grand devoir 1 10 points
• Grand devoir 2 10 points
• Autres notations (Partiel) : -
• Examen final: 50 points
• Conditions minimales:
• Pour participer à l’examen final:
• Minimum 25 points pour l’activité pendant le semestre, partiel et TP’s; Minimum
10 présences en TP (attention!! Les TP’s ne peuvent être refaits!!!)
• Pour passer: 50 points, dont minimum 25 points à l’examen final 2
Exigences de conception du système

3
Le microprocesseur
Architecture interne (1)
Bus d’adresses

Microprocesseur

Unité de
Accumulateur
Unité de Programme
traitement commande
Registre

Mémoire
d’état

Données

Bus de données 4
Le microprocesseur
Architecture interne (2)
Bus d’adresses

Microprocesseur

Accumulateur PC
Accumulateur Programme
Registre
d’état
Registre

Mémoire
d’état Bloc logique de
commande

Décodeur
d’instruction Données

Bus de données 5
Le microprocesseur
Unité de commande
Elle permet de séquencer le déroulement des instructions.

PC : Programme Counter, appelé aussi


Bus d’adresse Compteur Ordinal. Il contient toujours
l’adresse de la prochaine instruction à exécuter.
Le décodeur d'instruction : Le mot binaire
PC (instruction) est décodé pour savoir à quelle
action correspond l’instruction.
Bloc logique de commande (séquenceur) :
Bloc logique de
commande
Il organise l'exécution des instructions au
Instruction Décodeur rythme de l’horloge. Il élabore tous les de
d’instruction signaux synchronisation du
microprocesseur en fonction de l’instruction
qu’il a à exécuter. 6
Le microprocesseur
Unité de traitement
Elle exécute les instructions.

Microprocesseur
L’accumulateur : C’est un registre de travail qui sert à stocker le
résultat des opérations réalisées par L’UAL.
Accumulateur
Accumulateur
Registre L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui
d’état
Registre assure les fonctions logiques (ET, OU, comparaison, décalage, etc…) ou
d’état
arithmétique (addition, soustraction…).

Le registre d'état : Chacun des bits de ce registre dépend du résultat


de la dernière opération effectuée par l’UAL. Exemple : Bit de
retenue (carry : C), débordement (overflow : OV ou V), Zéro (Z) ...

7
Le traitement des instructions
Résumé

1
2
CPU Mémoire
4

⚫ (1) Charger une instruction depuis la mémoire


⚫ (2) Charger les opérandes depuis la mémoire
⚫ (3) Effectuer les calculs
⚫ (4) Stocker le résultat en mémoire
8
L’architecture
Von Neuman

Mémoire
Programme
CPU BUS
&
données
⚫ Un seul chemin d'accès à la mémoire
⚫ Un bus de données (programme et données),
⚫ Un bus d’adresse (programme et données)
⚫ Architecture des processeurs d’usage général
⚫ Goulot d'étranglement pour l'accès à la mémoire
9
L’architecture
Harvard
Mémoire
programme
CPU
Mémoire
donnée
⚫ Séparation des mémoires programme et données
⚫ Un bus de données programme,
⚫ Un bus de données pour les données,
⚫ Un bus d’adresse programme,
⚫ Un bus d’adresse pour les données.
⚫ Meilleure utilisation du CPU :
⚫ Chargement du programme et des données en parallèle 10
L’architecture
Harvard : Cas des microcontrôleurs PIC

⚫ Seul les bus de donnée (data ou instructions) sont représentées

11
Le traitement des instructions
Organisation d’une instruction
Le microprocesseur ne comprend qu’un certain nombre d’instructions qui
sont codées en binaire. Une instruction est composée de deux éléments :
⚫ Le code opération : C’est un code binaire qui correspond à l’action à effectuer par le processeur
⚫ Le champ opérande : Donnée ou bien adresse de la donnée.

La taille d'une instruction peut varier, elle est généralement de quelques


octets (1 à 8), elle dépend également de l'architecture du processeur.

12
Le traitement des instructions
Exemple d’instruction
⚫ InstructionAddition :
Accumulateur = Accumulateur + Opérande
Correspond à l’instruction ADD A,#2

Instruction (16 bits)


Code opératoire (5 bits) Champ opérande (11 bits)
ADD A #2
11001 000 0000 0010

Cette instruction est comprise par le processeur par le mot binaire :


11001 000 0000 0010 = code machine
13
Le traitement des instructions
Phase 1 : Recherche de l’instruction en mémoire
Rapporter moi les ordres
écrits sur ce parchemin!!! Ordres :
1. Attaquer camp romain
2. Organiser banquet

Outils :
1. Menhir, Potion magique
2. Sanglier
Unité de traitement Unité de commande

La valeur du PC est placée sur le bus d'adresse, et l'unité de commande


émet un ordre de lecture de la mémoire.

Après le temps d'accès à la mémoire, le contenu de la case mémoire


sélectionnée (instruction) est disponible sur le bus des données et arrive à
l’entrée du décodeur.
14
Le traitement des instructions
Phase 2 : Décodage et recherche de l’opérande
Rapportez moi les outils
écrits sur ce parchemin!!! Ordres :
1. Attaquer camp romain
2. Organiser banquet

Outils :
1. Menhir, Potion magique
2. Sanglier
Unité de traitement Unité de commande

Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de


commande récupère sa valeur sur le bus de données en faisant un nouvel
accès mémoire. La donnée arrive à l’entrée de l’ALU.

15
Le traitement des instructions
Phase 3 : Exécution de l’instruction
On va commencer par attaquer
le camps Romain avec des
Ordres :
menhir et de la potion!!! 1. Attaquer camp romain
2. Organiser banquet

Outils :
1. Menhir, Potion magique
2. Sanglier
Unité de traitement Unité de commande

L’ALU réaliser l’opération que le séquenceur lui demande. Les


drapeaux sont positionnés (registre d'état).

Le PC est incrémenté pour indiquer l'instruction suivante.

16
Le traitement des instructions
Déroulement
Bus d’adresses

Microprocesseur

Accumulateur PC
Accumulateur Programme
Registre
d’état
Registre

Mémoire
d’état Bloc logique de
commande

Décodeur
d’instruction Données

Bus de données 17
Le traitement des instructions
Les architectures RISC et CISC (1)

Actuellement l’architecture des microprocesseurs se composent de deux


grandes familles :

⚫ L’ architecture CISC CISC RISC


Alpha (DEC)
(Complex Instruction Set Computer) S/360 (IBM) PowerPC (Motorola)
VAX (DEC) MIPS
68xx, 680x0 (Motorola) PA-RISC (Hewlett-
⚫ L’architecture RISC x86, Pentium (Intel) Packard)
SPARC
(Reduced Instruction Set Computer)

18
Le traitement des instructions
Les architectures RISC et CISC (2)

• Les processeurs CISC possèdent un jeu étendu d'instructions complexes.

• Chacune de ces instructions peut effectuer plusieurs opérations élémentaires


comme charger une valeur en mémoire, faire une opération arithmétique et
ranger le résultat en mémoire.

19
Le traitement des instructions
Les architectures RISC et CISC (3)

• Au contraire, les processeurs RISC possèdent un jeu d'instructions réduit où


chaque instruction effectue une seule opération élémentaire.

• Le jeu d'instructions d'un processeur RISC est plus uniforme.

• Toutes les instructions sont codées sur la même taille et toutes s'exécute dans le
même temps (un cycle d'horloge en général).

• L'organisation du jeu d'instructions est souvent appelé ISA pour Instruction Set
Architecture

20
Le traitement des instructions
• Des études statistiques sur des programmes tels des systèmes d'exploitation ou
des applications réelles ont montré les faits suivants.
• 80 % des programmes n'utilisent que 20 % du jeu d'instructions.
• Les instructions les plus utilisées sont :
• les instructions de chargement et de rangement,
• les appels de sous-routines.
• Les appels de fonctions sont très gourmands en temps : sauvegarde et restitution
du contexte et passage des paramètres et de la valeur de retour.
• 80% des variables locales sont des entiers.
• 90% des structures complexes sont des variables globales.
• La profondeur maximale d'appels imbriqués et en moyenne de 8. Une profondeur
plus importante ne se rencontre que dans 1 % des cas.
21
Les modes d’adressages
⚫ Ce sont les diverses manières de définir la localisation d’un
opérande. Les trois modes d’adressage les plus courant sont :

⚫ Adressage immédiat
⚫ Adressage direct
⚫ Adressage indirect

22
Les modes d’adressages
Immédiat

Exemple : ADDA #4
ALU
Mémoire
Adresses Contenu
0x00 0………………..
110 1101

Accumulateur
0x01 0………………..
100 0101

0………………..
010 1111

Compteur Ordinal adrs 1 1 0ADDA


1 0101

adrs + 1 0 1 1 0 #4
1001
PC adrs+1
adrs + 2 …………………
1………………..
010 1101

…………………
0011 1000
1…………………
100 0101

1…………………
010 1001

………………….
0111 1010
23
Les modes d’adressages
Direct

Exemple : ADDA adresseX


ALU
Mémoire
Adresses Contenu
0x00 0………………..
110 1101

Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111

Compteur Ordinal adrs 1 1 0ADDA


1 0101

adrs + 1 0 1adresseX
10 1001
PC adrs+1
adrs + 2 …………………
1010 1101

adresseX 0xxxx
0 1 1 xxxx
1000

1…………………
100 0101

1…………………
010 1001

………………….
0111 1010 24
Les modes d’adressages
Indirect

Exemple : ADDA @adresseX


ALU
Mémoire
Adresses Contenu
0x00 0………………..
110 1101

Accumulateur
0x01 0………………..
100 0101

0………………..
010 1111

Compteur Ordinal adrs 1 1 0ADDA


1 0101

adrs + 1 0@adresseX
110 1001
PC adrs+1
adrs + 2 …………………
1010 1101

@adresseX 0 adresseX
011 1000

1…………………
100 0101
adresseX 1 0 1 0 xxxxxx
xxxxx 1001

………………….
0111 1010 25
Exemple d’exécution (1)
Le compilateur génère aussi un fichier assembleur, représentant le code et les
emplacements mémoire qui seront utilisés.

26
Exemple d’exécution (2)

À l’infini
PORTC

27
Définition d’un microcontrôleur
Un microcontrôleur est un circuit qui intègre un maximum de fonctions
dans un même boitier. L’intégration de ces fonctions dans le même
environnement permet de créer des applications plus simplement.

Le circuit intégré d'un microcontrôleur 8 bits Intel


8742 possède sur une unique puce :
⚫ Un processeur cadencé à 12 MHz
⚫ 128 octets de mémoire vive
⚫ Une EPROM (mémoire morte programmable
effaçable / erasable programmable read-only
memory) de 2048 bits
⚫ De nombreuse entrées-sorties

28
• Les oscillateurs sont utilisés pour fournir
une horloge au microcontrôleur. Dans
un microcontrôleur ou
microprocesseur, chaque instruction
est exécutée en synchronisation avec
l'horloge.
• Un convertisseur analogique-
numérique (ADC, A / N ou A-D) est un
système qui convertit un signal
analogique, tel qu'un son capté par
un microphone ou une lumière
entrant dans un appareil photo
numérique, en un signal numérique.
• Une minuterie de surveillance
(watchdog timer - WDT) est une
minuterie électronique ou logicielle
utilisée pour détecter et récupérer des
dysfonctionnements informatiques.
• Les convertisseurs analogique-
numérique (ADC) ont besoin d'une
entrée de tension de référence (VREF)
pour fonctionner correctement.
• PWM est une technique utilisée pour
générer un signal de sortie
analogique à l'aide de signaux
numériques. CCP signifie Capture /
Compare / PWM.
29
Définition d’un microcontrôleur
Avantages

⚫ Cout réduit

⚫ Encombrement moindre

⚫ Fiabilité

⚫ Mise en œuvre plus simple

⚫ Consommation plus faible


30
Définition d’un microcontrôleur
Contenu
⚫ La structure interne d'un microcontrôleur comporte
typiquement :
⚫ Une unité de calcul et de commande
⚫ Mémoire ROM
⚫ Mémoire RAM
⚫ Un contrôleur d’interruption
⚫ Un compteur/temporisateur (timer)
⚫ Des entrées/sorties parallèles (ports)
⚫ Un UART (port série)

⚫ Il peut aussi posséder :


⚫ Un Watchdog : (surveillance du programme)
⚫ Une sortie PWM (modulation d’impulsion) Exemple : Microcontrôleur PIC 16F877
⚫ Un CAN/CNA (Convertisseur analogique numérique)
⚫ Un interface I²C, CAN… 31
Définition d’un microcontrôleur
Les mémoires (1)

⚫ ROM memory :
Aussi appelé (à juste titre) program memory.
C’est une mémoire Flash qui contient le
programme à exécuter.

⚫ EEPROM memory
C’est une mémoire similaire à la mémoire programme. On s’en sert surtout pour stocker des
constantes.

32
Définition d’un microcontrôleur
Les mémoires (2)

⚫ RAM memory :
⚫ General Purpose Register : Mémoire RAM classique, utiliser pour stocké des variables.
Exemple :
int i;
i++; // incrémentation de i depuis la RAM

⚫ SFR (Special Function Register) : C’est aussi de la mémoire RAM, sauf que les rôles de
chacune des cases mémoire (registres) ont été définis par le fabriquant. Chaque registre SFR
est connecté à un périphérique matériel spécifique et permet de la contrôler. Exemple :

ADCON0 register (adresse 9Fh) permet de piloter le convertisseur A/D.

33
Définition d’un microcontrôleur
Les mémoires (3)

Détail d’un registre SFR Déclaration de « i » en RAM

Affectation d’une valeur à


un registre SFR

34
Cadencement du microcontrôleur
Schéma du pic 16F877

35
Cadencement du microcontrôleur
Les cadencements possibles

⚫ Quartz
⚫ Très bonne Stabilité (10 ppm)

⚫ Résonateur céramique
⚫ Stabilité ( 0.5%)
⚫ Moins couteux que le quartz

⚫ Exemple pour un oscillateur à 8 Mhz


Quartz : Fréquence +/- 80 Hz
Résonateur : Fréquence +/- 40 000 Hz
36
Les timers
Mode compteur ou temporisateur (1)
⚫ Un timer est le nom courant de compteur / temporisateur .

Mesurer du temps (compter


le nombre de coup d’horloge)
> Mode temporisateur

Compter le nombre d’évènement sur


une broche
> Mode compteur

37
Les timers
Mode compteur ou temporisateur (2)
⚫ En pratique, on visualise la valeur de départ, puis la valeur d’arrivée. La valeur
de comptage est la différence des deux valeurs.

Donner la valeur du temps en fonction de A et B dans cette application.

38
Les timers
Utilisation d’un prescaler

⚫ Un prescaler permet de diviser la fréquence de comptage.

Quelle est le temps mesuré dans cette application en fonction de A et B?

39
Les ports d’entrée / Sortie
Ce sont des ports parallèles. Ils permettent de recueillir des informations ou de
piloter des modules sur l’environnement extérieur. Ils sont souvent bidirectionnels
(configurable en entrée ou sortie).

40
41
Les ports d’entrée / Sortie
Les sorties logiques

⚫ Sortie trois états

⚫ Sortie collecteur ouvert

42
Les ports d’entrée / Sortie
1. Sortie trois états

Fonctionnement
T1 T2 Sortie
Bloqué Bloqué Etat haute impédance
Bloqué Saturé "0"
Saturé Bloqué "1"
Saturé Saturé non utilisé

⚫ Des sorties trois états peuvent être reliées entres elles mais il faut bien veiller à ce que une
seule impose un niveau (haut ou bas) et que les autres sorties soit en haute impédance.
43
Les ports d’entrée / Sortie
2. Sortie collecteur ouvert (1)

Fonctionnement
T2 S
Saturé "0"
Bloqué Dépend du montage

44
Les ports d’entrée / Sortie
2. Sortie collecteur ouvert (2)

⚫ Pour générer le niveau "1", une résistance extérieure est nécessaire (résistance de
tirage // pull-up). Plusieurs sorties "collecteur ouvert" peuvent être reliées entre elles,
cela réalise un "ET logique"
⚫ Une sortie « collecteur ouvert » peut commander une charge sous une tension différente
de la tension d'alimentation.
45
Les ports d’entrée / Sortie
⚫ Bouton poussoir :

⚫ Led :
Donner la valeur de la résistance sachant qu’une led rouge
à une tension de 1,5V et qu’il faut 10 mA pour avoir un
éclat correct.
46
La liaison série
⚫ La liaison série USART (Universal Synchronous Asynchronous Receiver Transmitter ) est le
mode le plus rependu pour communiquer (et aussi le plus vieux).

47
La liaison série
Connexions (1)
⚫ Une liaison série permet de transmettre des données sur un nombre
limité de fils. Cette liaison peut être Half duplex (liaison synchrone) ou
full duplex (liaison asynchrone).

⚫ Sur le microcontrôleur PIC16F877A, la liaison série asynchrone peut


être mise en œuvre à l’aide des pins RxD et TxD. Elle est réalisée par un
USART :
⚫ RxD, signal de réception de l’USART
⚫ TxD, signal de transmission de l’USART

48
La liaison série
Connexions (2)

1ère étape : Configuration de la transmission


2ième étape : Envoyer et recevoir des données
49
Le Watchdog (1)
Le chien de garde (watchdog) est un dispositif matériel et logiciel qui permet de
se prémunir contre les plantages accidentels. L’idée est de provoquer un
RESET du CPU afin de relancer l’application. (Les données sont bien sur
perdues). Le plantage est défini lorsque le programme n’est pas venu à temps
faire signe au watchdog.
Instructions
« Clear Watchdog »

Si je reçoit rien, j’appuie


sur le RESET!!! 50
Le Watchdog (2)
MICROCONTROLEUR

51
Introduction à Arduino

52
VOUS AVEZ DIT ARDUINO ?
Arduino est une plate-forme de prototypage d'objets
interactifs à usage créatif constituée d'une carte
électronique et d'un environnement de programmation.
Sans tout connaître ni tout comprendre de l'électronique,
cet environnement matériel et logiciel permet à l'utilisateur
de formuler ses projets par l'expérimentation directe avec
l'aide de nombreuses ressources disponibles en ligne.

53
VOUS AVEZ DIT ARDUINO ?
Pont tendu entre le monde réel et le monde numérique,
Arduino permet d'étendre les capacités de relations
humain/machine ou environnement/machine.
Arduino est un projet en source ouverte (open source) : la
communauté importante d'utilisateurs et de concepteurs
permet à chacun de trouver les réponses à ses questions.

54
Une carte électronique
Arduino en résumé
Un environnement de
programmation

Une communauté qui échange


http://arduino.cc/

55
Historique

56
Processing pour le Hardware !
 Qu'est ce que Processing?
− un langage de programmation et un environnement de développement
créé par Benjamin Fry et Casey Reas, deux artistes américains.
− particulièrement adapté à la création plastique et graphique
interactive
− Le logiciel fonctionne sur Macintosh, sous Windows et sous Linux, car
il est basé sur la plate-forme Java — il permet d'ailleurs de
programmer directement en langage Java.
Pourquoi?
− Matériel robotique excessivement cher
57
Arduino : une philosophie
Le matériel est « open source » :
− On peut le copier, le fabriquer et le modifier librement.

Le logiciel est libre :


− On peut l’utiliser et le modifier librement.

Sur l’Internet, on trouve :


− Une communauté d’utilisateurs.
− Des guides d’utilisation.
− Des exemples.
− Des forums d’entraide. 58
Avantages
Pas cher !
Environnement de programmation clair et simple.
Multiplate-forme : tourne sous Windows, Macintosh et Linux.
Nombreuses bibliothèques disponibles avec diverses
fonctions implémentées.
Logiciel et matériel open source et extensible.
Nombreux conseils, tutoriaux et exemples en ligne (forums, site
perso, etc.)
Existence de « shield » (boucliers en français)
59
Domaine d'utilisation
Physical computing: Au sens large, construire des systèmes
physiques interactifs qui utilisent des logiciels et du matériel
pouvant s’interfacer avec des capteurs et des actionneurs.
Électronique industrielle et embarquée Art / Spectacle
Domotique Robotique
Modélisme
DIY (Do-It-Yourself), Hacker, Prototypage, Education, Etc.

60
La carte électronique Arduino
FTDI USB Chip

61
La schématique électronique

62
Qu'est ce qu'un microcontrôleur?
µcontrôleur : circuit intégré qui rassemble les éléments essentiels
d'un ordinateur : processeur, mémoires (mémoire morte et/ou
programmable pour le programme, mémoire vive pour les
données), unités périphériques et interfaces d'entrées- sorties
Ils sont fréquemment utilisés dans les systèmes embarqués,
comme les contrôleurs des moteurs automobiles, les
télécommandes, les appareils de bureau, l'électroménager, les
jouets, la téléphonie mobile, etc.

63
Qu'est ce qu'un microcontrôleur?
Un microcontrôleur intègre sur un unique die (circuit intégré) : un processeur
(CPU), avec une largeur du chemin de données
allant de 4 bits pour les modèles les plus basiques à 32 ou 64 bits pour les modèles
les plus évolués ;
de la mémoire vive (RAM) pour stocker les données et variables ;
de la mémoire pour stocker le programme: ROM (mémoire morte) et/ou EPROM,
EEPROM, Flash ;
souvent un oscillateur pour le cadencement. Il peut être réalisé avec un quartz,
un circuit RC ou encore une PLL1 ;

1 : Phase-Locked Loop ou boucle à phase asservie, ou encore boucle à verrouillage de phase


64
Qu'est ce qu'un
microcontrôleur ?
des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner entre autres :

− les convertisseurs analogiques-numériques (CAN) (donnent un nombre binaire à partir d'une


tension électrique),
les convertisseurs numériques-analogiques (CNA) (effectuent l'opération inverse),
les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou en anglais, PWM pour
Pulse Width Modulation),
les timers/compteurs (compteurs d'impulsions d'horloge interne ou d'événements externes),
les chiens de garde (watchdog),
les comparateurs (comparent deux tensions électriques),
les contrôleurs de bus de communication (UART, I²C, SSP, CAN, FlexRay, USB, Ethernet, etc.).
CAN = ADC (Analog-to-Digital Converter) CNA = DAC
(Digital-to-Analog Converter)
liaison série = UART (Universal Asynchronous Receiver Transmitter)
65
Analogique vers numérique

Résolution: le nombre de niveaux de sortie


que l'ADC peut reproduire
Fréquence d’échantillonnage: le nombre de
mesures par unité de temps

Par exemple avec une résolution de 8 bits sur un


signal variant entre 0V et 5V, le nombre de niveaux
est de 28 et donc la résolution en volt est de (5-0)/
(28) soit environ 19,53125 mV
En pratique, on considère que les bits de poids
faibles ne sont pas assez précis. Si on omet 2 bits,
on arrive à 78,125mV

66
Numérisation éch = échantillon ou sample en anglais

Prenons un exemple pratique:


− une fréquence d’échantillonnage de 10Kéch./s
− une résolution de 10 bits (par échantillon)
− une mémoire RAM de 2Ko
 10Kéch./s, soit 100Kbits/s soit 12,5Ko/s
 Ce qui signifie qu'on ne peut récupérer que 2/12,5=160ms
Les solutions?
− Réduire la fréquence d’échantillonnage si le phénomène à observer ne
requière pas une telle précision temporelle
− Réduire la résolution si une approximation plus grande est admise
− Augmenter la mémoire:
 si c'est une mémoire rapide, pas de problème
 si c'est un support externe, plus lent, on va rater des événements (des mesures) le
temps d'écrire. 67

Heureusement, pour nous, la température à observer variera lentement.


Notre Arduino: le Uno
Micro contrôleur : ATmega328 Tension
d'alimentation interne = 5V
tension d'alimentation (recommandée)= 7 à 12V, limites =6 à 20 V Entrées/sorties
numériques : 14 dont 6 sorties PWM
Arduino Uno SMD
Entrées analogiques = 6 (avec une résolution de 10 bits => 1024 valeurs différentes) Courant max par (ou CMS en français pour
Composant Monté en Surface)
broches E/S = 40 mA

Courant max sur sortie 3,3V = 50mA


Mémoire Flash 32 KB dont 0.5 KB utilisée par le bootloader* Mémoire
SRAM 2 KB
mémoire EEPROM 1 KB Fréquence
horloge = 16 MHz Dimensions =
68.6mm x 53.3mm
La carte s'interface au PC par l'intermédiaire de sa prise USB.
La carte s'alimente par le jack d'alimentation (utilisation autonome) mais
peut être alimentée par l'USB (en phase de développement par exemple).
68
*Bootloader : un petit programme chargé sur le microcontrôleur. Il permet de charger le code sans
programmateur. Il est activé quelques secondes lorsque la carte est « resetée ». Ensuite, il démarre
le sketch (programme) qui a été chargé sur le microcontrôleur.
Des capteurs

69
Encore des capteurs

70
Toujours des capteurs

Attention au fonction régissant un capteur


analogique après la conversion

71
Capteurs analogiques et numériques
Parmi les capteurs que nous venons de voir, il existe :
− des capteurs analogiques pour lesquels le signal devra être
numérisé par le CAN du microcontrôleur. Il nous appartiendra de
faire appliquer la loi régissant la mesure.
− des capteurs numériques qui ont leur propre CAN embarqué. Il
gère eux même la loi régissant la mesure. La communication avec
ces capteurs se fait souvent selon un protocole particulier (I2C, 1-
wire, etc.).
Par exemple le DHT11

72
Quelques actionneurs

73
Breadboard (Planche à pain ... pour le prototypage)
Élément essentiel pour le prototypage et essai en tout genre

74
Breadboard: exemple d'utilisation

1 photorésistance 75
Différents shields
Existence de « shields » (boucliers en français) : ce sont des
cartes supplémentaires qui se connectent sur le module Arduino
pour augmenter les possibilités comme par exemple : afficheur
graphique couleur, interface ethernet, GPS, etc...

76
Des shields

77
Encore des shields

78
Le shield Wireless SD

79
Communications sur le shield

En général on fonctionne sur une


communication série (RX/TX).
On utilisera la bibliothèque Serial ou
SoftwareSerial sur Arduino.
C'est très simple!
Et ici c'est modulaire!

80
Différents autres modules

81
Programmons notre Arduino
• Le langage Arduino est basé sur le C/C++.
− Le langage de programmation d'Arduino est en effet une
implémentation de Wiring (une plate- forme open source similaire de
physical computing qui proposait elle-même une bibliothèque appelée
Wiring qui simplifie les opérations d'entrée/sortie).
• Un programme Arduino est aussi appelé un sketch.

82
Structure d'un programme
Prise en compte des instructions de la
partie déclarative
Exécution de la partie configuration
(fonction setup()),
Exécution de la boucle sans fin (fonction
loop()): le code compris dans la boucle sans
fin est exécuté indéfiniment.
Finalement similaire au code suivant sur PC:
int main()
{
setup();
while(true)
loop();
}

83
Le code minimal

Avec Arduino, nous devons utiliser un code minimal lorsque
l'on crée un programme. Ce code permet de diviser le
programme que nous allons créer en deux grosses parties.
void setup() //fonction d'initialisation de la carte
{
//contenu de l'initialisation
}

void loop() //fonction principale qui se répète (s’exécute) à l'infini


{
//contenu du programme
}

84
La syntaxe du langage
Voir aussi la section reference
http://www.arduino.cc/reference

85
La syntaxe du langage

86
L'environnement de développement

87
L'environnement de développement

Vérifier (Verify): vérifier les erreurs dans le code


Charge (Upload): compiler le code et charge le programme sur la carte
Arduino
Nouveau (New): créer un nouveau sketch
Ouvrir (Open): ouvrir un des sketchs déjà présent
Sauvegarder (Save): sauvegarder le sketch
Serial Monitor: permet d'accéder au port série (en RX/TX)

88
Merci de votre attention!

89

Vous aimerez peut-être aussi