Académique Documents
Professionnel Documents
Culture Documents
M1 EEAII 2015-2016
ELASMAR HAMZA
I. Introduction
V. Conclusion
2
I. Introduction
C’est pour cette raison qu’on a choisi d’appliquer nos connaissances acquises lors du cours
de la synthèse des circuits logiques et VHDL sur un cas réel d’une machine d’état finie et qui
est le robot suiveur de ligne.
Le système de gestion du robot suiveur de ligne doit respecter les spécifications suivantes :
1) Au départ, le robot est placé au bout de la piste, une action sur le bouton marche
provoque sa mise en marche.
2) Un bouton poussoir placé à l’avant du robot qui provoque l’arrêt du robot si un
obstacle est rencontré.
3) Deux capteurs permettent au robot de suivre la ligne : CD et CG. Si la sortie d’un
capteur est à 0, le capteur est sur la ligne, sinon le capteur n’est plus sur la ligne.
4) Si l’un des deux capteurs est à ‘1’, la correction précédente est maintenue
5) La machine d’état doit piloter deux moteurs, un moteur de droit MD, un moteur de
gauche MG en « tout ou rien ».
Depuis les points demandés sur le cahier de charge précédent, on élaborera une machine
d’états de Moore avec des bascules D selon la description suivante :
3
1) Les entrées :
2) Les sorties :
ETAT 1
INT L’état initiale où le robot est en arrêt, les moteurs MD et MG sont à ‘0’.
Pour quitter cette étape il faut appuyer sur le bouton a.
ETAT 2
AVANT L’état ou le robot démarre son trajet en prenant le chemin avant, les moteurs
MD et MG sont à ‘1’.
Le robot reste dans cette état s’il n’y a pas détection de déviation
(CG=’0’ et CD=’0’) et il n’y a pas de d’obstacle (b=’0’).
Le robot quitte cette partie vers l’état INT s’il rencontre un
obstacle (b=’1’).
Le robot quitte cette partie vers l’état TRN_G s’il détecte une
déviation du trajet vers la droite (CG=’1’) et (CD=’0’) et il n’y a pas
d’obstacle (b=’0’).
4
Le robot quitte cette partie vers l’état TRN_D s’il détecte une
déviation du trajet vers la gauche (CD=’1’) et (CG=’0’) et il n’y a
pas d’obstacle (b=’0’).
ETAT 3
TRN_G L’état où le robot tourne à gauche lorsqu’il détecte une déviation gauche du trajet
AVANT, le moteur MD est à ‘1’ et MG est à ‘0’.
Le robot quitte cette partie vers l’état INT s’il rencontre un
obstacle (b=’1’).
Le robot quitte cette partie vers l’état AVANT s’il ne détecte plus
la déviation du trajet vers la droite (CG=’0’) et s’il n’y a pas
d’obstacle (b=’0’).
ETAT 4 :
TRN_D L’état où le robot tourne à gauche lorsqu’il détecte une déviation gauche du trajet
avant, le moteur MD est à ‘1’ et MG est à ‘0’.
Le robot quitte cette partie vers l’état INT s’il rencontre un
obstacle (b=’1’).
Le robot quitte cette partie vers l’état AVANT s’il ne détecte plus
la déviation du trajet vers la gauche (CD=’0’) et s’il n’y a pas
d’obstacle (b=’0’).
5
La figure précédente est réalisée avec le logiciel GRAPHVIZ dédié à la réalisation des
schémas.
Notre système possède quatre états donc pour les coder nous avons besoins de deux bits
selon la forme suivante :
Les états courants Les entrées Les états futurs Les sorties Nom de
e1 e0 a b Cg Cd e1+ e0+ MG MD l’état
0 0 0 x x x 0 0
0 0 INT
0 0 1 x x x 0 1
0 1 x 0 0 0 0 1
0 1 x 1 x x 0 0
1 1 AVANT
0 1 x 0 1 0 1 0
0 1 x 0 0 1 1 1
1 0 x 0 1 0 1 0
1 0 x 1 x x 0 0 0 1 TRN_G
1 0 x 0 0 0 0 1
1 1 x 0 0 1 1 1
1 1 x 1 x x 0 0 1 0 TRN_D
1 1 x 0 0 0 0 1
6
Ensuite cliquez sur File => new Project afin de créer votre nouveau projet :
Une fenêtre va s’ouvrir qui vous demande de donner un nom à votre fichier, ensuite
appuyer sur Next pour avoir cet onglet :
7
Ici il faut sélectionner les propriétés exactement comme la figure précédente montre.
Après la création du projet on commence notre travail on ajoutant une source de type State
Diagram comme suit :
Apres cliquez sur « Next » afin de finir la création du diagramme d’état une nouvelle fenêtre
apparait.
8
En cliquant sur « Draw state machines » pour choisir le nombre d’états de notre graphes (4),
ainsi que sa forme (géométrique).
En suite un clique sur « Next » qui va nous permettre de choisir le type du reset
(Synchrone).
9
Maintenant commençons à faire notre diagramme d’état en cliquant deux fois sur l’état,
une fenêtre apparaitre où il faut nommer chaque état et définir les sorties qui sont le
moteur de droit et de gauche.
10
Finalement, il faut compiler notre graphe d’état afin de voir s’il y a des problèmes en
11
En cliquant sur « Close » on obtiendra notre programme qu’on va utiliser par la suite.
Et pour finir on simule notre diagramme d’état en utilisant le bouton «State bench », alors la
fenêtre suivante s’ouvre (on peut commencer la simulation en cliquant sur « Automatique
Testbench ») :
12
Finalement notre simulation est la suivante:
Cette partie consiste à faire une simulation ainsi qu’une construction du schéma bloc du
système en utilisant le langage VHDL.
Allez vers l’emplacement où vous avez enregistré votre projet vous trouverez un fichier avec
une extension « .vhd » sélectionné et ajouté le au projet c’est le fichier qui contient le
programme VHDL qu’on va travaillez avec. Dans la figure précédente c’est le fichier « RLS-
BEHAVIOR », donc notre programme est le suivant :
13
Maintenant on peut avoir notre schéma bloc du système en double cliquant sur « View RTL
Schematic » (Voir la figure précédente).
14
Pour accéder au schéma interne du système il suffit de double cliquer sur le schéma bloc
vert du système et on va avoir la figure suivant :
Comme la figure montre on a 2 sortie et 6 entre (le Reset et l’horloge sont ajouté bien sûr).
b) Simulation.
Pour simuler notre projet à partir du langage VHDL on doit d’abord créer un nouveau type
de fichier avec une extension « .tbw » comme suivant :
15
Puis une autre fenêtre sera engendrer qui permet de régler le CLOCK, dans cette fenêtre il
faut choisir « Single clock » et la période du CLOCK (3000ns) et après une clique sur
« Finish ».
16
Apres la création du fichier on va le retrouver dans cet emplacement :
17
Comme la figure montre afin de simuler notre projet à partir du langage VHDL on double clic
18
V. Conclusion :
Le logiciel Xilinx est un outil très puissant on ce qui concerne l’étude bien détaillée d’une
machine d’état, il offre la possibilité de simuler les différentes réactions d’un système, ainsi
qu’il est facile à lui définir n’importe quelle machine à partir du stat CAD qui s’en charge de
la génération du programme VHDL et des chronogrammes, ce qui est évidement une petit
Tous ces points nous ont permis de mieux connaître cet univers, de mettre nos
connaissances acquises lors des cours théoriques en pratique, et de nous familiarisé avec un
19