Etude Et Realisation d Un Robot Suiveur de Ligne Part2

download Etude Et Realisation d Un Robot Suiveur de Ligne Part2

If you can't read please download the document

Transcript of Etude Et Realisation d Un Robot Suiveur de Ligne Part2

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 1 -

    La Robotique fait partie des sciences des objets et des systmes artificiels. Elle peut tre vue

    comme la science de la perception et du mouvement et de leur intgration en une machine

    physique, mcanique et informatique.

    Un robot est donc un systme matriel possdant des capacits de perception, daction, de

    dcision et de communication, parfois capable damliorer ses propres performances par

    apprentissage automatique ou supervis par des humains, pour :

    - agir dans un environnement ouvert ou confin, dynamique et imparfaitement modlis,

    voire inconnu, des chelles allant du nanomonde au macromonde ;

    - excuter de faon autonome ou en relation avec un humain, des tches dobservation,

    dexploration, de modlisation, de manipulation et/ou dintervention sur

    lenvironnement ;

    - interagir le cas chant avec dautres machines ou avec des humains, matriellement ou

    virtuellement.

    Au plan scientifique, la Robotique est dote de plusieurs grands journaux internationaux

    (IEEE Trans. on Robotics 3, Int. Journal of Robotics Research, Int. Journal of Robotics and

    Autonomous Systems) ( moindre titre : Int. Journal of Advanced Robotics Systems, Int. Journal

    of Robotics and Mecatronics,) et de plusieurs confrences internationales dont les deux plus

    importantes: IEEE Int. Conf. on Robotics and Automation, IEEE/RSJ Int. Conf. on Intelligent

    Robots and Systems.

    Si la Robotique non manufacturire a t longtemps considre comme un champ

    scientifique trs prospectif dont les applications, en dehors de la conqute spatiale, semblaient

    futuristes, les progrs scientifiques et technologiques importants intervenus dans les grandes

    disciplines invoques par la Robotique (mcanique, lectronique, automatique, informatique)

    ont considrablement ouvert le spectre de ses applications, de plus en plus tangibles et

    crdibles.

    On en trouve ci-dessous un rsum danalyses de quelques domaines particuliers ou

    applications de la robotique

    - Mini-robots de prcision : ils sont conus spcialement pour les applications de micro

    montage et les installations trs compactes difficiles manipuler par lhomme. Ils sont

    rapides, prcis et trs fiables destins rpondre toutes les contraintes poses par les

    oprations de prcision de positionnement et dassemblage en micromcanique.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 2 -

    - Robots autonomes : ils sont des robots capables de se mouvoir seuls sans assistance

    externes. Ceci implique quils doivent se reprer sur laire de travail et tre capable de

    sadapter aux conditions du terrain qui est souvent adapt et balis. On les conoit sous

    diffrentes formes : vhicules, androdes, tortues, tripodes, araignes, ou Aibo le chien.

    - Robots anthropomorphes : ils sont des robots a forme humaine pour remplacer

    lhomme, et trs souvent autonomes. Ils sont quips de capteurs perfectionns; tels que

    camras, tlmtres laser, organes de perception de force, etc. Ils disposent de

    techniques avances de reconnaissance vocale, reconnaissance de formes, traitement

    dimages et derniers dveloppements en informatique (Intelligence Artificielle).

    - Bras manipulateurs : ils sont les quipements les plus utiliss au milieu industriel, ils

    sont conus pour saisir et manipuler des objets avec ou sans assistance humaine. Ils

    ralisent des tches rptitives et souvent pnibles pour lhomme. Ils sont rapides,

    prcis, fidles et manipulent des objets au milieu inaccessible, ou des produits

    dangereux ou au milieu nocif pour ltre humain.

    - Robotique terrestre et arienne : Les robots considrs ici se dplacent dans des

    environnements peu ou pas structurs, souvent naturels, et peu ou pas connus/modliss,

    et se meuvent seuls ou en groupe coopratif.

    - Vhicules intelligents : Les vhicules considrs ici sont ceux ddis au transport des

    personnes ou des marchandises. On peut distinguer les vhicules routiers (autoroutes et

    routes) et les vhicules urbains (avenues et rues).

    - Radiolocalisation pour la robotique mobile : Les volutions dans les toute prochaines

    annes en matire de technologie GPS de positionnement, notamment par la mise en

    place de GALILEO, feront que le positionnement centimtrique en extrieur sera

    possible partout un faible cot. En intrieur et dans des milieux trs enfouis, des

    solutions sont actuellement ltude dont lhybridation avec des systmes de

    tlcommunications (verrous : stratgie de fusion multicapteurs pour la localisation ;

    utilisation pour la commande de robots dintrieur par couplage avec des radars ULB -

    Ultra Large Band).

    - La Biorobotique : (appele parfois robotique bio-inspire) a pour but de transfrer dans

    des systmes matriels (robots) ce quon a appris du comportement du monde animal,

    voire vgtal, et des traitements de linformation qui y sont associs.

    - La Robotique hybride vise incorporer des parties animales dans des robots.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 3 -

    - La Neurobotique sintresse au couplage entre le systme nerveux dun tre vivant

    (animal ou homme) et une machine, pour commander des systmes robotiques (lien

    avec la Robotique hybride).

    Les applications majeures actuelles concernent la dfense, la scurit civile, lexploration

    plantaire, et moindre titre lagriculture ou lenvironnement, ce dernier secteur tant

    susceptible de prendre une importance accrue dans le futur.

    Lobjectif de ce projet, cest la matrise de la haute technologie au service de lindustrie pour

    ltude, la conception et la ralisation de tous types de robots.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 4 -

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 5 -

    Chapitre 1 : Prsentation du projet

    1. Dfinition du projet

    Le robot labor doit tre capable de suivre une bande noire dune largeur dfinie, en totale

    autonomie et le plus rapidement possible, tout en grant sa vitesse, sa direction et un systme

    anti-collision.

    Nous dveloppons ce projet pour un mmoire de projet de fin dtude. Le but de ce projet est

    de mettre en application tous nos acquis. Lobjectif principal est donc de concevoir, de raliser,

    de rgler et monter les diffrents constituants sur le robot.

    Figure1 : Robot FSR 2008

    Fonctionnement : Un interrupteur permet de mettre le robot sous tension et un jack le fait

    dmarrer. Pour larrter il suffit dappuyer sur le rupteur ou sur le bouton darrt durgence.

    Toutefois, il est ncessaire de le programmer pour quil puisse fonctionner, car il sagit dun

    robot autonome.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 6 -

    2. Solutions possibles et solutions retenues

    2.1 Partie matrielle

    Dtection de ligne

    Possibilits Camras, capteurs

    Choix Capteurs au nombre de huit

    Justification La camra tait plus difficile grer dans la dure propose du projet. La

    manipulation facile des capteurs avec le microcontrleur pic16f84 nous a permet

    de les choisir.

    Commande des moteurs

    Possibilits Pont en H de type N ou H, transistors de puissance monts en push-pull

    Choix Pont en H de type H

    Justification Le pont en H est plus facile grer. Ce type a t retenu pour raison de

    disponibilit immdiate.

    2.2 Partie logicielle

    Programmation suivi de ligne et commande des moteurs

    Possibilits Programmation en assembleur ou en langage C

    Choix Assembleur MPASM

    Justification Ce langage est le plus puissant, plus simple et plus rapide pour programmer les

    microcontrleurs.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 7 -

    3. Cahier des charges fonctionnel

    Fonctions principales

    - Dmarrer

    - Suivre une ligne noire (scotch ou peinture) de largeur 10 mm sur un sol

    blanc.

    - Sarrter

    Fonctions lies aux rglements proposs

    - Avoir des certaines dimensions par exemple : 30 cm (longueur) x 20 cm

    (largeur) x 40 cm (hauteur).

    - Etre autonome en nergie : utiliser la batterie fournie pour la partie

    motorisation

    - Dmarrer grce au jack fourni

    - Retrouver la ligne en cas de sortie de piste

    - Faire un tour un croisement

    - Respecter les priorits droite

    Dtecter la priorit droite

    Ralentir

    Dtecter la prsence dun obstacle

    Si prsence dun obstacle :

    + 1re fois faire un demi-tour

    + 2me fois arrter

    + Dtecter le passage du robot

    + Redmarrer et reprendre le suivi de piste

    Si absence dun obstacle, acclrer

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 8 -

    4. Analyse fonctionnelle

    Figure 2 : Identification des solutions constructives

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 9 -

    5. La chane dinformation

    Figure 3 : Le schma structurel

    ALIMENTER TRAITER

    Communiquer Distribuer

    DETECTER

    CONVERTIR TRANSMETTRE

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 10 -

    6. La chane dnergie Les engages

    6.1 Schma

    6.2 Donnes Z1 = 20 dents Z2 = 50 dents Z3 = 20 dents Z4 = 50 dents

    we = 7000 tr/min pour une tension continu de 3V.

    6.3 Formule ws/we = (-1)n * [(Z 1/Z2)*(Z3/Z4)]

    6.4 Application Numrique ws/we = (-1)2 * [(2/5)x(2/5)]

    =1(0.4x0.4) =1(0.16)

    ws = 0.16 * we = 0.16 * 7000

    ws = 1120 tr/min

    Le signe positif indique quil ny a pas inversion du sens de rotation entre larbre dentre (moteur) et larbre de sortie.

    6.5 Avantages - Ces engrenages dveloppent un couple suffisamment puissant pour faire

    tourner les roues dun robot. - A partir dun petit moteur assez petit on peut sen servir pour tracter ou porter

    un objet.

    6.6 Inconvnient - Laugmentation du couple rduit la vitesse de rotation.

    6.7 Intrt

    - Le couple est trs intressant.

    Moteur Z1

    Z4 ws

    we

    Z2 Z3

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 11 -

    7. Conception du robot Ce robot est quip des yeux lectroniques qui observent une ligne noire et dtectent les

    obstacles. Chaque oeil lectronique est constitu dun capteur infrarouge de type OBP704.

    Le robot doit suivre une ligne noire de 10 mm de large sur fond blanc.

    Cest un tripode constitu dune roue folle place lavant et de deux moteurs, accoupls

    deux roues, situs larrire.

    Les moteurs assurent la propulsion et la direction du robot. Des capteurs optiques situs

    lavant permettent la dtection de la ligne.

    Figure 4 : Le robot sur la ligne

    8. Diagramme

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 12 -

    9. Schma de principe de la ralisation

    Figure 5 : Schma synoptique

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 13 -

    10. Schma lectronique

    Figure 6 : Schma lectronique du robot EBESA

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 14 -

    Le schma de ce robot peut tre dcompos en trois parties : les capteurs, linterface de

    microcontrleur et linterface vers les moteurs. Chaque partie sera tudi individuel la partie

    pratique.

    Le fonctionnement de ces capteurs (OBP704) a t expliqu dans les parties qui suivent. Il

    est bas sur la quantit de photons reus par le phototransistor. Un carnage est prvu pour

    viter autant que possible les perturbations dues la lumire extrieure.

    La partie de microcontrleur sert traiter les donnes collectes par les capteurs.

    La dernire partie est linterface des deux moteurs. Le courant fournit par le pic est faible ce

    qui demande dutiliser des transistors pour amplifier le courant. La ponte H permet de

    commander les moteurs dans un sens normal ou inverse, marche ou arrt.

    11. Le microcontrleur

    Le microcontrleur choisi est le PIC 16F84 de Microchip. Ce microcontrleur a t choisi en

    raison de sa popularit. Son prix reste correct au vu de ses capacits; Microchip propose un

    environnement de dveloppement gratuit (MPLAB) et la ralisation dun programmateur est

    simple et conomique. De nombreux sites Internet proposent des logiciels de programmation

    gratuits et des exemples dapplications et parfois des cours dinitiation en franais.

    Le site Internet de Microchip est : www.microchip.com, on y trouvera la documentation du

    PIC16F84 et la dernire version de MPLAB.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 15 -

    Chapitre 2 : tude dtaill sur les microcontrleurs pic16f84

    1. Introduction

    Depuis larrive du premier microprocesseur dans les annes 70 (dj plus de 38 ans), conu

    par INTEL, les progrs en intgration de composants n ont cess d voluer, faisant de ce fait

    augmenter la puissance de calcul et la rapidit des microprocesseurs. Ce premier

    microprocesseur le "4004" deviendra peut tre clbre, en effet la sonde pionner 10 lance dans

    les annes 70 a quitt le systme solaire en emportant avec elle le fameux circuit.

    Un microprocesseur peut tre assimil un circuit logique complexe excutant un un des

    ordres (instructions) enregistrs dans une mmoire de programme externe. Un microprocesseur

    ne fonctionne jamais seul on lui associe toujours des priphriques dentres- sorties afin de

    pouvoir excuter une fonction particulire et dialoguer avec "lextrieur" (prise en compte de

    ltat dun capteur, commande dun relais, mmoire programme de lapplication, etc...).

    Le grand avantage de cette logique programmable est que la modification dune fonction ou

    dune tche ne ncessite pas de cblage supplmentaire, mais uniquement un nouveau

    programme loger en mmoire.

    Larrive du microcontrleur qui est un microprocesseur auquel on a intgr les

    priphriques dentres sorties, va faire que les montages et applications deviennent encore plus

    simples mettre en oeuvre, avec un gain de temps, de vitesse et un cot rduit ( le pic 16f84 est

    environ 50 DH ).

    Le PIC16F84 de la socit Microchip est un micro contrleur faisant partie de la famille

    RISC ( Reduced Instruction set Computer ) dont les caractristiques sont vitesse d excution et

    jeu d instruction rduit ( le pic 16f84 ne comporte que 35 instructions ).

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 16 -

    2. LES MICROCONTROLEURS 2.1. Quest ce quun microcontrleur

    Cest un ordinateur mont dans un circuit intgr. Les avances technologiques en matire dintgration, ont permis dimplanter sur une puce de silicium de quelques millimtres carrs la totalit des composants qui forment la structure de base dun ordinateur. Leur prix varie de quelques dizaines Dirhams un millier de Dirhams pour les plus complexes. Comme tout ordinateur, on peut dcomposer la structure interne dun microprocesseur en trois parties : -Les mmoires -Le processeur -Les priphriques Cest ce quon peut voir sur la figure 6 :

    Figure 7

    les mmoires sont charges de stocker le programme qui sera excut ainsi que les

    donnes ncessaires et les rsultats obtenus le processeur est le cur du systme puisquil est charg dinterprter les

    instructions du programme en cours dexcution et de raliser les oprations quelles contiennent .Au sein du processeur, lunit arithmtique et logique interprte, traduit et excute les instructions de calcul.

    les priphriques ont pour tche de connecter le processeur avec le monde extrieur dans les deux sens . Soit le processeur fournit des informations vers lextrieur (priphrique de sortie), soit il en reoit (priphrique dentre).

    2.2. Intrt des microcontrleurs

    Les microcontrleurs sont de taille tellement rduite quils peuvent tre sans difficult implants sur lapplication mme quils sont censs piloter. Leur prix et leurs performances simplifient normment la conception de systme lectronique et informatique. Lutilisation des microcontrleurs ne connat de limite que lingniosit des concepteurs, on les trouve dans nos cafetires, les magntoscopes, les radios ..Une tude mene en lan 2004 montre quen moyenne, un foyer amricain hberge environ 240 microcontrleurs.

    3. PRESENTATION GENERALE DU PIC 16F84 3.1 Classification du PIC 16F84

    Le PIC 16F84 est un microcontrleur 8 bits. Il dispose donc dun bus de donnes de huit bits. Puisquil traite des donnes de huit bits, il dispose dune mmoire de donne dans laquelle chaque emplacement (dfini par une adresse) possde huit cases pouvant contenir chacune un bit.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 17 -

    3.2 Architecture interne La structure gnrale du PIC 16F84 comporte 4 blocs comme le montre la figure 8 : -Mmoire de programme -Mmoire de donnes -Processeur -Ressources auxiliaires (priphriques)

    Figure 8

    La mmoire de programme contient les instructions pilotant lapplication laquelle

    le microcontrleur est ddi. Il sagit dune mmoire non volatile (elle garde son contenu, mme en labsence de tension), elle est de type FLASH cest dire quelle peut tre programme et efface par lutilisateur via un programmateur et un PC. La technologie utilise permet plus de 1000 cycles deffacement et de programmation. Pour le PIC 16F84 cette mmoire est dune taille de 1024*14 bits, cest dire quelle dispose de 1024 emplacements (de 000h 3FFh) contenant chacun 14 cases car dans le cas du PIC, les instructions sont codes sur 14 bits. On peut donc stocker 1024 instructions.

    La mmoire de donne est spare en deux parties : -une mmoire RAM de 68 octets puisque le bus de donne est de huit bits. Cette RAM est volatile (les donnes sont perdues chaque coupure de courant). On peut y lire et crire des donnes. -une mmoire EEPROM de 64 octets dans laquelle on peut lire et crire des donnes (de huit bits soit un octet) et qui possde lavantage dtre non volatile (les donnes sont conserves mme en labsence de tension). La lecture et lcriture dans cette mmoire de donnes sont beaucoup plus lentes que dans la mmoire de donnes RAM.

    Le processeur est form de deux parties :

    -une unit arithmtique et logique (UAL) charge de faire des calculs. -un registre de travail not W sur lequel travail lUAL.

    Les ressources auxiliaires qui sont dans le cas du PIC16F84

    -ports dentres et de sorties. -temporisateur. -interruptions -chien de garde -mode sommeil

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 18 -

    Ces ressources seront analyses dans la suite.

    4. STRUCTURE INTERNE DU PIC 16F84 4.1 Brochage et caractristiques principales

    Le PIC16F84 est un circuit intgr de 18 broches (figure 9) :

    Figure 9

    Lalimentation du circuit est assure par les pattes VDD et VSS. Elles permettent lensemble des composants lectroniques du PIC de fonctionner. Pour cela on relie VSS (patte 5) la masse (0 Volt) et VDD (patte 14) la borne positive de lalimentation qui doit dlivrer une tension continue comprise entre 3 et 6 Volts. Le microcontrleur est un systme qui excute des instructions les unes aprs les autres une vitesse (frquence) qui est fixe par une horloge interne au circuit. Cette horloge doit tre stabilise de manire externe au moyen dun cristal de quartz connect aux pattes OSC1/CLKIN (patte 16) et OSC2/CLKOUT (patte 15). Nous reviendrons en dtail sur lhorloge au paragraphe 3. La patte 4 est appele MCLR. Elle permet lorsque la tension applique est gale 0V de rinitialiser le microcontrleur. Cest dire que si un niveau bas ( 0 Volt ) est appliqu sur MCLR le microcontrleur sarrte, place tout ses registres dans un tat connu et se redirige vers le dbut de la mmoire de programme pour recommencer le programme au dbut ( adresse dans la mmoire de programme :0000 ). A la mise sous tension, la patte MCLR tant zro, le programme dmarre donc ladresse 0000, (MCLR=Master Clear Reset). Les broches RB0 RB7 et RA0 RA4 sont les lignes dentres/sorties numriques. Elles sont au nombre de 13 et peuvent tre configures en entre ou en sortie. Ce sont elles qui permettent au microcontrleur de dialoguer avec le monde extrieur (priphriques). Lensemble des lignes RB0 RB7 forme le port B et les lignes RA0

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 19 -

    RA4 forment le port A. Certaines de ces broches ont aussi dautres fonctions (interruption, timer).

    4.2. Structure interne

    La structure interne du PIC16F84 est donne figure 10 : (structure HARVARD : la mmoire de programme et la mmoire de donnes sont spares contrairement larchitecture Von Neumann qui caractrise dautres fabricants de microcontrleurs)

    Figure 10

    On retrouve sur ce schma la mmoire de programme, la mmoire RAM de donnes, la mmoire EEPROM, les ports A et B, ainsi que la partie processeur avec lUAL et le registre de travail W ( work ). Nous allons tudier prsent plus en dtail le fonctionnement du PIC.

    4.3. Principe de fonctionnement du PIC Un microcontrleur excute des instructions. On dfinit le cycle instruction comme le temps ncessaire lexcution dune instruction. Attention de ne pas confondre cette notion avec le cycle dhorloge qui correspond au temps ncessaire lexcution dune opration lmentaire (soit un coup dhorloge).

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 20 -

    Une instruction est excute en deux phases : La phase de recherche du code binaire de linstruction stock dans la mmoire de

    programme La phase dexcution ou le code de linstruction est interprt par le processeur et

    excut. Chaque phase dure 4 cycles dhorloge comme le montre la figure 11 :

    Figure 11

    On pourrait donc croire quun cycle instruction dure 8 cycles dhorloge mais larchitecture particulire du PIC lui permet de rduire ce temps par deux. En effet, comme les instructions issues de la mmoire de programme circulent sur un bus diffrent de celui sur lequel circulent les donnes, ainsi le processeur peut effectuer la phase de recherche dune instruction pendant quil excute linstruction prcdente (Voir figure 12 et 13).

    Figure 12

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 21 -

    Figure 13

    4.4. Droulement dun programme

    Le droulement dun programme seffectue de faon trs simple. A la mise sous tension, le processeur va chercher la premire instruction qui se trouve ladresse 0000 de la mmoire de programme, lexcute puis va chercher la deuxime instruction ladresse 0001 et ainsi de suite (sauf cas de saut ou dappel de sous programme que nous allons voir plus loin). On parle de fonctionnement squentiel. La figure 14 va nous permettre de mieux comprendre le fonctionnement :

    Figure 14

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 22 -

    On constate sur cette figure que la mmoire de programme contient 1024 emplacements (3FF en hexadcimale) contenant 14 bits (de 0 13). Une instruction occupe un emplacement qui est dfini par une adresse. Le processeur peut alors slectionner lemplacement souhait grce au bus dadresse et il peut lire son contenu ( ici linstruction ) grce son bus dinstruction ( voir figure 7 ). Cet adressage seffectue laide dun compteur ordinal appel PC qui lors de la mise sous tension dmarre zro puis sincrmente de 1 tous les quatre coups dhorloge, on excute bien ainsi les instructions les unes la suite des autres. Mais il arrive que dans un programme on fasse appel un sous programme dont ladresse de linstruction ne se trouve pas juste aprs celle qui est en train dtre excute. Cest le rle de la pile qui sert emmagasiner de manire temporaire ladresse dune instruction. Elle est automatiquement utilise chaque fois que lon appelle un sous programme et elle permet une fois que lexcution du sous programme est termine de retourner dans le programme principal juste aprs lendroit o lon a appel le sous programme. On constate que cette pile possde huit niveaux, cela signifie quil nest pas possible dimbriquer plus de huit sous programmes, car au-del de huit, le processeur ne sera plus capable de retourner ladresse de base du programme principal. Ladresse 0000 est rserve au vecteur RESET, cela signifie que cest cette position que lon accde chaque fois quil se produit une rinitialisation (0 volts sur la patte MCLR). Cest pour cette raison que le programme de fonctionnement du microcontrleur doit toujours dmarrer cette adresse. Ladresse 0004 est assigne au vecteur dinterruption et fonctionne de manire similaire celle du vecteur de Reset. Quand une interruption est produite et valide, le compteur ordinal PC se charge avec 0004 et linstruction stocke cet emplacement est excute.

    4.5. La mmoire de donnes RAM

    Si lon regarde la mmoire de donne RAM, on saperoit que celle-ci est un peu particulire comme le montre la figure 15 : On constate en effet que cette mmoire est spare en deux pages (page 0 et page 1). De plus, on remarque que tant pour la page 0 que pour la page 1, les premiers octets sont rservs (SFR pour Special File Register). Ces emplacements sont en effet utiliss par le microcontrleur pour configurer lensemble de son fonctionnement. On les appelle registres spcifiques et nous verrons au chapitre suivant leurs rles. Le bus dadresse qui permet dadresser la RAM est compos de 7 fils ce qui veut dire quil est capable dadresser 128 emplacements diffrents. Or, chaque page de la RAM est compose de 128 octets, le bus dadresse ne peut donc pas accder aux deux pages, cest pourquoi on utilise une astuce de programmation qui permet de diriger le bus dadresse soit sur la page 0, soit sur la page 1. Cela est ralis grce un bit dun registre spcifique ( le bit RP0 du registre STATUS ) dont nous verrons le fonctionnement plus loin. La RAM de donnes proprement dite se rduit donc la zone note GPR (Registre usage gnrale) qui stend de ladresse 0Ch (12 en dcimale) jusqu 4Fh (79 en dcimale), soit au total 68 registres en page 0 et autant en page 1, mais on constate que les donnes crites en page 1 sont rediriges en page 0 cela signifie quau final lutilisateur dispose uniquement de 68 registres (donc 68 octets de mmoire vive) dans lesquels il peut crire et lire volont en sachant qu la mise hors tension, ces donnes seront perdues.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 23 -

    Figure 15

    STATUS STATUS

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 24 -

    5. Les registres Nous avons vu au chapitre prcdent que la mmoire de donnes RAM contenait des registres spcifiques qui permettent de configurer le PIC, nous allons les dtailler un un et voir comment on peut accder la page 0 ou la page 1. Afin de faciliter la comprhension, les registres les plus utiliss sont encadrs.

    5.1 adresse 00 et 80, INDF : Cette adresse ne contient pas de registre physique, elle sert pour ladressage indirect. (non utilise dans le projet de cette anne)

    5.2 adresse 01, TMR0 : Contenu du Timer (8 bits). Il peut tre incrment par lhorloge (fosc/4) cest dire tous les 4 coups dhorloge ou par la broche RA4.

    5.3 adresse 02 et 82, PCL : 8 bits de poids faibles du compteur ordinal PC. Les 5 (13-8) bits de poids forts sont dans PCLATH.

    5.4 adresse 03 et 83, STATUS Registre dtat. : Les cinq bits de poids faible de ce registre sont en lecture seule, ce sont des tmoins (drapeaux ou flag en anglais) caractrisant le rsultat de lopration ralise par lUAL. Le bit RP0 est lui en lecture /criture et cest lui qui permet de slectionner la page dans la mmoire RAM. Si RP0=0 on accde la page 0 et si RP0=1 on accde la page 1.

    Au reset, seul le bit RP0 de slection de page est fix (RP0=0 : page 0) TO/ (Time Out) : dbordement du timer WDT PD/ : (Power Down) caractrise lactivit du chien de garde WDT Z (zro) rsultat nul pour une opration arithmtique et logique. DC (digit carry) retenue sur un quartet (4 bits) C (carry) retenue sur un octet (8 bits).

    5.5 adresse 04 et 84, FSR : Registre de slection de registre : contient ladresse dun autre registre (adressage indirect, non utilis dans le projet)

    5.6 adresse 05, PORTA : Ce registre contient ltat des lignes du port (voir paragraphe sur les ports).

    5.7 adresse 06, PORTB : Ce registre contient ltat des lignes du port B (voir paragraphe sur les ports).

    5.8 adresse 08, EEDATA : Contient un octet lu ou crire dans lEEPROM de donnes.

    RP0 TO/ PD/ Z DC C

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 25 -

    5.9 adresse 09, EEADR : Contient ladresse de la donne lue ou crite dans lEEPROM de donnes.

    adresse 0A et 8A, PCLATH : Voir ladresse 02 PCL.

    5.10 adresse 0B et 8B, INTCON : Contrle des 4 interruptions Masques : GIE : (Global Interrupt Enable) : masque global dinter. EEIE : (EEProm Interrupt Enable) autorise linterruption venant de lEEPROM. T0IE : (Timer 0 Interrupt Enable) autorise linterruption provoque par le dbordement du TIMER0 INTE : (Interrupt Enable) autorise linterruption provoque par un changement dtat sur broche RB0/INT RBIE : (RB Interrupt Enable) autorise les interruptions provoques par un changement dtats sur lune des broches RB4 RB7. Si ces bits sont mis 1, ils autorisent les interruptions pour lesquels ils sont ddis. Drapeaux : T0IF : (Timer 0 Interrupt Flag) dbordement du timer INTF (Interrupt Flag) interruption provoque par la broche RB0/INT RBIF (RB Interrupt Flag) interruption provoque par les broches RB4-RB7.

    5.11 adresse 81, OPTION 8 bits (tous 1 au RESET) affectant le comportement des E/S et des timers. RBPU/ (RB Pull Up) Rsistances de tirage Vdd des entres du port B (voir le dtail du fonctionnement au chapitre port).Si RBPU/=0 les rsistances de pull-up sont connectes en interne sur lensemble du port B. INTEDG (Interrupt Edge) slection du front actif de linterruption sur RB0/INT (1 pour front montant et 0 pour front descendant). RTS (Real Timer Source) slection du signal alimentant le timer 0 : 0 pour horloge interne, 1 pour RA4/T0CLK RTE (Real Timer Edge) slection du front actif du signal timer ( 0 pour front montant). PSA (Prescaler assignment) 0 pour Timer 0 et 1 pour chien de garde WDT. PS2.0 (Prescaler 210) slection de la valeur du diviseur de frquence pour les timers.

    5.12 adresse 85, TRISA : Direction des donnes pour le port A : 0 pour sortir et 1 pour entrer (voir paragraphe sur les ports).

    GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

    RBPU/ INTEDG RTS RTE PSA PS2 PS1 PS0

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 26 -

    5.13 adesse 86 , TRISB : Direction des donnes pour le port B : 0 pour sortir et 1 pour entrer (voir paragraphe sur les ports).

    5.14 dresse 88, EECON1 Contrle le comportement de lEEPROM de donnes. EEIF (EEProm Interrupt Flag) passe 1 quand lcriture est termine. WRERR (Write Error) 1 si erreur dcriture. WREN (Write Enable) : 0 pour interdire lcriture en EEPROM de donnes. WR (Write) 1 pour crire une donne. Bit remis automatiquement 0 RD (Read) : 1 pour lire une donne. Bit remis automatiquement 0

    5.15 adresse 89, EECON2. Registre de scurit dcriture en EEPROM de donnes. Une donne ne peut tre crite quaprs avoir crit successivement 0x55 et 0xAA dans ce registre.

    6. Les ports dentres/sorties Le PIC16F84 est quip de 13 lignes dentres/sorties rparties en deux ports : -le port A : RA0 RA4 -le port B : RB0 RB7 Chaque ligne peut tre configure soit en entre, soit en sortie, et ceci indpendamment lune de lautre. Pour cela on utilise les registres TRISA et TRISB. Le bit de poids faible (b0) du registre TRISA correspond la ligne RA0, le bit b1 de TRISA correspond RA1 et ainsi de suite. Il en est de mme pour le port B et le registre TRISB (b0 de TRISB correspond RB0 b7 correspond RB7). Si lon veut placer une ligne en sortie il suffit de mettre le bit correspond dans TRISA ou TRISB 0 (retenez 0 comme Output=sortie). Si lon veut placer une ligne en entre, il suffit de placer le bit correspondant dans TRISA ou TRISB 1 (retenez 1 comme Input=entre). Les bits des deux registres PORTA et PORTB permettent soit de lire ltat dune ligne si celle-ci est en entre, soit de dfinir le niveau logique dune ligne si celle-ci est en sortie. Lors dun RESET, toutes les lignes sont configures en entres.

    Particularit du portA : les bits b7 b5 des registres TRISA et PORTA ne correspondent rien car il ny a que 5 lignes (b0 b4). RA4 est une ligne collecteur ouvert, cela veut dire que configure en sortie cette broche assure 0Volt ltat bas, mais qu ltat haut, il est ncessaire de fixer la valeur de la tension grce une rsistance de tirage (pull up en anglais) Particularit du portB : il est possible de connecter de faon interne sur chaque ligne une rsistance de tirage (pull up) dont le rle consiste fixer la tension de la patte (configur en entre) un niveau haut lorsque quaucun signal nest appliqu sur la patte en question. Pour connecter ces rsistances, il suffit de placer le bit RBPU/ du registre OPTION 0.

    EEIF WRERR WREN WR RD

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 27 -

    7. Le Timer Dans la majeure partie des applications, il est ncessaire de contrler le temps; afin de ne pas occuper le microcontrleur qu cette tche (boucle de comptage qui monopolise le micro), on le dcharge en utilisant un timer. Le pic 16F84 dispose de deux timers, un usage gnral (le TMR0) et un autre utilis pour le chien de garde (watch dog WDG). Le TMR0 est un compteur ascendant (qui compte) de 8 bits qui peur tre charg avec une valeur initiale quelconque. Il est ensuite incrment chaque coup dhorloge jusqu ce que le dbordement ait lieu (passage de FF 00); Le principe est reprsent figure 16 :

    Figure 16

    Le TMR0 peut remplir deux fonctions :

    - Temporisateur ou Contrle du temps son entre dincrmentation est alors lhorloge qui correspond au cycle instruction (Fosc/4). Il est possible dutiliser un pr-diviseur de frquence que nous verrons plus loin.

    - Compteur dvnements. Dans ce cas les dimpulsions dentres du timer sont fournies par la patte RA4/TOCK1

    Le choix seffectue grce au bit RTS du registre OPTION. Le pic 16F84 dispose dun diviseur de frquence qui peut tre assign soit au chien de garde, soit au TMR0 (uniquement un la fois). Lassignation du pr diviseur se fait grce au bit PSA du registre OPTION. La structure interne du TMR0 est donc la suivante (figure 17) :

    Figure 17

    du registre intcon

    il se produit un retard de deux cycles avant que le

    timer ne commence compter aprs un chargement

    RTS RTE

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 28 -

    Suivant que le pr-diviseur est assign au chien de garde ou au TMR0, la valeur de la pr-division nest pas la mme, il faut donc tre vigilant lors de la programmation comme le montre la figure 18 :

    Figure 18

    Enfin, vu que le timer ne peut que compter, cela oblige une petite gymnastique lors de lintroduction de la valeur de pr chargement : Exemple : On veut que le timer nous indique par la mise un du drapeau T0IF lcoulement dune dure de 20ms (la frquence dhorloge tant de 4MHz) do Fosc/4=1 s Si on choisit une pr division de 256, on aura donc 20000 s / 256 =78 Il ne faut pas charger le TMR0 avec 78 mais avec le complment deux de cette valeur (car le timer compte et ne dcompte pas) do 256-78=178 soit en hexadcimale la valeur B2h charger dans le registre TMR0.

    RPBU/

    INTEDG

    RTS

    RTE

    RTS RTE

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 29 -

    8. Mise en oeuvre Lutilisation et la mise en uvre trs simple des PICs les ont rendus extrmement populaire au point que la socit qui les fabrique (MICROCHIP) est en passe de devenir le leader mondial dans le domaine des microcontrleurs devant MOTOROLA et INTEL. Il suffit dalimenter le circuit par ses deux broches VDD et VSS, de fixer sa vitesse de fonctionnement laide dun quartz (figure19) et dlaborer un petit systme pour permettre de rinitialiser le microcontrleur sans avoir couper lalimentation (figure 20).

    Figure 19

    Figure 20

    Il suffit ensuite dcrire le programme en langage assembleur ou en C sur un ordinateur

    grce au logiciel MPLAB de MICROCHIP (logiciel gratuit) puis de le compiler pour le

    transformer en langage machine et le transfrer dans le PIC grce un programmateur. Lors de

    la mise sous tension, tous les registres spcifiques sont placs dans un tat dtermin comme le

    montre la figure 21.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 30 -

    u=unchanged ; x=unknown ; -=unimplemented ( read as 0 ) ; q=value depends on condition

    Figure 21

    Il ne nous reste plus qu voir le jeu dinstruction de programmation en assembleur du PIC et

    cest l que rside tout lintrt puisquil ne dispose que de 35 instructions qui lui permettent de

    raliser toutes les tches.

    9. Jeu dInstructions

    Afin de comprendre la fonction de chaque instruction, la notation adopte pour les donnes

    et adresses manipules par les instructions est fort simple et est la suivante :

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 31 -

    -f reprsente un registre -b reprsente un numro de bit en sachant que 0 correspond toujours au bit de poids faible (le plus droite dans le registre)

    -k reprsente une donne aussi appele littrale Un certain nombre dinstructions (ADDWF, ANDWF, etc...) utilise une notation spciale prsente sous la forme : ADDWF f,d O f indique le registre et o d peut prendre deux valeurs (0 ou 1),

    ce qui change le comportement de linstruction . Si d est 0, le rsultat est plac dans le registre de travail W, la valeur dans le registre f est alors inchange, alors que si d est 1, le rsultat est plac dans le registre f.

    Un autre type dinstruction mrite quelques claircissements, ce sont les instructions de branchement conditionnel. Prenons comme exemple : BTFSC f,b Qui va vouloir dire ( Bit Test File Skip if Clear ) qui signifie que

    lon va tester le bit b du registre f ( b peut prendre une valeur de 0 7 pour un registre 8 bits ) .Il peut alors y avoir deux solutions :

    -Soit le bit test est 1, donc la condition teste nest pas ralise, le programme continue alors son droulement normalement en squence avec linstruction juste en dessous.

    -Soit le bit test vaut 0, donc la condition teste est ralise et le programme saute linstruction qui suit le BTFSC dans le programme.

    Cette faon de programmer peut paratre trange, mais avec de lhabitude, elle savre trs pratique et permet de raliser des programmes compacts et performants. Les 35 instructions sont donc les suivantes :

    9.1 Instructions arithmtiques:

    9.1.1 ADDLW ( Add Literal to W ) syntaxe : ADDLW k Opration : W+k W Bits dtat du registre STATUS affects : C,DC,Z on ajoute au registre de travail la valeur k et on place le rsultat dans le registre de travail W dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.1.2 ADDWF (Add W to F ) syntaxe : ADDWF f,d Opration : W+f f si d=1 ou W+f W si d=0 Bits dtat du registre STATUS affects : C,DC,Z

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 32 -

    on ajoute le contenu de W et le contenu de f et on place le rsultat dans f si d=1 ou dans W si d=0 dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.1.3 SUBLW ( Substract W from Literal ) syntaxe : SUBLW k opration : k-W W Bits dtat du registre STATUS affects :C,DC,Z On soustrait le contenu du registre W du littral k et on place le rsultat dans W ( soustraction par la mthode du complment 2 ). dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.1.4 SUBWF ( Substract W from F ) syntaxe : SUBWF f,d opration : f-W W si d=0 ou f-W f si d=1 Bits dtat du registre STATUS affects :C,DC,Z On soustrait le contenu du registre W du contenu du registre f et on place le rsultat dans W si d=0, ou dans f si d=1 (soustraction par la mthode du complment 2). dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.2 Instructions logiques:

    9.2.1 ANDLW ( And Literal and W ) syntaxe : ANDLW k Opration : W ET k W Bit dtat du registre STATUS affect : Z on effectue un ET logique entre le contenu de W et le littral k , on place le rsultat dans W dure : 1 cycle instruction ( 4 cycles dhorloge )

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 33 -

    9.2.2 ANDWF ( And W with F ) syntaxe : ANDWF f,d Opration : W ET f f si d=1 ou W ET f W si d=0 Bit dtat du registre STATUS affect :Z on effectue un ET logique entre le contenu de W et le contenu de f , on place le rsultat dans W si d=0 ou dans f si d=1 dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.2.3 COMF ( Complement F ) syntaxe : COMF f,d opration : /f f si d=1 ou /f W si d=0 Bit dtat du registre STATUS affect :Z On complmente le contenu du registre f bit bit, le rsultat est plac dans f si d=1 , dans W si d=0 . dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.2.4 IORLW ( Inclusive Or Literal with W ) syntaxe: IORLW k opration: W OU k W Bit dtat du registre STATUS affect :Z On effectue un OU logique entre le contenu de W et le littral k, le rsultat est plac dans W. dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.2.5 IORWF ( Inclusive Or W with F ) syntaxe : IORWF f,d opration : W OU f f si d=1 ou W OU f W si d=0 Bit dtat du registre STATUS affect :Z On effectue un OU entre le contenu de W et le contenu de f , on place le rsultat dans f si d=1, dans W si d=0 dure : 1 cycle instruction ( 4 cycles dhorloge )

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 34 -

    9.2.6 XORLW ( Exclusive Or Literal with W ) syntaxe : XORLW k opration : W OU EXCLUSIF k W Bit dtat du registre STATUS affect :Z On effectue un OU Exclusif entre W et le littral k, le rsultat est plac dans W dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.2.7 XORWF ( Exclusive Or W with F) syntaxe : XORWF f,d opration : W OU EXCLUSIF f W si d=0 ou W OU EXCLUSIF f f si d=1 Bit dtat du registre STATUS affect :Z On effectue un OU Exclusif entre W et le contenu de f, le rsultat est plac dans W si d=0, sinon il est plac dans f. dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.3 Instructions dincrmentation :

    9.3.1 DECF ( Decrement F ) syntaxe : DECF f,d opration : f-1 f si d=1 ou f-1 W si d=0 Bit dtat du registre STATUS affect :Z On diminue le contenu du registre f dune unit, le rsultat est plac dans f si d=1, dans W si d=0 (dans ce cas f reste inchang). dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.3.2 DECFSZ ( Decrement F ,Skip if Zero ) syntaxe : DECFSZ f,d opration : f-1 f si d=1 ou f-1 W si d=0 et saut si f-1=0 Bit dtat du registre STATUS affect : aucun On diminue le contenu du registre f dune unit, le rsultat est plac dans f si d=1, dans W si d=0 (dans ce cas f reste inchang).Si le rsultat est nul, linstruction suivante est ignore et dans ce cas, cette instruction dure deux cycles. dure : 1 cycle instruction ( 4 cycles dhorloge ) ou 2 cycles

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 35 -

    9.3.3 INCF (Increment F)

    syntaxe : INCF f,d opration : f+1 f si d=1 ou f+1 W si d=0 Bit dtat du registre STATUS affect :Z On augment le contenu du registre f dune unit, le rsultat est plac dans f si d=1 , dans W si d=0 ( dans ce cas f reste inchang ). dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.3.4 INCFSZ ( Increment F , Skip if Zero ) syntaxe : INCFSZ f,d opration : f+1 f si d=1 ou f+1 W si d=0 et saut si f-1=0 Bit dtat du registre STATUS affect : aucun On augmente le contenu du registre f dune unit, le rsultat est plac dans f si d=1, dans W si d=0 (dans ce cas f reste inchang).Si le rsultat est nul, linstruction suivante est ignore et dans ce cas, cette instruction dure deux cycles. dure : 1 cycle instruction ( 4 cycles dhorloge ) ou 2 cycles

    9.4 Instructions deffacement :

    9.4.1 CLRF ( Clear F ) syntaxe : CLRF f Opration : 0 F Bit dtat du registre STATUS affect : Z On met le contenu du registre f 0 et on positionne Z dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.4.2 CLRW ( Clear W ) syntaxe : CLRW Opration : 0 W Bit dtat du registre STATUS affect : Z On met le contenu du registre W 0 et on positionne Z

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 36 -

    dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.4.3 CLRWDT ( Clear WatchDog Timer ) syntaxe : CLRWDT Opration : 0 WDT et 0 pr diviseur du Timer On met le contenu du registre du timer chien de garde 0 ainsi que le pr diviseur dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.5 Instructions de mouvement :

    9.5.1 MOVF ( Move F ) syntaxe : MOVF f,d opration : f f si d=1 ou f W si d=0 Bit dtat du registre STATUS affect :Z On dplace le contenu de f dans f si d=1 ou de f dans W si d=0. Attention, le dplacement de f dans f semble priori inutile, mais il permet en fait de tester le contenu de f par rapport 0 et de positionner le bit Z dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.5.2 MOVLW ( Move Literal to W ) syntaxe : MOVLW k opration : k W Bit dtat du registre STATUS affect :aucun On charge le contenu de W avec le littral k dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.5.3 MOVWF ( Move W to F ) syntaxe : MOVWF f opration : W f Bit dtat du registre STATUS affect :aucun On charge le contenu de f avec le contenu de W

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 37 -

    dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.6 Instructions de rotation:

    9.6.1 RLF ( Rotate Left F through carry ) syntaxe : RLF f,d opration : Bit dtat du registre STATUS affect :C On effectue une rotation gauche de un bit du contenu du registre f en passant par le bit de retenu C . Si d=1 le rsultat est plac dans f , si d=0 , le rsultat est plac dans W dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.6.2 RRF ( Rotate Right F through carry ) syntaxe : RRF f,d opration : Bit dtat du registre STATUS affect : C On effectue une rotation droite de un bit du contenu du registre f en passant par le bit de retenu C. Si d=1 le rsultat est plac dans f , si d=0, le rsultat est plac dans W dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.7 Instructions de saut et branchement :

    9.7.1 CALL (subroutine Call) syntaxe : CALL label Bits dtat du registre STATUS affects : aucuns

    0 1 2 3 4 5 6 7

    C

    Registre f

    0 1 2 3 4 5 6 7

    C

    Registre f

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 38 -

    On sauvegarde ladresse de retour dans la pile puis on appelle le sous programme dfinit avec ltiquette label dure : 2 cycles instruction ( 8 cycles dhorloge )

    9.7.2 GOTO ( branchement inconditionnel ) syntaxe : GOTO label Bit dtat du registre STATUS affect : aucun On effectue un saut dans le programme pour aller ladresse point par le label prcis dans GOTO Dure : 2 cycles ( 8 cycles dhorloge )

    9.7.3 RETFIE ( Return From Interrupt ) syntaxe : RETFIE opration : Pile PC Bit dtat du registre STATUS affect : aucun On charge le compteur ordinal avec la valeur qui se trouve au sommet de la pile pour revenir au programme principal lorsque lexcution de sous programme est termine. dure : 2 cycles instruction ( 8 cycles dhorloge )

    9.7.4 RETLW ( Return Literal to W ) syntaxe : RETLW k opration : k W , Pile PC Bit dtat du registre STATUS affect : aucun On charge le contenu de W avec le littral k puis on charge le compteur ordinal PC avec la valeur qui se trouve au sommet de la pile effectuent ainsi un retour de sous programme. dure : 2 cycles instruction ( 8 cycles dhorloge )

    9.7.5 RETURN ( Return from subroutine ) syntaxe : RETURN opration : Pile PC Bit dtat du registre STATUS affect : aucun

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 39 -

    On charge le compteur ordinal PC avec la valeur qui se trouve au sommet de la pile effectuent ainsi un retour de sous programme. Cest un RETLW simplifi. dure : 2 cycles instruction ( 8 cycles dhorloge )

    9.8 Instructions agissant sur les bits :

    9.8.1 BCF ( Bit Clear F ) syntaxe : BCF f,b Opration : 0 b(f) Bits dtat du registre STATUS affects : aucuns on met 0 le bit b du registre f dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.8.2 BSF ( Bit Set F ) syntaxe : BSF f,b Opration : 1 b(f) Bits dtat du registre STATUS affects : aucuns on met 1 le bit b du registre f dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.8.3 BTFSC ( Bit Test , Skip if Clear ) syntaxe : BTFSC f,b Opration : saut de linstruction qui suit si b(f)=0 Bits dtat du registre STATUS affects : aucuns Si le bit b de f est nul, linstruction qui suit celle-ci est ignore et traite comme un NOP. Dans ce cas et dans ce cas seulement, linstruction BTFSC demande deux cycles pour sexcuter. dure : 1 cycle instruction ( 4 cycles dhorloge ) ou 2 cycles

    9.8.4 BTFSS ( Bit Test , Skip if Set ) syntaxe : BTFSS f,b

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 40 -

    Opration : saut de linstruction qui suit si b(f)=1 Bits dtat du registre STATUS affects : aucuns Si le bit b de f est 1, linstruction qui suit celle-ci est ignore et traite comme un NOP. Dans ce cas et dans ce cas seulement, linstruction BTFSS demande deux cycles pour sexcuter. dure : 1 cycle instruction ( 4 cycles dhorloge ) ou 2 cycles

    9.9 Instructions diverses :

    9.9.1 NOP ( No Operation ) syntaxe: NOP opration: nant Bit dtat du registre STATUS affect : aucun On ne fait que consommer du temps machine (un cycle dans ce cas) dure : 1 cycle instruction ( 4 cycles dhorloge )

    9.9.2 SLEEP ( Sleep ) syntaxe : SLEEP opration : 0 PD, 1 T0, 0 WDT , 0 pr diviseur On place le circuit en mode sommeil avec arrt de loscillateur. Cette commande est utiliser avec prcaution, elle ncessite la connaissance du mode sommeil.

    9.9.3 SWAPF ( Swap F ) syntaxe : SWAPF f,d opration : f(0-3) f(4-7) et f(4-7) f(0-3) rsultat dans W ou f selon d Bit dtat du registre STATUS affect : aucun On change les quatre bits de poids forts avec les quatre bits de poids faibles et on place le rsultat dans W si d=0, ou dans f si d=1 dure : 1 cycle instruction ( 4 cycles dhorloge )

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 41 -

    Chapitre 3 : Les Servomoteurs

    1. Introduction :

    Les servomoteurs sont trs utiliss en robotique car ils sont la base de nombreux

    mcanisme dactionneurs, comme des pinces par exemple. Par contre, ils consomment souvent

    beaucoup de courant et demandent une tension souvent trs bien rgule ce qui ncessite des

    dispositions particulires.

    2. Quest-ce quun servomoteur ?

    Un servomoteur est un dispositif typiquement utilis en modlisme, par exemple pour diriger

    une voiture tlcommande ou contrler distance une camra vido.

    Figure22 : Servomoteur

    Il comprend :

    Un moteur lectrique de petite taille.

    Un rducteur en sortie de ce moteur pour avoir moins de vitesse et plus de couple.

    Un capteur : un potentiomtre qui produit une tension variable en fonction de langle

    de laxe de sortie.

    Un asservissement lectronique pour contrler la position de cet axe de sortie.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 42 -

    3. Fonctionnement dun servomoteur :

    Lutilisateur envoie chaque instant un signal modul reprsentatif dun angle. Le

    servomoteur tourne vers cet angle et sy maintient.

    La dur de limpulsion se varie entre 0.9ms qui permet laxe de tourner jusqu la position

    extrme gauche et 2.1ms qui lui permet daller jusqu lextrme droite. Et avec 1.5ms pour

    revenir au centre.

    Pour varier la vitesse dun servomoteur en jouant sur la dure de limpulsion. Plus la dure

    de limpulsion est proche de 1.5ms plus la vitesse de rotation est faible.

    4. Le potentiomtre :

    Le potentiomtre sert lasservissement de position. Laxe du potentiomtre est solidaire de

    laxe de sortie qui lui permet de tourner en mme temps que laxe de sortie. La rsistance la

    borne du potentiomtre varie en fonction de la position de laxe. La rsistance du potentiomtre

    est en rapport avec la dure du signal. Par exemple le servomoteur reoit un ordre pour se

    dplacer la position mdiane (1.5ms). Le moteur va tourner jusqu ce que la rsistance entre

    le curseur du potentiomtre et les deux extrmits soient identiques et sil reoit une impulsion

    de 2.1ms il va tourner jusqu ce que la rsistance entre le curseur et lextrmit du

    potentiomtre soit maximale.

    Llectronique faire la relation entre la dure de limpulsion et la rsistance aux bornes du

    potentiomtre.

    5. La commande du servomoteur

    Un connecteur trois fils permet de commander un servo-moteur. Bien sr, il y a la masse et

    le +5V ( peu prs). Ces deux fils sont en gnral noir et rouge, mais ils sont marrons et rouge

    pour les modles Graupner. Le 3me fil est le fil de commande. Il est normalement blanc, mais

    jaune dans le cas des Graupner.

    On pourrait dire sommairement quil faut fournir un signal PWM en tant que signal

    de commande, mais ce nest pas tout fait exact :

    Le PWM (Pulse Width Modulation : Modulation en largeur dimpulsion) est un signal dont

    le taux de modulation varie de 0 100% PERIODE

    = .

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 43 -

    Pour un servomoteur on parle de Pulse-Code Modulated Signal (Signal modul en

    code dimpulsion ) o seule limpulsion compte, pas la frquence (en thorie).

    En clair, il faut fournir au servomoteur une impulsion 1 (suivie dun retour 0).

    Le servomoteur va prendre en compte la largeur temporelle de cette impulsion quil va

    convertir de faon linaire en un angle.

    La dure de retour 0 de limpulsion nest pas critique, en pratique il faut viter de

    dpasser 20ms entre deux fronts montants.

    A noter aussi que ce systme prsente un avantage par rapport au PWM : une absence de

    signal (toujours 1, ou 0) laisse le servomoteur en "roue libre" comme si il ntait pas

    aliment. Le microcontrleur programm est capable de fournir directement ce signal de

    commande sur une sortie.

    Figure23 : Signal PWM Figure24 : Signal modul en code dimpulsion

    6. Caractristique du servomoteur utilis dans ce projet :

    Rfrence : le HS322 de HITEC Tension dalimentation = 5 6V Dimension : 41 20 37 (mm) Poids : 43gr Couple : 2.8 3.5 Kg/cm Vitesse : 0.19s/60 Pignons : nylon

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 44 -

    Figure25 : Dimension du servomoteur

    Le servomoteur ncessite une modification pour complter la rotation.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 45 -

    Chapitre 4 : Les dtecteurs 1. Llectronique des Capteurs :

    Il sagit doptocoupleur de rfrence OBP704 (Constructeur OPTEK) qui met un rayon focalis et rcupre la rflexion de ce rayon par une photo transistor que nous utiliserons pour reprer la position de la bande de guidage.

    Figure26 : Description du capteur de suivi de la ligne de guidage

    La mise en forme est confie un circuit TTL 74HC14 (Une porte Nand trigger de Schmitt) et permet de disposer de 6 signaux TTL actifs au niveau 1, nomms capteur1... capteur6 prsents sur le bus de connexion du robot. Le capteur 1 dsigne le capteur extrme avant droit et le capteur 6 dsigne le capteur avant extrme gauche. Rfrence capteurs : OPB704

    Figure 27 : Montage des capteurs de position lavant du robot

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 46 -

    Le montage des capteurs de position permet de dtecter la bande de guidage de manire exclusive pour les capteurs 1, 2, 5 et 6 (un seul capteur actif la fois) et non exclusive pour les capteurs centraux (3 et 4). Cette disposition permettra doptimiser la vitesse du robot lorsque celui-ci sera parfaitement centr par rapport la bande de guidage. 2. Description et fonctionnement : Le principe est de lmission dune onde et de sa rception. Donc deux cas peuvent se produire : soit le capteur dtecte la piste, soit il ne la dtecte pas.

    Figure 28

    Figure 28 : Montage de capteur avec inverseur trigger de Schmitt

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 47 -

    Cas de non dtection de la ligne :

    Cas de dtection de la ligne :

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 48 -

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 49 -

    Chapitre 1 : Modification des servomoteurs

    Le servomoteur, pour des applications en modlisme, neffectue quune rotation de 150,

    ce qui ncessite une modification de telle sorte que son axe de sortie effectue une rotation

    complte de 360.

    1. Principe de la modification

    Le principe cest quon va remplacer le potentiomtre par 2 rsistances fixes de mme valeur.

    Ceci aura pour effet de faire croire llectronique du servomoteur que laxe de sortie se trouve

    toujours en positon mdiane. Si on lui envoie une impulsion de dure suprieure 1.5ms, le

    servomoteur va tourner vers la droite en essayant datteindre la valeur de rsistance

    correspondante. Comme les rsistances sont fixes il va tourner indfiniment droite. Idem pour

    la gauche. Par contre si on lui envoie une impulsion de 1.5ms le moteur va sarrter puisque la

    valeur des rsistances correspondantes la valeur mdiane.

    2. En rsum pour

    tourner en avant : Impulsion > 1.5ms

    en arrire : < 1.5ms

    arrt : 1.5ms

    Le servomoteur que nous allons modifier est le HS-300BB de Hitec.

    Figure 29 : servomoteur

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 50 -

    3. Il y a 3 modifications apporter au servomoteur dorigine modifier le potentiomtre pour une rotation complte

    rajouter 2 rsistances sur le circuit imprim

    couper lergot sur le pignon de sortie

    4. Dmonter le servomoteur A laide dun petit tournevis cruciforme dvissez les 4 vis du botier.

    Vous obtenez ceci

    Figure 30

    Extraire le circuit imprim

    Figure 31

    Dposez les roues dentes et le roulement bille en reprant bien la position de montage.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 51 -

    Figure 32

    5. Modification du potentiomtre

    On va garder juste la fonction mcanique du potentiomtre comme laxe de ce dernier est le

    support du pignon de sortie. Il faut que le potentiomtre puisse effectuer un tour complet. En ce

    qui concerne la fonction lectrique on va remplacer le potentiomtre par deux rsistances fixes.

    Dvissez lcrou de fixation du potentiomtre et lextraire du botier.

    Figure 33

    Ouvrir le potentiomtre en dpliant les 3 languettes laide dun petit tournevis.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 52 -

    Figure34

    Modifier le potentiomtre afin que son axe puisse faire une rotation complte. A laide dune

    petite pince coupante couper la bute du capot et la plier vers lextrieur. Couper le contact

    pression au ras du disque afin que laxe du potentiomtre puisse effectuer un tour complet sans

    frottement.

    Coupez galement les 2 contacts pression du couvercle, ceci diminue les frottements.

    Figure 35

    Refermez le potentiomtre en resserrant les languettes avec une pince. Dessoudez les fils

    rouge, jaune et bleu du potentiomtre et du circuit imprim. Utilisez un petit fer souder surtout

    pour le circuit imprim. Pour nettoyer les trous pastilles, utilisez de la tresse dessouder.

    Remettre le potentiomtre en place.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 53 -

    A effectuer uniquement sur un des 2 servomoteurs. Dessoudez les 2 fils du moteur CC et les

    croiser. Ceci afin que les 2 servomoteurs tournent dans le mme sens pour une mme

    impulsion.

    Figure 36

    6. Mise en place des rsistances

    Prenez 4 rsistances de 1,5 K (2 pour chaque servomoteur). Attention elles doivent tre

    rigoureusement gales. Si vous avez un lot de rsistances 5%, mesurez-les lohmmtre pour en

    trouver 2 identiques. Sinon, prenez des rsistances 1%.

    Soudez les comme indiqu sur la photo au plus prs du circuit imprim. Veillez ne pas faire

    de court-circuit entre les pistes en soudant.

    Figure 37

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 54 -

    7. Modification du pignon de sortie Couper lergot du pignon de sortie.

    AVANT APRES

    Figure 38 Figure 39

    Remettre les pignons en place. Vrifiez que le pignon de sortie puisse effectuer un tour complet.

    Remettre le circuit imprim en place.

    Refermez le botier.

    Figure 40 : La modification est termine

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 55 -

    Chapitre 2 : Ralisation des Circuits

    1. Ralisation dun circuit imprim

    1.1 Matriel ncessaire - Plaque dpoxy pr-sensibilis simple face - La scie mtaux pour dcouper lpoxy - Un sachet de rvlateur - Du perchlorure de fer liquide ou en granuls diluer (lire la doc fournie avec pour

    la prparation) - Une insoleuse (par dfaut une simple ampoule de 100 Watts avec un plaque de

    verre peu convenir) - Une mini-perseuse avec des forets 0.8, 1, 1.5 et 2mm.

    1.2 Le typon Un typon est une image du circuit imprim. Les pistes sont en noir et le reste doit tre transparent la lumire. Notre mthode est dimprimer le typon sur une feuille blanche et verser lhuile de cuisine sur les deux faces pour la rendre transparente la lumire.

    1.3 Insoleuse / insolation Une insoleuse est un appareil fort simple, dot de trs peu de composants, que lon peut parfaitement fabriquer soi-mme. Ce type dappareil est dot de 1 4 tubes rayonnant des UV, et est destin insoler des plaques de circuit imprim prsensibilises (sous-entendus sensibles aux UV). Il est aussi possible dutiliser une ampoule spciale, mais les temps dinsolation sont bien plus longs et la rgularit de linsolation nest pas excellente, surtout pour les grands circuits.

    Figure 41

    Figure42 : plaque Epoxy

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 56 -

    Cette plaque est recouverte dune rsine sensible aux Ultraviolets. La rsine est protge de la lumire par une pellicule protectrice. Lopration consiste mettre limage du typon sur la plaque poxy en lexposant aux UV. Le temps dinsolation est trs important qui prend un peu prs 4min.

    Figure 43 : Insolation

    Utilisation dune insoleuse :

    - Dcouper la plaque dpoxy la taille du typon en laissant une marge de 0.5 1cm - Bien placer le typon sur la vitre de linsoleuse (Vue cote composantes) - Retirer la pellicule protectrice de la plaque - Placer le cot vert de la plaque sur le typon dans linsoleuse et fermez le capot. - Rgler la minuterie sur la valeur 4.

    Utilisation dune ampoule :

    - Dcouper la plaque dpoxy la taille du typon en laissant une marge de 0.5 1cm - Placer la plaque sur un endroit plat, le cot vert vers le haut - Mettre le typon au dessus de la plaque - Mettre une vitre en verre au dessus pour bien aplatir le typon sur la plaque dpoxy - Fixer une ampoule de 100 W 250 W environ 30 cm au dessus - Insoler 15 30 minute (Il est prfrable de faire des tests sur des petites plaque avant de

    lancer linsolation des vraies cartes) Aprs linsolation vient la rvlation.

    1.4 Rvlation Le rvlateur doit tre mis dans une bassine en plastique (PVC) ou en verre, le temps de rvler le circuit imprim, puis devra tre remis dans son rcipient de stockage juste aprs usage. La temprature optimale dutilisation de ce produit est gnralement de 20 24C. Le temps de rvlation peut varier de quelques secondes quelques dizaines de seconde, mais cela reste rapide dans tous les cas, et est parfaitement visible. Pendant quon remue (dlicatement) la bassine, On voie apparatre petit petit le cuivre nu (couleur rose) aux endroits exposs aux UV, cest dire aux endroits qui ne devront pas subsister ltape de gravure finale.

    1.5 La gravure

    La gravure va permettre au cuivre non protg par la couche de rsine (issu de la rvlation ou des mthodes 1 et 2) de se dissoudre. Plonger le circuit dans un bain de perchlorure de fer 50 pendant le temps ncessaire la dissolution en agitant fortement. Attention, le perchlorure de fer est un acide toxique et corrosif pour la peau mais aussi pour la tuyauterie. Ne pas laisser

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 57 -

    trop longtemps le circuit dans le bain sinon tout sera dissous. Bien rincer aprs gravure. Le nettoyage du circuit se fait avec de lactone ou du dissolvant ongle.

    1.6 Perage Une simple perceuse alimente en 12 V.

    Figure 44

    Paramtre des perages : - Rsistances, Diodes, Circuits intgrs, Transistors, Capacits... 0.8mm - Fils 1.5mm - Autres composantes 1.2 ou 1.5mm

    1.7 Soudage La technique du soudage ncessite une technique suivante : prchauffer la pastille et la patte

    avec le fer pendant un bref dlai, et seulement ensuite appliquer le fil dtain. On doit avoir

    ltain fondre et se positionner tout seul autour de la patte. Retirer le fil puis le fer.

    Figure 45 : Soudage

    2. La carte capteurs de dtection

    2.1 Mode de fonctionnement de capteur

    La diode est sous tension met toujours un signal.

    Cas de prsence de ligne noire on naura pas de rflexion, alors le phototransistor sera

    bloqu la sortie S = 0.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 58 -

    Cas dabsence de ligne noire on aura de rflexion, alors le phototransistor sera satur

    la sortie S = 1.

    Figure 46 : Cas de prsence de ligne Figure 47 : Cas dabsence de ligne

    2.2 capteurs de dtection de ligne

    Le schma ci-dessous est pour les six dtecteurs de ligne noire qui disposent une sortie pour

    chaquun vers les entres de pic de RB2 RB7.

    Figure 48 : Capteurs de la piste

    Ces capteurs rsultent diffrentes combinaisons possibles (Voir les figures 49 et 50).

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 59 -

    2.2.1 Cas de ligne dpaisseur = 10mm

    Figure 49 : cas de ligne dpaisseur = 10mm

    Combinaison

    binaire Ltat du robot

    % la ligne Commande des moteurs

    1 1 1 1 1 1 Absence de ligne Arrter les deux moteurs 0 1 1 1 1 1 Robot droite de la ligne Freinage forte de moteur gauche pour revenir au

    centre 1 0 1 1 1 1 Robot droite de la ligne Freinage moyen de moteur gauche pour revenir au

    centre 1 1 0 1 1 1 Robot droite de la ligne Freinage trs faible de moteur gauche pour revenir au

    centre 1 1 1 0 1 1 Robot gauche de la ligne Freinage trs faible de moteur droit pour revenir au

    centre 1 1 1 1 0 1 Robot gauche de la ligne Freinage moyen de moteur droit pour revenir au centre

    1 1 1 1 1 0 Robot gauche de la ligne Freinage forte de moteur droit pour revenir au centre

    1 1 1 1 1 1 Robot hors de la ligne Chercher la ligne

    Ce tableau montre les valeurs possibles des dtecteurs de ligne qui vont tre transmis vers les

    ports dentrs du pic de RB2 RB7. Selon ces valeurs le pic va commander le robot.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 60 -

    2.2.2 Cas de ligne dpaisseur > 10mm

    Figure 50 : cas de ligne dpaisseur > 10mm

    Figure 50 : La disposition du robot sur la ligne

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 61 -

    2.3 Capteurs de dtection de traits

    Pour une dtection de trait trace gauche ou droite de la ligne, on utilise deux capteurs,

    un droite et lautre gauche.

    Figure 51 : capteurs de traits

    2.4 Capteur de dtection dobstacle

    Pour la dtection dobstacle, on a utilis un capteur de mme type OBP704. La sortie de ce

    capteur transporte la valeur 1 dans le cas de la dtection et 0 dans le cas contraire vers lentr de

    la porte logique OU (OR).

    Figure 52 : Capteur de dtection dobstacle

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 62 -

    2.5 Ralisation du Typon de la carte capteurs

    COTE COMOPSANTS

    COTE CUIVRE

    2.6 Nomenclature de la carte des dtecteurs

    Dsignation Rfrence Quantit Symbole/Rel Prix unitaire

    (DH)

    200 W

    9

    1

    Rsistances

    57 kW 9

    1

    Dtecteurs

    OBP704

    9

    70 (7)

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 63 -

    3. La carte du Microcontrleur La carte de PIC possde :

    - Des entres RB2 RB7 sur lesquelles arrivent les informations provenant des

    opto-dtecteurs (photo-transistor) aprs une mise en forme de signal

    - Des entres RB0 et RB1 sur lesquelles arrivent les informations provenant des

    deux dtecteurs de traits et du dtecteur dobstacle pour former une

    interruption

    - Des sorties RA0, RA1, RA2 et RA3 qui commandent le moteur gauche et le

    moteur droit

    - Des portes logiques 74HC86, 74HC32, 74HC14, 74HC04 et 74HC08

    3.1 Le schma de la carte

    Figure 53 : Schma de la carte de microcontrleur

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 64 -

    La porte logique OU (74HC32) a deux entres O1 et O2 :

    - Lentre O1 est la sortie de dtecteur dobstacle qui vaut 1 au cas de la

    dtection dobstacle et vaut 0 au cas de non dtection

    - Lentre O2 est la sortie de la porte logique XOR (74HC86)

    O1 O2 Y=RB0

    0 0 0

    0 1 1

    1 0 1

    1 1 1

    Y= a + b

    Les portes logiques AND (74HC08) agir sur les sens des moteurs.

    3.2 Typon de la carte COTE COMOPSANTS

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 65 -

    COTE CUIVRE

    3.3 Nomenclature de la carte du microcontrleur :

    Dsignation Rfrence Quantit Symbole/Rel Prix unitaire (DH)

    Microcontrleur

    PIC16F84A

    1

    50

    Trigger of schmidth

    74LS14

    2

    12

    Porte XOR

    74LS86

    1

    12

    Porte OR

    74LS32

    1

    12

    Inverseur

    74LS04

    1

    8

    Rgulateur de

    Tension

    7805

    1

    7

    Support de pic 9 broches 1 5

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 66 -

    Quartz

    4Mhz

    1

    10

    Capacit

    27pf

    2

    3

    Rsistance 10 kW 7

    1

    4. La carte de commande de puissance des moteurs Les signaux de commande sont gnrs par un programme du microcontrleur puis

    amplifis grce un pont en H, capable de dlivrer le courant ncessaire.

    4.1 Amplification des signaux mis par le microcontrleur

    Le signal reu en sortie de microcontrleur est trs faible do la ncessit de lamplifier. Le

    montage damplification possde un double pont en H capable de dlivrer un courant suffisant

    chaque moteur et de les commander sparment.

    Figure 54 : Montage de commande de moteur M

    4.2 Le Moteur M1 Le tableau qui suit le schma montre ltat du moteur M1 selon les valeurs des signaux D1 et D2.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 67 -

    Figure 55 : Montage de commande de moteur M1

    D1 D2 T1 T2 T3 T4 T5 T6 Ltat du moteur M1

    0

    0

    Bloqu

    Bloqu

    Satur

    Bloqu

    Satur

    Bloqu

    Le moteur au repos (les deux broches a1 et b1 du moteur sont alimentes par la masse (GND))

    0

    1

    Bloqu

    Bloqu

    Satur

    Satur

    Bloqu

    Satur

    Le moteur marche au sens normal :

    - GND broche a1 - + 6V broche b1

    1

    0

    Satur

    Satur

    Bloqu

    Bloqu

    Satur

    Bloqu

    Le moteur marche au sens inverse :

    - + 6V broche a1 - GND broche b1

    1

    1

    Satur

    Satur

    Bloqu

    Satur

    Bloqu

    Satur

    Le moteur au repos (les deux broches a1 et b1 du moteur sont alimentes par +6V)

    4.3 Le Moteur M2 Le tableau qui suit le schma montre ltat du moteur M2 selon les valeurs des signaux D3 et D4.

    Figure 56 : Montage de commande de moteur M2

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 68 -

    D3 D4 T1 T2 T3 T4 T5 T6 Ltat du moteur M2

    0

    0

    Bloqu

    Bloqu

    Satur

    Bloqu

    Satur

    Bloqu

    Le moteur au repos (les deux broches a2 et b2 du moteur sont alimentes par la masse (GND))

    0

    1

    Bloqu

    Bloqu

    Satur

    Satur

    Bloqu

    Satur

    Le moteur marche au sens normal :

    - GND broche a2 - + 6V broche b2

    1

    0

    Satur

    Satur

    Bloqu

    Bloqu

    Satur

    Bloqu

    Le moteur marche au sens inverse :

    - + 6V broche a2 - GND broche b2

    1

    1

    Satur

    Satur

    Bloqu

    Satur

    Bloqu

    Satur

    Le moteur au repos (les deux broches a2 et b2 du moteur sont alimentes par +6V)

    Remarque :

    Le Transistor PNP : - Si ltat de la base B=1 le transistor est bloqu

    - Si ltat de la base B=0 le transistor est Satur

    Le Transistor NPN : - Si ltat de la base B=1 le transistor est Satur

    - Si ltat de la base B=0 le transistor est bloqu

    Figure 57 : Montage de commande des deux moteurs

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 69 -

    4.4 Le circuit imprim de la carte de commande de puissance

    COTE COMOPSANTS

    COTE CUIVRE

    4.5 Nomenclature de la carte de commande de puissance

    Dsignation Rfrence Quantit Symbole/Rel Prix unitaire (DH)

    BC327 PNP 4 2

    BC337 NPN 4 2

    Transistors BC549 NPN 4

    2

    100 W

    4

    Rsistances

    2.2 KW

    4

    1

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 70 -

    Servomoteur

    hs322_s : Hitech

    2

    143 (13)

    5. La carte et logiciels de programmation 5.1 MPLAB

    MPLAB est un outil de dveloppement pour les PIC 16F84 et autres, il prsente lnorme

    avantage dtre gratuit. On le tlcharge sur le site de Microchip.

    Il contient :

    un diteur,

    un assembleur,

    un simulateur.

    Il permet :

    La rdaction du fichier source en langage assembleur (fichier.ASM).

    Sa transformation en fichier objet (fichier.HEX) prt tre charg dans la

    mmoire programme du microcontrleur.

    Lensemble des fichiers ncessaires ces oprations est regroup dans un espace

    " projet " (fichier.PJT).

    Tous les fichiers dun mme projet doivent porter exactement le mme nom que

    le projet lui mme, seules diffrent les extensions.

    Dans l Annexe III les vues dcran nous permettent de crer une application.

    5.2 La carte de programmation

    Trs simple, ce petit programmateur est facile raliser. Il doit tre connect la prise srie

    (DB9) dun ordinateur type PC au moyen dun cble standard non crois (Modem). Il ncessite

    une alimentation de 5V. Le logiciel "PP84.exe" (freeware) permet de le mettre en oeuvre

    facilement sous Microsoft Windows. La masse du PC est connecte la masse (Vss) du PIC, ce

    qui permet la programmation in situ.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 71 -

    5.2.1 Principe dinterconnexion au PC

    Figure 58

    5.2.2 Schma de structures

    Figure 59 : Schma de structures

    5.2.3 Ralisation du circuit imprim

    Le circuit imprim et son implantation montre la simplicit de la ralisation. Il est important

    dutiliser un bon support pour le PIC, un modle tulipe. Car il faut pouvoir placer et enlever

    souvent le composant programmer. On peux utiliser une rallonge de port srie normal, cest

    dire non croise.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 72 -

    COTE COMOPSANTS

    COTE CUIVRE

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 73 -

    5.2.4 Nomenclature de la carte de programmation

    Dsignation Rfrence Quantit Symbole/Rel Prix unitaire (DH)

    R1:120 W (marron, rouge, marron)

    1 1

    12kW 4 1

    47kW (jaune, move, orange)

    1 1

    Rsistances

    33kW (orange, orange, orange)

    1

    1

    Capacit

    100 nf

    1

    2

    Transistor BC327 PNP 1 2 LED Rouge 3mm faible

    consommation 1 1

    Zener 4,7 V 2 2 Zener 12V 1 2

    Diodes

    4148 1 1 Connecteur DB9 femelle 1 15

    Support 18 broches tulipe 1 5 cble rallonge du port

    srie 1 --

    2 Transfert du programme sur le PIC Pour transfrer le programme sur le PIC, nous allons utiliser PP84. La procdure pour programmer le PIC16F84A dcrire ci-aprs suppose que les options de configuration sont au dpart celles par dfaut. Il est toujours possible de rinitialiser la configuration par dfaut dans longlet Config .

    Figure 60 : Le PP84

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 74 -

    Chapitre 3 : la programmation

    1. Rappel du cahier de charges fonctionnel et technique Le suivi de ligne est le cur du robot, cest de cette partie que va surgir les diffrentes

    stratgies pour gagner en vitesse, position et en temps

    Les diffrentes fonctions sont :

    - Analyser la trace

    - Anticiper un virage par ralentissement

    - Dtecter que le marquage au sol indique une priorit respecter (cas de trait)

    - Dtecter un obstacle indique une priorit respecter.

    La priorit est lance grce linterruption que lon va expliquer aprs.

    Cette programmation se fera en langage assembleur MPASM.

    2. Fonctionnement : Tout dabord tirer le jack de robot pour mettre marche et poser le sur la ligne, le robot doit

    avancer tout droit, sil rencontre un trait gauche grce un dtecteur de cot gauche, il doit

    faire un tour complte de 360 en inversant le sens de moteur droit. Aprs le robot marche en

    avant sur la ligne. Sil rencontre un trait droit grce un dtecteur de cot droit, il doit faire un

    tour complte de 360 en inversant le sens de moteur droit. Aprs la tour le robot avance tout

    droit sur la ligne et sil rencontre un croisement, le robot doit marcher en avant.

    Si le robot rencontre un obstacle pour la 1re fois, il fait un demi-tour (180) et marche en avant.

    Si le robot encontre un obstacle pour la 2me fois, il sarrte.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 75 -

    Figure 61 : diffrents situations du robot

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 76 -

    3. Organigramme :

    Figure 62 : organigramme de la programmation de gestion de la commande des moteurs

    4. Explication de lorganigramme : On doit tout dabord initialiser le microcontrleur pour permettre son fonctionnement. Ensuite on reoit des donnes provenant dun sous programme qui nous fournit le sens de rotation des moteurs. Enfin selon les donnes reues le programme envoie des signaux qui permettent de grer la direction des moteurs, cest--dire sa marche avant, rotation ou frein.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 77 -

    5. Algorithme principal

    Figure 63 : Algorithme principal

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 78 -

    6. Interruption

    Figure : 64

    La porte OU (OR) pour lancer linterruption :

    - Si la sortie de OU = 0 RB0 = 0 alors on naura pas dinterruption.

    - Si la sortie de OU = 0 RB0 = 1 alors on aura linterruption.

    La porte XOR spcifi linterruption :

    - Si la sortie de XOR =1 alors linterruption vient des dtecteurs de traits pour

    lancer un tour complte

    - Si la sortie de XOR = 0 alors linterruption vient du dtecteur dobstacle.

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 79 -

    7. Programme de linterruption

    Figure 65 : programme de linterruption

  • Conception et ralisation de robot suiveur de ligne FSR_2008

    - 80 -

    Ce projet couvre un grand nombre de domaines de comptences :

    - ralisation dune carte lectronique (CAO)

    - tude de la commande de moteur en MLI

    - programmation microcontrleur

    - rdaction dun dossier de projet

    A la fin de ce travail qui consiste a ltude et la mise en uvre dun robot suiveur de ligne .le

    travail de ce type de robot a exige la matrise de plusieurs notions techniques aussi bien le

    domaine micro lectronique et celui de linformatique, ce que fait que jai eu loccasion

    dcouvrir, la programmation bas niveau par Mplab , les techniques ncessaires pour