Rapport du mini projet

:

Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera

Réalisé par : S. J. M. E. H. S. EL O. Encadrées par : Pr. M. C.

Sommaire
INTRODUCTION …………………………………………………………………………page 4

1. ANALYSE FONCTIONNELLE .......................................................................................................... page 5 1.1. Expression fonctionnelle du besoin (LE BETACORNE) .............................................................page 6 1.2. GRAFCET ............................................................................................................................page 7 2. DEMARCHE, OUTILS ET MATERIELS UTILISES ............................................................................ page 8 2.1. Démarche de mise au point du programme ............................................................................page 9 2.2. Outils et matériels utilisés .................................................................................................... page 10 2.2.1 La carte FPGA ............................................................................................................. page 10 2.2.2 Langage utilisé : VHDL ............................................................................................... page 11 2.2.3 Logiciel : Xilinx. .......................................................................................................... page 11 3. REALISATION DU PROJET : ...................................................................................................... page 12 3.1. Le Programme .................................................................................................................... page 13 3.2. Test Bench et simulation ................................................................................................... page 16 3.4. Implémentation et essais ................................................................................................... page 18 CONCLUSION ............................................................................................................................... page 19 BIBLIOGRAPHIE ........................................................................................................................... page 20 PROGRAMMES
COMPLETS

......................................................................................................... Annexes

Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications

2

Ce rapport présentera les étapes et démarches suivies tout au long de la réalisation de notre projet. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. dans le sens où il permet aux élèves de développer leurs connaissances en apprenant de nouvelles techniques dans un contexte inspiré de celui existant en milieu professionnel. débutant par une étude fonctionnelle et aboutissant aux essais pratiques tout en passant par des processus de programmation et de simulation. Notre mini projet consiste à commander un robot suiveur de ligne à l’aide d’une carte DE2 avec FPGA Altera programmée en VHDL. Institut National des Postes et Télécommunications 3 . Le robot.Introduction : Un mini projet en première année est très important. est sensé suivre cette ligne sans dérailler et s’arrêter à son extrémité. ayant 4 capteurs (photodiodes) détectant les limites du chemin préétabli. Ce projet nous a permit d’acquérir des connaissances relatives au monde de la robotique et à la conception d’un système autonome que nous prévoyons d’exploiter en réalisant d’autres projets aussi ambitieux et innovants.

Institut National des Postes et Télécommunications 4 .Analyse Fonctionnelle Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.

Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.1. il répond à trois questions : . . .Sur quoi agit le produit ? Le produit agit sur le trajet qu’il doit parcourir en suivant la ligne jaune bordée en noir.1 Expression fonctionnelle du besoin : Diagramme Betacorne : Utilisateur Trajet Robot Suiveur de ligne Suivre un parcours préétabli de façon autonome Voici une manière simple de lire ce diagramme .Dans quel but ? Dans le but de suivre un parcours préétabli de façon autonome. Institut National des Postes et Télécommunications 5 .A qui le produit rend-il service ? Le produit rend service à l’utilisateur.

Institut National des Postes et Télécommunications 6 .2 GRAFCET : Pour faciliter l’écriture de notre programme. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. nous avons essayé d’établir le GRAFCET suivant afin de prévoir tous les états possibles du fonctionnement du robot. Vg : vitesse de la roue gauche. Vd : vitesse de la roue droite.1. Dd : capteur devant droit. Vd=0 Vg=0 0 Vd=1 Vg=1 1 Vd=1 Vg=0 2 Vd=0 Vg=1 3 Légende : Ag : capteur arrière gauche. Dg : capteur devant gauche. Ad : capteur arrière droit.

Démarche. Institut National des Postes et Télécommunications 7 . Outils Et Matériels utilisés Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.

Vérification réelle du fonctionnement. Essai Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Edition Compilation Traduction du langage VHDL en code machine (fait par le compilateur de Xilinx) Simulation Vérification du fonctionnement du programme: . Institut National des Postes et Télécommunications 8 .1 Démarche de mise au point du programme : Afin d’écrire le programme qui rendra le robot autonome nous avons suivi la démarche suivante : Saisie du programme en langage VHDL grâce à Xilinx.simulation avec le simulateur de Xilinx.2.établissement du test bench . Implémentation Implémentation du programme validé en simulation sur l’FPGA De la carte DE2.

2. Institut National des Postes et Télécommunications 9 . de boutons poussoirs.1 La carte DE2 avec FPGA Altera: Le robot est commandé par une carte DE2 décrite comme suit : Le processeur et son environnement sont intégrés dans un circuit logique programmable (FPGA) Cyclone II 2C20 d'Altera qui comprend 18000 cellules d'éléments logiques (LE). de connecteurs d'entrées et sorties logiques. qui dispose d'afficheurs 7 segments à LED.2. présenté à l’image suivante : Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. d'une horloge à 50 MHz. Nous utilisons le kit de développement DE2 d'Altera . Outils et matériels utilisés : 2.2. 240 kbits de RAM et 315 ports d'entrée sortie.

2.2. 2.2Langage adopté : VHDL : VHDL est un langage de description matériel destiné à représenter le comportement ainsi que l'architecture d’un système électronique numérique. Logiciel utilisé : ISE 9. ASIC ou FPGA. XST génère une netlist au format edif (ou similaire ngo) qui n'est autre que la structure au niveau composants (vue RTL).2. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 10 . les outils de conception assistée par ordinateur permettant de passer directement d'une description fonctionnelle en VHDL à un schéma en porte logique ont révolutionné les méthodes de conception des circuits numériques. L'intérêt d'une telle description réside dans son caractère exécutable : une spécification décrite en VHDL peut être vérifiée par simulation. En outre.2. avant que la conception détaillée ne soit terminée. Son nom complet est VHSIC Hardware Description Language.Cette netlist ainsi que le fichier de contrainte sert de base à l'outil de placement & routage (PAR).2 XILINX : L'outil xilinx project navigator permet la synthèse du code vhdl (avec XST) et son implémentation (PAR).

Réalisation du Projet Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 11 .

reset : entrée de remise à zéro. . Institut National des Postes et Télécommunications 12 .3. Sorties : . nous avons adopté lors de notre programmation une machine Mealy à quatre états.1 Le programme en VHDL : D’après le Grafcet déjà présenté. Ag. L’architecture est composée de 3 « process » : Le premier sert à affecter à l’état actuel l’état final à chaque front montant de l’horloge. . Dd. les 4 étapes du grafcet.Ad.clk : entrée d'horloge.Vd. autrement dit. Vg : vitesses des roues du robot. ou à lui affecter l’étape initiale s’il y a une remise à zéro. Les entrées sorties du robot sont : Entrées : . Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Dg : capteurs devant et arrières du robot.

Institut National des Postes et Télécommunications 13 .Le second sert à affecter l’étape future selon l’état des capteurs. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.

Et le troisième sert à définir les actions à effectuer par le robot selon l’état définie. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 14 .

3.2 Test Bench et Simulation : Après avoir synthétisé le programme nous sommes passées à la simulation en générant un test bench avec les séquences suivantes : Ci-dessous une capture de la simulation réalisée: Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 15 .

Institut National des Postes et Télécommunications 16 .3 Implémentation et essais : La tâche d’implémentation est bien plus conséquente que la phase de synthèse. C’est pourquoi nous avons veillé à valider le fonctionnement du système en simulation avant de lancer cette tâche. Elle a effectivement prit un temps important. Cette image montre que le robot tourne à gauche avec sucès. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.3. et a été suivie par plusieurs essais pratiques.

Ci-dessus le robot tourne à droite. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 17 . Le robot s’arrête effectivement au bout du chemin comme prévu.

Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Aussi nous avons développés des compétences qui nous serons utiles tout au long de notre cursus.Conclusion : Commençant par l’analyse puis la conception et finissant par la réalisation notre projet a abouti au bon fonctionnement du robot. ou sur le plan personnel. par de nouveaux acquis en matière de programmation et conception. et ce grâce a l’encadrement précieux de notre professeur et à nos efforts et engagement. en s’entrainant à la gestion des conflits de l’équipe et du stress des difficultés rencontrées. et même dans toute notre vie. Institut National des Postes et Télécommunications 18 . La réalisation de ce mini-projet nous a beaucoup appris que ce soit sur le plan professionnel.

com www. M. M.Manuscrit auteur.rennes. .com http://www. publié dans « Le 8e colloque CETSIS » Grenoble : France (2010).Polycopié du cours de VHDL 2011.Manuel des Tps en VHDL 2011.scribd. Institut National des Postes et Télécommunications 19 . Khallaayoune.Bibliographie: . INPT. Khallaayoune.fr Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.robotek.supelec. . Webographie: www. INPT.

Annexes Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 20 .

architecture Behavioral of robot is type etape is (etape0. elsif ((Dd and Dg) ='1') then etape_finale<= etape0. begin process(reset.Dd. end if. process (Dg. elsif ((Dd and Dg) ='1') then etape_finale<= etape0. elsif (Dg='0' and Dd='0' and Ag='0' and Ad='1') then etape_finale<= etape3. when etape1 => if (Dg= '0' and Dd='0' and Ag='1' and Ad ='0') then etape_finale<= etape2. use IEEE.any Xilinx primitives in this code.ALL.reset : in STD_LOGIC.STD_LOGIC_UNSIGNED. clk. end if.etape3).etape2. --library UNISIM.Vg : out STD_LOGIC).Ad. else case etape_actuelle is when etape0 => if (Dg= '0'and Dd= '0' and Ag='0' and Ad= '0') then etape_finale<= etape1.ALL. use IEEE. --use UNISIM. elsif rising_edge(CLK) then etape_actu elle<=etape_finale. entity robot is Port ( Dg. clk) begin if RESET='1' then etape_actuelle<=etape0.Dd.Ag.all.etape_actuelle) begin if reset='1' then etape_finale<=etape0. Vd.VComponents.Ad: in STD_LOGIC.STD_LOGIC_ARITH. use IEEE. end process. end robot.ALL. signal etape_finale. else etape_finale<= etape2. else etape_finale<= etape0. end if. when etape2 => if (Dg='0' and Dd='0' and Ag='0' and Ad='0') then etape_finale<= etape1.etape_actuelle : etape.etape1. else etape_finale<= etape1.Ag.RESET.Programme VHDL : library IEEE. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Institut National des Postes et Télécommunications 21 . end if. ---.Uncomment the following library declaration if instantiating ---.STD_LOGIC_1164.

clk : IN std_logic. when others => etape_finale<=etape0. Ad : IN std_logic.std_logic_1164.std_logic_unsigned. end if.ALL.all. end case. when etape1=> Vd<='1'.numeric_std. Dd : IN std_logic. ENTITY tb_robot_vhd IS END tb_robot_vhd. USE ieee.when etape3 => if (Dd='0' and Dg='0' and Ag='0' and Ad='0') then etape_finale<= etape1. end if.VG<='0'. end process. USE ieee. --Inputs SIGNAL Dg : std_logic := '0'.VG<='1'. reset : IN std_logic. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. ARCHITECTURE behavior OF tb_robot_vhd IS -.ALL. process (etape_actuelle) begin case etape_actuelle is when etape0=> Vd<='0'. end process. when etape2=> Vd<='1'. elsif ((Dd and Dg) ='1') then etape_finale<= etape0. when etape3=> VD<='0'. USE ieee. Vg : OUT std_logic ).Vg<='1'. Institut National des Postes et Télécommunications 22 . else etape_finale<= etape3.Vg<='0'. Test Bench : LIBRARY ieee. END COMPONENT. end Behavioral. Ag : IN std_logic. end case. Vd : OUT std_logic.Component Declaration for the Unit Under Test (UUT) COMPONENT robot PORT( Dg : IN std_logic.

Dd <= '0'. Ad <='0'. SIGNAL clk : std_logic := '0'. BEGIN -.Place stimulus here -. end process. Dd => Dd. SIGNAL Ag : std_logic := '0'.'0' after 100ns.'0' after 100 ns. wait for 20 ns. '1' after 250 ns. --Outputs SIGNAL Vd : std_logic. Dg <= '0'. clk => clk. wait for 20 ns.wait for 10000 ns. SIGNAL reset : std_logic := '0'. SIGNAL Ad : std_logic := '0'. -. SIGNAL Vg : std_logic. -. reset <='1' . Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.Wait 100 ns for global reset to finish -.'0' after 300 ns.SIGNAL Dd : std_logic := '0'.will wait forever END. Vg => Vg ).wait. Vd => Vd. tb : PROCESS BEGIN clk<='0'. -. reset => reset. clk<='1'. '1' after 50 ns.Instantiate the Unit Under Test (UUT) uut: robot PORT MAP( Dg => Dg. Ag => Ag. Ad => Ad. Ag <= '0'. Institut National des Postes et Télécommunications 23 .