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

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

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. .Sur quoi agit le produit ? Le produit agit sur le trajet qu’il doit parcourir en suivant la ligne jaune bordée en noir.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. il répond à trois questions : . 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 .1.

Ad : capteur arrière droit.2 GRAFCET : Pour faciliter l’écriture de notre programme. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. Dd : capteur devant droit. Dg : capteur devant gauche. 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 . Vg : vitesse de la roue gauche. Vd : vitesse de la roue droite.1. 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.

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.

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

de connecteurs d'entrées et sorties logiques.2. Outils et matériels utilisés : 2.2. 240 kbits de RAM et 315 ports d'entrée sortie. Institut National des Postes et Télécommunications 9 . de boutons poussoirs. Nous utilisons le kit de développement DE2 d'Altera .2. qui dispose d'afficheurs 7 segments à LED. 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.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).

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

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 .

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

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.

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

3. Institut National des Postes et Télécommunications 15 .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.

3. Mini projet : Commande d’un Robot à l’aide d’une carte DE2 avec FPGA Altera. 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. Elle a effectivement prit un temps important. 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.

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful