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

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. 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. 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 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.Introduction : Un mini projet en première année est très important. Ce rapport présentera les étapes et démarches suivies tout au long de la réalisation de notre projet. Le robot. 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 4 .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 5 . .Sur quoi agit le produit ? Le produit agit sur le trajet qu’il doit parcourir en suivant la ligne jaune bordée en noir. il répond à trois questions : .Dans quel but ? Dans le but de suivre un parcours préétabli de façon autonome.A qui le produit rend-il service ? Le produit rend service à l’utilisateur. .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 . Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.1.

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

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

simulation avec le simulateur de Xilinx.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.établissement du test bench . 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: . 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 8 . Vérification réelle du fonctionnement.

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

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

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.

les 4 étapes du grafcet.clk : entrée d'horloge. Sorties : . Les entrées sorties du robot sont : Entrées : . Institut National des Postes et Télécommunications 12 .reset : entrée de remise à zéro. Dg : capteurs devant et arrières du robot.Ad. autrement dit.3. . nous avons adopté lors de notre programmation une machine Mealy à quatre états. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. . Ag. Vg : vitesses des roues du robot. 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.1 Le programme en VHDL : D’après le Grafcet déjà présenté. ou à lui affecter l’étape initiale s’il y a une remise à zéro.Vd.

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

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 .

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.3. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. 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. et a été suivie par plusieurs essais pratiques. Cette image montre que le robot tourne à gauche avec sucès.

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.

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

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

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 .

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

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

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

Sign up to vote on this title
UsefulNot useful