Arduino et Simulink/Matlab® un outil innovant à coût réduit pour le prototypage

download Arduino et Simulink/Matlab® un outil innovant à coût réduit pour le prototypage

of 12

description

L’enseignant des travaux pratiques (TP) en génie électrique affronte toujours unesituation problématique qui se traduit par le fait qu’il fait appel soit à des simulations, soit à desmaquettes pédagogiques très spécifiques, intégrant des fonctions figées généralement nonmodifiables et peu extensibles.Dans cet article, nous avons essayé d’apporter une solution à cette situation en présentant unenouvelle approche qui est l’apprentissage par prototypage. Le choix s’est fixé sur lacombinaison de l’environnement Simulink/Matlab et de la plateforme Arduino. Cette approcheest très pertinente, car elle permet d’associer un puissant logiciel de simulation et une carte deprototypage permettant d’envisager des applications complexes. Cette expérience a rendu lesTP plus interactifs. Notre travail s’articule autour de trois parties : la première partie estconsacrée à la présentation de la carte Arduino et son environnement de développement, ladeuxième partie est réservée à l’utilisation de l’environnement Simulink/Matlab avec Arduino etenfin la troisième partie est consacrée à la mise en oeuvre simultanée de l’environnementSimulink/Matlab et la plateforme Arduino, et ce pour la réalisation d’une chaine d’acquisition etd’asservissement de température.

Transcript of Arduino et Simulink/Matlab® un outil innovant à coût réduit pour le prototypage

  • Arduino et Simulink/Matlab un outil innovant cot rduit

    pour le prototypage

    Mohamed Ali ZERZRI

    [email protected]

    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) 1 4

    SRAM(KB) 2 8

    Broches d'E/S numriques 14 dont 6 PWM 54 dont 14 PWM

    Broches entres analogiques 6 16

    Type d'interface USB ATmega8U2 ATmega8U2

    Dimensions (mm) 68,6 x 53,3 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

    1 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 in-

    situ, 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.

    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

    PC Simulink

    USB

    Systme

    (Elment chauffant

    + CTN)

  • 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

  • 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.

    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.

    ARDUINO relie au procd

    Thermistance

    Elment Chauffant

    ARDUINO

  • 0 50 100 150 200 250 300 350 400 45026

    26.5

    27

    27.5

    28

    28.5

    29

    29.5

    30

    30.5

    31

    Time (seconds)

    tem

    pera

    ture

    C

    Sortie du systme pour une consigne de 30 C

    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-orleans-

    tours.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.