Vous êtes sur la page 1sur 46

Dpartement de Recherche en lectromagntisme (DR)

de Suplec et du L2S (UMR 8506/CNRSSuplecUPS) Suplec, Plateau du Moulon, F-91192 Gif-Sur-Yvette Cedex, France Tel : +33 (0)1 69 85 12 12 Fax : +33 (0)1 69 85 17 65

tude et Ralisation dune commande moteur pas--pas Ralisation de la carte de commande et programmation de la carte PCI4400

Rapport de Stage

Luc Yin

Responsable de stage : Christophe Conessa Responsable IUT : Antoine Diet

Stage du 7 avril au 27 juin 2008 DUT gnie lectrique et informatique industrielle

Commande moteur pas--pas

Luc Yin

Je tiens tout dabord remercier tous les membres du Dpartement Recherche lectromagntique du Laboratoire des Signaux et Systmes (L2S) pour leurs accueils chaleureux. Je tiens galement remercier mon tuteur de stage Christophe Conessa (assistant ingnieur) pour ses prcieuses aides au cours de mon stage et mon tuteur IUT Antoine Diet (enseignant chercheur lIUT de Cachan) pour mavoir prsent et introduit au Dpartement de Recherche lectromagntisme (DR), ainsi quAlain Joisel (chercheur CNRS bnvole au DRE) et Tommy Gunnarsson (thsard travaillant sur la dtection de tumeurs partir de donnes multivue acquise par lintermdiaire dune camra micro-onde) pour leurs soutiens. Je finirai par un grand remerciement tous les membres du DR pour leur gentillesse et leur bonne humeur.

Luc Yin

Commande moteur pas--pas

Rsum Le Dpartement de Recherche en lectromagntisme (DR) a une activit consacre limagerie micro-onde. Au sein du DR, les chercheurs ont dvelopp utilise une camra micro-onde pour tudier et caractriser les proprits des matriaux. Cette camra tant en constante volution, les chercheurs essayent de loptimiser et damliorer ces performances dans le cadre dune reconstruction quantitative. Jusqu prsent, la camra ntait utilise que pour des acquisitions en temps rel. On pouvait ainsi estimer la permittivit des objets tudis grce une comparaison du champ incident avec le champ totale. Mais cela devient plus dlicat pour des applications mdicales. Pour la visualisation et lanalyse de cellules cancreuses ou tumfies, il faudra dans un premier temps filmer le corps sain, puis filmer une deuxime fois avec le corps malade, ce qui est impossible. Ainsi, dans le cadre de la thse de Tommy Gunnarsson [1], les chercheurs veulent donc mettre en place un algorithme capable laide des prises multivues, de reconstituer les tissus humains et localiser les cellules malades. Cest pour cela, que les chercheurs privilgieront donc laspect quantitatif de lacquisition. Dans cette perspective, un systme automatis simpose, il a pour but dautomatiser lacquisition de chaque mesure.

Mots Cls : Camra micro-onde 2,454GHz, Commande numrique moteur pas--pas, Carte PCI4400, Programmation en C, Electromagntisme, Onde, Liaison carte de contrle/ordinateur, Moteur pas--pas, Ralisation et Programmation, Dtection tumeur.

Commande moteur pas--pas

Luc Yin

Glossaire Diffraction des ondes: Phnomne de dviation des ondes (lectromagntiques, lumineuses, acoustiques...) lorsqu'elles passent au voisinage d'un obstacle Micro-onde : sont des ondes lectromagntiques de longueur d'onde intermdiaire entre l'infrarouge et les ondes de radiodiffusion. Le terme de micro-onde provient du fait que ces ondes ont une longueur d'onde plus courte que celles de la bande VHF, utilise par les radars pendant la Seconde Guerre mondiale. Les micro-ondes ont des longueurs d'onde approximativement dans la gamme de 30 centimtres (1 GHz) 1 millimtre (300 GHz) Invasif : Un examen invasif est un examen mdical requierrant une effraction de la peau plus importante qu'une simple ponction veineuse. Il peut tre dsagrable (pas obligatoirement), et ncessite parfois une anesthsie locale ou gnrale. Il peut ncessiter une hospitalisation et comporte un certain nombre d'effets secondaires, voire, de risque d'accident. Propagation des ondes : En physique, la propagation des ondes est un phnomne qui est dcrit par l'volution d'une onde, ou du mouvement d'une particule dans le temps et l'espace, par rapport un milieu. Rflexion : La rflexion est le brusque changement de direction d'une onde l'interface de deux milieux. Aprs rflexion l'onde reste dans son milieu de propagation initial. Rfraction : En physique des ondes, le phnomne de rfraction est la dviation d'une onde lorsque la vitesse de celle-ci change entre deux milieux. Typiquement, cela se produit l'interface entre deux milieux, ou lors d'un changement d'impdance du milieu. Tomographie : Mthode d'exploration radiologique qui permet d'obtenir des radiographies par plans d'un organe, une profondeur dtermine. Dilectriques (Corps) dans lequel la dperdition d'nergie est faible quand ce corps est soumis un champ lectrique. Un matriau est dilectrique s'il ne contient pas de charges lectriques susceptibles de se dplacer de faon macroscopique. Autrement dit, c'est un milieu qui ne peut pas conduire le courant lectrique. ce titre, on l'appelle parfois isolant lectrique. Permittivit : La permittivit, ou permittivit dilectrique, est une proprit physique qui dcrit la rponse d'un milieu donn un champ lectrique. C'est une grandeur essentielle de l'lectrostatique, ainsi que de l'lectrodynamique des milieux continus. Elle intervient dans de nombreux domaines, notamment dans l'tude de la propagation des ondes lectromagntiques, et en particulier la lumire visible. On la retrouve donc en optique, via l'indice de rfraction. Les lois grant la rfraction et la rflexion de la lumire y font appel. Fantmes : Dans le domaine des mesures lectromagntique, ces sont des corps ou objets exprimentaux qui simule les proprits dilectrique du corps.

Luc Yin

Commande moteur pas--pas

Diagramme de Gantt

Semaine Prise en main de l'ensemble Prparation prsentation Ralisation maquette de commande et de l'interface Programmation de fonctions de commande simples Intgration du programme dans TOMOWIN Prparation de la soutenance et du rapport Dernires mises au point du systme

10

11

12

13

14

Le planning au sein de DR sest pass de la manire suivante : Durant les deux premires semaines, mon activit se porte sur la documentation du sujet du stage qui est la commande motrice dun moteur pas--pas, ceci comprend la lecture des prcdents rapports sur la camra micro-onde et sur la commande numrique du moteur, ainsi que la recherche et le dveloppement dun nouveau systme de commande motrice. Puis dans la priode de vacance de Suplec, o les stagiaires ntaient pas autoriss venir travailler au DR, jai ralis une petite prsentation sur le sujet de mon stage. Aprs discussion et dbat sur la connectique de commande, mes tuteurs et moi sommes tombs daccord sur un planning davancement du travail, ainsi que sur le cahier des charges respecter. Dans les semaines qui ont suivies, jai commenc la ralisation de la carte de commande, et effectu les tests et mesures. Puis je suis pass sur la partie software de mon stage, c'est-dire, la partie programmation des commandes du moteur. Enfin, aprs des semaines de travail, nous avons intgr notre systme la camra microonde.

Commande moteur pas--pas

Luc Yin

Rsum ....................................................................................................................................... 4 Mots Cls : ................................................................................................................................. 4 Glossaire ..................................................................................................................................... 5 Diagramme de Gantt .................................................................................................................. 6 Partie 1 Prsentation de lenvironnement du stage ................................................................ 8 1.1 Prsentation et organisation de Suplec ................................................................ 9 1.2 Le DRE au L2S .................................................................................................... 10 Partie 2 La camra micro-onde, la mesure quantitative multivue ....................................... 12 2.1 Ltude thorique ................................................................................................. 13 2.1.1 Les diffrentes gammes de frquence des ondes.................................. 13 2.1.2 Principe bas sur la diffraction des ondes ............................................ 16 2.2 Ltude exprimentale .......................................................................................... 17 2.2.1 Prsentation de la camra micro-onde.................................................. 17 2.2.2 Schma densemble et synoptique de la camra .................................. 18 2.2.3 La modulation de la rtine .................................................................... 19 2.2.4 Principe de la mesure multivue ............................................................ 20 Partie 3 Mise en uvre dun systme automatis................................................................ 21 3.1 Introduction aux moteurs pas pas ...................................................................... 22 3.1.1 Commande dun moteur pas pas ....................................................... 22 3.1.2 Les travaux antcdents de la commande motrice ............................... 23 3.2 Etude dun systme automatis ............................................................................ 24 3.2.1 Caractristiques du moteur pas pas ................................................... 24 3.2.2 Commande moteur : L297 et L298 ...................................................... 25 3.2.3 Interfaage PC/moteur.......................................................................... 28 3.3 Les aspects concrets ............................................................................................. 29 3.3.1 Ralisation de la carte de commande ................................................... 29 3.3.2 Programmation de la carte PCI4400 .................................................... 30 3.3.3 Tests et Mesures ................................................................................... 32 3.3.3.1 Loscilloscope LeCroy .......................................................... 33 3.3.3.2 Mesure du couple moteur ...................................................... 34 Synthse et bilan personnel ...................................................................................................... 35 Bibliographie ............................................................................................................................ 36 Partie 4 Annexes .................................................................................................................. 37

Luc Yin

Commande moteur pas--pas

Partie 1 Prsentation de lenvironnement du stage

Commande moteur pas--pas

Luc Yin

1.1 Prsentation et organisation de Suplec


L'cole Suprieure d'lectricit est une grande cole d'ingnieurs au cur des sciences de l'information, de l'nergie et des systmes. Suplec est une rfrence dans le domaine des sciences de linformation et de lnergie. Elle constitue une voie daccs privilgie vers le monde professionnel. Au niveau international, Suplec peut se comparer aux plus prestigieux Electrical Engineering and Computer Science Departments des grandes universits europennes et amricaines. La qualit des ingnieurs diplms chaque anne est mondialement reconnue. Le recrutement est fait partir dun concours lissue des Classes Prparatoires, complt par un recrutement sur titres universitaires, dtudiants franais ou dtrangers. La formation dingnieur constitue la mission principale de lcole, qui a une dure de trois ans.

Les formations proposes sont : Le diplme dingnieur Le diplme de Master Recherche Le diplme de spcialisation en un an Les mastres spcialiss

On compte 3 campus en France : en Ile-de-France Gif-sur-Yvette (depuis 1975) en Lorraine Metz (depuis 1985) en Bretagne Rennes (depuis 1972)
Fig.1 Vu arienne de Suplec Source : Suplec

Suplec en chiffres
1850 tudiants 440 diplmes d'ingnieurs 150 programmes de formation continue 6 mastres spcialiss 150 enseignants-chercheurs 580 enseignants vacataires 140 personnels techniques et administratifs 13 laboratoires et units de recherche 210 doctorants

Fig.2 Source : Suplec

Luc Yin

Commande moteur pas--pas

1.2 Le DRE au L2S


Organigramme du Laboratoire de Signaux et Systmes (L2S)

L2S

Suplec Gif-sur-Yvette

Division Systmes

Division Signaux

Division Ondes DRE

Dept. EMG

Fig.3 organigramme du L2S

Les divisions scientifiques : Division Signaux Division Systmes Dpartement de la Recherche en Electromagntisme (DRE) La division Signaux dveloppe des travaux sur le traitement des signaux et des images considrs comme des vhicules de linformation. La division Systmes tudie la modlisation des systmes, lanalyse des proprits des modles obtenus et leur utilisation pour la commande, la comprhension ou le diagnostic.

Lactivit du DRE sorganise autour de trois domaines : - Ltude des systmes rayonnants complexes, tels que les tlphones portables ou les stations de base. - Ltude de la compatibilit lectromagntisme (CEM), visant tudier puis rduire linfluence dun environnement perturbateur sur un systme lectronique ou, inversement, les perturbations de lenvironnement par ce systme. - Ltude des problmes inverses dans le domaine des ondes dont le but est soit de caractriser les sources lorigine dun rayonnement mesur, soit de cartographier les paramtres physiques dune structure inconnue partir de la mesure du champ rsultant de son interaction avec une onde. Un exemple concret : la camra micro-onde.

10

Commande moteur pas--pas

Luc Yin

Le sujet du stage portant sur la camra micro-ondes, le stage seffectue donc dans le Dpartement de Recherche lectromagntisme (DRE).

La grande chambre anchode permet les mesures de champs lectromagntiques dans l'environnement sans rflexion donde lectromagntique.

Fig.4
Source : CNRS-SUPELEC-UPS

La division ondes dont le responsable est Mr Bernard Duchne, s'intresse au problme du rayonnement, de la propagation et de la diffraction des ondes lectromagntiques, et, un moindre degr, acoustiques, avec une insistance particulire sur les modlisations de configurations complexes et les simulations numriques, sans ngliger pour autant les validations exprimentales. On peut voir ci-dessus (Fig 1.2.1), la grande chambre anchode avec ses cnes en mousses absorbant les ondes lectromagntiques. La division ondes est fdre avec le service lectromagntisme de Suplec au sein du Dpartement de Recherche en lectromagntisme (DR).

Simulation et test des effets des ondes tlphoniques sur un fantme dune tte humaine. Fig.5 Source : CNRS-SUPELEC-UPS

Nous allons nous intresser maintenant la prsentation gnralement de la camra microonde et de la problmatique lie la conception dun systme dacquisition automatis. Ensuite, nous traiterons plus en dtails le sujet du stage au sein du DRE : la ralisation dune commande de moteur pas--pas.

Luc Yin

Commande moteur pas--pas

11

Partie 2 La camra micromicro-onde, la mesure quantitative multivue

12

Commande moteur pas--pas

Luc Yin

2.1 Ltude thorique 2.1.1 Les diffrentes gammes de frquence des ondes
Une onde, c'est une perturbation qui se propage par exemple soit la surface de l'eau, soit le long dune corde, ou bien dans l'air. Cette perturbation se dplace sans se dformer dans lair, et sans emporter de matire avec elle. Elle est donc idale pour transporter l'information. Ainsi, nous utilisons nos yeux pour recevoir la lumire et nos oreilles pour recevoir le son. Ces ondes nous apportent des informations distance. Elles sont la base de notre perception du monde, d'o leur extrme importance. Les phnomnes sont nombreux et ncessitent la connaissance des proprits des ondes pour tre expliqus. Dans le domaine des ondes visibles, cela permet d'expliquer tout ce qui se voit : de la couleur des objets, aux lampes qui brillent. Dans le domaine des ondes acoustiques, cela permet de comprendre ce qu'est la hauteur d'une note ou le timbre d'un instrument.

Il existe donc plusieurs types dondes : les ondes lectromagntiques les ondes sonores

Fig.6 Ondes de surface

Dans le cas de ntre camra micro-onde, nous allons nous intresser aux ondes lectromagntiques. Ces ondes, comme leur nom l'indique, sont une combinaison de deux perturbations, l'une magntique, l'autre lectrique.

Fig.7 Caractristique dune onde lectromagntique dans lair

Luc Yin

Commande moteur pas--pas

13

Les diffrentes gammes de frquences des ondes lectromagntiques sont : Les ondes radio sont des ondes lectromagntiques avec de grandes longueurs d'onde qui peuvent atteindre des kilomtres. Par exemple, les missions de radio sur grandes ondes entre 150 et 260 kHz (kilohertz). Les micro-ondes sont plus courtes que les ondes radio. Elles sont utilises dans de nombreuses applications telles que la dtection radar ou les fours micro-ondes . Les rayonnements infrarouges peuvent transfrer leur nergie sous forme de chaleur. Ces rayonnements sont mis par les objets chauds tels que les radiateurs, les fers repasser... et mme les corps humains. Les ondes visibles : appele aussi spectre visible ou spectre optique est la partie du spectre lectromagntique qui est visible pour l'il humain. Ces extrmes correspondent respectivement aux couleurs violet et rouge. Cependant, l'il peut avoir une certaine rponse visuelle dans des gammes de longueurs d'onde encore plus larges. Les ultraviolets sont nocifs pour la sant humaine et provoquent le bronzage. Ils peuvent provoquer des cancers cutans tel que le mlanome, provoquer un vieillissement prmatur de la peau (rides), des brlures (coup de soleil), des cataractes ... Les rayons X, C'est un rayonnement ionisant utilis dans de nombreuses applications dont l'imagerie mdicale et la cristallographie. Ces sont des radiations ionisantes. Une exposition prolonge aux rayons X peut provoquer des brlures (radiomes) mais aussi des cancers. Les rayons gamma, sont mis par des atomes radioactifs dont on tire profit en mdecine nuclaire. Les rayons cosmiques venant de l'univers, rayonnements de trs courtes longueurs d'onde, transportent une trs grande nergie et pntrent facilement dans la matire. La camra micro-onde est lun des procds utilisant les ondes lectromagntique comme un principe dimagerie, tel que les rayons X. La longueur des ondes utilises est fonction de la taille des corps observs. Limagerie micro-ondes ne vient pas remplacer les rayons X, mais pour les complter. Les micro-ondes possdent nanmoins un avantage non ngligeable, elles sont non invasives*, cest--dire, quelles ne sont pas dangereuses pour le corps humain. La taille des corps ou objets quon voudrait observer tant de lordre de la longueur donde, on a :

o:

est la longueur d'onde de l'onde c est la vitesse de la lumire (310*8 m/s) est la frquence de l'onde

La vitesse de propagation d'une onde lectromagntique (note c, du latin celeritas) dans le vide est de 2.997 924 5810*8 ms-1. La clrit tant constante, les longueurs d'onde sont inversement proportionnelles aux frquences.

14

Commande moteur pas--pas

Luc Yin

Ainsi on peut dresser les tableaux suivants :

Fig.8 Gamme des frquences des ondes lectromagntiques source : intellego.fr

Luc Yin

Commande moteur pas--pas

15

2.1.2 Principe bas sur la diffraction des ondes

La longueur donde des micro-ondes tant de lordre des objets analyss, cest--dire de lordre du centimtre. Le principe de limagerie micro-onde est donc bas sur la diffraction des ondes* mises. On peut illustrer cela par des simulations informatiques, et observer linteraction des ondes avec un corps ou un objet. Daprs la premire simulation avec une onde de rayon X (Fig.9) avec un objet mtallique, londe nest pas diffracte*.

Fig.9 Interaction dune onde de rayon X avec objet mtallique

Dans la gamme de frquence des micro-ondes, au contact dun objet mtallique (Fig.10), londe sy rflchi*, elle ny pntre pas. Mais avec un objet non-mtallique (Fig.11) tel que le bois par exemple linteraction va tre diffrente, le bois tant permable aux micro-ondes, londe traverse celui-ci. Le champ diffract rsultant est perturb en amplitude et en phase. Ainsi on peut conclure que tout objet soumis un champ lectromagntique cre un champ diffract qui lui est caractristique, dpendant de sa dimension et de ses proprits dilectriques*.

Fig.10 Interaction dune onde micro-onde avec un objet mtallique

Fig.11 Interaction dune onde micro-onde avec du bois

Le problme essentiel pour obtenir une image micro-onde est la mise au point dune camra capable danalyser les variations des fronts donde. Linnovation tait la suivante, rcolter londe diffracte grce une rtine base de diodes.

16

Commande moteur pas--pas

Luc Yin

2.2 Ltude exprimentale 2.2.1 Prsentation de la camra micro-onde


La camra micro-onde (Fig.12) utilise la proprit dune onde lectromagntique dont on calibre les caractristiques de dpart, tel que lamplitude, la frquence, la direction et la polarisation. Cette onde est diffracte par un objet (une tumeur par exemple), elle nest alors plus plane et prsente des modifications significatives lies et des caractristiques de lobjet. Il faut donc rcuprer londe diffracte pour reconstituer les informations sur lobjet diffractant.
Fig.12 La camra micro-onde

Il est donc possible, laide dalgorithme et dune instrumentation adapte (Fig.13) de dterminer et de reconstituer le chemin parcouru par londe diffracte. Il sagit de la tomographie*. La camra micro-onde reprsente une mthode non-invasive pour la dtection de cancers ou tumeurs. La technique des micro-ondes compare aux mthodes utilises actuellement tels que les rayons X, est moins dangereuse pour les cellules humaines, elle est aussi moins coteuse mettre en uvre compar lIRM (imagerie par rsonance lectromagntique). De plus, les micro-ondes sont plus homognes dans diffrent milieux, la rencontre des poumons (tissu vers air puis air vers tissu) et dautres environnements propres certains organes, ce qui permet de rendre la camra micro-onde plus fiable que dautres mthodes. Limagerie micro-onde sera peut-tre un procd quon utilisera dans la mdecine de demain.

Fig.13 Instrumentation de la camra micro-onde

Luc Yin

Commande moteur pas--pas

17

2.2.2 Schma densemble et synoptique de la camra


La camra, comme le montre la figure 14 est compose de deux antennes directionnelles en forme de cornet (metteur et une de rcepteur). Entre ces deux antennes, on y trouve une cuve deau chauff et maintenu 37, grce un systme rgulant la temprature. Cette temprature sapparente et simule la temprature du corps humain. En effet, si dans des applications mdicales, tel que la dtection de tissus cancreux, les mesures et analyses doivent se faire dans des milieux dont les proprits dilectriques doivent se rapprocher le plus de celui du corps humain, et ainsi obtenir des visuels contrasts entre le tissus sain et la tumeur. Cest dans cette cuve que les fantmes* sont placs pour tre analyss. Le rayonnement micro-onde 2.45GHz traverse le fantme plac dans la cuve et produit une onde diffracte qui est analyse par le rseau de mesure du champ ou rtine. A partir des informations reues on retrouve l'amplitude et la phase du champ.

Fig.14 Schma densemble de la camra micro-onde

18

Commande moteur pas--pas

Luc Yin

2.2.3 La modulation de la rtine


Grce au champ micro-onde diffract par le fantme, la camra micro-onde va mesurer lamplitude et la phase en un point pour dterminer les proprits dilectriques de lobjet. Cet objet est plac dans une cuve remplie deau 37C entre le cornet metteur et celui du rcepteur. Il est plac dans leau pour la raison suivante, leau sapparente plus aux proprits dilectriques du corps humain linverse de lair. Donc on rduit le contraste entre le milieu et lobjet observ.

Fig.15 Rtine de la camra 2,45 GHz. Rseau de 1024 diples chargs par des diodes PIN. 32 lignes x 32 colonnes.

La rtine de diples (Fig.15) permet de moduler le signal dmission. Il se base sur un principe physique de llectromagntisme. Aprs que londe de dpart 2,454 GHz soit diffracte, le signal est rcupr au moyen dun rseau de diodes (32x32), chacune des diodes va tre module son tour une frquence de 200kHz. Ainsi, dun point de vue frquentiel (Fig.16), nous aurons linformation londe micro-onde mise 2,454GHz plus ou moins 200kHz. Les informations rcupres sont la phase et lamplitude. Les informations portes par les raies sont +/-200kHz autour de la porteuse 2,454GHz.

Fp Fp-0.2 Fp+0.2

GHz 2.4538 2.454 2.4542

Fig.16 Etalement frquentiel des informations reues par le champ de diode

Le 1er prototype imageur micro-onde comporte un systme dmission. Lmetteur rayonne dune manire aussi homogne que possible. La longueur dpend de lobjet tudier, elle est de lordre du centimtre. Londe ainsi mise par une antenne, de type cornet, se propage lintrieur de lobjet. La propagation des micro-ondes nest pas rectiligne comme les rayons X.

Luc Yin

Commande moteur pas--pas

19

La rtine est lune des parties cls de la camra, cest elle qui va recueillir les informations du corps analys. Comme on le voit sur la figure 12, londe incidente atteint la main, puis elle est diffracte, puis recueillie sur le champ de diodes moduls, on peut ainsi reconstituer limage de la main et ces proprits dilectriques laide dun algorithme de rtropropagation.
Fig.12 Une main devant la rtine

Aprs rception des informations, les donnes sont traites et subissent diffrentes oprations mathmatiques (Fig. 13) pour donner une meilleure rsolution de limage.

Fig.13 Traitement de limage

2.2.4 Principe de la mesure multivue


Lapplication actuelle de la camra micro-onde se limite lobservation en temps rel. Le principe de multivue est venu lide aux chercheurs de DR ds lors quils ont voulus dtecter des cellules cancreuses ou tumfies. Cette tche difficile est actuellement attribue au thsard sudois Tommy Gunnarson, dont le sujet est ltude de la faisabilit de la dtection de tumeur cancreuse dans le sein.

Pour cela, il effectue des successions de rotation du fantme analyser, et lance pour chacune de ces rotations, une mesure quantitative. Actuellement, la rotation du fantme se fait de faon manuelle, laide dun disque rapporteur gradu sur 360 (Fig.14), on vient tourner le fantme tous les intervalles de rotations o lon voudrait faire une mesure. De plus le temps mesure entre chaque rotation est extrmement lent. Il est donc devenu impratif, de mettre en place un systme automatis capable de faire tourner le fantme analyser. Cest partir de cette ncessit quest n le sujet du stage : la commande moteur dun moteur pas--pas.
Fig.14 Mode opratoire actuel de rotation

20

Commande moteur pas--pas

Luc Yin

Partie 3 Mise en uvre uvre dun systme automatis

Luc Yin

Commande moteur pas--pas

21

3.1 Introduction aux moteurs pas pas 3.1.1 Commande dun moteur pas pas
Un moteur (du latin mtor: "celui qui remue") est un dispositif transformant une nergie nonmcanique (olienne, chimique, lectrique, thermique par exemple) en une nergie mcanique. Les moteurs pas--pas (Fig.14) diffrent de beaucoup des moteurs classiques. Au lieu de leur fournir une tension continue, on doit alimenter des bobines dans une squence prcise. Elle permet de transformer une impulsion lectrique en un mouvement angulaire. De plus en alimentant une ou plusieurs bobines du moteur, on peut maintenir le moteur fig.

Fig.14 Moteur pas--pas

Ce type de moteur est trs courant dans tous les dispositifs o l'on souhaite faire du contrle de vitesse ou de position. L'usage le plus connu du grand public se trouve dans les imprimantes relies un ordinateur On trouve trois types de moteurs pas pas : - le moteur aimants permanents - le moteur rluctance variable - le moteur hybride Le moteur aimant permanent : Il sagit du type de moteur le plus utilis dans les applications autres quindustriel. Car il sagit dun moteur bon march, couple faible, et de basse vitesse, il est donc idal pour des applications comme les priphriques d'ordinateur. Malgr sa construction qui engendre des pas relativement grands, il est compens par sa simplicit qui lui donne un conomique lorsquil sagit dune production grande chelle et faible cot. Son utilisation est toutefois limite des applications comportant peu d'inertie, comme positionner la roue d'impression d'une imprimante marguerite. Le moteur rluctance variable : Il n'y a pas d'aimant permanent dans un moteur rluctance variable. Ainsi, le rotor tourne librement sans couple rsiduel. Ce type de moteur est souvent utilis dans des applications de petite taille, comme pour des tables de micro-positionnement. Ils ne sont pas sensibles la polarit du courant et requirent un contrle diffrent des autres types de moteurs. Le moteur hybride : Le moteur hybride est de loin le plus rpandu des moteurs dans le domaine industriel. Son nom provient du fait qu'il combine les principes d'opration des deux autres types de moteur (aimant permanent et rluctance variable).

22

Commande moteur pas--pas

Luc Yin

3.1.2 Les travaux antcdents de la commande motrice


Des travaux ont dj t mens par des anciens tudiants de lIUT de Cachan sur la commande motrice dun moteur pas--pas, le but tant dautomatiser le systme dacquisition. Ils ont t effectus par les tudiants Christophe Laurioux et Christophe Mang, qui tait en priode de stage au DR. Leur systme (Fig.15) comprenait deux modes de contrles, le premier tait une commande logicielle par ordinateur et le deuxime tait une commande manuelle. Le pilotage manuel se faisait grce un montage de roues codeuses et de boutons poussoirs sur la carte de commande. La carte elle-mme tait commande via une connexion srie 8 broches.
Fig.15 Carte moteur automatique/Manuel

La carte de commande motrice tait compose de plusieurs parties : dune partie circuit de commande : L297 et L298 (quon traitera dans les parties suivantes), dune partie microcontrleur, dune partie adaptation de tension laide du circuit MAX232.

Le cur de ce montage est contrl par le microcontrleur C80C52, il analyse les paramtres afin dexcuter la rotation dans de meilleures conditions (rapidit, prcision) en mode Manuel/Automatique. Dialogue avec le PC via la liaison RS232 en mode automatique. Sans ce dernier circuit, les frquences de commande de la carte changeront de frquence en fonction des tches lances sous Windows. Ils ont donc utilis un microcontrleur pour avoir un systme qui gnre les frquences de commandes indpendant du PC. Pour que le dialogue entre le PC et le microcontrleur se fasse, il faut tout dabords soccuper des niveaux en sorties et en entres du PC et du microcontrleur. Cest l quentre en jeu, le MAX232, il rgule et transforme les niveaux en sortis du PC en niveau adapt pour le microcontrleur. Le MAX232 permet de raliser des liaisons RS232 et des interfaces de communications, il amplifie et met en forme deux entres et deux sorties TTL/MOS vers deux entres et deux sorties RS232. Le systme tait certes trs astucieux, mais il na pas pu tre intgr la camra micro-onde, faute de reproductivit. C'est--dire que lorsque lon demandait au moteur de tourner de 180 dans le sens trigonomtrique, ensuite de lui redemander de revenir sa position initiale, donc de tourner de 180 dans le sens anti trigonomtrique, le moteur ne revenait pas sa place initiale, il avait un degr dcart. A cause de la difficult dintgration des commandes dans le nouveau programme de mesure, le programme de 1994 na pas retenu.

Luc Yin

Commande moteur pas--pas

23

3.2 Etude dun systme automatis 3.2.1 Caractristiques du moteur pas pas
Le moteur utilis est de chez Crouzet Servo, n82 972 003 (Fig.16):

Fig.16 Notre moteur pas--pas

Daprs le rapport des stagiaires du projet commande numrique dun moteur pas--pas, il sagit dun moteur unipolaire 4 phases (voir documentation technique du rapport). Le pas du moteur est de 1,8, il est ramen 1 grce un systme de courroies et de poulies. Cela laide dun rapport des diamtres des poulies de 1,8. Les Caractristiques principales sont :

- lectriques : - mcaniques :

12V 0,6A 20 par enroulement pas : 1,8 Couple statique : 0,35 Nm Vitesse maximale : 700pas/s Inertie du rotor : 105g.cm

Le moteur possde un stator deux enroulements point milieu relis la masse (Fig.17) et dun rotor une paire de ples (N-S).
Fig.17 Configuration interne

Cette configuration permet une alimentation indpendante des 4 bobinages. De ce fait, il est considr comme ayant 4 enroulements. Ce type dalimentation est dites unipolaire, du fait que lalimentation de chaque bobine se fait toujours dans le mme sens. Ainsi, chaque alimentation des enroulements cre un mouvement angulaire. Il faut donc alimenter chacun des enroulements de manire successive pour faire tourner le moteur, la frquence dalimentation de chaque enroulement dterminera la vitesse de rotation du moteur.

24

Commande moteur pas--pas

Luc Yin

3.2.2 Commande moteur : L297 et L298


Les circuits intgrs L297 et L298 (voir documentation technique en annexes) ont t conus de manire fonctionner ensemble, mais ils peuvent aussi bien ltre sparment. Le circuit L297 est appel translateur, il gnre les squences d'alimentation des diffrentes phases ou enroulements du moteur, en demi-pas, en pas entier une phase et en pas entier deux phases. Le circuit L298, elle est une tage de puissance ou appel couramment driver. Le schma suivant reprsente une configuration typique du circuit de commande de moteur pas pas L297 et le double pont L298 pour former une interface avec microprocesseur.

Fig.18 Schma densemble de la carte de commande

Le translateur L297 est command par les principales entres logiques suivantes: - Clock : commande de la vitesse de rotation et de lavancement dun pas - CW/CCW : commande du sens de rotation - Half / Full : commande du type de pas : entier ou demi-pas Les autres entres (voir doc technique) facultatives notre tude sont : - En : entre de validation - Rst : remise zro du systme - Sync : synchronisation si plusieurs circuit L297 Le translateur contient en interne un compteur ou automate (Fig.18) qui permet de gnrer une squence de huit pas, comme reprsente sur la figure 18.

Fig.18 Compteur du circuit L297

Luc Yin

Commande moteur pas--pas

25

Ces squences sont en faite les alimentations successives des enroulements du moteur. Par exemple si les sorties de commande du circuit L297 valent 0101, le premier et le troisime enroulement seront aliments, tandis que le deuxime et le quatrime enroulement ne seront pas aliments. On souhaitera faire fonctionner notre systme en pas entier, pas=1. En effet, on cherche faire tourner un fantme pour des acquisitions tout les dizaines de degr.

En mettant lentr de commande Half/Full 0, les squences de notre automate devient alors :

Fig.19 Compteur en mode pas entier Source : datasheet L297

Les diffrentes squences des alimentations du moteur la sortie du circuit L298, alimenterons respectivement les diffrentes phases ou bobines du moteur, ce qui gnrera le mouvement du rotor. Donc la rotation du moteur (voir schma suivant).

Fig.20 Principe dun moteur 4 phases aliment par des squences dalimentation en mode pas entier

26

Commande moteur pas--pas

Luc Yin

Le circuit intgr L297 possdant quatre sorties de commande des tages de puissance, ainsi que deux sorties supplmentaires d'inhibition de ces tages (lorsqu'il est utilis avec le L298). Le circuit intgr L298 (Fig.21) contient deux tages de puissance configurs en pont, chacun command par deux entres logiques (A, B et C, D) ainsi que deux entres de validation (INH1 et INH2).

Fig.21 Le circuit L298

Celui-ci permet de fournir d'un courant maximal de 2,5A sous une tension maximale de 46V. La puissance obtenue peut ainsi atteindre environ 200W, ce qui permet l'alimentation de moteurs puissants prsentant des rsistances de bobinage faibles. Il est donc conseill dans notre cas, de fixer le circuit sur un dissipateur thermique de dimension adapt.

Luc Yin

Commande moteur pas--pas

27

3.2.3 Interfaage PC/moteur


Lun des problmes majeurs de la conception de notre carte de commande moteur est le choix de la technologie de la connectique quon utilisera. En effet, la carte PCI4400 est trs ancienne, le jour o le systme tombera en panne. Il sera trs difficilement remplaable. PCI4400 : la carte est ancienne, on a besoin de changer le systme pour pouvoir lintgrer dans les ordinateurs rcent. Or on pourrait programmer avec la PCI4400, mais on cherche amliorer le systme. USB (Universal Serial Bus) : Aprs quelques recherches de connectique possible, nous avons compars les avantages et inconvnients de chacune. Voici un tableau rcapitulatif des recherches.

Fig.22 Tableau rcapitulatif des technologies

Certes, la premire technologie qui nous est venu lide est bien sr le port USB, mais son protocole reste relativement complexe malgr les avantages quil peut nous offrir. A cause du manque de temps pour ces ralisations, tel que lUSB, le parallle ou le srie o il tait ncessaire de mettre en uvre un microcontrleur, nous sommes rests sur la technologie PCI. Aprs un dbat trs acharn sur la technologie quon y utilisera. Nous avons gard la solution de commande laide de la carte PCI4400, dont nous utilisons les sorties disponibles non utilises par la camra micro-onde. Nous avons donc utilis les entres/sorties suivantes de la carte PCI4400 : - TC OUT 2 : - P1.7/Dig Table7 : - DGND : patte 62 patte 32 patte 68

Nous allons traiter et faire un descriptif de la carte PCI4400 dans la partie 3.3.2 : Programmation de la carte PCI4400.

28

Commande moteur pas--pas

Luc Yin

3.3 Les aspects concrets 3.3.1 Ralisation de la carte de commande


Le schma lectrique de la carte de commande est fourni avec la documentation technique du circuit L297. La documentation donne un exemple de cblage dune commande moteur base de circuit L297 et L298.

Fig.23 Schma lectrique de la carte de commande Source : Datasheet L297

Listing des composants utiliss : L297 L298 Rsistances :

- 0.5 x 2 - 22k Capacits : - 3.3nF - 100nF x 2 - 470F Diodes 1N4148 x8 Dissipateur Rsistance rglable 1k

Le L298 possde deux broches d'alimentation : L'une pour le moteur 12V L'autre pour la logique interne, +5V Le L298 ne contient pas les diodes de protections des transistors internes. Il est donc indispensable dinclure des diodes dans le schma lectrique Ces diodes devront prsenter des temps de commutation faible et devront tre capable de laisser passer un courant important.
Luc Yin Commande moteur pas--pas

29

3.3.2 Programmation de la carte PCI4400


Avant de comprendre le programme de commande moteur, il est ncessaire dassimiler certaines notions du systme de la carte dacquisition PCI4400. La carte PCI400 a t dveloppe par RTD USA BME Laboratories [3]. Il sagit dune carte bus PCI offrant les fonctionnalits dont la camera a besoin. On y trouve des Timers permettant la gnration des horloges, des entres/sorties numriques Il sagit dun model de carte trs ancienne, donc difficile de trouver des documents sy rapportant. Ci-dessous, quelques lignes du programme dinitialisation des timers et ports entres/sorties:

Initialisation des timers:


SetUtc0Clock4400(DEVICE, 0x0); //implmentation interne de l'entre de l'horloge UTC0 la sortie de l'horloge interne de 8MHz SetUtc1Clock4400(DEVICE, 0x4); UTC1 la sortie de l'horloge UTC0 SetUtc2Clock4400(DEVICE, 0x3); UTC2 la sortie de l'horloge Pacer clock, //implmentation interne de l'entre de l'horloge

//implmentation interne de l'entre de l'horloge

Initialisation des ports entres/sorties:


SetDIO0Direction4400 (DEVICE, 255); SetDIO1Direction4400 (DEVICE, 255); //programmation de la direction du port0 en sortie //programmation de la direction du port1 en sortie

Lide principale de commande moteur est de pouvoir contrler la vitesse du moteur, langle de rotation et son sens de rotation. Nous avons donc dvelopp en langage C et sous DOS, ces diffrentes fonctions ncessaires la commande motrice. Les diffrentes fonctions dveloppes essentielles la rotation du moteur sont: le choix du nombre de rotation (1 255) le choix du degr de rotation (de -180 180) le sens de rotation (sens trigonomtrique ou anti-trigonomtrique) le choix de la vitesse de rotation (vitesse 1, 2 ou 3)

Nous avons fait un programme donc le dgre de rotation maximal est limit 180, cela vite le moteur de perdre des pas. Car aprs des rotations successives de plus de 180, nous avons remarqu que le moteur perdait ou gagnait quelques degre chaque rotation. La maitrise du langage C de programmation a t indispensable pour la partie software de mon stage, le fascicule informatique : Le langage C dAgns Priou [2] a t trs utile.

30

Commande moteur pas--pas

Luc Yin

Pour gnrer notre frquence de commande moteur, nous avons utilis le timer3(UTC2) qui tait encore libre sur la carte PCI4400. Voici un oscillogramme des signaux des timer1(UTC0) et timer2(UTC1), dont les frquences respectives sont 200kHz et 10kHz. La premire frquence est utilis pour moduls notre frquence porteuse de 2,454GHz 200kHz et la seconde frquence est celui du rafraichissement de laffichage ou de lacquisition.

Fig.24 Frquences des timers UTC0 et UTC1

Luc Yin

Commande moteur pas--pas

31

3.3.3 Tests et Mesures


Pour les tests de la carte de commande, une multitude dinstrumentation (Fig.25) a t mise en place, aussi bien pour lobservation des signaux la sortie de ltage de puissance du L298 que la mesure du couple du moteur ou bien la gnration de signaux.

Fig.25 La table de manipulation

Les instruments utiliss sont : - Loscilloscope wavepro 7300A de LeCroy - Le gnrateur dimpulsion PM5571 de Philips - Lalimentation triple sortie CPS250 de Tektronix - Un systme poulie nacelle pour la mesure du couple moteur - Une balance de Roberval (Voir photos en annexes)

Ainsi Lors des tests de la carte, nous relevons loscilloscope (Fig.26) les mmes formes de signaux quen thorie, pour un fonctionnement du moteur en mode pas entier. Lalimentation des phases A et B est en opposition de phase et ainsi que pour les phases C et D.

Fig.26 Oscillogramme des phases A, B, C et D.

Le moteur tourne bien lorsque ces signaux sont injects sur les diffrentes phases du moteur, la frquence des signaux augmente ou diminue en fonction de la frquence de commande en entr du circuit L297. Cest elle qui contrle la vitesse de rotation du moteur pas--pas.

32

Commande moteur pas--pas

Luc Yin

3.3.3.1 Loscilloscope LeCroy


Loscilloscope utilis pour la visualisation et lacquisition des signaux de commande du moteur est un oscilloscope trs performant. Avec une interface ordinateur tactile, une carte mre proposant des ports USB, srie, parallle, souris, micros, enceinte

Fig.27 Loscilloscope Lecroy 7000A

Le WavePro 7300A est le plus performant de dans gamme des Wavepro 7000A, avec une bande passante de 3 GHz : - 4 canaux - Vitesse d'chantillonnage de 10 Gch/s sur chaque canal, 20 Gch/s si l'on utilise deux canaux seulement - Profondeur d'acquisition : de 2 24 Mpoints pour 4 voies et 48 Mpoints en mode double canal - Ecran tactile SVGA de 10,4" - Tension maximale d'entre : 5 Vrms avec une impdance d'entre de 50 W, 100 Vmax pour 1 MW - Livr avec 4 sondes passives standard 10 MW PP005A - Fonctionne avec un processeur Pentium 2,54 GHz, avec Windows XP Pro - Interfaces : port Ethernet 10/100Base-T, ports USB 2.0, port parallle, GPIB en option - Fonctionne de +5 +40 C - Dimensions : 264 x 397 x 491 mm, pour 18 kg

Luc Yin

Commande moteur pas--pas

33

3.3.3.2 Mesure du couple moteur


Nayant pas trouv la fiche technique exacte de notre moteur Crouzet Servo, n82 972 003, nous avons essay de trouver le couple moteur de ce dernier. Monsieur Alain Joisel a eu une ide ingnieuse, mesurer le couple moteur avec un systme poulie et nacelle (Fig.28). En alimentant la carte moteur, les phases du moteur exerce sur ce dernier un couple rsistant. Puis on met des poids dans la nacelle jusqu que le moteur ne maintient plus la nacelle. Ainsi on pourra mesurer la masse maximale que peut maintenir le moteur grce une balance de Roverbal. Nous avons ainsi effectu plusieurs mesures pour diffrentes distance de laxe moteur:

La masse de la nacelle tant de 160g 1re mesure : Rayon1 : 20.2cm Masse max1 : 470g 2me mesure : Rayon2 : 30.4cm Masse max2 : 250g

Or le couple moteur est gale : Couple = Force x Rayon Couple = (masse x cst_gravit) Rayon Donc :
Fig.28 Systme pour mesurer le couple rsistant du moteur

Couple moteur = (masse nacelle + masse max) x 9.81 x rayon C1 = (0.160+0.470) x 9.81 x 0.202 = 1.248N/m C2 = (0.160+0.250) x 9.81 x 0.304 = 1.222N/m

Les rsultats de la valeur du couple moteur tant trs similaire, nous pouvons conclure que le couple de maintient du moteur est denviron gale : C = 1.23N/m.

34

Commande moteur pas--pas

Luc Yin

Synthse et bilan personnel La carte de commande est ralise et test, lordinateur communique avec la carte de commande via la carte PCI4400, le programme de commande moteur est aujourdhui utilisable sous DOS, lutilisateur peut choisir : - le nombre de rotation, - le dgre de rotation, - le sens de rotation, - et la vitesse de rotation. De plus, contrairement au systme de 1994, le moteur est reproductible. C'est--dire, que lorsquon demande au moteur de tourner de 180 dans un sens, puis de tourner de 180 dans lautre sens, le moteur revient sa place dorigine. Actuellement, le programme nest pas encore intgr sur la camra micro-onde, on pense lintgrer pendant la priode de fin du stage. Mais il reste encore le problme de la technologie de la carte PCI4400. Il pourra tre le sujet dun stage des annes suivantes.

L'lectromagntisme est une branche de la physique qui fournit un cadre trs gnral d'tude des phnomnes lectriques et magntiques dans leur synthse du champ lectromagntique. Le stage ma permis dapprofondir mes connaissances en lectromagntisme, caractristique des ondes, comprhension de lutilisation des micro-ondes en imagerie mdicale. Llectromagntisme englobe le domaine de la tlcommunication, dont ce dernier est un des enseignements quon nous propose lIUT de Cachan en GEII. Etant un passionn de la science, ce stage ma permis dapprcier dun il plus raliste ce quest rellement le monde de la science et plus particulirement la recherche scientifique. Il sagit dun milieu o il ya des problmes lis au financement. Etre chercheur, cest dabords tre un passionn. Etre toujours au courant de lactualit et tre la pointe de ce qui se fait, tre innovant, trouver se qui na pas encore t fait. Jai appris lutilisation du logiciel Visual C++, manipul avec une multitude dinstrumentation telle que loscilloscope extrmement performant (LeCroy). Je conclurai sur le fait que ce stage ma t trs bnfique sur le plan professionnel et personnel, jai pu dcouvrir ce quest le monde du travail, tout particulirement celui de la recherche.

Luc Yin

Commande moteur pas--pas

35

Bibliographie [1] Tommy Gunnarson : Thse, Microwave Imaging of Biological Tissues : Applied Toward Breast Tumor Detection, avril 2007 [2] Agns Priou : Fascicule tudiant de Linstitut Universitaire de Cachan, Le Langage C, Septembre 2004 [3] Real Time Devices USA, Inc. PCI 4400 Data Acquisition Driver For Windows, User Manual, Publication No.PCI4400D.9900

Rapport de stage Programmation sous Visual C dune carte dinterface PCI4400, Cyrile Delestre IUT Cahan, Juin 2007 Commande numrique dun moteur pas--pas, Laurioux Christophe, Mang Christophe IUT Cachan, Juin 1994

Datasheet L297 L297 PCI4400

36

Commande moteur pas--pas

Luc Yin

Partie 4 Annexes

Luc Yin

Commande moteur pas--pas

37

La carte PCI4400 avec la carte de commande moteur

Balance de Roverbal

38

Commande moteur pas--pas

Luc Yin

Carte commande des stagiaire de 1994

Moteur pas--pas avec un rapport de diamtre de 1.8

Luc Yin

Commande moteur pas--pas

39

Les gammes de frquence des ondes lectromagntique

Source : http://eurserveur.insa-lyon.fr

Le domaine du micro-onde

Source : http://blake.lsmc.u-bordeaux.fr
CNRS-SUPELEC-UPS UMR 8506 Laboratoire des signaux et systmes (L2S), GIF-SUR-YVETTE

40

Commande moteur pas--pas

Luc Yin

Progrmma commande moteur /************************************************************************************ Luc Yin -- Suplec -- 02/06/2008 Programme de commande de la carte moteur avec les circuits L297 et L298 On utilise les entres CLOCK et CW/CCW pour commander le moteur On peut ainsi rentrer les paramtres : - nombre de rotation - degre de rotation - sens de rotation - vitesse de rotation *************************************************************************************/ //****************************** Programme main *************************************/ /************************************************************************************/ # # # # # # # # # # # include include include include include include include include include include include "stdafx.h" "pci4400.h" <windows.h> <stdlib.h> <conio.h> <stdio.h> <dos.h> <string.h> <math.h> "prototype.h" "corps.cpp"

int vit, div_freq=0, mult; short degree; short nb_rotation; unsigned long rotation;

int main (int argc, char* argv[]) { initCom(); initports(); inittimers(); nb_rotation = choix_nb_rotation(); printf ("\n"); degree = choix_degree(); printf ("\n"); vit = choix_vit_rotation(); div_freq = param_div_freq(vit); mult = param_mult(vit); rotation en temps

//initialisation de la carte PCI4400 //initialisation des ports de la carte PCI //initialisation des horloges de la carte PCI //choix du nombre de rotation //choix du degre de rotation //choix de la vitesse de rotation //reglage de la division de la frquence de UTC1 //reglage du multiplicateur pour convetitir une

rotation = calcul_tps_rotation(degree, mult); rot_moteur(nb_rotation, div_freq, rotation); arret (); }

//conversion rotation en temps //rotation du moteur

//arrete du programme et de la carte PCI4400

Luc Yin

Commande moteur pas--pas

41

Corps du programme commande moteur


/******************************************************************************************** Luc Yin -- Suplec -- 02/06/2008 Programme de commande de la carte moteur avec les circuits L297 et L298 On utilise les entres CLOCK et CW/CCW pour commander le moteur On peut ainsi rentrer les paramtres : - nombre de rotation - degre de rotation - sens de rotation - vitesse de rotation ********************************************************************************************/ //**************************** Corps des fonctions utilises *******************************/ /********************************************************************************************* ************/

#include "prototype.h"

BYTE DEVICE = 0; char szBuf[512]; BoardConfig boardconfig;

//dfinition de la carte PCI4400

short nb_rot; short deg; int sens, v, div_f = 0, m, rot, i;

/***************************** Initialisation de la communication ***************************/ void initCom(void) { printf("Chargement du driver de la carte PCI4400...\n");

if (!OpenBoard4400 (DEVICE,0,szBuf,&boardconfig)) { printf("Erreur d'ouverture\n"); printf("%s", szBuf); } else { printf("Openboard done\n"); } printf ("Initialisation de la carte PCI4400.\n\n"); InitBoard4400 (DEVICE); }

/********************************** Programmation des ports *********************************/ void initports(void) { SetDIO0Direction4400 (DEVICE, 255); en sortie SetDIO1Direction4400 (DEVICE, 255); en sortie }

//programmation de la direction du port0

//programmation de la direction du port1

/******************************** initialisation des timers *********************************/ void inittimers(void) { //implmentation interne de l'entre de SetUtc0Clock4400(DEVICE, 0x0); l'horloge UTC0 la sortie de l'horloge interne de 8MHz

42

Commande moteur pas--pas

Luc Yin

SetUtc1Clock4400(DEVICE, 0x4); l'horloge UTC1 la sortie de l'horloge UTC0

//implmentation interne de l'entre de

SetUtc2Clock4400(DEVICE, 0x3); //implmentation interne de l'entre de l'horloge UTC2 la sortie de l'horloge Pacer clock, //pour tre sr de ne pas avoir de frquence en sortie de UTC2, //et donc de ne pas faire tourner le moteur

// Mise en marche des timers, et division des frquence SetupTimerCounter4400 (DEVICE, TC_UTC0, M8254_SQUARE_WAVE, 40); frquence 200kHz SetupTimerCounter4400 (DEVICE, TC_UTC1, M8254_SQUARE_WAVE, 20); 10kHz } //signal carr de

//frquence UTC1 =

/********************************* Choix du nombre de rotation ******************************/ unsigned char choix_nb_rotation(void) { printf ("choisir le nombre de rotation:"); scanf("%hu", &nb_rot); //acquisition du nombre de rotation if (nb_rot<=0) choix_nb_rotation(); souhait else return nb_rot; } //si le nombre de rotation est infrieur ou gale 0 //alors, on redemande la valeur du nombre de rotation

//sinon //on retourne la valeur du nombre de ratation

/***************************** Choix du degre de rotation **********************************/ short choix_degree() { printf ("choisir degree de rotation, de -180 180:"); scanf("%hu", &deg); //acquisition du degre de rotation if ( (deg>=1) && (deg<=180) ) //si le degre de rotation est comprise entre 1 et 180 { WriteDIO14400 (DEVICE, 0); //alors on met 0 le 8eme bit du port0 } if ( (deg<=-1) && (deg>=-180) ) //si le degre de rotation est comprise entre -1 et -180 { WriteDIO14400 (DEVICE, 128); //alors on met 1 le 8eme bit du port0 deg = -deg; //on remet en nombre positif le degre de rotation } if ( (deg==0) || (deg<=-181) || (deg>=181) ) //si le degre de rotation est gale 0 ou suprieur 180 ou infrieur -180 { choix_degree(); //alors on redemande la valeur du degre de rotattion } return deg; //on retour la valeur du degre de rotation }

/******************************* Choix de la vitesse de rotation ****************************/ int choix_vit_rotation ( void ) { printf ("choisir la vitesse de rotation\nv1=1, v2=2, v3=3:"); scanf("%hu", &v); if ( (v>3)||(v<1) ) { choix_vit_rotation(); //si la vitesse est suprieur 3 ou infrieur 1 //alors on redemande la valeur de la vitesse

Luc Yin

Commande moteur pas--pas

43

} else return v; }

//sinon //on retourne la valeur de la vitesse de rotation

/****************************** Paramtre du diviseur de frquence **************************/ /***************************** pour transformer une frquence en dlai **********************/ int param_div_freq(int vit) { if ( vit==1) { div_f=200; } if ( vit==2) { div_f=100; } if (vit==3) { div_f=50; } return div_f; }

//si la vitesse chosie est 1 //alors le diviseur est gale 200

//si la vitesse choisie est 2 //alors le diviseur est gale 100

//si la vitesse choisie est 3 //alors le diviseur est gale 50

//retourne la valeur du diviseur

/**************************** Paramtre du multiplieur ncessaire ***************************/ /************************ la converssion en dlai de la frquence *************************/ int param_mult(int vit) { if ( vit==1) { m=20; } if ( vit==2) { m=10; } if (vit==3) { m=5; } return m;

//si la vitesse chosie est 1 //alors le multiplieur est gale 20

//si la vitesse chosie est 2 //alors le multiplieur est gale 10

//si la vitesse chosie est 3 //alors le multiplieur est gale 5

//retourne la valeur du multiplieur

/************************** Calcul du dlai de rotation du moteur ***************************/ /******************* en fonction du diviseur de frquence et du multiplieur *****************/ unsigned calcul_tps_rotation(short degree, int mult) { rot = (degree*mult); //calcul du dlai de rotation return rot; //retourne la valeur du dlai de rotation }

/******************************* Rotation du moteur *****************************************/ void rot_moteur (unsigned char nb_rotation, int div_freq, unsigned long rotation) { for(i=0; i<nb_rotation; i++ ) //compteur pour raliser le nombre de rotation souhait

44

Commande moteur pas--pas

Luc Yin

{ SetupTimerCounter4400 (DEVICE, TC_UTC2, M8254_SQUARE_WAVE, div_freq); //divise la frquence par div_freq SetUtc2Clock4400(DEVICE, 0x4); //implmentation interne de l'entre de l'horloge UTC2 la sortie de l'horloge UTC0 Sleep(rotation); //rotation SetUtc2Clock4400(DEVICE, 0x3); //implmentation interne de l'entre de l'horloge UTC2 la sortie de l'horloge Pacer clock SetupTimerCounter4400 (DEVICE, TC_UTC2, M8254_SQUARE_WAVE, 0); //divise la frquence par 0 Sleep(500); //temps d'acquisition } }

/*************************** Arrt du programme et de lacarte PCI4400 ***********************/ void arret (void) { printf("Arret de la carte PCI4400..."); StopPacer4400 (DEVICE); if (!CloseBoard4400 (DEVICE, szBuf)) { printf ("Erreur lors de la fermeture\n"); printf("%s", szBuf); Sleep(100); } else { printf("OK\n"); printf("%s", szBuf); Sleep(2000); } }

Luc Yin

Commande moteur pas--pas

45

Protypes du programme commande moteur


/************************************************************************************ Luc Yin -- Suplec -- 02/06/2008 Programme de commande de la carte moteur avec les circuits L297 et L298 On utilise les entres CLOCK et CW/CCW pour commander le moteur On peut ainsi rentrer les paramtres : - nombre de rotation - degre de rotation - sens de rotation - vitesse de rotation *************************************************************************************/ //**************************** Prototypes de fonction *******************************/ /************************************************************************************/

/*Ces sonts les prototypes des fonctions utilises dans la fonction principale*/ void initports(void); void initCom(void); void inittimers(void); unsigned char choix_nb_rotation(void); short choix_degree(void); int choix_vit_rotation (void); int param_div_freq(int vit); int param_mult(int vit); unsigned calcul_tps_rotation(short degree, int mult); void rot_moteur (unsigned char nb_rotation, int div_freq, unsigned long rotation); void arret (void);

46

Commande moteur pas--pas

Luc Yin