Sunteți pe pagina 1din 12

Arduino et Simulink/Matlab un outil innovant cot rduit

pour le prototypage
Mohamed Ali ZERZRI

zerzriiset@gmail.com
Institut Suprieur des Etudes Technologiques (ISET) de Bizerte, Route Menzel Abderrahmen, Zarzouna,
7021, Bizerte, Tunisie

Rsum : Lenseignant des travaux pratiques (TP) en gnie lectrique affronte toujours une
situation problmatique qui se traduit par le fait quil fait appel soit des simulations, soit des
maquettes pdagogiques trs spcifiques, intgrant des fonctions figes gnralement non
modifiables et peu extensibles.
Dans cet article, nous avons essay dapporter une solution cette situation en prsentant une
nouvelle approche qui est lapprentissage par prototypage. Le choix sest fix sur la
combinaison de lenvironnement Simulink/Matlab et de la plateforme Arduino. Cette approche
est trs pertinente, car elle permet dassocier un puissant logiciel de simulation et une carte de
prototypage permettant denvisager des applications complexes. Cette exprience a rendu les
TP plus interactifs. Notre travail sarticule autour de trois parties : la premire partie est
consacre la prsentation de la carte Arduino et son environnement de dveloppement, la
deuxime partie est rserve lutilisation de lenvironnement Simulink/Matlab avec Arduino et
enfin la troisime partie est consacre la mise en uvre simultane de lenvironnement
Simulink/Matlab et la plateforme Arduino, et ce pour la ralisation dune chaine dacquisition et
dasservissement de temprature.
Mots cls : Arduino, Matlab, Simulink, Prototypage.

Introduction
Un retour d'exprience pdagogique, au sein du dpartement gnie lectrique de l'ISET de
Bizerte, montre que l'enseignement des TP de gnie lectrique est assur essentiellement avec
du matriel pdagogique consacr seulement des simulations.
En effet, ltudiant est appel suivre des instructions et des sries de manipulations qui vont
tre excutes dune manire automatique pour aboutir des rsultats concrets, lesquels
rsultats sont difficiles interprter de la part de ltudiant qui narrive pas les associer avec
les connaissances thoriques acquises dans les sances de cours.
Ce mode dapprentissage instaure un climat de monotonie aux sances de TP et empche
ltudiant de sinscrire dans une dmarche globale dapprentissage qui englobe aussi bien les
connaissances thoriques que les connaissances oprationnelles.
Ainsi, nous avons essay dapporter plus dinteractivit aux sances de TP et surtout de laisser
le soin ltudiant de monter, modliser et simuler son propre systme en utilisant les moyens
de bord disponibles dans les labos de notre dpartement (composants lectroniques,

Article publi par EDP Sciences et disponible sur le site http://www.j3ea.org ou http://dx.doi.org/10.1051/j3ea/2013020

actionneurs etc.). Ainsi le prototype ralis est appropri au contenu thorique de la matire
enseigne.
Le choix sest fix sur la combinaison de lenvironnement Simulink/Matlab et la plateforme
Arduino. En effet, cette combinaison nous donne un outil cot rduit, performant, innovant et
extensible pour raliser des prototypes de systmes pluridisciplinaires.

1. La plateforme Arduino
C'est une plateforme open-source d'lectronique [1] programme qui est base sur une simple
carte microcontrleur (de la famille AVR.), et un logiciel, vritable environnement de
dveloppement intgr (IDE) pour crire, compiler et transfrer le programme vers la carte
microcontrleur.
Arduino peut tre utilis pour construire des objets interactifs indpendants (prototypage
rapide), ou bien peut tre connect un ordinateur pour communiquer avec ses logiciels.

1.1. Partie matrielle


En
effet,
une
carte
Arduino
est
gnralement
construite
autour
d'un microcontrleur Atmel AVR (ATmega328 ou ATmega2560 pour les versions rcentes
ATmega168 ou ATmega8 pour les plus anciennes), et de composants complmentaires qui
facilitent la programmation et l'interfaage avec d'autres circuits. Chaque carte possde au
moins un rgulateur linaire 5V et un oscillateur quartz 16 MHz (ou un rsonateur cramique
dans certains modles). Le microcontrleur est pr-programm avec un bootloader de faon
ce qu'un programmateur ddi ne soit pas ncessaire.
Treize versions des cartes de type Arduino ont t dveloppes jusquau nos jours, titre
indicatif nous citons Arduino Uno et Arduino Mega2560 qui sont les plus utilises dans
lenseignement et la recherche. Le tableau 1 rsume les principales caractristiques de ces
deux cartes.
Arduino

Uno

Mega2560

Processeur

ATmega328P

ATmega2560

Flash (KB)

32

256

EEPROM(KB)

SRAM(KB)

Broches d'E/S numriques

14 dont 6 PWM

54 dont 14 PWM

Broches entres analogiques

16

Type d'interface USB


Dimensions (mm)

ATmega8U2
68,6 x 53,3

ATmega8U2
101,6 x 53,3

Tab. 1 : comparatif entre Arduino Uno et Mega2560

1.2 Partie logicielle


L'environnement de programmation Arduino est en fait un Intgr de Dveloppement (EDI)
ddi au langage Arduino1, le logiciel Arduino permet d'crire les programmes, appels
Sketch de les compiler et de les transfrer dans la carte Arduino travers une liaison USB,
il intgre aussi un moniteur de port srie.
Lavantage du langage Arduino est quil est bas sur les langages C/C++ et supporte toutes les
syntaxes standards du langage C et quelques-uns des outils du C++. En plus de trs
nombreuses librairies sont disponibles, gratuitement, pour communiquer avec le matriel
connect la carte (Afficheurs LCD, Afficheurs 7 segments, capteurs, servomoteurs etc.).
Pour crire un programme avec le langage Arduino, il faut respecter certaines rgles. En effet,
lexcution d'un programme Arduino s'effectue de manire squentielle, c'est--dire que les
instructions sont excutes les unes la suite des autres, le compilateur vrifie lexistence de
deux structures obligatoires tout programme Arduino qui sont :
la partie initialisation et configuration des entres/sorties la fonction setup ()
la partie principale qui s'excute en boucle la fonction loop ()
Par contre, la partie dclaration des variables est optionnelle. La figure1 montre linterface
graphique de lEDI ainsi que la structure dun programme ralis avec le langage Arduino.

Fig. 1 : EDI Arduino et structure du programme

Tlchargement de lIDE Arduino : www.arduino.cc/en/main/software .

1.3. La carte Arduino Uno


Pour les essais pratiques et le prototypage, nous avons choisi dutiliser la carte Arduino Uno
pour trois raisons :

Sa capacit de communication avec Simulink/Matlab


Ses performances, 32kB de mmoire flash, 14 entres/sorties dont 6 PWM, vitesse
dhorloge 16Mhz et un port de communication USB. Ces performances sont largement
suffisantes pour les applications que nous comptons raliser.
Son prix abordable, environ 25 euros pour la dernire version dArduino Uno (R3).

Une vue relle de la carte est schmatise par la figure 2.

Fig. 2 : synoptique d'une carte Arduino Uno

On note bien la prsence des bornes suivantes (PIN) :

Entre alimentation externe 12V DC.


IOREF est une rserve, non connecte, prvue pour tre utilise dans les prochaines
versions.
Reset est une entre pour un reset externe.
Gnd, 3.3V et 5V sont des sorties dalimentations rgules.
Analog In (0..5) appeles aussi A0..5, sont des entres analogiques 0-5V, la rsolution
du convertisseur ADC est 10bits, la rfrence de tension pour le convertisseur ADC est
5V par dfaut.
ICSP (In-Circuit Serial Programming) permet la programmation du microcontrleur insitu, utile dans le cas d'une mise jour du firmware du microcontrleur.
14 entres/sorties digitales, dont 6 PWM

AREF entre pour une rfrence de tension externe pour le convertisseur analogique
numrique (ADC)
SDA, SCL lignes de communication I2C

2. Application pratique
2.1. Contexte
Dans ce cadre, nous proposons une application pratique ralise avec les tudiants de la
deuxime anne licence gnie lectrique. Cette application consiste raliser un prototype
pdagogique dune chaine de mesure, traitement et dasservissement de temprature, elle sera
le point de dpart pour dvelopper des sries de TP pluridisciplinaires.
La ralisation du prototype est faite en deux tapes :

Configurer la carte Arduino Uno comme une carte d'acquisition. Le traitement des
donnes est ralis sous Simulink.
Le programme peut tre ensuite compil directement [2] de lenvironnement Simulink
vers la carte Arduino Uno, on dit que la carte Arduino est devenue une cible (Target) et
elle peut fonctionner dune faon autonome (sans avoir recours MATLAB/Simulink),
mais peut conserver sa liaison srie.

2.2. Le matriel
Nous avons utilis une thermistance CTN 10k 25C de rfrence TDC05C310 [3]. La
temprature est convertie en tension grce au pont diviseur form par la CTN et une
rsistance 10k est aliment par une tension +5V issue de la carte. La sortie du pont diviseur est
reue par lentre analogique A0 (PIN 0). La communication de la carte et le PC se fait travers
une liaison USB. La figure 3 schmatise l'implantation du matriel.

PC
Simulink

Systme
USB

(Elment
chauffant
+
CTN)

Fig. 3 : configuration du matriel utilis

2.3. Les tapes de dveloppement


En premier lieu, la carte Arduino est programme pour tre utilise comme carte dacquisition,
la tension issue du pont diviseur form par la CTN et la rsistance 10k est applique lentre
(A0) du convertisseur analogique numrique (rsolution 10bits). Ainsi, elle est convertie en une

valeur numrique de 0 255 pour tre transmise au PC travers le convertisseur srie


(RS232)/USB intgr la carte. La figure 4 dtaille le programme, crit avec lEDI Arduino, qui
sera charg au microcontrleur de la carte.

Fig. 4 : le programme assurant l'acquisition et le transfert des donnes vers le PC

En second lieu, nous dveloppons des blocs Simulink qui assurent les fonctions suivantes :
acqurir, traiter et afficher les donnes depuis la carte Arduino Uno.
En effet, partir de la version 2012a de Matlab, la carte Arduino UNO ainsi quArduino MEGA
peuvent tre installes automatiquement on peut accder plusieurs ressources ce sujet [1]
et [4]. Linstallation se fait en excutant tout simplement la commande >>targetinstaller et suivre
les tapes, de prfrence il faut choisir linstallation en ligne. partir de cette tape, la carte
Arduino Uno est reconnue sous Matlab/Simulink et une librairie contenant des blocs spcifiques
est installe automatiquement sous Simulink comme lindique la figure 5. Les blocs Simulink
installs peuvent tre utiliss avec les autres pour raliser une multitude d'applications telles
que :

Exploitation des entres/sorties digitales ou analogiques


Commande PWM
Commander directement des servomoteurs
Communiquer en utilisant la liaison srie (via le convertisseur USB/Srie)
Commande de systmes (Asservissement, automatisation, etc.)

Une fois que le programme de lacquisition et du traitement de la temprature est test sous
Simulink, nous entamons la dernire phase qui est la compilation du programme directement de
Simulink vers la carte Arduino UNO, cette dernire peut fonctionner, maintenant, dune faon
autonome.

Fig. 5 : liste des blocs aprs l'installation de la carte Arduino Uno


2.4. Dveloppement et test du programme sous Simulink
Dans cette partie, nous allons dvelopper et tester, sous Simulink, le programme qui va traiter
les donnes transmises partir de la carte Arduino UNO.
La figure 6 montre la chaine dacquisition qui regroupe le capteur de temprature, la carte
Arduino UNO configure en carte d'acquisition.

Fig. 6 : configuration de la chaine d'acquisition

La thermistance utilise est du type CTN (Coefficient de Temprature Ngatif) ses


caractristiques sont donnes par le document constructeur [2]. Laspect compliqu de
lutilisation des thermistances rside dans le fait que la rsistance en fonction de la temprature,
RCTN = f (T), nest pas linaire.
Cette dpendance nest linaire que dans des gammes de tempratures trs faibles. Pour les
mesures de tempratures exactes dans les diverses missions de temprature, on peut utiliser
lquation exponentielle de troisime ordre de Steinhart-Hart [3]. Pour les thermistances CTN, il
existe une quation de Steinhart-Hart simplifie (1) en paramtre [5] :
(1)
Avec RCTN0 la rsistance de la CTN T0 = 298.15 K (25C), dans notre cas RCTN0 = 10k et =
4100K.
La temprature (T) est alors calcule partir de lquation (2)
(2)
Il faut donc convertir la tension issue du pont diviseur en rsistance ce qui nous amne
lexpression suivante :
(3)
La tension Ux est mesure par la carte Arduino est convertie en une valeur numrique comprise
entre 0 et 255 pour tre par la suite envoye au PC grce au convertisseur srie/USB intgr
la carte.

Le schma bloc, correspondant au fonctionnement de la chaine dacquisition et de traitement de


la temprature, dvelopp sous Simulink est reprsent par la figure 7.

Fig. 7 : les blocs Simulink assurant l'acquisition et le traitement de la temprature

3. Extension de lapplication
Lapplication de la chaine dacquisition de temprature est considre comme une base pour
raliser un asservissement de temprature chelonner sur une srie de TP. Dans cet ordre
dides, nous proposons de complter lapplication prcdente pour prsenter une mise en
uvre simplifie dun TP dasservissement de temprature dun systme de chauffage.
3.1. Maquette
Le matriel utilis est une CTN 10k (Ref : TDC05C310) comme capteur de temprature et une
rsistance 15 de puissance 17W comme lment chauffant. Cette dernire est installe sur
une plaque en aluminium au-dessus de laquelle est fix le capteur constituant le systme de
chauffage. La figure 8 schmatise les connexions avec la carte Arduino et la figure 9 montre
une vue relle de la maquette ralise.

Fig. 8 : schma lectronique de la maquette

Thermistance

Elment
Chauffant

ARDUINO

Fig. 9 : une vue de la maquette

3.2. Ralisation de lasservissement avec Simulink


La carte Arduino se charge de la communication avec le processus rel et Simulink. Le
programme permettant de grer les entres- sorties est celui de la figure 4. Dans Simulink,
nous avons implment la boucle dasservissement regroupant la consigne, le comparateur, le
correcteur et le traitement de la temprature issue du capteur. Un exemple de mise en uvre
comportant un correcteur PID est illustr par la figure 10.

ARDUINO relie au procd

Fig. 10 : modle Simulink de lasservissement de temprature en temps rel

Grce cette maquette, cot rduit, ltudiant peut raliser des sries de TP
dasservissement. En effet, loutil Matlab/Simulink est assez puissant pour identifier, modliser
le systme en sujet ensuite, faire la synthse du correcteur ou mme implanter dautres lois de
commandes plus avances. cet effet, Matlab propose une srie doutils qui permettent
dtudier et de synthtiser un systme linaire, on cite, titre dexemple : LTI Viewer, Sisotool,
PID Tuner
Un exemple de rponse du systme une consigne de temprature de 30 C est donn par la
figure 11.

Sortie du systme pour une consigne de 30 C

31
30.5
30

temperature C

29.5
29
28.5
28
27.5
27
26.5
26

50

100

150

200

250

300

350

400

450

Time (seconds)

Fig. 11 : un exemple de rgulation de temprature

Conclusion
Dans cet article, nous avons prsent une nouvelle approche denseignement de travaux
pratiques de gnie lectrique. Nous avons fait appel Arduino une plateforme matrielle trs
rpandue et Matlab/Simulink un programme de modlisation/simulation professionnel bien
connu. Cette approche permet aux tudiants dapprhender des problmes rels qui leurs
permettent de dvelopper leurs esprits de synthse et danalyse.
Avec une carte Arduino, il est intressant dexploiter les performances de lenvironnement
Matlab/Simulink pour attirer lattention des tudiants. Pour ce faire, il suffit de faire appel des
exemples rels bass sur la simulation, expliquer les contraintes sur le plan pratique travers la
connectivit au matriel didactique bas cot et excuter des lois de commande sur un
microcontrleur.
Lexemple pratique qui a t prsent dans cet article, est considr dune part, comme tant
un didacticiel permettant la mise en uvre de cette nouvelle technologie et, dautre part, un
point de dpart dune srie de prototypes pdagogiques pluridisciplinaires chelonner sur une
srie de TP.

Rfrences
[1] Site officiel de la plateforme arduino : www.aduino.cc .
[2] Jrme PIETRE. Matlab et Arduino en S-SI ? . http://sti.tice.ac-orleanstours.fr/spip2/IMG/pdf/Tutoriel_Matlab_Arduino.pdf
[3] Document constructeur de la CTN TDC05C310 : www.uei.com.tw/ptdc.pdf.
[4] Ressources officielles Matlab/Simulik et Arduino :
http://www.mathworks.com/academia/arduino-software/arduino-simulink.html.
[5] John S. Steinhart and R. Hart, Stanley. Calibration curves for thermistors . Deep-Sea
Research,. Vol.15, pp.497503.
[6] Thermistor Constant Conversions - Beta to Steinhart-Hart:
http://assets.newport.com/webDocuments-EN/images/TNSTEIN-1_Thermistor_Conversions_IX.pdf

Mohamed Ali ZERZRI, n le 19 mai 1977 Tunis, Tunisie, est


enseignant Technologue aux Instituts Suprieurs des tudes
Technologiques (ISET) depuis 2002. Actuellement Technologue
lISET de Bizerte, Tunisie. Il a obtenu un mastre en lectronique de
lcole dIngnieurs de Sfax (ENIS) en 2005 et le certificat des tudes
suprieures spcialises en gnie lectrique de lcole Suprieure des
Sciences et Techniques de Tunis (ESSTT) en 2001 et de la mme cole, une maitrise en
lectronique et instrumentation.
Il assure des cours et des travaux pratiques dlectronique et de distribution lectrique aux
tudiants de licence applique en gnie lectrique.