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

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

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.

Dans quel but ? Dans le but de suivre un parcours préétabli de façon autonome.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 . .A qui le produit rend-il service ? Le produit rend service à l’utilisateur. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.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. . il répond à trois questions : . Institut National des Postes et Télécommunications 5 .

Institut National des Postes et Télécommunications 6 . 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. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. 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.2 GRAFCET : Pour faciliter l’écriture de notre programme. Dg : capteur devant gauche. Vd : vitesse de la roue droite.1.

Institut National des Postes et Télécommunications 7 .Démarche. 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.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. 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. Essai Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.2.établissement du test bench . Institut National des Postes et Télécommunications 8 .simulation avec le simulateur de Xilinx.

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

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

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 .

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

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

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. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.

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

Institut National des Postes et Télécommunications 16 .3. Cette image montre que le robot tourne à gauche avec sucès. C’est pourquoi nous avons veillé à valider le fonctionnement du système en simulation avant de lancer cette tâche. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. 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. et a été suivie par plusieurs essais pratiques.

Ci-dessus le robot tourne à droite. 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. Institut National des Postes et Télécommunications 17 .

Institut National des Postes et Télécommunications 18 . ou sur le plan personnel. et même dans toute notre vie.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. Aussi nous avons développés des compétences qui nous serons utiles tout au long de notre cursus. La réalisation de ce mini-projet nous a beaucoup appris que ce soit sur le plan professionnel. 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. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera.

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

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.

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

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

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

Sign up to vote on this title
UsefulNot useful