CENTRE DE FORMATION DES INSPECTEURS DE L’EDUCATION
Arduino : Premiers pas vers les
systèmes embarqués
Réalisé par :Etudiant inspécteur ABDELHAMID OUCHAOU
Encadré par : Mr A. BAHIDA
Année académique 2018-2019
Plan de l’exposé
1ère Partie
Introduction
Petit historique
Caractéristiques d’un système embarqué
Architecture d'un système embarqué
Découverte de la plateforme Arduino
Types de cartes ARDUINO
Structure du microcontrôleur Arduino : Atmel AVR ATmega
Structure de la carte Arduino : UNO R3
Alimentation de la carte Arduino : UNO R3
Précautions pratiques
Description des broches de Arduino UNO R3
Cartes d’extension Arduino ‘’SHIELDS’’
Programmation de la carte Arduino
Arduino en science de l’ingénieur
Applications pratiques
Plan de l’exposé
2éme Partie
Introduction à Ardubock
Présentation de Fritzing
Communication entre Arduino et Rasbery Pi
Communication entre Arduino et XBee
Conclusion
Introduction
Le projet Arduino été initié en 2005 en Italie par un groupe d’étudiants et
d’enseignants d’une école d’art et de design pour faire face aux
difficultés rencontrées lors de la mise en œuvre de projets artistiques
interactifs.
Il a avait pour objectif de concevoir une plate-forme de prototypage de
systèmes embarqués.
Le nom Arduino trouve son origine dans le nom du bar dans lequel
l’équipe avait l'habitude de se retrouver.
Arduino est aussi le nom d'un roi italien, personnage historique de la ville
« d’Ivrée ».
Petit historique
Le projet Arduino été initié en 2005 en Italie par un groupe d’étudiants et
d’enseignants d’une école d’art et de design pour faire face aux
difficultés rencontrées lors de la mise en œuvre de projets artistiques
interactifs.
Il a avait pour objectif de concevoir une plate-forme de prototypage de
systèmes embarqués.
Le nom Arduino trouve son origine dans le nom du bar dans lequel
l’équipe avait l'habitude de se retrouver.
Arduino est aussi le nom d'un roi italien, personnage historique de la ville
« d’Ivrée ».
Caractéristiques d’un système embarqué
Un système embarqué :
• un système électronique et informatique autonome,
• Le plus souvent mobile,
• souvent temps réel,
• spécialisé dans une tâche bien précise.
• Les ressources d’un système embarqué sont généralement limitées;
d'ordre spatial (encombrement réduit), mémoire et énergétique
(consommation restreinte).
Architecture d'un système embarqué
Découverte de la plateforme Arduino
Arduino fait partie de la famille des platines de développement,
Contrairement aux Raspberry Pi et aux Beaglebone, il ne possède pas
d'OS basé sur Linux. Il reste par contre l'un des plus abordables et des
plus répandus. Une platine de développement est en général un circuit
imprimé équipé d'un microprocesseur ou d'un microcontrôleur. Comme
Arduino est open source, il existe un grand nombre de clones et de
platines compatibles, tout comme il existe de nombreux modèles
d'Arduino officiels, avec des fonctions particulières:
Types de cartes ARDUINO
Microcontrôleur ATmega168 ou ATmega328
Tension de fonctionnement 5V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 14 (dont 6 disposent d'une sortie PWM)
Broches d'entrées analogiques 6
Intensité maxi disponible par broche E/S (5V) 40 mA
Intensité maxi disponible par broche E/S (3.3V) 50 mA
16 KB (ATmega168) or 32 KB (ATmega328) dont 2
Mémoire Programme Flash
KB sont utilisés par le bootloader
Mémoire SRAM (mémoire volatile) 1 KB (ATmega168) ou 2 KB (ATmega328)
Mémoire EEPROM (mémoire non volatile) 512 bytes (ATmega168) ou 1 KB (ATmega328)
Vitesse d’horloge 16 MHz
ARDUINO UNO R2
Dimensions : 53 mm x 68 mm
Microcontrôleur ATmega328
Tension de fonctionnement 5V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 14 (dont 6 disposent d'une sortie PWM)
Broches d'entrées analogiques 6
Intensité maxi disponible par broche E/S (5V) 40 mA
Intensité maxi disponible par broche E/S (3.3V) 50 mA
Mémoire Programme Flash 32 KB dont 2 KB sont utilisés par le bootloader
Mémoire SRAM (mémoire volatile) 2 KB
Mémoire EEPROM (mémoire non volatile) 1 KB
Vitesse d’horloge 16 MHz
ARDUINO UNO R3
Dimensions : 53 mm x 68 mm
Microcontrôleur ATmega168
Tension de fonctionnement 3,3V ou 5V
Tension d'alimentation (recommandée) 3.35 -12 V (3.3V model)
5 - 12 V (5V model)
Broches E/S numériques 14 (dont 6 disposent d'une sortie PWM)
Broches d'entrées analogiques 6
Intensité maxi disponible par broche E/S (5V) 40 mA
Intensité maxi disponible par broche E/S (3.3V) 50 mA
16 KB (ATmega168) dont 2 KB sont utilisés
Mémoire Programme Flash
par le bootloader
Mémoire SRAM (mémoire volatile) 1 KB (ATmega168)
Mémoire EEPROM (mémoire non volatile) 512 bytes (ATmega168)
Vitesse d’horloge 8 MHz
ARDUINO PRO mini
Dimensions : 33 mm x 18 mm
Microcontrôleur ATmega32u4
Tension de fonctionnement 5V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 20 (dont 7 disposent d'une sortie PWM)
Broches d'entrées analogiques 12
Intensité maxi disponible par broche E/S (5V) 40 mA
Intensité maxi disponible par broche E/S (3.3V) 50 mA
32 KB dont 4 KB sont utilisés par le
Mémoire Programme Flash
bootloader
Mémoire SRAM (mémoire volatile) 2,5 KB
Mémoire EEPROM (mémoire non volatile) 2 KB
Vitesse d’horloge 16 MHz
ARDUINO LEONARDO
Dimensions : 53 mm x 68 mm
Microcontrôleur ATmega2560
Tension de fonctionnement 5V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 54 (dont 15 disposent d'une sortie PWM)
Broches d'entrées analogiques 16
Intensité maxi disponible par broche E/S (5V) 40 mA
Intensité maxi disponible par broche E/S (3.3V) 50 mA
256 KB dont 8 KB sont utilisés par le
Mémoire Programme Flash
bootloader
Mémoire SRAM (mémoire volatile) 8 KB
Mémoire EEPROM (mémoire non volatile) 4 KB
Vitesse d’horloge 16 MHz
ARDUINO MEGA
Dimensions : 53 mm x 101 mm
Microcontrôleur AT91SAM3X8E
Tension de fonctionnement 3.3 V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 54 (dont 12 disposent d'une sortie PWM)
Broches d'entrées analogiques 12
Intensité maxi disponible toutes broche I/O 130 mA
Intensité maxi disponible par broche E/S (3.3V) 800 mA
Mémoire Programme Flash 512 KB (application)
Mémoire SRAM (mémoire volatile) 96 KB
Vitesse d’horloge 84 Mhz
ARDUINO DUE
Possibilité de brancher une souris
et un clavier USB
Dimensions : 53 mm x 101 mm
Microcontrôleur ATmega328
Tension de fonctionnement 5V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 14 (dont 6 disposent d'une sortie PWM)
Broches d'entrées analogiques 6
Intensité maxi disponible par broche E/S (5V) 40 mA
Intensité maxi disponible par broche E/S (3.3V) 50 mA
Mémoire Programme Flash 32 K dont 2 KB sont utilisés par le bootloader
Mémoire SRAM (mémoire volatile) 2 KB
Mémoire EEPROM (mémoire non volatile) 1 KB
Vitesse d’horloge 16 MHz
ARDUINO NANO
V3
Dimensions : 18mm x 43 mm
ARDUINO UNO
Il existe deux modèles d’Arduino Uno: l’un avec un microcontrôleur de grande taille, et un autre avec
un microcontrôleur dit SMD (SMD: Surface Mounted Device).Il n’y a pas de différence entre les deux
types de microcontrôleurs.
Les couleurs de l'Arduino peuvent varier du bleu au bleu-vert, en fonction des modèles et années de
production. Nous choisirons d’ utiliser la carte portant le nom de « Uno» ou « Duemilanove ».
Ces deux versions sont presque identiques.
Structure du microcontrolleur
Arduino : Atmel AVR ATmega 328
Structure du microcontrolleur
Arduino : Atmel ARV Atmega 328
Horloge 16Mhz.
32ko de mémoire flash destinée à recevoir le programme,
2ko de SRAM (mémoire vive)
1ko d’EEPROM (mémoire morte destinée aux données).
14pins (broches) d’entrée/sortie numérique (données acceptée 0 ou 1) 6 sorties pouvant
générer des PWM(Pulse Width Modulation, détaillé plus tard).
Elle permet aussi de mesurer des grandeurs analogiques grâce à ces 6 entrées
analogiques .
Chaque broche est capable de délivrer un courant de 40mA pour une tension de 5V.
Structure de la carte Arduino :
UNO R3
Alimentation de la carte Arduino :
UNO R3
Précautions pratiques
Il est impératif de ne pas dépasser les
possibilités de la carte pour ne pas la détruire .
(40mA max par pin)
Avoir une bonne connaissance des objets «
non-standards » à commander pour prévoir un
interfaçage si nécessaire ( relais transistor
photo-coupleur ….).
Les pins E/S ne comportent pas par défaut
des résistances « pullups » ( entrées flottantes).
Description des broches de Arduino UNO R3
pins SDA et SCL
Pin 0 et 1 (BUS I2C)
14 E/S numériques
6 entrées analogiques Une liaison SPI
programmables
( Serial Peripheral Interface)
14 E/S numériques programmables
(numérotées de 0 à 13 ) dont 6 ( 3
,5,6,9,10 et 11) peuvent générer un signal
MLI (PWM)
∆T1 ∆T2 ∆T3
5V
0V
T T T
Les pins 5 et 6 ont une fréquence de 980Hz environ les autres 490Hz
Les pins 0 et 1 sont mappées avec un
port série asynchrone :
0 RX 1 TX
6 entrées analogiques ( A0 à A5)
converties sur 10 bits ( 0 à 1023)
avec une tension de référence 5V
par défaut. On peut choisir une autre
tension de référence appliquée sur
AREF ( <5V)
Pins SDA et SCL (BUS I2C) :
une liaison série synchrone
permettant de relier la carte à
d’autres appareils possédant la
même liaison
Une liaison SPI ( Serial Peripheral Interface) est un bus de
données série synchrone qui opère en mode Full-duplex . Les
circuits communiquent selon un schéma maître-esclaves, où le
maître s'occupe totalement de la communication.
SCLK — Serial Clock, Horloge (généré par le maître) pin 13
MOSI — Master Output, Slave Input (généré par le maître) pin 11
MISO — Master Input, Slave Output (généré par l'esclave) pin 12
SS — Slave Select, Actif à l'état bas (généré par le maître) pin 10
Cartes d’extension Arduino
‘’SHIELDS’’
Ce sont des cartes enfichables sur la carte Arduino de base
WIFI –miro SD
Ethernet –micro SD
Relais
Commande moteurs
Afficheur LCD 16x2
clavier 6 Boutons
Cartes d’extension Arduino
‘’SHIELDS’’
GPS
GSM
Carte SD
Et bien sur d’autres Shieds : Accédez au lien suivant pour avoir une idée
shields
Cartes d’extension Arduino
‘’SHIELDS’’
Et bien sur d’autres Shieds : Accédez au lien suivant pour avoir une idée
shields
Programmation de la
carte Arduino
Programmation des Programmateur de
microcontrôleurs +
microcontrôleurs Test sur plaque
d’essai
Logiciel pour le
transfère du
fichier HEX
Editeur et
compilateur de
code
Maitrise de l’architecture du
microcontrôleur
Programmation
Arduino
La programmation de la carte se fait
en utilisant le logiciel Arduino
IDE (integrated development
environment) .
téléchargeable sur [Link] et
disponible pour Windows , Mac ,
linux et androïd
Un programme Arduino s’appelle « sketch »
Environnement de développement
ARDUINO IDE
Structure d’un sketch
Un programme Arduino contient trois parties essentielles
Langage Arduino
Le langage Arduino est inspiré de plusieurs langages. On retrouve notamment des similarités avec
le C, le C++, le Java et le Processing. Le langage impose une structure particulière typique de
l’informatique embarquée.
Basé sur a notion de fonctions
Sorties
02 nom_fonction ( paramètres séparés
par « , » )
Fonctions ….. ;
instruction _n ;
03 instruction_n+1 ;
Entrées …… ;
return < valeur si elle
existe >
Langage Arduino
Fonctions d’
Entrées/Sorties
Langage Arduino
Variables et
opérateurs
Langage Arduino
Gestion du
temps
structure de
control
Gestion des
l i b r a i r i e s
Une librairie est une collection de fonctions spécifiques à
un domaine ou permettant de contrôler un sheild ou
effectuer des opérations sur une ressource .
Exemple : La librairie < math.h > contient les
fonctions mathématiques usuelles ( cos , sin , log
sqrt , puissance …)
Pour pouvoir utiliser les fonctions d’une librairie , il faut la
déclarer dans la partie déclaration par la commande
#include < librairie.h>
Iibrairies
Standards
Bien sur qu’il y’en a d’autres
Applications pratiques
Faire clignoter une Led
Réalisation
Caractéristiques de la Led
Applications pratiques
Faire clignoter une Led
Montages de la Led Edition et compilation
OU
Applications pratiques
Faire clignoter une Led
Arduino en science de l’ingénieur
Arduino en science de l’ingénieur
Acquisition
Schèma Circuit
Arduino en science de l’ingénieur
Commande automatique d’une lampe
Acquérir Traiter Communiquer
Arduino en science de l’ingénieur
Commande automatique d’une lampe
Acquérir Traiter Communiquer
Arduino en science de l’ingénieur
Commande automatique d’une lampe
Code
Exemples de projets
Projet 1 Projet 2
Projet 3 Projet 4
Utilisation en domotique
Arduino en science de l’ingénieur
Acquisition
/*
Code Reads an analog input on pin 0, prints the result to the Serial Monitor.
*/
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
[Link](9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
[Link](sensorValue);
delay(1); // delay in between reads for stability
}
Introduction
à Ardubock Présentation
ArduBlock Éducation est un plugin qui s’intègre à l’IDE d’Arduino™ (logiciel
de base de programmation Arduino™). Basé sur le même principe que Scratch
(empilement de blocs fonctions, tests, etc.), ArduBlock Éducation est une
version épurée et optimisée par Technologie Services d’ArduBlock
spécialement dédiée à l’éducation.
Avantages
Cette version de logiciel permet uniquement de traduire en code et de programmer
les cartes Arduino™ (pas de mode connecte). Cependant vous pourrez piloter plus
de matériels dits « complexes » avec cette version. Pour faciliter la
programmation, une image du capteur ou de l’actionneur a été ajoutée dans le bloc
pour faire facilement le lien avec le matériel. Des catégories crées comme «
Capteurs »,« Actionneurs », « Afficheurs », « Connections sans fil » et bien
d’autres afin de trouver et d’utiliser facilement les blocs. Pour ne pas être perdu
lors de son utilisation, on a gardé le même code couleur que Scratch pour les
catégories de blocs (blocs structures : orange; blocs operateurs : vert, etc.).
ArduBlock Éducation intègre des bibliothèques spécifiques à l’utilisation des
capteurs / actionneurs de la gamme Grove.
À l’aide de ces blocs, programmer un afficheur LCD RGB à communication I2C est
un jeu d’enfant.
Introduction
à Ardubock
Présentation des divers
fonctionnalités
d’ Ardublock Éducation
Présentation des divers
fonctionnalités
d’ Ardublock Éducation
Présentation des divers
fonctionnalités
d’ Ardublock Éducation
Présentation des divers
fonctionnalités
d’ Ardublock Éducation
Présentation des divers
fonctionnalités
d’ Ardublock Éducation
Fritzing est un projet de logiciel libre, destiné aux non-professionnels de
l'électronique. Il a notamment pour vocation de favoriser l'échange de
circuits électroniques libres et d'accompagner l'apprentissage de la
conception de circuits.
Il est adapté aux débutants ou confirmés en électronique
pour faire rapidement des circuits simples, et est également
un bon outil didactique pour apprendre à bidouiller en
électronique par la pratique : il est utilisable en classe à
partir de 12 ans et en université7.
Le logiciel comporte trois vues principales :
La « Platine d'essai », où l'on voit les composants tels
qu'ils sont dans la réalité et où l'on construit le montage.
La « Vue schématique », représentant le schéma
fonctionnel du circuit.
Le « Circuit imprimé », représentant la vue du circuit
imprimé tel qu'il sera sorti en PDF pour être imprimé.
Construire une application web qui va recevoir des commandes et les envoyer à
l’Arduino. Une application web ne pouvant pas exister sur un Arduino, cela impliquera de
passer par un Raspberry Pi. Il s’agira donc d’abord de comprendre comment faire
communiquer ces deux devices, et pour cela deux possibilités : I2C ou USB.
Communication entre un Raspberry Pi et un
Arduino nano
Selon la carte utilisée, il faut ajouter une résistance 10K/15K
pour réduire la tension du Tx de 5V à 3,3V. Cela évitera de
griller la carte XBee.
Thank You
Merci pour votre attention