Professional Documents
Culture Documents
Ministre de lEnseignement Suprieur et de la Recherche Scientifique Universit Abderrahmane Mira de Bejaia Facult de Technologie Dpartement dElectronique
Option : communication
Commande de deux moteurs pas pas via le port parallle avec Delphi
Ralis par :
Promotion : 2008-2009
Ddicaces
Je ddie ce modeste travail :
Mes parents, symboles de courage et de volont, qui ont consacr et sacrifi leurs vies pour mon bien tre ; Ma grande mre que Dieu la garde pour notre famille ; Mes frres Farouk et sa femme Djahida, et Ghanni ; Mes surs et leurs maris: Noura et Djoudi, Soraya et Houcine, Naima et Samir, Souad et Rabah; Mes neveux: Halim, Aris, El-Hassen; Mes nices: Lydia, et Alissia; Mes oncles et tantes, cousins et cousines; Toute la famille ZENATI; Mes chers amis: Nabil, Bazy, Redouane, Nadir, Halim, Fahim, Laidetc. Mes amies: Salima et Nawal; Mon ami et celui que jai partag ce modeste travail: Samir, ainsi qu toute sa famille. Toute la PROMOTION 2009.
Hakim
Ddicaces
Je ddie ce modeste travail :
Mes parents, symboles de courage et de volont, qui ont consacr et sacrifi leurs vies pour mon bien tre ; Mes frres; Mes surs; Mes neveux:; Mes nices surtout Wassila; Mes oncles et tantes, cousins et cousines; Ma future femme; Mes chers amis: Nabil, Halim, Fahim, Nouri, Bob etc. mon ami et celui que jai partag ce modeste travail: Hakim, ainsi qu toute sa famille. Toute la PROMOTION 2009. Samir
Nous tenons remercier notre Dieu, le tout puissant, de nous avoir donn la sant et la volont pour complter ce modeste travail. Nous tenons exprim nos profondes gratitudes et nos vifs remerciements notre promoteur Mr K.BOUDJELLABA, ainsi notre Co-promoteur, Mr O.GUENOUNOU pour laide, le suivi et les conseils quils nous ont prodigus tout au long de ce travail. Nos remerciements sadressent aussi au prsident de jury et ses membres qui ont accept de juger notre travail.
Enfin nos remerciements sadressent plus particulirement nos familles et nos amis(es) qui ont su nous soutenir, nous encourager, nous aider et nous supporter tout au long des annes.
Hakim et Samir
Sommaire
Introduction gnral Chapitre I Gnralits sur les moteurs pas pas
Introduction I.1 Moteur pas pas:1 I.2 Les diffrents types de moteurs:.3
I.2.1 Les moteurs aimants permanents (moteur unipolaire et bipolaire):3 I.2.1.1 Les moteurs unipolaires:.4 I.2.1.2 Les moteurs bipolaires:...6 I.2.2 Les moteurs rluctance variable:.9 I.2.3 Les moteurs hybrides:9 I.2.4 Nombre de phase..............................................................................................................10 I.3 Alimentation des moteurs pas pas:.11 I.3.2 Alimentation unidirectionnelle et bidirectionnelle:..11 I.3.1 Alimentation en tension:...11 I.3.2.1 Alimentation unidirectionnelle:.11 I.3.2.2 Alimentation bidirectionnelle:...13
Conclusion
Chapitre II
Conclusion
Chapitre III
Conclusion
Conclusion gnral
Annexe 1: 74HCT573. Annexe 2: ULN2803. Annexe 3: Circuit imprim et limplantation des composants. Annexe 4: Source du programme.
Introduction gnral
Le principe du moteur pas pas est connu de longue date, mais son dveloppement commenc dans les annes 1960 grce lvnement de llectronique numrique. Tout en variant la vitesse de dplacement et le sens de rotation, lutilisation dun moteur pas pas devient un choix impratif. Il est utilis dans tout ce qui demande une prcision de positionnement tels que : la robotique, lastronomie et dans un nombre de priphrique informatique : imprimante, disque dur, lecteur de disquette, scanner, etc. Il existe de nombreux systmes de commande ddie au moteur pas pas. De nos jours, la commande la plus utilise est celle par le micro-ordinateur grce aux interfaces qui permettent dtablir la communication entre lunit centrale et les priphriques. On distingue deux type dinterfaces, les interfaces srie et les interfaces parallles. Lutilisation du port srie nest pas trs pratique dans certaines applications car il faudrait dissrialiser les donnes [3], cest pourquoi on soriente beaucoup plus au port parallle, qui prsente lavantage de transmettre les donnes simultanment, donc rapidement. Notre objectif consiste commander deux moteurs pas pas par PC via le port parallle. Le mmoire est organis en trois chapitres: le premier est consacr aux moteurs pas pas o on donne leurs dfinitions, les diffrents type des moteurs est les modes dalimentation. Le deuxime est pour le port parallle et la programmation sur Delphi, enfin le dernier est consacr la description des cartes graphique et dinterface. Une conclusion gnrale achve le mmoire.
Chapitre I:
Introduction:
Le moteur pas pas est linterface idale entre llectronique numrique et la mcanique, il permet de convertir directement un signal lectrique en un positionnement angulaire caractre incrmental. Pour cela on utilise le port parallle dun ordinateur de type PC quon commande avec une interface cre avec Delphi.
Chapitre I:
Fig I.2: Structure interne dun moteur pas pas Les moteurs pas pas existent en diffrentes tailles qui varient de 1 cm plus dune dizaine de centimtres. Tout dpendra des applications dans lesquelles ils seront utiliss. Le plus petit moteur, par exemple, sera destin au dplacement des ttes de lecture dans les lecteurs de disquettes ou dans les disques durs o un couple trs faible est requis. Par contre, le dplacement dun bras de robot demandera un couple nettement plus important, donc un moteur de diamtre lev. Signalons que le couple est exprim le plus souvent en kilogrammes par centimtre (Kg/cm), ce qui dfinit le poids en kilogrammes que pourra soulever laxe dun moteur pourvu dun bras de longueur exprime en centimtres. La valeur de leur tension dalimentation varie dans de grandes proportions, elle peut tre comprise entre 3V et plusieurs dizaines de volts. De mme, selon la rsistance ohmique de leurs bobinages, le courant consomm stendra dans une gamme allant de quelques dizaines de milliampres plusieurs ampres. Alors on peut dire que plus le courant sera lev, plus le couple sera important. En ce qui nous concerne, les dtaillants commercialisent la plupart du temps, sauf exception rare, des moteurs de type standard, de consommation moyenne et possdant un couple de puissance relativement bas. Ce faible couple pourra tre compens par ladjonction dune dmultiplication constitue de pignons. La vitesse de rotation diminuera mais le couple augmentera dans de fortes proportions, ce qui constituera une solution intermdiaire tant donn le prix prohibitif des moteurs pas pas de forte puissance. Nous allons maintenant aborder plus en dtail ce qui diffrencie chaque type de moteur, leur technologie et les principaux types de commande.
Chapitre I:
Chapitre I:
La Fig I.3 reprsente le schma simplifi dun moteur aimant. Le dessin du haut de la figure reprsente dans sa position de repos, lorsque les bobinages ne sont traverss par aucun courant. Chacun des ples du rotor se place devant une paire des plots de stator. Les quatre dessins du bas de la figure illustrent ce qui se passe lorsque les bobinages sont aliments tour de rle : dabord A puis B, ensuite C et enfin D. Le ple nord du rotor sera attir par le ple sud du stator, ple cr par la circulation dun courant dans le bobinage. Cet exemple permet de comprendre la progression pas par pas du moteur. Ici, il effectuera 4 pas par tour.
Chapitre I:
Comme pour chaque type de moteur, le modle unipolaire peut tre command en mode monophas, biphas ou demi-pas. Le Tableau I.1 donne lordre des diffrentes commandes.
Mode monophas
A B C D A etc.
Mode biphas
AB BC CD DA AB etc.
Mode demi-pas
A AB B BC C CD D DA A etc.
Chapitre I:
Signalons que le moteur unipolaire prsentera, volume gal, un couple moins important que le moteur bipolaire. I.2.1.2 Les moteurs bipolaires : La Fig I.6 reprsente la constitution interne dun moteur de type bipolaire. Ce type de moteur ncessite une commande plus complexe que celle du moteur unipolaire, le courant devant changer de sens dans les enroulements chaque pas effectu.
Fig I.6: Reprsentation schmatique dun moteur bipolaire Comme pour le modle prcdent, ce moteur peut tre aliment sous trois squences diffrentes, le Tableau I.2, reprsentes par ailleurs sur la Fig I.7. (Ordre des diffrentes commandes suivant le mode monophas, biphas ou demi-pas).
Tableau I.2: Ordre des diffrentes commandes suivant le mode monophas, biphas ou demipas.
Chapitre I:
Pour ce type de moteur nous avons trois possibilits de commande. La premire consiste alimenter les enroulements en suivant la squence A vers B / C vers D / B vers A / D vers C (BA est le mme enroulement que AB mais aliment par un courant de polarit inverse). Par la suite nous simplifierons la notation pour une meilleure correspondance avec les chronogrammes des phases en indiquant uniquement la phase qui est alimente par un courant "positif". Soit: A C B D. Cette squence est connue sous le nom de "one phase on full step" (traduisez phase par phase ou une phase la fois en pas entier). A tout moment il n'y a qu'une seule phase d'alimente et nous travaillons en mode pas entier.
La seconde possibilit est d'alimenter une paire de phase en mme temps de faon ce que le rotor se positionne entre deux ples. Appel "two-phase-on full step" (deux phases la fois en pas entier) ce mode de commande est celui qui procure le couple le plus lev. La squence sera donc : AC / CB / BD / DA.
Fig I.8: Mode biphas La troisime option est un mlange des deux premires puisque l'on alimente tour tour le moteur sur une phase puis deux puis une... Cette squence connue sous le nom de mode demi-pas procure effectivement un division par 2 de l'angle d'avance d'un pas, mais aussi un couple moins rgulier. La squence qui en dcoule est la suivante : A / AC / C / CB / B / BD / D /DA. 7
Chapitre I:
Pour obtenir une rotation dans la direction oppose les mmes squences sont utilises en inversant l'ordre de dfilement. Comme nous pouvons le constater sur les diagrammes, les moteurs sont reprsents avec une avance de pas 90. Dans les moteurs rels le nombres de ples ont t multiplis pour rduire quelques degrs seulement l'angle d'avance d'un pas. Le nombre d'enroulements et la squence de commande restant, quand eux, inchangs. Cest dans le mode biphas que le moteur dveloppera la plus grande puissance (couple lev) car les deux phases seront alimentes dans le mme temps. Le mode demi-pas permet de doubler le nombre de pas quun moteur peut effectuer par tour, mais cette prcision supplmentaire engendre un couple irrgulier. En effet, dans ce mode, la commande du moteur est un mlange de mode biphas et monophas. Dans ce cas, si la charge est importante, des pas risquent de <<sauter>>, ce qui nest pas le but recherch. Dans notre projet, nous avons utilis deux moteurs pas pas unipolaires de type 57SHM-46B6A, avec une rsistance interne de 5 et un pas de 1.8. Cest--dire pour faire un tour il faut 200 pas.
Chapitre I:
I.2.2 Les moteurs rluctance variable: Les moteurs rluctance variable fonctionnent selon un principe diffrent de celui des moteurs aimants permanents, Ils possdent bien videmment un stator et un rotor, mais ce dernier est fabriqu en acier doux non magntique. Il nest pas lisse et possde plusieurs dents. Ce type de moteur est reprsent en Fig I.10. On peut voir, dans cet exemple, que le stator est compos de 8 plots sur lesquels sont enrouls les bobinages, ce qui donne 4 phases. Le rotor, quant lui, ne comporte que 6 dents.
Fig I.10: Moteur reluctance variable 1.2.3 Les moteurs hybrides: Le rotor comporte en priphrie des dentures polarises par aimants. La fonction moteur est obtenue par deux effets : Effet de rluctance variable d aux dents, Proprit des aimants permanents. Ses principales caractristiques sont : Bonne rsolution (jusqu 400 pas par tour). Couple plus important que les moteurs rluctance variable. Frquence de commutation leve. Il est donn sur la Fig I.11
Chapitre I:
I. 2. 4 Nombre de phase:
Il existe divers types de moteurs pas pas mais la principale diffrence est le nombre de bobines utilises. Configuration interne des bobines du moteur :
4 fils
5 fils
6 fils
fils
I. 2.4.1 Les moteurs 4 fils (bipolaires): Bien que sur le schma, 4 bobines ont t reprsentes, ce moteur agit comme s'il ne possdait que 2 bobines. Ce moteur oblige d'alimenter soit une bobine la fois, ou les deux en mme temps. tout moment, donc, le moteur a la moiti ou la totalit de ses bobines alimentes, ce qui a comme avantage de lui donner plus de force. Par contre, il est plus complexe de contrler un moteur bipolaire, au niveau de l'interface de puissance, puisqu'il faut inverser la polarit de la bobine. I.2.4.2 Les moteurs 5 fils (unipolaires): Le moteur unipolaire est conu de sorte que l'interface de puissance soit grandement simplifie, mais au dtriment de la force. Le moteur comporte en quelque sorte deux bobines points centraux, ces derniers tant communs. Habituellement, on relie ces points centraux, et on applique l'alimentation un des 4 autres fils. Il est toutefois possible d'ignorer les points centraux et de faire fonctionner le moteur unipolaire comme un moteur bipolaire, mais il faut tre davantage rigoureux car contrairement au moteur bipolaire, ici les deux bobines sont capables d'interagir entre elles. Par exemple, si on alimente une des deux bobines, et qu'on relie une borne de l'autre bobine la masse, le courant se rpartit maintenant dans trois demi-bobines, au lieu de deux demibobines pour le moteur bipolaire. I.2.4.3 Les moteurs 6 fils: Avec le moteur 6 fils, on a alors rellement le choix de le contrler comme un moteur bipolaire, ou comme un moteur unipolaire. Dans le premier cas, on ignore simplement les connexions centrales, et dans le second cas, on relie les deux points centraux la masse, pour alimenter l'un aprs l'autre les 4 autres fils. 10
Chapitre I:
I.2.4.4 Les moteurs 8 fils
Le moteur 8 fils est celui qui permet le plus de flexibilit, quant au nombre de faons diffrentes de le contrler.
Fig I.11: Alimentation en tension unidirectionnelle 1.3.2.1 Alimentation unidirectionnelle: Le schma pour phase comporte une alimentation continue fixe Vcc, un interrupteur command (transistor bipolaire, montage Darlington ou transistor MOS) et une diode de roue libre (Fig I.11). On considre tout dabord que la force lectromotrice de la rotation est ngligeable. Le schma quivalent de la phase se rduit alors un diple RL srie. Le squenceur bloque le transistor lorsque la phase ne doit pas tre alimente et il le sature linstant de la commutation o doit apparatre le courant. Le circuit tant inductif, la variation de lintensit ne peut pas tre discontinue. La croissance est exponentiel1le, de constante de temps =R/L.
11
Chapitre I:
Dans le cas du moteur rluctance variable, il faut noter que est variable puisque linductance dpend de la position. Au bout de quelques constantes de temps, la courbe a atteint son asymptote et le courant est constant. Pour obtenir lintensit nominale In, il faut une alimentation Vcc = R.In. Quand le squenceur commande le blocage du transistor la fin de la dure dalimentation de la phase considre, la diode de roue libre devient passante pour assurer la continuit du courant permettant lvacuation de lnergie magntique emmagasine. Il faut videment choisir un modle de diode assez rapide ( commutation rapide) pour limiter les consquences du rgime transitoire de mise en conduction. La dcroissance du courant est exponentielle, de mme constante de temps . En ngligeant la tension aux bornes de la diode devant Vcc, on a :
i=
Lallure de la courbe du courant en fonction du temps (Fig I.12) sloigne un peu de lidal cause des temps de monte et de descente. Ceux-ci doivent rester faibles devant la dure Tc de lalimentation de la phase, ce qui est possible lors dun fonctionnement basse frquence. Jusqu prsent, on na pas tenu compte de la force lectromotrice de rotation. Or celle-ci va avoir un effet nfaste puisque sa variation, lie lvolution de la vitesse et de la position aura une influence sur le courant. On retrouve ainsi des oscillations de lintensit lies aux oscillations mcaniques lors de chaque commutation. Le courant nest donc pas constant pendant la dure dalimentation de la phase. Il faut remarquer que la mise en quation des phnomnes est complexe puisque les quations mcaniques et lectriques sont lies entre elles. Cet effet est dautant plus perturbateur que le moteur tourne vite puisque la force lectromotrice de rotation est proportionnelle la vitesse de rotation. Ce circuit lmentaire est ainsi rserv aux machines ne travaillant quen positionnement ou en basse frquence et dont on nattend que des performances modestes.
12
Chapitre I:
I.3.2.2 Alimentation bidirectionnelle:
Pour pouvoir inverser le courant partir dune alimentation fixe unique, on utilise un pont en H (Fig I.13). Un premier sens obtenu en saturant T1 et T4 et en bloquant T2 et T3. Un second sens correspond T2 et T3 saturs et T1 et T4 bloqus. Dans chaque cas, le fonctionnement est analogue celui de lalimentation unidirectionnelle, cette structure est disponible sous forme intgre pour les domaines de courant employs ici.
Conclusion:
Selon le besoin, lutilisateur peut choisir le moteur qui lui convient a son application, avec lalimentation et le mode dexcitation correspondant. Pour notre projet, on a opt pour deux moteurs aimant permanant, unipolaire biphas. La commande de ces deux moteurs est le titre du chapitre suivant.
13
Chapitre II:
14
Chapitre II:
II.1.3 Les diffrentes broches du port: Les broches n 2, 3, 4, , 9, disponibles seulement en criture par exemple, la broche n1 (STROB) disponible la fois en lecture et en criture. Exemple texte envoy limprimante (D0, D1, D2, ... D8). Les broches 10 (ACK), 11 (BUSY), 12 (PE), 13 (SELECT) disponibles seulement en lecture (information sur ltat du priphrique). Les broches 18, 19, ... 25, vers la masse.
II.1.4 Programmation du port en assembleur: Nous allons examiner comment crire et lire des donnes sur le port parallle. Dans notre travail on sintresse lassembleur. Ecriture: Asm Mov dx, 0378h Mov al, sortie Out dx, al Lecture: Asm Mov dx, 0379h IN al, dx Mov entre, al End.
II.1.5 Intrt du port parallle: Ses avantages par rapport linterface srie sont: 1. Une plus grande rapidit, permettant par exemple un fonctionnement en scrutation (le PC interroge en permanence les lignes dentre, pour voir si elles ont chang dtat). 2. La vitesse de transmission maximale est de lordre de 150Ko/s pour les ports les plus anciens, et de 2Mo/s pour les types EEP. Les connections par port parallle actuelles sont aussi rapides que celle en USB. Nanmoins, cette interface monopolise pratiquement 100% des ressources du processeur. En thorie, le taux de transfert est de 1Mo/s ; nanmoins, la vitesse dpasse rarement les 600Kb/s
15
Chapitre II:
II.2 Delphi 7:
II.2.1 Introduction au Delphi 7 : [4] Delphi est un environnement de programmation permettant de dvelopper des applications pour Windows (95/98/2000). Il reprsente une version oriente objet de la famille turbo pascal. On dispose pour cela dune bibliothque de composantes visuels (VCL). A laide de ces composants, le dveloppeur ralise ses programmes sans recourir des manipulations complexes. Delphi est un outil double usage puisquil permet de crer des applications de faons diffrentes : la premire mthode est visuelle ; elle utilise le dplacement de composants sur lcran (par glissement). La deuxime mthode consiste en une programmation traditionnelle, celle ou lon produit le code source. On peut utiliser exclusivement lune ou lautre de ces techniques, mais le plus souvent, les deux techniques sont combines. II.2.2 Prsentation de lenvironnement de travail sous Delphi 7: Delphi diffre des autres langages classiques tels que pascal ou fortran. Dans ces derniers, on doit directement crire des instructions lune la suite de lautre jusqu la fin. Delphi ressemble plus un atelier o lon dispose dune boite outils et dun ensemble dobjets qui servent fabriquer une application. Ainsi Sous Delphi on ncrit pas une application mais on la fabrique. A louverture de Delphi, on constate que lcran se compose de quatre fentres essentielles, comme reprsentes sur la Fig II.3
Fig II.3: Reprsentation de la fentre de travail On donne la description des principaux lments que comporte la fentre dapplication Delphi comme suit : 16
Chapitre II:
II.2.3 Fentre des menus, de la barre des outils et la palette des composants : *barre de titre : affiche le nom de projet en cours de construction. *barre de menus : elle est prsente dans toutes applications Windows, elle permet daccder la plupart des commandes disponibles. *barre doutils : contient des raccourcis vers des applications prconues. *palette des composants: contient des raccourcis vers des soubroutines Delphi qui permettent linsertion de composants graphiques essentiels une application Tous ses paramtres sont reprsents sur une fentre comme indiqu sur la figure suivante :
Fig II.4: Representation de la fenetre principale II.2.4 Fentre de linspecteur dobjets : Cet outil est ddi la gestion des composants. La fentre de linspecteur contient deux volets : - la liste des proprits (attributs) du composant courant, - la liste des vnements associs au composant courant. Proprits : Les noms des proprits sont placs dans la colonne de gauche (dans lordre alphabtique) et les valeurs sur la ligne correspondante droite. Les proprits dont le nom est prcd dun + ont plusieurs niveaux imbriqus (ex. Font). Lorsquune proprit de ce type est droule , le signe apparat la place du signe +. Pour donner une valeur une proprit, le plus simple est de remplacer sa valeur par dfaut par une nouvelle valeur dans la bote ddition prvue cet effet. La proprit Name est particulirement importante car elle permet daccder au composant depuis les programmes. Par dfaut, Delphi lui confre une valeur peu explicite (ex. Form1, Button1). Il est prfrable dutiliser des noms plus parlants . Les proprits visibles dans linspecteur sont modifiables lors de la phase de conception. Dautres proprits sont uniquement accessibles lors de lexcution, grce du code source.
17
Chapitre II:
vnements La colonne de gauche contient lensemble des vnements associs uncomposant donn. Ex. OnClick, commun un grand nombre de composants, qui est activ lorsque lutilisateur clique sur le composant. La colonne de droite consiste en une srie de botes de listes combines permettant dassocier un gestionnaire dvnements lvnement correspondant (i.e., un ensemble dinstructions Pascal excutes lorsque lvnement survient). Sur un double clic sur une de ces botes, lditeur de code souvre et le curseur se positionne lintrieur du gestionnaire dvnements (une procdure).
II.2.5 Fentre de la fiche principale : Il sagit dune fentre dans laquelle on place les diffrents objets (composants) dans une certaine disposition selon lapparence dsire de la future application Les informations concernant la fiche se trouvent dans les fichiers ayant comme extention <<.pas>> et <<.dfm>>. Elle est monte sur la fig II.7
18
Chapitre II:
II.2.6 Fentre de code source (unit) : Les fichiers de code source composant un projet sont rassembls dans lditeur de code. chaque fiche est associe une unit identifie par un onglet situ en haut de la fentre de lditeur. Lditeur permet de modifier le code Pascal de ces units. Elle est donne sur la Fig II.8.
Fig II.8: Reprsentation de lunit II.2.7 Projet: Chaque application est reprsente par un projet. Ce projet est consitu de fiches, dunit, de paramtres doptionect, lorsquon dmare delphi, il ouvrira par dfaut un projet vide. si un autre projet est dj ouvert, il faut choisir fichier/nouvelle application pour crer un nouveau projet. A louverture dun nouveau projet, delphi cre automatiquement les fichiers suivants : **projet 1.DPR : le fichier de code source associ au projet, appel fichier projet. **Unit 1.PAS : le fichier de code source associ la fiche principale du projet. Cest ce que nous appelons un fichier dunit. **Unit1. DFM : le fichier de ressource stockant les informations sur la fiche principale de projet, cest ce que nous appelons un fichier fiche. Le fichier projet consitue la partie principale de lapplication en delphi. Cest partir de celle ci que le programme est lanc.
II.2.8 les fichiers crs par delphi : Dans nimporte quelle projet le langage delphi gnre des fichiers. On donne la description de ces fichiers comme suit : ** .dpr (delphi projet) : fichier projet, ce fichier sauvegarde les informations relatives aux fiches et units dun programme. ** .pas (pascal) : fichier dunit qui sauvegarde le code, dans la plupart des cas les fichiers dunit sont associs des formes.
19
Chapitre II:
** .dfm (delphi forme) : fichier de fiche, ce fichier est cr par le langage delphi pour sauvegarder des informations concernant une fiche. chaque fiche correspond un fichier unit (.pas) qui sera li dans le fichier excutable final. ** .dof (delphi option file) : fichier doption du delphi , les paramtres doption du projet y sont sauvegards. ** .res (ressource) fichier de ressource. Ce fichier contient une icne utilise pour le projet. Ce fichier ne doit pas tre cr ou modifi par le programmateur ou lutilisteur. **.dp, .df, .pa,.. : les fichiers sont crs lors des enregisterements successifs dun projet, ce sont des copies desauvegarde, des fichiers portant le mme nom. **.exe (excutable file ) : il sagit dun fichier excutable indpendant qui na besoin de rien dautre que lui mme pour sexcuter.
Conclusion:
Ce chapitre est consacr au port parallele et Delphi, car cest le moyen de gnrer les 8 bits, quon commande avec une interface graphique et une carte dinterface qui sont donnes dans la chapitre suivant.
20
Chapitre III:
III.1 Interface graphique:
III.1.1 Prsentation de linterface graphique: La mthode pour bien dbuter une squence de travail reste la mme. Lancez Delphi 7 partir de Windows. Ouvrez un nouveau projet puis slectionnez dans le menu FICHIER l'option APPLICATION en cliquant simplement sur le bouton OK. Donnez ensuite un nouveau nom la feuille de travail qui s'est affiche. Modifiez pour cela la proprit Caption en entrant "Pilotage programmable de moteurs pas pas".
S'agissant des diffrents composants, il est toujours prfrable de crer des zones distinctes qui permettent d'identifier aisment leur fonction, c'est pourquoi vous devrez placer 3 botes de groupes (GroupBox) en modifiant leurs proprits Caption avec "Moteur 1", "Moteur 2" et "Editeur". Toujours dans la barre d'outils STANDARD, allez chercher les boutons (Button) que vous disposerez dans les botes de groupe de Moteur 1 et Moteur 2. Le bouton gauche de Moteur 1 correspond au Button1, droit au Button2 alors que gauche de Moteur 2 doit tre Button3 et droit Button4. Et aussi maitre deux ComboBox (qui se trouve toujours dans la barre doutil STANDARD) dans la fentre de la fiche principale (c..d. ne pas les maitre dans les GroupBox) pour agir sur la vitesse, un pour le moteur 1, le deuxime pour le moteur 2, dans la fentre de linspecteur dobjet on cherche Item pour dclarer le contenu quils vont afficher ces derniers Les valeurs de rglage sont donnes par le composant SpinEdit qui se trouve sous l'onglet EXEMPLES de Delphi 7 et que vous dposerez entre les boutons "droit" et "gauche". Dans la liste des proprits de l'inspecteur d'objet, vrifiez que mini est gal zro, ce qui limitera le choix du nombre de pas aux valeurs positives. Revenez ensuite l'onglet STANDARD de la palette de composants pour slectionner une bote de liste (ListBox) que vous dposerez dans la bote de groupe EDITEUR de votre feuille de travail. Cette bote de liste a la particularit de contenir une liste d'items (qui correspondront aux mouvements de notre programme) reprs par un index. En positionnant correctement cet index on peut donc lire la chane de caractres qui lui correspond (le mouvement). Il reste enfin placer les boutons qui permettront d'initialiser, d'excuter ou d'effacer les lignes de programme des mouvements de chaque moteur. Pour cela, vous trouverez sous l'onglet SUPPLEMENT de la barre d'outils des boutons BitBtn que vous dposerez sur la feuille. Pour qu'ils affichent ce que nous dsirons, commencez par modifier leurs proprits Caption dans l'inspecteur d'objet pour que s'inscrive "Excute", "Nouveau" et "Corrige". Pour que chaque bouton image Bitmap (BitBtn) affiche le dessin correspondant, slectionnez la proprit Kind de l'inspecteur d'objet de chaque BitBtn. Pour le bouton "Corrige", prenez BkNo puis BkRetry pour "Excute" et BkAbort pour "Nouveau". Votre cran est maintenant prt, il ne reste plus qu' entrer le programme en commenant par l'inscription automatique du corps de
Chapitre III:
chaque procdure associe un bouton. Pour les boutons "droite"' et "gauche" des moteurs 1 et 2, les noms que vous devrez entrer sous l'onglet EVENEMENTS de l'inspecteur d'objet sont:
Viennent ensuite corrige pour le bouton "Corrige", vide_la_liste pour le bouton "Nouveau" et enfin excute pour le bouton "Excute". Il est bon de conserver l'esprit que les souligns sont indispensables et que vous ne devez pas utiliser de caractres accentus pour donner vos noms de procdure. Ce programme a l'avantage de vous permettre de vous familiariser avec les botes de listes (ListBox) qui sont plus simples manipuler qu'il n'y parat. En effet, comme cela dj t voqu, elles peuvent contenir des chanes de caractres alphanumriques repres par un index. Ces chanes, pour tre reconnues comme des nombres, doivent tre transformes l'aide de l'instruction StrToInt( ) comme c'est le cas pour l'extraction de la valeur dans la procdure excute. Un mouvement de moteur est repr par des initiales (l'ordre) et une valeur, qui seront affichs sous la forme M1G.12, ce qui signifie que le moteur 1 tourne gauche de 12 fois 4 pas. Le point entre l'ordre et la valeur fait office de sparateur. valeur:=StrToInt(copy((ListBox1.Items[i]),5,L-4)); signifie qu'on prend les caractres partir du cinquime jusqu'au dernier (ce qui est calcul par L) de l'item repr par i dans la bote de liste puis qu'on les convertisse en nombres avant de les ranger dans valeur (donc valeur dans notre exemple est gal 12). Pour extraire l'ordre de commander lun des deux moteurs, on na pas besoin d'effectuer une conversion. Nous crirons simplement: ordre:=copy ((ListBox1.Items[i]), 1, 3); qu'on peut traduire par "prendre les 3 caractres partir du premier de l'item repr par i dans la bote de liste", ce qui nous donne M1G. En fonction de l'ordre ainsi rcupr dans la procdure excute, on peut aiguiller le programme vers la squence d'action des enroulements de chaque moteur pas pas. Afin de simplifier le programme, le choix s'est port vers le droulement complet d'un cycle d'action sur les enroulements d'un moteur, ce qui signifie que les valeurs de rotation auront pour unit un angle de 30 degrs avec un moteur de 48 pas par tour. Si par exemple vous excutez l'ordre M1D.6, le moteur 1 effectuera une rotation droite de 180 degrs. Pour effectuer des tours complets, vous utiliserez donc des multiples de 12. Pour en venir aux aspects matriels de ce programme, il est rappel que l'adresse du port imprimante vers lequel nous enverrons les donnes correspond au port 2. Pour un autre port, modifiez les adresses en consquence. FONCTION DU PORT de donnes d'tat de contrle LPT1d 956 957 958 LPT1h 3BC 3BD 3BE LPT2d 888 889 890 LPT2h 378 379 37A LPT3d 632 633 634 LPT3h 278 279 27A
23
Chapitre III:
La procdure d'action des moteurs reprend le code que nous avons abord au cours du prcdent chapitre et qui est dvelopp ci-dessous pour mmoire. Le codage dadresse employ est hexadcimal (h) et binaire (b). ASM mov dx, 0378h mov ax, sortie out dx, al mov dx, 037ah mov al, 00000001b out dx, al mov dx, 037ah mov al, 00000000b out dx, al End; A la fin nous obtenons linterface graphique donne sur la Fig III.1 {chargement de l'adresse du port de donnes de LPT2 dans DX} {chargement de la valeur SORTIE dans AX} {sortie des 8 premiers bits de AX l'adresse contenue dans DX} {chargement de l'adresse du port de contrle de LPT2 dans DX} {mise 1 du bit correspondant au STROBE dans AL} {envoi du STROBE l'adresse contenue dans DX} {chargement de l'adresse} {mise zro du STROBE dans AL} {envoi l'adresse contenue dans DX}
Chapitre III:
III.1.2 Fonctionnement de linterface graphique: On ouvre la fentre (Pilotage de deux moteurs pas pas), cest cette interface qui nous permet de piloter les deux moteurs. La commande se fait un par un, car le programme excute linstruction trouve dans ListeBox. On slectionne le nombre de pas en utilisons le SpinEdit, puis la vitesse en utilisons le ComboBox et enfin direction (gauche ou droite) en appuyons sur lun des boutons, tout ce que nous avons choisi sera recopier dans la ListBox (sauf la vitesse), il nous reste qua appuy sur le BitBtn qui va excuter la rotation des deux moteurs moteur tourne.
Fig III.2: Carte dinterface Chaque moteur pas pas ncessitant une tension de 12V pour fonctionner correctement, un ULN 2803A (qui constitue l'tage de puissance) est intercal directement entre les sorties du 74HCT573 et les enroulements.
25
Chapitre III:
III.2.1.1 Verrou 74HCT573:
Avec linterface cre sous Delphi, on commande les huit sorties du port parallle qui gnre des bits de 1 et de 0 qui attaque le CI 74HCT573, voir la Fig III.3 qui est compos de huit bascules de D qui ont des sorties 3 tats, en fonction des entres D (broches D1 D7) et de LE Latch Enable inpout (broche 11) on la met souvent comme une entre dhorloge mais dans notre projet elle est relie vers le collecteur du transistor 2N2222, la commutation de ce dernier est commander par le pin1 du port parallle. Si le pin1 est au niveau haut (1) le transistor est satur alors la broche 11 est 0, les sorties sont verrouilles, et si le pin1 est au niveau bas (0) le transistor est bloqu alors la broche 11 est 1, linstruction est passe. Et enfin Output Enable (broche 1) on la met souvent vers la masse car elle est inverser. Pour plus de dtail voir lAnnexe 1.
26
Chapitre III:
LE L L L H H H L X
D H L X X H L Q Z
Tableau III.1: Les 3 tats du CI 74HCT573 L : ltat bas (0). H : ltat haut (1). X : indtermin. Q : ltat prcdent de Q+ . Z : ltat en haute impdance. III.2.1.2 Commutateur de puissance ULN2803: Ce que nous avons vu jusqu maintenant cest le bloc de verrouillage et de protection, nous allons continuer notre explication sur le fonctionnement de la carte avec le bloc de puissance, constitu dun circuit intgr ULN2803 qui a le rle de transformer les signaux numriques en des signaux pouvant effectivement alimenter les deux moteurs.
27
Chapitre III:
Le circuit intgr ULN2803A est la base de ce commutateur, il est compos de 8 Darlington (deux transistors NPN monts en cascade) de puissance et de diodes de protection. Chaque tage damplification inverseur qui adapte le niveau de tension et dintensit TTL de lente pour fournir une intensit jusqu 500mA sous une tension pouvant aller jusqu 50V en sortie. Afin dalimenter les huit phases des deux moteurs, on a utilis les huit Darlington. Les impulsions attaquant les Darlington commutent les bobines des deux moteurs la masse. Voir lAnnexe 2. La Fig III.5 nous donne le schma de lULN2803
Fig III.5: ULN2803 La structure interne du Darlington est donne sur la Fig III.6:
Fig III.6: Montage dun Darlington Pour bien comprendre le fonctionnement de ce circuit intgr dans notre montage visualiser la Fig III.7.
28
Chapitre III:
III.3 Alimentation:
Nous avons besoin de deux alimentations continues une de 5V pour alimenter le Verrou 74HCT573, et une autre de 12V pour le commutateur de puissance ULN 2803 et les deux moteurs. Pour diminu la tension du secteur 220V, on utilise un transformateur point milieu 212V avec un courant de 600mA chaque sortie. Aprs avoir abaiss la tension on passe au redressement, avec une diode 1N4007 chaque sortie on limine lalternance ngative, alors on aura un signal simple alternance. On commence le filtrage avec un condensateur de 470F lectrolytique (chimique) avant de diminu les tensions, une vers 5V avec le 78LS05, et lautre vers 12V avec le 78LS12. On amliore bien le filtrage avec un autre condensateur 2.2F, puis on utilise pour chaque sortie une rsistance et une LED en parallle pour le voyant La Fig III.8 qui est donn dans la page suivante est le montage utilis pour raliser cette alimentation.
29
Chapitre III:
D3
GND
R1
100R
TR
C1
470u
C2
2n2
D1 U2
7812 1 1N4007 VI VO 3
D4
GND
R2
1k
C3
470u
C4
2n2
D2
30
Chapitre III:
Fig III.9: Linterface graphique pour commander deux moteurs pas pas Lditeur nous montre linstruction excuter par le programme, et le ComboBox la vitesse, M1G.4, i.e. moteur tourne gauche de 4 fois 4 pas avec une vitesse lente (1 s). Puis M2D.2 moteur 2 va tourner droite de 2 fois 4 pas avec une vitesse rapide (0.1 s). La Fig III.10 est la partie des moteurs au point initial.
31
Chapitre III:
Fig III.10: Ltat des deux moteurs pas pas avant le test (point zro)
Fig III.11: Ltat des deux moteurs aprs avoir excut linterface graphique
32
Chapitre III:
Le Tableau III.2 nous montre ltat des sorties du port qui doit tre 1 pour faire tourner le moteur 1 gauche de 4 pas, et le moteur 2 droite de 4 pas aussi.
D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0
Tableau III.2: La table de vrit pour faire tourner le moteur 1 gauche de 4 pas et le moteur 2 droite de 4 pas
Conclusion: Cette maquette permet d'actionner deux moteurs pas pas de type unipolaire partir de la sortie imprimante parallle du P.C.. Les signaux qui entranent chaque moteur en rotation sont dlivrs directement par les huit lignes de donnes du port de sortie, ce qui constitue une configuration matrielle suffisamment pratique pour que l'essentiel du travail soit report vers la programmation. L'interface graphique est constitue de quatre boutons qui correspondent respectivement aux rotations gauche et droite de chaque moteur. Le contrle de la valeur correspondant au nombre de pas pour chaque moteur est effectu avec deux zones de saisie, une par moteur. Une zone d'dition permet l'affichage des squences, une squence consistant ajuster une valeur qui est automatiquement attribue au mouvement correspondant aux boutons de rotation. Il est possible de corriger la dernire valeur entre, de drouler toute la squence affiche ou de l'effacer.
33
Chapitre III:
34
Conclusion gnral
En ralisant ce travail, nous avons touch trois domaines important, la programmation sous Delphi, llectronique digitale et llectronique de puissance. Notre ralisation est intressante plus dun titre, car en plus de sa simplicit de conception, on peut commander deux moteurs soit en direction et mme leurs vitesses de rotation avec simplement une interface cre avec la programmation Delphi. Alors son cout de ralisation est minimis. Perspectives: Les travaux raliss dans le cadre de ce projet peuvent se poursuivre sur plusieurs axes: Tout dabord il serait intressent damliorer la partie lectrique on ajoutant un capteur au niveau de chaque moteur pour permettre lchange dinformations dans les deux sens. Remplacer lordinateur par un microcontrleur, pour quil soit portatif. Lamlioration de la carte graphique (ajout de quelques boutons, utilisation dun autre langage de programmation, ...) est galement une problmatique intressante quil faut aborder.
Nomenclature
Rsistances
R1 R3: 12 k (marron, rouge, orange). R4 R12 : 1.2 K (marron, rouge, rouge). R13, R14 : 1 K (marron, noir, rouge). Condensateurs
1 connecteur DB 25 mle souder sur circuit imprim 2 morceaux de barrette picots scables de 6 points (pour les deux moteurs). 1 borne visser x3 (pour lalimentation 5V-Gnd-12V) 1 connecteur DB 25 mle et femelle sertir sur nappe 1 nappe 25 fils de 1m de long 2 moteurs pas pas type 55 SI. 1 Transformateur 220V/212V.
Ouvrage:
[1] : Moteur pas pas et PC 2eme Edition, Patrice OGUIC, Edition Dunod, Paris 2004. [2] : Moteur lectrique pour la robotique, Pierre MAYE, Edition Dunod, Paris, 2006. [3] : Architecture et technologie des ordinateurs, P.ZENELLA et Y.LIGIER, Edition Dunod, 1998. [4] : Delphi 6 cr une application de A Z, C.KHECHANE, 2002.
Site Web:
[5] : Wikipdia encyclopdie online (www.wikipdia.com).