Vous êtes sur la page 1sur 19

Rapport du mini-projet sous le logiciel Xilinx

Robot suiveur de ligne

M1 EEAII 2015-2016

Réalisé par : JAMAL HAMZA

ELASMAR HAMZA

Encadré par : Pr.A.TOUHAMI


Sommaire

I. Introduction

II. Cahier de charge.

III. Etude théorique.

IV. Simulation par le logiciel Xilinx.

V. Conclusion

2
I. Introduction

La technologie d’aujourd’hui est devenue très développée, notamment la robotique est de


plus en plus présente dans nos vies et le sera encore plus demain.

La robotique est au cœur de tous les domaines (automobile, énergies renouvelables,


bâtiment…), il est donc nécessaire de connaitre au moins les bases de quelques langages qui
permettent la programmation de différents genres de robots comme par exemple le VHDL.

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.

II. Cahier de charge.

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

III. Etude théorique.

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 :

a  Un bouton poussoir pour mettre le robot en marche.

b  Un bouton poussoir pour arrêter le robot s’il rencontre un obstacle.

CG  Un capteur qui détecte la ligne s’il y a une déviation à gauche.

CD  Un capteur qui détecte la ligne s’il y a une déviation à droite.

2) Les sorties :

MD  Le moteur droit tout ou rien.

MG  Le moteur gauche tout ou rien.

3) Les états de notre machine :

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’).

Finalement on obtient le diagramme d’état suivant :

Figure 1: Diagramme d'état du robot suiveur de ligne

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 :

L’état 1 par 00 - l’état 2 par 01 - l’état 3 par 10 - l’état 4 par 11.

Donc la table d’évolution de notre système s’écrit sous 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

IV. Simulation par le logiciel Xilinx.

1. Simulation par graphe d’état.

Commencez par ouvrir le logiciel Xilinx :

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.

La même chose pour les transitions/Conditions de bouclages qu’on a mentionnés dans la


partie théorique.

A la fin on obtient un diagramme d’état comme ceci :

10
Finalement, il faut compiler notre graphe d’état afin de voir s’il y a des problèmes en

utilisant le bouton « Generate HDL ».

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:

2. La simulation à partir du programme VHDL.

Cette partie consiste à faire une simulation ainsi qu’une construction du schéma bloc du
système en utilisant le langage VHDL.

a) Construction du schéma bloc du système.

Alors commençant par exporter le programme VHDL comme suivant :

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

Le schéma bloc est le suivant :

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 :

Et on trouvera notre fichier, double clique dessus et on va avoir la figure suivante :

17
Comme la figure montre afin de simuler notre projet à partir du langage VHDL on double clic

sur « Simulate Behavioral Model »

Enfin notre simulation est la suivante :

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

partie du logiciel Xilinx.

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

nouveau outil de travail.

19

Vous aimerez peut-être aussi