Introduction à l’algorithmique et à la
programmation (Info 2)
Dixième cours: Introduction au microcontrôleur Arduino
Matthieu Puigt
IUT du Littoral Côte d’Opale
DUT Génie Industriel et Maintenance
[Link]@[Link]
[Link]
.
Retrouvez ce document sur :
[Link]
Année universitaire 2014–2015
M. Puigt Info 2 – Cours 10 2014–2015 1
Bibliographie
Ce cours est partiellement inspiré de :
[Link]
[Link],
des notes de cours disponibles sur
[Link]
des fonctions et bibliothèques sur
[Link] et
[Link]
M. Puigt Info 2 – Cours 10 2014–2015 2
Un microcontrôleur (ou µc), qu’est-ce que c’est ?
Definition (source Wikipedia)
Circuit intégré qui rassemble les éléments essentiels d’un ordinateur :
processeur, mémoires (morte et vive), unités périphériques et interfaces
d’entrées-sorties.
Plus petits, moins performants (et donc moins consommateurs
d’énergie), moins chers qu’un PC (de moins en moins vrai : cf
Raspberry PI ou Beaglebone Black par exemple)
Application visée = systèmes embarqués (téléphones mobiles,
baladeurs, récepteurs GPS, électroménager, automobile, systèmes de
transports, etc)
Généralement, l’utilisateur ne peut communiquer avec un µc en cours
d’utilisation (pas d’interface homme-machine sur un injecteur par
exemple)
Mais environnement de développement intégré (IDE en anglais) pour le
programmer initialement.
La plupart des µc programmés en langage assembleur. D’autres (ex : les
arduino) compilent des langages de programmation (moins optimal
mais plus facile)
M. Puigt Info 2 – Cours 10 2014–2015 3
Arduino ?
Start-up italienne lancée en 2005 ([Link]
Crée un microcontrôleur bas-coût (à partir de 20 e) avec un IDE
permettant de facilement le programmer, même par un débutant.
Public visé : les artistes, les étudiants (université voire lycée), les
"bidouilleurs" du dimanche, les experts pour certaines applications ou
du développement
Open-source (sauf nom) : les plans sont en ligne et on peut donc
reproduire, modifier et améliorer et vendre une telle carte. L’IDE est
aussi open-source.
î Enorme communauté d’utilisateurs (Arduino Day 2014)
Centaines de produits sur le marché (versions officielles, copies à
l’identique à bas coût, versions améliorées). Chaque jour naît un
nouveau produit "duino"
Hardware open-source est une nouvelle révolution industrielle selon
certains experts (de nombreuses compagnies se sont lancées sur ce
marché)
M. Puigt Info 2 – Cours 10 2014–2015 4
Modèle UNO
Quelques caractéristiques :
• 32 ko de ROM (dont
bootloader de 0.5 ko)
• 2 ko de RAM, 1 ko
d’EEPROM
• 16 MHz (Intel 8086 : de 5 à
10 MHz)
M. Puigt Info 2 – Cours 10 2014–2015 5
Modèle UNO
Quelques caractéristiques :
• 32 ko de ROM (dont
bootloader de 0.5 ko)
• 2 ko de RAM, 1 ko
d’EEPROM
• 16 MHz (Intel 8086 : de 5 à
10 MHz)
• 14 ports entrée/sortie
numériques
Les E/S numériques (deux valeurs : ON/OFF) peuvent "lire" des
interrupteurs, des boutons, contrôler des DEL et l’activation de moteurs
M. Puigt Info 2 – Cours 10 2014–2015 5
Modèle UNO
Quelques caractéristiques :
• 32 ko de ROM (dont
bootloader de 0.5 ko)
• 2 ko de RAM, 1 ko
d’EEPROM
• 16 MHz (Intel 8086 : de 5 à
10 MHz)
• 14 ports entrée/sortie
numériques
• 5 ports d’entrée analogique
Les E/S numériques (deux valeurs : ON/OFF) peuvent "lire" des
interrupteurs, des boutons, contrôler des DEL et l’activation de moteurs
Les entrées analogiques (une "infinité" de valeurs) peuvent lire des
potentiomètres et autres capteurs à données variables
M. Puigt Info 2 – Cours 10 2014–2015 5
Modèle UNO
Quelques caractéristiques :
• 32 ko de ROM (dont
bootloader de 0.5 ko)
• 2 ko de RAM, 1 ko
d’EEPROM
• 16 MHz (Intel 8086 : de 5 à
10 MHz)
• 14 ports entrée/sortie
numériques (dont 6 MLI)
• 5 ports d’entrée analogique
Les E/S numériques (deux valeurs : ON/OFF) peuvent "lire" des
interrupteurs, des boutons, contrôler des DEL et l’activation de moteurs
Les entrées analogiques (une "infinité" de valeurs) peuvent lire des
potentiomètres et autres capteurs à données variables
Les sorties analogiques peuvent être obtenues par des "modulations de
largeur d’impulsion"
M. Puigt Info 2 – Cours 10 2014–2015 5
Modèle UNO
Quelques caractéristiques :
• 32 ko de ROM (dont
bootloader de 0.5 ko)
• 2 ko de RAM, 1 ko
d’EEPROM
• 16 MHz (Intel 8086 : de 5 à
10 MHz)
• 14 ports entrée/sortie
numériques (dont 6 MLI)
• 5 ports d’entrée analogique
Tension de fonctionnement : 5 V
Tension d’entrée (recommendée) : 7-12 V
Tension d’entrée (limites) : 6-20 V
Intensité de courant par port E/S : 40 mA
Intensité de courant par port E/S en 3.3 V : 50 mA
M. Puigt Info 2 – Cours 10 2014–2015 5
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des capteurs de température :
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des capteurs de pression/torsion :
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des moteurs :
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des écrans d’affichage :
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des relais :
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Bref, tout type de capteur ([Link]
sensors/) ou d’actionneur.
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Mais aussi des modules appelés "shields"
Liste des shields : [Link]
M. Puigt Info 2 – Cours 10 2014–2015 6
Que peut-on connecter à l’Arduino ?
Quelques exemples
Mais aussi des modules appelés "shields" qu’on peut empiler :
Liste des shields : [Link]
M. Puigt Info 2 – Cours 10 2014–2015 6
IDE
IDE téléchargeable sur [Link]
Un programme s’appelle "sketch"
M. Puigt Info 2 – Cours 10 2014–2015 7
Compiler
IDE
IDE téléchargeable sur [Link]
Un programme s’appelle "sketch"
M. Puigt Info 2 – Cours 10 2014–2015 7
Compiler
IDE Transférer
Zone de statut
IDE téléchargeable sur [Link]
Un programme s’appelle "sketch"
M. Puigt Info 2 – Cours 10 2014–2015 7
Compiler
IDE Transférer
Zone de statut
IDE téléchargeable sur [Link]
Un programme s’appelle "sketch"
Compiler, remettre à zéro la carte (appuyer sur reset) et charger le
programme
M. Puigt Info 2 – Cours 10 2014–2015 7
Langage Arduino
Langage très proche du C
Beaucoup de fonctions très simples
pinMode() – choisit un port comme entrée ou sortie (INPUT/OUTPUT)
digitalWrite() – affecte à un port numérique la valeur haute ou
basse (HIGH/LOW)
digitalRead() – lit l’état du port numérique
analogRead() – lit un port analogique
analogWrite() – écrit une valeur MLI "analogique"
delay() – attend une durée de temps définie (en ms)
millis() – fournit le temps épuisé (en ms) depuis le lancement du
programme courant
Et beaucoup d’autres "bibliothèques" et "fonctions" (on en reparlera
plus tard, en TD et TP)
M. Puigt Info 2 – Cours 10 2014–2015 8
Le squelette d’un programme
// Déclaration de variables
void setup()
{
// Initialisation des variables
}
void loop()
{
// Cette fonction est appelée indéfiniment,
// après le setup
}
M. Puigt Info 2 – Cours 10 2014–2015 9
Conclusion
Nous avons vu une rapide introduction à l’Arduino
Beaucoup de tutoriels en ligne peuvent vous aider
Nous allons mieux l’étudier dans le cadre de TD/TP
M. Puigt Info 2 – Cours 10 2014–2015 10