Vous êtes sur la page 1sur 50

Systmes Embarqus

Module ERII S3 Initiation la robotique


F. Giamarchi IUT de Nmes Dpartement GEII

Systmes Embarqus

Objectifs du cours

Apprhender les spcificits des systmes embarqus par rapport aux domaines de linformatique industrielle. Dcouvrir les techniques de programmation lies aux systmes embarqus (systmes multitches coopratifs, machine dtats). Utiliser les interfaces homme machines simples (IHM, Liaison srie, Afficheurs LCD, supervision Labview). Tester des algorithmes de traitements simples. Aborder la notion de dverminage (Stop & Go, IHM). Application une maquette robotique (Intelligence Artificielle).
F. Giamarchi - IUT de Nmes
2

Gnralits

Systmes Embarqus

Systmes Embarqus (S.E.)

Diffrents secteurs industriels Tlcoms (Smartphone, Internet) Aronautique (Avions, Radar, Satellite) Automobile (GPS, ABS, ESP) Construction lectrique (Systmes de surveillance, Gestion lectrique, contrle daccs) Transport ferroviaire Cartes puce ( et RFID) Explosion des besoins : doublement du nombre d'objets intelligents et de la complexit embarque tous les 2/3 ans Chaque industrie est confronte des contraintes spcifiques Mais les enjeux sont similaires Matrise des cots Matrise de la complexit Prennit des solutions dveloppes
F. Giamarchi - IUT de Nmes
3

Gnralits

Systmes Embarqus

Secteurs dactivits en France

1res Assises Franaises du Logiciel Embarqu, 7 mars 2007

Gnralits

F. Giamarchi - IUT de Nmes

Systmes Embarqus

Les besoins pour lavenir


Lembarqu a de lavenir en France (Europe) Niveau ingnieur (ou Technicien spcialis) mais avec une formation technologique pour la conception.

Mais lembarqu cest aussi le test, la validation, la maintenance Des entreprises ont du mal recruter des techniciens dans lembarqu.
Lindustrie a un norme besoin en techniciens et ingnieurs pour les 20 prochaines annes (besoin de renouvellement de leur personnel face aux nouvelles technologies) Une attente forte sur la recherche lie la plus value apporte par la conception dun systme embarqu indissociable de son logiciel.
F. Giamarchi - IUT de Nmes
5

Gnralits

Systmes Embarqus

Introduction aux systmes embarqus

Dfinition :

Embedded system : tout systme conu pour rsoudre un problme ou une tche spcifique, mais nest pas un ordinateur dusage gnral. Utilisent gnralement un microcontrleur, combin avec dautres matriel et logiciel pour rsoudre un problme de calcul spcifique. Cest un systme lectronique et informatique autonome ne possdant pas dentres-sorties standards. Le systme matriel et lapplication sont intimement lis et noys dans le matriel et ne peuvent tre discernables comme dans un PC. On dit que le systme est enfoui (traduction de embedded) dans une autre fonction. La conception de ces systmes est fiable ( avion, systme de freinage ABS) car ils sont conus pour des applications uniques et quil nest plus possible dintervenir sur le logiciel ensuite.
F. Giamarchi - IUT de Nmes
6

Gnralits

Systmes Embarqus

Introduction aux systmes embarqus

Embarquement dun ordinateur

Gnralits

F. Giamarchi - IUT de Nmes

Systmes Embarqus

Introduction aux systmes embarqus

Systme embarqu typique

Gnralits

F. Giamarchi - IUT de Nmes

Systmes Embarqus

Introduction aux systmes embarqus

Caractristiques dun systme embarqu


Fonctionnement en temps rel Ractivit : les oprations de calcul doivent tre excutes en rponse un vnement extrieur (interruption matrielle). La plupart des systmes sont multirate , cest--dire traitement des informations diffrents rythmes. Faible encombrement, poids rduit, consommation minimise (batterie) Environnement svre (temprature, vibrations, variations dalimentation, interfrences HF, corrosion, eau, feu, radiations,). Le systme nvolue pas dans un environnement contrl ( volutions des caractristiques des composants dans le temps). Suret de fonctionnement (systme oprationnel mme lorsquun composant est dfaillant). Beaucoup de systmes embarqus sont fabriqus en grande srie et doivent avoir des prix de revient faibles.
F. Giamarchi - IUT de Nmes
9

Gnralits

Systmes Embarqus

Techniques de programmation

Ne pas utiliser les fonctions de temporisations Utiliser des fonctions avec paramtres Dcouper une fonction longue en un diagramme dtats Programmation synchrone

Gnralits

F. Giamarchi - IUT de Nmes

10

Systmes Embarqus

Ne pas utiliser les fonctions de temporisations

Remplacer les fonctions de temporisations. Pourquoi ?

Une temporisation ne fait rien dautres quattendre ! Il nest donc pas possible de faire deux actions indpendamment lune de lautre. Code :
// Appui sur le bouton poussoir, fonctionne en logique inverse // La del sclaire // Temporisation de 15s // La del steint

Exemple : La temporisation de lumire dun escalier

if (Bouton_Poussoir == 0) Del = 1; Delay_ms (15000); Del = 0;

Si on appuie sur un bouton, la lumire sclaire pendant 15s, puis steint. Pendant ce temps, un autre appui na aucun effet. Il nest donc pas possible dallonger cette temporisation par un nouvel appui. Le systme nest pas redclenchable.

Gnralits

F. Giamarchi - IUT de Nmes

11

Systmes Embarqus

Remplacer les fonctions de temporisations

Ne pas utiliser les fonctions de temporisations. Comment faire autrement ?

En comparant une variable temps avec une constante choisie. Une routine dinterruption Timer incrmente une variable temps. A la place de la fonction de temporisation, on mmorise la variable temps dans une nouvelle variable tempo . Puis on compare la variable temps avec notre nouvelle variable tempo laquelle on ajoute la dure de la temporisation voulue.

Gnralits

F. Giamarchi - IUT de Nmes

12

Systmes Embarqus

Remplacer les fonctions de temporisations

Ne pas utiliser les fonctions de temporisations. Code :


// Var_1ms sera incrmente dans la routine dinterruption toutes les millisecondes. long Tempo; // dclaration dune variable de type 16 bits, afin de compter jusqu 65535

while (1) // Boucle infinie du programme { if (Bouton_Poussoir == 1) // Appui sur le bouton poussoir { Led = 1; // la Led sclaire Tempo = Var_1ms + 15000; // Enregistre la valeur actuelle de la variable temps dans la } // variable Tempo + la dure de la temporisation souhaite
if (Var_1ms == Tempo) Led = 0; // Test si la variable temps a atteint la tempo prvue // la Led steint

Gnralits

F. Giamarchi - IUT de Nmes

13

Systmes Embarqus

Utilisation de fonctions avec paramtres

Utiliser des fonctions avec paramtres.

Une fonction permet de structurer une routine. Code dune fonction simple :

Dclaration dune fonction

void Fonction_A (void) { // Code de la fonction }

Code dune fonction qui attend deux paramtres de type entier:

void Fonction_A (int parametre_A, int parametre_B) { // Code de la fonction }

Code dune fonction qui retourne un paramtre de typer entier:

int Fonction_A (void) { Int Parametre; // Code de la fonction return (Parametre); }

Gnralits

F. Giamarchi - IUT de Nmes

14

Systmes Embarqus

Diagramme dtats

Ne pas crire des routines trop longues. Pourquoi ?

Une routine trop longue ne laisse pas de temps aux autres routines ! Il nest donc pas possible de faire deux actions indpendamment lune de lautre (comme pour les fonctions de temporisations).

Comment faire autrement ?

En dcoupant la routine (tche), en 2 ou plus dtats ou sous-tches. Diagramme dtats (procdure tats positionnes, machine variables dtats), sont utilises lorsquune quation ou une alternative binaire ne peuvent pas tre applique. Principe dun Grafcet avec tapes et transitions.

Gnralits

F. Giamarchi - IUT de Nmes

15

Systmes Embarqus

Diagramme dtats

Exemple : x clignotements rpts (application des codes Erreur).

Variables : Flag, Compteur Etat Led et Compteur Clignotement. La dure de ltat allum est un multiple de la synchro, de mme pour ltat teint Activation dun Flag associ Si = 0 On continue Si = 1 Led On, Remplit les 2 compteurs, Etat = 1 Si 0 Dcrmente compt Etat Led, On continue Si = 0 Led Off, Remplit ce compteur, Etat = 2

Etat 0 : Test le flag dactivation


Etat 1 : Test le compteur Etat Led

Etat 2 : Test le compteur Etat Led


Si 0 Dcrmente compt Etat Led, On continue Si = 0 Dcrmente compteur Clignotement

Si = 0 Etat = 0 Si 0 Led On, Remplit le 1er compteur, Etat = 1

Gnralits

F. Giamarchi - IUT de Nmes

16

Systmes Embarqus

Diagramme dtats

Exemple : Action sur choc dtect lavant dun robot.

Code :
enum Etat {Attente, Recule, Tourne} Etat_Choc; void Choc (void) { switch (Etat_Choc) { case Attente: // Code pour ltat Attente { if (Choc != 0) { Etat_Choc = Recule; Mmoire = Choc; Tempo = Var_1ms + 500; } break; } case Recule: // Code pour ltat Recule { Cmd_Moteurs (-10,-10); if (Var_1ms == Tempo) Etat_Choc = Tourne; break; } case Tourne: // Code pour ltat Tourne { break; } } }

Gnralits

F. Giamarchi - IUT de Nmes

17

Systmes Embarqus

La programmation synchrone

Systme multitche coopratif Utilisation dune routine dinterruption pour synchroniser les tches.

Timer rgl sur 1ms

Gnralits

F. Giamarchi - IUT de Nmes

18

Systmes Embarqus

Programmation performante

Systmes temps rel Intelligence Artificielle Multiprocesseurs Basse frquence

multi-tches robuste rduction de la taille du programme autonomie

Gnralits

F. Giamarchi - IUT de Nmes

19

Systmes Embarqus

Lecture des entres - sorties

Nature des entres

Logique Analogique Par liaison type srie Deux capteurs de chocs associs permettent de dtecter la position du point dimpact. Plusieurs capteurs de rflexion infrarouge permettent de dfinir la position dun mobile par rapport une ligne. Extraction dinformations physiques non disponibles directement partir de capteurs lmentaires.

Capteur virtuel par fusion dentres


Gnralits

F. Giamarchi - IUT de Nmes

20

Systmes Embarqus

Lecture des entres - sorties

Gnralits

F. Giamarchi - IUT de Nmes

21

Systmes Embarqus

Lecture des entres - sorties

Gnralits

F. Giamarchi - IUT de Nmes

22

Systmes Embarqus

Lecture des entres - sorties

Gnralits

F. Giamarchi - IUT de Nmes

23

Systmes Embarqus

Lecture des entres - sorties


Tlmtre ultrasons SRF04

Gnralits

F. Giamarchi - IUT de Nmes

24

Systmes Embarqus

Lecture des entres - sorties


Tlmtre Infrarouge Sharp GP2D12

Gnralits

F. Giamarchi - IUT de Nmes

25

Systmes Embarqus

Lecture des entres - sorties


Capteurs proprioceptifs

Gnralits

F. Giamarchi - IUT de Nmes

26

Systmes Embarqus

Lecture des entres

Logiciel de traitement

Pilote de capteurs Mise en forme et validation

Algorithme de traitement

Moyenne dune entre analogique sur 2n nombres

Utilisation de la fonction dcalage droite comme division Calcul de la moyenne chaque acquisition

Moyenne circulaire (glissante)

Filtrage du 50Hz par synchronisation Calibration initiale ou auto-calibration en continu Filtrage par FFT

Gnralits

F. Giamarchi - IUT de Nmes

27

Systmes Embarqus

Algorithme de traitement

Moyenne dune entre analogique sur 2n nombres

Utilisation de la fonction dcalage droite comme division Avantage : Simplicit du calcul


Somme; New_Data; // Dclarations dune variable 16bits // variable 8bits pour recevoir la mesure

long int

void Moyenne (void) { for (k=0;k<8;k++) { Somme = Somme + New_Data; } Moyenne = Somme >> 3; }

// Faire 8 boucles // Acquisition par lecture du registre // Moyenne = Somme / 8

Inconvnient : 2n mesures avant dobtenir la moyenne

Gnralits

F. Giamarchi - IUT de Nmes

28

Systmes Embarqus

Algorithme de traitement

Moyenne circulaire (glissante) sur 2n nombres

Utilisation de la fonction dcalage droite comme division Moyenne disponible chaque acquisition
Somme; Data[8]; New_Data; // Dclarations dune variable 16bits // Dclarations dun tableau de 8 variables 8bits // variable 8bits pour recevoir la mesure

long int int

void Moyenne (void) { Somme = Somme Data[k] + New_Data; // Soustrait la valeur la plus ancienne et ajoute la nouvelle Data[k] = New_Data; // Mmorise la nouvelle valeur la place de lancienne k = k +1; // incrmente le compteur circulaire if (k == 8) k = 0; // Boucle sur 8 valeurs Moyenne = Somme >> 3; // Moyenne = Somme / 8 }

Gnralits

F. Giamarchi - IUT de Nmes

29

Systmes Embarqus

Algorithme de traitement

Calibration initiale ou auto-calibration

Calibration initiale auto-calibration en continu

Application :

Capteurs de ligne Capteurs de couleur Capteurs de distance

Gnralits

F. Giamarchi - IUT de Nmes

30

Systmes Embarqus

Lecture des entres - sorties

Nature des sorties

Logique Analogique (CNA, MLI avec filtre passe-bas) MLI (PWM) Diverses techniques de commande dactionneurs Timer

Ressources enfouies

Liaison bidirectionnelle

Liaison ponctuelle avec une interface intelligente Liaison sans fil (IR, ZigBee, Bluetooth, wifi) Liaison entre systmes autonomes ou avec un systme centralis

Gnralits

F. Giamarchi - IUT de Nmes

31

Systmes Embarqus

Les divers types de moteurs CC

Les moteurs CC aimant permanent Commande par MLI

Gnralits

F. Giamarchi - IUT de Nmes

32

Systmes Embarqus

Les divers types de moteurs CC

Les moteurs CC aimant permanent Commande par MLI

Gnralits

F. Giamarchi - IUT de Nmes

33

Systmes Embarqus

Les divers types de moteurs CC

Les moteurs CC aimant permanent Commande par MLI

Gnralits

F. Giamarchi - IUT de Nmes

34

Systmes Embarqus

Les divers types de moteurs CC

Les moteurs pas pas Commande par lecture dune table des valeurs

Gnralits

F. Giamarchi - IUT de Nmes

35

Systmes Embarqus

Les divers types de moteurs CC

Les moteurs pas pas Commande par lecture dune table des valeurs

Gnralits

F. Giamarchi - IUT de Nmes

36

Systmes Embarqus

Les divers types de moteurs CC

Les servo moteurs Pas dinterface de puissance Commande par MLI sur interruption

Gnralits

F. Giamarchi - IUT de Nmes

37

Systmes Embarqus

Les divers types de moteurs CC

Les servo moteurs Commande par MLI sur interruption

Gnralits

F. Giamarchi - IUT de Nmes

38

Systmes Embarqus

Les divers types de moteurs CC

Essayer de reconnaitre ces types de moteurs !

Gnralits

F. Giamarchi - IUT de Nmes

39

Systmes Embarqus

Les divers types de moteurs CC

Essayer de reconnaitre ces types de moteurs !

Gnralits

F. Giamarchi - IUT de Nmes

40

Systmes Embarqus

Les divers types de moteurs CC

Essayer de reconnaitre ces types de moteurs !

Gnralits

F. Giamarchi - IUT de Nmes

41

Systmes Embarqus

Les divers types de moteurs CC

Essayer de reconnaitre ces types de moteurs !

Gnralits

F. Giamarchi - IUT de Nmes

42

Systmes Embarqus

Intelligence Artificielle

Architecture logicielle Architecture interactions prioritaires Correcteurs Algorithmes gntiques Rseaux de neurones
Systmes expert

Gnralits

F. Giamarchi - IUT de Nmes

43

Systmes Embarqus

Architecture logicielle

Lapproche traditionnelle

Architecture hybride Architecture ractive

Gnralits

F. Giamarchi - IUT de Nmes

44

Systmes Embarqus

Architecture interactions prioritaires

Exemple : Roomba, le robot aspirateur de la socit Irobot

Pare-chocs : dtecte une collision Tlmtre infrarouge : mesure une distance Dtecteur infrarouge : dtecte une balise infrarouge Batterie : mesure la tension de la batterie Moteurs : contrle la vitesse des moteurs

Gnralits

F. Giamarchi - IUT de Nmes

45

Systmes Embarqus

Architecture interactions prioritaires

Programmation comportementale

Gnralits

F. Giamarchi - IUT de Nmes

46

Systmes Embarqus

Architecture interactions prioritaires

Les comportements

Gnralits

F. Giamarchi - IUT de Nmes

47

Systmes Embarqus

Architecture interactions prioritaires

Larbitrage

Gnralits

F. Giamarchi - IUT de Nmes

48

Systmes Embarqus

Les correcteurs

Correcteur tout ou rien Correcteur proportionnel Correcteur PID

Gnralits

F. Giamarchi - IUT de Nmes

49

Systmes Embarqus

Lvolution de la programmation en robotique

Algorithmes gntiques Rseaux de neurones Systmes expert

Gnralits

F. Giamarchi - IUT de Nmes

50