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

Institut National des Postes et Télécommunications 3 . Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Ce rapport présentera les étapes et démarches suivies tout au long de la réalisation de notre projet. Le robot.Introduction : Un mini projet en première année est très important. 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. Notre mini projet consiste à commander un robot suiveur de ligne à l’aide d’une carte DE2 avec FPGA Altera programmée en VHDL. 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. débutant par une étude fonctionnelle et aboutissant aux essais pratiques tout en passant par des processus de programmation et de simulation. ayant 4 capteurs (photodiodes) détectant les limites du chemin préétabli. est sensé suivre cette ligne sans dérailler et s’arrêter à son extrémité.

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

Sur quoi agit le produit ? Le produit agit sur le trajet qu’il doit parcourir en suivant la ligne jaune bordée en noir. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. . .1. il répond à trois questions : .A qui le produit rend-il service ? Le produit rend service à l’utilisateur.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 .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 .

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

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

Implémentation Implémentation du programme validé en simulation sur l’FPGA De la carte DE2. 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. Essai Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.simulation avec le simulateur de Xilinx. Vérification réelle du fonctionnement.2.établissement du test bench . Edition Compilation Traduction du langage VHDL en code machine (fait par le compilateur de Xilinx) Simulation Vérification du fonctionnement du programme: .

d'une horloge à 50 MHz. Nous utilisons le kit de développement DE2 d'Altera . de connecteurs d'entrées et sorties logiques.2. qui dispose d'afficheurs 7 segments à LED.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).2. Institut National des Postes et Télécommunications 9 . présenté à l’image suivante : Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.2. 240 kbits de RAM et 315 ports d'entrée sortie. de boutons poussoirs. Outils et matériels utilisés : 2.

Son nom complet est VHSIC Hardware Description Language. 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.2.Cette netlist ainsi que le fichier de contrainte sert de base à l'outil de placement & routage (PAR).2. 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. Institut National des Postes et Télécommunications 10 . Logiciel utilisé : ISE 9. En outre.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.2. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. 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.2 XILINX : L'outil xilinx project navigator permet la synthèse du code vhdl (avec XST) et son implémentation (PAR). 2. avant que la conception détaillée ne soit terminée.

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

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

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

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 .

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful