Télémètre à ultrasons

publicité
ERLEM Jean-François
SISSI Audrey
M1 SET
ROBOTGOLF & PROMOCO
TELEMETRE A
ULTRASONS
Rapport de projet
INSSET
2006-2007
Page 1 sur 36
Sommaire
DETECTION D’UN OBSTACLE ET CALCUL DE SA DISTANCE
I/ OBJECTIF...............................................................................................................................6
1/ Modules à ultrasons............................................................................................................ 7
2/ Microcontrôleur.................................................................................................................. 8
3/Conclusions..........................................................................................................................8
III/ PRINCIPE...........................................................................................................................11
1/ Ultrasons...........................................................................................................................11
2/ Fonctionnement.................................................................................................................11
3/ Mesure...............................................................................................................................12
IV/ SCHEMAS......................................................................................................................... 14
IV/ CONCLUSION...................................................................................................................17
I/ OBJECTIF.............................................................................................................................20
II/ CHOIX DU MATERIEL.....................................................................................................20
1/ Moteur...............................................................................................................................20
A- Moteur pas à pas.......................................................................................................... 20
B- Moteur à courrant continu............................................................................................20
C- Conclusion................................................................................................................... 21
2/ Commande du moteur.......................................................................................................21
A- Le circuit intégré TEA3717.........................................................................................21
B- Le circuit intégré MC3479C ....................................................................................... 23
C- Les circuits intégrés L297 et L298...............................................................................24
D- Conclusion...................................................................................................................24
3/ Capteur de position........................................................................................................... 25
III/ PRINCIPE...........................................................................................................................25
1/ Moteur...............................................................................................................................25
A- Les moteurs bipolaires.................................................................................................25
B- Les moteurs unipolaires............................................................................................... 27
C- Conclusion................................................................................................................... 28
2/ Commande du moteur.......................................................................................................28
A- Le circuit de commande L297..................................................................................... 28
B- Offre du constructeur................................................................................................... 28
C- Les circuits L298N et L293E.......................................................................................29
3/ Capteur de position........................................................................................................... 31
IV/ SCHEMA............................................................................................................................34
V/ CONCLUSION....................................................................................................................36
I/ OBJECTIF.............................................................Erreur : source de la référence non trouvée
II/ CHOIX DU MATERIEL.....................................Erreur : source de la référence non trouvée
1/ Moteur.............................................................. Erreur : source de la référence non trouvée
A- Moteur pas à pas..........................................Erreur : source de la référence non trouvée
B- Moteur à courrant continu........................... Erreur : source de la référence non trouvée
C- Conclusion...................................................Erreur : source de la référence non trouvée
2/ Commande du moteur...................................... Erreur : source de la référence non trouvée
A- Le circuit intégré TEA3717.........................Erreur : source de la référence non trouvée
B- Le circuit intégré MC3479C........................Erreur : source de la référence non trouvée
C- Les circuits intégrés L297 et L298..............Erreur : source de la référence non trouvée
D- Conclusion...................................................Erreur : source de la référence non trouvée
Page 2 sur 36
3/ Capteur de position...........................................Erreur : source de la référence non trouvée
III/ PRINCIPE.......................................................... Erreur : source de la référence non trouvée
1/ Moteur.............................................................. Erreur : source de la référence non trouvée
A- Les moteurs bipolaires.................................Erreur : source de la référence non trouvée
B- Les moteurs unipolaires...............................Erreur : source de la référence non trouvée
C- Conclusion...................................................Erreur : source de la référence non trouvée
2/ Commande du moteur...................................... Erreur : source de la référence non trouvée
A- Le circuit de commande L297.....................Erreur : source de la référence non trouvée
B- Offre du constructeur...................................Erreur : source de la référence non trouvée
C- Les circuits L298N et L293E.......................Erreur : source de la référence non trouvée
3/ Capteur de position...........................................Erreur : source de la référence non trouvée
IV/ SCHEMA........................................................... Erreur : source de la référence non trouvée
V/ CONCLUSION................................................... Erreur : source de la référence non trouvée
Page 3 sur 36
SISSI Audrey
M1 SET
DETECTION D’UN
OBSTACLE ET CALCUL DE
SA DISTANCE
Page 4 sur 36
Sommaire
I/ OBJECTIF...............................................................................................................................6
1/ Modules à ultrasons............................................................................................................ 7
2/ Microcontrôleur.................................................................................................................. 8
3/Conclusions..........................................................................................................................8
III/ PRINCIPE...........................................................................................................................11
1/ Ultrasons...........................................................................................................................11
2/ Fonctionnement.................................................................................................................11
3/ Mesure...............................................................................................................................12
IV/ SCHEMAS......................................................................................................................... 14
IV/ CONCLUSION...................................................................................................................17
I/ OBJECTIF.............................................................................................................................20
II/ CHOIX DU MATERIEL.....................................................................................................20
1/ Moteur...............................................................................................................................20
A- Moteur pas à pas.......................................................................................................... 20
B- Moteur à courrant continu............................................................................................20
C- Conclusion................................................................................................................... 21
2/ Commande du moteur.......................................................................................................21
A- Le circuit intégré TEA3717.........................................................................................21
B- Le circuit intégré MC3479C ....................................................................................... 23
C- Les circuits intégrés L297 et L298...............................................................................24
D- Conclusion...................................................................................................................24
3/ Capteur de position........................................................................................................... 25
III/ PRINCIPE...........................................................................................................................25
1/ Moteur...............................................................................................................................25
A- Les moteurs bipolaires.................................................................................................25
B- Les moteurs unipolaires............................................................................................... 27
C- Conclusion................................................................................................................... 28
2/ Commande du moteur.......................................................................................................28
A- Le circuit de commande L297..................................................................................... 28
B- Offre du constructeur................................................................................................... 28
C- Les circuits L298N et L293E.......................................................................................29
3/ Capteur de position........................................................................................................... 31
IV/ SCHEMA............................................................................................................................34
V/ CONCLUSION....................................................................................................................36
Page 5 sur 36
I/ OBJECTIF
Le practice est composé de poteaux, il peut également y avoir un obstacle comme une
personne… Lorsque le robot golf est en marche, il faut donc savoir s’il y a un obstacle et
connaître la distance de celui-ci afin que la supervision décide d’arrêter le robot ou de changer
sa direction.
L’objectif est donc que la supervision puisse interroger le télémètre à ultrasons et que
celui-ci lui renvoie la distance à laquelle se trouve l’obstacle via le bus can.
De plus, il nous fallait trouver une solution à l’implémentation du capteur et du moteur sur
le robot.
Page 6 sur 36
II/ CHOIX DU MATERIEL
1/ Modules à ultrasons
Nous devions choisir un capteur à ultrasons, pour cela, plusieurs choix s’offraient à nous :
•
Honeywell
Figure 1 : Caractéristiques des capteurs ultrasons Honeywell
•
Lextronic, Module télémètre ultasons
Lextronic propose une gamme de modules télémètre ultrasons. La distance maximum de
détection d’un obstacle est de 6,45 mètres.
•
Polaroid
Page 7 sur 36
Polaroid propose une gamme de transducteurs ultrasons ainsi qu’un module permettant de
les piloter.
• Piezoelectric Ceramic Sensors (PIEZOTITE) avec les caractéristiques suivantes :
Figure 2 : Caractéristiques des capteurs ultrasons PIEZOTITE
2/ Microcontrôleur
Pour notre projet, nous avions besoin communiquer via le bus CAN et comme je
l’explique dans le principe de fonctionnement, nous avons besoin d’utiliser le mode capture.
Plusieurs microcontrôleurs PIC répondent à ces critères. Nous avons décidé d’utiliser le
PIC16F458.
Figure 3 : Diagramme du PIC18F458
3/Conclusions
Il a été choisi le modèle POLAROÏD TRANSDUCTEUR9000 pour le robot golf. Celuici est très résistant aux chocs, à l’humidité, aux agents chimiques et peut être utilisé entre -40
et 80°C.
De plus, il a une gamme de mesure entre 15cm et 11m.
Page 8 sur 36
Cela signifie qu’il correspond parfaitement aux conditions d’utilisation du robot golf,
c'est-à-dire qu’il peut supporter les impacts de balles, le nettoyage du robot ainsi que les
conditions météorologiques extérieures.
Figure 4 : Polaroid transducteur9000
Pour les essais, nous avons décidé d’utiliser le modèle POLAROÏD
TRANSDUCTEUR7000 pour des raisons financières. Ce modèle diffère uniquement par le
fait qu’il est moins résistant et qu’il ne peut être utilisé qu’entre 0 et 60°C.
Figure 5 : Polaroid Transducteur7000
Page 9 sur 36
Afin de pouvoir piloter les transducteurs Polaroid, il nous fallait utiliser une interface
« sonar », pour cela, il a été choisi le POLAROÏD MODULE CDE 6500.
Figure 6 : Schéma électrique du Polaroid module CDE 6500
Seulement, pour l’utiliser avec le POLAROÏD TRANSDUCTEUR9000, des
modifications sur la carte sont à effectuer :
Figure 7 : Schéma électrique modifié du Polaroid module CDE 6500
Page 10 sur 36
III/ PRINCIPE
1/ Ultrasons
Les ultrasons sont des ondes élastiques dont la fréquence est comprise entre 15 kHz
environ et quelques centaines de Mégahertz. Dans notre cas, la fréquence de travail est de
45kHz.
2/ Fonctionnement
Polaroid propose un ensemble complet compatible TTL. Ce système est composé d'une
petite carte électronique et d'un unique transducteur, servant à l'émission et à la réception.
Ce système possède deux modes de fonctionnement, un mode écho unique ou un mode
multiple échos. Après avoir alimenté le module, on lance une mesure par la ligne INIT. Le
montage initialise l'ensemble puis envoie une salve de 16 impulsions à 50 kHz sous 400 V sur
le transducteur. Un blocage de la mesure est activé pendant 2,4 ms pour ne pas prendre en
compte un écho par couplage direct. On peut voir ci-dessous le principe pour le mode écho
unique.
Figure 8 : Principe de fonctionnement pour avoir un écho
Ci-dessous vous pouvez voir le principe du mode multiple écho.
Page 11 sur 36
Figure 9 : Mode multiples échos
3/ Mesure
Le principe de mesure est basé sur la mesure du temps écoulé entre l’émission et le retour
de l’écho. Le système de contrôle remet le chronomètre à zéro puis commence l’émission
ultrasonique. L’onde ultrasonore se propage à la vitesse du son dans l’air environnant, soit
340 m/sec. Dès qu’un obstacle est rencontré, l'écho revient vers le transducteur qui stop le
chronomètre dès réception du signal.
Comme nous l’avons vu précédemment dans le principe de fonctionnement, une fois que
INIT est mis à 1, on peut alors recevoir un écho. Nous le recevons alors sur la patte CCP1 du
microcontrôleur. Nous avons alors déclaré possible une interruption sur le mode capture sur
front montant, nous relevons alors le timer1. Comme le son se propage à 340 mètres par
seconde, mais qu’il faut attendre le retour de l’écho donc l’ultrason parcourt 170 mètres par
seconde.
De plus, la distance maximum de détection d’obstacle est de 11 mètres, il nous fallait
donc choisir le prédiviseur du timer adéquat. On était donc obliger de choisir un prédiviseur 8,
soit un débordement toutes les 104 ms ce qui correspond à une distance de 17 mètres.
Donc lorsque nous connaissons la valeur du timer, nous pouvons calculer la distance de
l’obstacle en effectuant le calcul suivant : timer*2.10^-7*8*170
2.10^-7 : car nous avons un quartz de 20MHz.
8 : pour le prédiviseur du timer.
170 : car avec le retour de l’écho, l’ultrason parcourt 170 mètres par seconde.
Une fois la mesure effectuée, on doit remettre INIT à 0 pour recevoir un nouvel écho.
On déclare alors les pattes dont nous avons besoin pour le module à ultrasons.
Page 12 sur 36
#define INIT PIN_E0
#define BINH PIN_E1
#define BLNK PIN_E2
Puis les variables globales :
Valid : sert de drapeau pour savoir s’il ya eu une interruption, c’est-à-dire que l’on a reçu un
écho.
Mesure : permet de connaître la distance de l’obstacle.
Front_mont : correspond à la valeur de capture du timer
int1 Valid=0;
float Mesure;
int16 Front_mont;
Ensuite on déclare le timer avec un prédiviseur 8, on choisit le mode capture sur front
montant, on autorise l’interruption sur CCP1.
De plus on met INIT à l’état haut afin d’avoir un écho, BINH à l’état bas pour avoir un
écho unique et BLNK à l’état bas comme nous avons pu le voir dans le principe de
fonctionnement.
void Initialisation()
{
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); // valide le Timer 1
SETUP_CCP1(CCP_CAPTURE_RE); // déclenche sur front montant
enable_interrupts(INT_CCP1); // valide l'interruption par ccpl
enable_interrupts(GLOBAL);
output_high(INIT);
output_low(BINH);
output_low(BLNK);
}
Lors de l’interruption, on stocke dans Front_mont la valeur du timer et on met Valid à 1.
#INT_CCP1
void isr()
{
Front_mont = CCP_1; // mémorise la valeur
Valid = 1;
}
Cette fonction permet de calculer la distance à laquelle se trouve l’obstacle.
Si Valid est à 1, c’est-à-dire que l’on a reçu un écho, on effectue le calcul, puis on met à l’état
bas INIT et Valid à 0 afin de pouvoir effectuer une nouvelle mesure. Si nous n’avons pas
d’interruption, nous mettons INIT à l’état haut et le compteur à 0 afin de pouvoir effectuer
une nouvelle mesure.
void Lecture()
Page 13 sur 36
{
if (Valid)
{
Mesure = Front_mont * 0.000272; // mesure
output_low(INIT); // arrête la mesure
Valid = 0; // autorise une nouvelle mesure
}
else
{
output_high(INIT); // lance une nouvelle mesure
SET_TIMER1(0); // compteur à 0
}
}
IV/ SCHEMAS
On peut voir ci-dessous le brochage du module à ultrasons.
Figure 10 : Brochage du module à ultrasons
Comme le montrait le code source, il a été décidé que INIT serait relié à la patte E0,
BINH, à la patte E1, BLNK à la patte E2 et enfin ECHO à la patte CCP1, comme on peut le
voir sur le schéma suivant :
Page 14 sur 36
RE2
RE1
RE0
CCP1
18F458
BLNK
INH
BINH
INIT
TRANSMIT
TRANSDUCTEUR
ECHO
MODULE POLAROID
Figure 21 : Brochage Microcontrôleur/Module
Une fois cela définit, il suffit de rajouter le module CAN et les modules élémentaires. Ainsi,
on obtient le schéma suivant :
Page 15 sur 36
Page 16 sur 36
IV/ CONCLUSION
Pour conclure, le principe de fonctionnement du module à ultrasons est assez simple,
néanmoins nous avons eu quelques problèmes avec la carte alors que nous n’en avions pas en
faisant les tests sur des plaques d’essais.
Ce problème nous a fait perdre beaucoup de temps. Il n’y avait qu’une seule
interruption. Nous avons constaté que lorsque l’on passait la main sous la carte au niveau des
connecteurs du module à ultrasons, nous rentions de nouveau dans l’interruption. Cela était dû
à l’électricité statique, il nous a alors été conseillé de mettre une résistance entre ECHO et V+.
Depuis, on a une valeur précise à 1% en mètres de la distance d’un obstacle.
On pourrait bien entendu améliorer la fonctionnalité du module à ultrason en ayant un
multi écho, ce qui permettrait d’avoir la distance de plusieurs obstacles et ainsi vérifier la
position du robot par rapport au GPS.
Enfin, ce projet a été très instructif, il m’a permis de mettre en pratique mes
connaissances sur la programmation des microcontrôleurs et d’en acquérir de nouvelles,
particulièrement sur la partie électronique.
Page 17 sur 36
ERLEM Jean-François
M1 SET
GESTION DE
POSITIONNEMENT DU
CAPTEUR ULTRASON
Page 18 sur 36
Sommaire
I/ OBJECTIF...............................................................................................................................6
1/ Modules à ultrasons............................................................................................................ 7
2/ Microcontrôleur.................................................................................................................. 8
3/Conclusions..........................................................................................................................8
III/ PRINCIPE...........................................................................................................................11
1/ Ultrasons...........................................................................................................................11
2/ Fonctionnement.................................................................................................................11
3/ Mesure...............................................................................................................................12
IV/ SCHEMAS......................................................................................................................... 14
IV/ CONCLUSION...................................................................................................................17
I/ OBJECTIF.............................................................................................................................20
II/ CHOIX DU MATERIEL.....................................................................................................20
1/ Moteur...............................................................................................................................20
A- Moteur pas à pas.......................................................................................................... 20
B- Moteur à courrant continu............................................................................................20
C- Conclusion................................................................................................................... 21
2/ Commande du moteur.......................................................................................................21
A- Le circuit intégré TEA3717.........................................................................................21
B- Le circuit intégré MC3479C ....................................................................................... 23
C- Les circuits intégrés L297 et L298...............................................................................24
D- Conclusion...................................................................................................................24
3/ Capteur de position........................................................................................................... 25
III/ PRINCIPE...........................................................................................................................25
1/ Moteur...............................................................................................................................25
A- Les moteurs bipolaires.................................................................................................25
B- Les moteurs unipolaires............................................................................................... 27
C- Conclusion................................................................................................................... 28
2/ Commande du moteur.......................................................................................................28
A- Le circuit de commande L297..................................................................................... 28
B- Offre du constructeur................................................................................................... 28
C- Les circuits L298N et L293E.......................................................................................29
3/ Capteur de position........................................................................................................... 31
IV/ SCHEMA............................................................................................................................34
V/ CONCLUSION....................................................................................................................36
Page 19 sur 36
I/ OBJECTIF
L’objectif de ma partie était la gestion de positionnement du moteur pour que le capteur à
ultrasons puisse donner la distance d’un obstacle à un angle donné.
Durant le projet j’ai abordé d’autres aspects comme la gestion du bus CAN, et j’ai aussi
réfléchis à l’élaboration de la tourelle pour que le capteur soit protégé contre le milieu
extérieur.
II/ CHOIX DU MATERIEL
1/ Moteur
A- Moteur pas à pas
Avantages des moteurs pas à pas
– L’angle de rotation est proportionnel au nombre d’impulsions envoyées.
– La vitesse de rotation est proportionnelle à la fréquence des impulsions d’entrée.
– Le système est direct, il ne requiert pas de suivi de la position.
– Excellente réponse à l’accélération, la décélération et la commande par à-coups.
– Les erreurs de positionnement ne se cumulent pas (±5% de l’angle de pas).
– Excellentes caractéristiques à bas régime et couple élevé même sans réducteur de vitesse.
– Couple de maintien lorsqu’il est alimenté.
– Couple d’encliquetage inhérent.
– Fonctionne dans les deux sens de rotation.
– Peut caler sans dégât.
– Absence de balais, donc longue durée de vie sans entretien.
– Roulements à billes de précision (selon marque et type).
Inconvénients des moteurs pas à pas
– Résonances possibles si mal commandé.
– Fonctionnement difficile à très haute vitesse.
– En cas de surcharge, la position n’est plus connue, il faut repartir de zéro.
– A taille égale, couple plus faible que sur un moteur continu ou alternatif équivalent.
B- Moteur à courrant continu
Le moteur à courant continu est le moyen le plus simple et le plus économique pour réaliser
des entraînements à vitesse variable. Malheureusement, ces avantages sont contrebalancés par
les inconvénients découlant de la présence, en son sein, du collecteur. Ce dernier, pouvant être
le siège d'étincelles, voire d'arcs électriques, constitue le véritable «talon d'Achille» de ce type
de machine.
Page 20 sur 36
C- Conclusion
Pour notre projet, nous avons décidé d’utiliser le moteur à pas à pas, qui est plus adapté par
rapport au moteur à courant continu pour notre application.
2/ Commande du moteur
Il est facile de réaliser une commande électronique de moteur pas à pas à l'aide de commande
de composants discrets :
Des transistors de puissances commandés par des portes logiques avec un dispositif de
limitation de courant. Mais il est encore plus simple d'utiliser des circuits intégrés spécialisés,
circuits ne nécessitant que quelques composants externes et simplifiant au maximum l'envoi
des séquences de commande. Ils disposent en outre de toutes les fonctions tels que le sens de
rotation, le mode demi-pas, la mise en haute impédance des sorties (moteur libre), etc.
Nous vous proposons maintenant la présentation de quelques un d'entre eux, choisis parmi les
plus utilisés, et donc facilement disponibles.
A- Le circuit intégré TEA3717
Caractéristiques générales :
-
mode demi-pas et pas entier
commande bipolaire du moteur pas à pas pour un rendement maximum
diodes de protection interne
large gamme du courant de sortie de 5mA à 1A
tout particulièrement désigné pour une utilisation avec une tension d'alimentation du
moteur non stabilisée
la valeur du courant d'alimentation du moteur peut être choisie par pas à l'aide d'entrés
logiques, ou varier d'une façon continue.
Le brochage du TEA3717, figure ci-dessous :
Page 21 sur 36
Page 22 sur 36
Le circuit est destiné à la commande d'un enroulement d'un moteur pas à pas bipolaire. Il
convient donc d'utiliser deux circuits afin de piloter le moteur. Il comporte en interne deux
entrées compatibles T.T.L., un palpeur de courant, un monostable et un étage de sortie à
quatre transistors protégés par des diodes.
B- Le circuit intégré MC3479C
Le circuit intégré MC3479C permet le pilotage d'un moteur pas à pas bipolaire. Un seul
circuit est nécessaire. Il est constitué de quatre entrées (au standard T.T.L.) de sélection
commandant un circuit logique. Ce circuit pilote deux drivers de puissance auxquels sont
connectés les deux enroulements du moteur bipolaire. Le dessin de la figure ci-dessous
représente le schéma interne du MC3479C ainsi que son brochage.
Ses principales caractéristiques sont les suivantes :
- tension d'alimentation simple comprise entre +7,2V et +16V
- courant de sortie de 350mA par enroulement
- diodes de protection internes intégrées dans le boîtier
- sélection du sens de rotation et du mode pas entier ou demi-pas
- possibilité de mise en haute impédance des sorties
- entrées de commande compatibles T.T.L. et CMOS
- sortie indiquant l'état de sortie de la phase A
Certaines des broches du circuit ont un rôle particulier et nécessitent une explication :
1. broches 4, 5, 12 et 13
Page 23 sur 36
Ce sont les broches de masse du MC3479C. Outre leur rôle d'alimentation, elles sont utilisées
afin de dissiper la chaleur produite par le boîtier. Le circuit imprimé devra donc être conçu de
telle sorte qu'un large plan de masse parvient à ces broches.
2. broche 1
Connexion d'une diode de clamp. Cette entrée est utilisée afin de protéger les sorties lorsque
des pointes de tension élevées apparaissent lors de la commutation des enroulements des
moteurs. Cette diode doit être connectée entre la broche 1 et la broche 16 (Vs)
3. broche 6 BIAS/SET
Cette broche est en principe portée à un potentiel de Vs-0.7V. Le courant sortant, à travers
une résistance connectée à la masse, détermine le courant maximal disponible aux bornes du
moteur. On peut ainsi, en faisant varier la valeur de la résistance, diminuer le courant
d'alimentation lorsque le moteur est à l'arrêt. Lorsque cette broche est laissée " en l'air ", les
sorties de puissances se trouvent en état de haute impédance.
C- Les circuits intégrés L297 et L298
Le circuit intégré L297 possède quatre sorties de commande des étages de puissance, ainsi
que deux sorties supplémentaires d'inhibition de ces étages (lorsqu'il est utilisé avec le L298).
Ces deux sorties sont commandées par une logique interne elle-même déclenchée par deux
comparateurs.
Ces deux comparateurs mesurent la valeur de la tension présente aux bornes de deux
résistances due au courant traversant les enroulements du moteur. Lorsque la valeur de cette
tension dépasse celle de la tension de référence, l'alimentation du moteur est coupée jusqu'à ce
que la valeur du courant diminue. Nous avons vu ce type de fonctionnement dans la
description du TEA3717.
Le circuit intégré L298 contient deux étages de puissance configurés en pont, chacun
commandé par deux entrées logiques (A, B et C, D) ainsi que deux entrées de validation
(INH1 et INH2). De plus deux broches sont connectées en interne aux émetteurs des
transistors (paires inférieures) qui permettent la connexion de résistances palpeuses de
courant.
Le L298 permet de disposer d'un courant important (2,5A) sous une tension élevée (46V). La
puissance obtenue peut ainsi atteindre environ 200W, ce qui permet l'alimentation de moteurs
puissants présentant des résistances de bobinage faibles. Il va sans dire que dans ce cas, le
circuit devra être fixé sur un dissipateur thermique de dimensions convenables.
D- Conclusion
Nous avons choisi les circuits intégrés L297 et L298 car le L298 permet de disposer d'un
courant important et a déjà été utilisé dans le labo, ce qui a permis de conforter notre choix de
la commande de moteur.
Page 24 sur 36
3/ Capteur de position
Différents capteurs de position existe sur le marché. Les plus utilisés sont les potentiomètres,
les codeurs, et autres capteurs à effets hall…
Pour notre montage nous avons décidé d’utiliser un potentiomètre de précision sans fin. Ce
potentiomètre permet de connaître exactement l’angle du moteur.
Bien entendu nous aurions pu prendre un capteur à effet hall qui permettrai de connaître le 0,
et de faire confiance au nombre de pas du moteur, mais si une balle heurte la tourelle ou que
le moteur rate des pas, le capteur à effet hall ne sert à rien, il servirait seulement à
l’initialisation du robot.
Tandis que le potentiomètre peut à tout moment corriger l’angulation à plus ou moins
quelques degrés près. Ces degrés sont définis par le programme sachant que pour notre
moteur, le pas est de 1,8 degrés.
III/ PRINCIPE
1/ Moteur
Il y a deux constitutions de base de moteur pas à pas utilisés couramment : les moteurs à
aimant permanent et ceux à reluctance variable. Les moteurs à aimant permanent se divisent
en deux types : les bipolaires et les unipolaires.
A- Les moteurs bipolaires
Le courant de commande est bidirectionnel et l'avance d'un pas s'effectue par une séquence de
commutation des enroulements statoriques.
Pour ce type de moteur nous avons trois possibilités de commande.
La première consiste à alimenter les enroulements en suivant la séquence A vers B / C vers
D / B vers A / D vers C (BA est le même enroulement que AB mais alimenté par un courant
Page 25 sur 36
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
alimentée par un courant "positif". Soit : A C B D.
Cette séquence 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'alimentée et
nous travaillons en mode pas entier.
La seconde possibilité est d'alimenter une paire de phase en même temps de façon à ce que le
rotor se positionne entre deux pôles.
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 séquence sera donc : AC / CB / BD / DA.
La troisième option est un mélange des deux première puisque l'on alimente tour à tour le
moteur sur une phase puis deux puis une... Cette séquence connue sous le nom de mode demipas procure effectivement une division par 2 de l'angle d'avance d'un pas, mais aussi un
couple moins régulier.
La séquence qui en découle est la suivante : A / AC / C / CB / B / BD / D /DA.
Page 26 sur 36
Pour obtenir une rotation dans la direction opposée les mêmes séquences sont utilisées en
inversant l'ordre de défilement.
Comme nous pouvons le constater sur les diagrammes, les moteurs sont représentés avec une
avance de pas à 90°.
Dans les moteurs réels le nombres de pôles ont été multipliés pour réduire à quelques degrés
seulement l'angle d'avance d'un pas. Le nombre d'enroulements et la séquence de commande
restant, quand à eux, inchangés.
B- Les moteurs unipolaires
Les moteurs unipolaires se différencient par le fait qu'ils sont à double bobinage.
Le double bobinage est utilisé pour l'inversion du flux statorique et le moteur se commande de
la même manière qu'un bipolaire excepté qu'un seul transistor pour chaque enroulement suffit
dans l'étage de puissance (soit quatre darlington pour un moteur ou un réseau de 4 transistors).
Page 27 sur 36
Simplement, les moteurs unipolaires sont plus chers car leur fabrication réclame un double
bobinage. De plus, pour une taille donnée, ce type de moteur à un couple plus faible à cause
des enroulements qui sont plus fins.
Il fût une époque où les moteurs unipolaires étaient intéressants pour les concepteurs parce
qu'ils simplifiaient l'étage de commande électronique. Maintenant, grâce aux circuits de
commande (push pull monolithique) du genre L298, les moteurs bipolaires sont devenu
populaires et d'une utilisation courante.
Tous les moteurs à aimant permanent souffrent des oscillations (et des harmoniques qui s'en
suivent) générées par le rotor qui limitent la vitesse de rotation.
Quand des accélérations et des vitesses plus élevées sont nécessaires on utilisera de préférence
les moteurs à reluctance variable.
C- Conclusion
Nous avons décidé d’utiliser un moteur bipolaire avec un double arbre pour pouvoir le
coupler avec un potentiomètre.
2/ Commande du moteur
A- Le circuit de commande L297
Le L297 est un circuit qui contient toute la circuiterie de commande et de contrôle de moteurs
pas à pas unipolaire et bipolaire.
Utilisé conjointement avec un driver double pont tel que le L298, l'ensemble forme une
interface idéale pour le contrôle d'un moteur pas à pas bipolaire par microprocesseur ou micro
contrôleur.
Il est possible de contrôler un moteur pas à pas unipolaire avec un L297 en lui adjoignant
quatre transistors darlington ou Mosfet.
B- Offre du constructeur
Le circuit de commande de moteur pas à pas L297 est initialement prévu pour être utilisé avec
un driver L298 ou L293E.
Il reçoit les signaux de contrôle en provenance d'un système à base de microprocesseur et
génère tous les signaux nécessaires pour l'étage de puissance.
Ce circuit inclue deux régulations à découpage type PWM (modulation de largeur
d'impulsion) pour réguler le courant des enroulements moteur.
Avec un étage de puissance adapté le L297 commande un moteur pas à pas bipolaire à aimant
permanent, un moteur unipolaire à quatre phases à aimant permanent ou un moteur à
reluctance variable à quatre phases.
De plus il est capable de gérer le mode demi pas et pas complet. Le L297A est une version
spéciale pour le positionnement des têtes de lecteur de disquette.
Le circuit intégré L298N est un étage de puissance (driver) pour les moteurs à courant
continu.
Toutefois, le L297 est utilisable avec toute sorte d'étage de puissance et peut s'affranchir la
commande des composants discrets tel que des transistors de puissance ; il fourni jusqu'à
20mA sur ces sorties.
Page 28 sur 36
Le schéma suivant représente une configuration typique du circuit de commande de moteur
pas à pas L297 et le double pont L298 pour former une interface avec microprocesseur.
Pour des moteurs bipolaires avec des courants de l'ordre de 2A max dans les enroulements, le
L297 serait à utiliser avec le L298N. Pour des courants jusqu'à 1A le L293 est recommandé.
Des courants plus élevés sont obtenus avec des transistors de puissance ou des darlingtons
(pour des moteurs unipolaires voir le pont ULN2075B).
Les applications du circuit de commande L297 sont multiples et nous pouvons citer les
exemples suivants :
Imprimante (chariot et positionnement des têtes d'impression ; entraînement papier ;
entraînement de ruban), machines à traitement de texte, tables traçantes, machines à
commande numérique, robots, scanner...
Le circuit L297 est disponible en boîtier DIP plastique 20 pins. Il s'alimente en 5 V et les
lignes d'entrées sont compatibles TTL, CMOS et s'interface aussi avec des transistors en
collecteur ouvert. La haute densité d'intégration du L297 est l'une des caractéristiques
technologique clé de ce circuit.
C- Les circuits L298N et L293E
L'utilisation du L297 étant fréquente avec les drivers en pont L293E et L298, une petite revue
de ces circuits s'impose.
Ces composants contiennent de quoi faire deux ponts complets formant ainsi un étage de
puissance pour piloter un moteur pas à pas ou à courant continu. Chaque circuit dispose de
lignes de contrôle compatibles TTL.
De plus, le L293E possède un accès à l'émetteur de chaque drivers (soit quatre par circuit)
alors que le L298 en est équipé d'une pour chaque pont (soit deux par circuit intégré).
Ces connexions sont utilisées pour connaître l'intensité du courant traversant les bobines du
moteur par l'intermédiaire d'une résistance de mesure R sense.
Le circuit L298 bénéficie d'une technologie lui permettant de dissiper 160 W (avec une
alimentation de 46 V et 2 A par pont).
Une alimentation séparée 5 V pour la partie contrôle logique évite une dissipation trop
Page 29 sur 36
importante. Elle est directement utilisable avec le 5 V du L297 ou tout autre circuit logique.
Dans un but pratique, les noms des pattes des composants (du L298N et du L297) sont
souvent identiques (sur les documentations) pour une meilleure compréhension globale du
montage ou de l'application.
Le L298N se décline dans un boîtier Multiwatt à 15 pins. Fonctionnellement c'est le petit frère
du L293E qui possède un boîtier 20 pins Powerdip dont les quatre pattes centrales sont
utilisées pour conduire la chaleur du composant vers la surface cuivrée du circuit imprimé.
Constitution du L297
Rappel de base sur la commande des moteurs pas à pas
Les moteurs bipolaires :
Le courant de commande est bidirectionnel et l'avance d'un pas s'effectue par une séquence de
commutation des enroulements statoriques.
Les moteurs unipolaires :
Les moteurs unipolaires se différencient par le fait qu'ils sont à double bobinage.
Le double bobinage est utilisé pour l'inversion du flux statorique.
Le coeur du L297 est le block appelé "translator" sur le schéma block. C'est lui qui génère les
séquences appropriées pour l'alimentation des phases en mode demi pas, pas entier une
phase / biphase.
Ce block est contrôlé par deux entrées de mode - le mode direction (CW / CCW) et le mode
pas / demi-pas (HALF/ FULL)- et l'entrée clock dont les impulsions d'horloge qu'on lui
applique font évoluer le séquenceur vers le prochain pas.
Quatre sorties sont fournies par le séquenceur et attaquent le block logique qui contient les
fonctions "inhibe" et "chopper".
Page 30 sur 36
La structure interne du séquenceur consiste en un compteur 3 bits (plus une logique
combinatoire) qui génère les huit étapes de base (en code gray) comme nous le voyons sur la
figure suivante.
Sur ce diagramme nous sommes en mode demi-pas (Half) et en sens horaire (CW).
Les trois séquences de commande possibles sont extraites directement de cette séquence
principale.
Le chronogramme des sorties en mode demi pas est visible ci-après.
Nous remarquons deux signaux supplémentaires, INH1 et INH2, générés dans cette séquence.
3/ Capteur de position
Le potentiomètre permet de connaître la position du moteur. Le principe est assez simple, le
potentiomètre est connecté à l’entrée An0 qui est une entrée analogique du PIC18F458.
Page 31 sur 36
Ensuite l’arbre du potentiomètre est relié à l’arbre inférieur du moteur. Lorsque le moteur
fonctionne, il fait varier la tension « valeur » exprimée en volt. Cette valeur est comprise entre
0V et 5V. Donc nous n’avons pas besoin d’utiliser une diode zéner couplé avec une résistance
car la tension ne peut être supérieure à 5V.
Pour connaître l’angle nous faisons appel à la fonction fct_Acquisition_ADC(void) qui
retourne l’angle.
float fct_Acquisition_ADC(void){
float valeur,tension_max=5,adc=255,angle;
valeur=read_adc();
delay_us(10);
valeur=(valeur*tension_max)/adc;
angle=(valeur*360)/5;
return angle;
}
La figure ci-dessous montre que nous utilisons deux systèmes de mesure.
-
-
Degrés du potentiomètre : le 0 correspond à l’arrière du robot. Le potentiomètre va de
0° à 360° avec un angle mort entre 355° et 0° et entre 0° et 5° donc il faut faire
attention que le robot ne franchisse pas cette angle mort ou l’on fait confiance au pas
du moteur.
Degrés du robot : le 0 correspond à la position d’initialisation. Si le robot veut
regarder à gauche, il sera en positif et s’il vaut regarder à droite, il sera en négatif. Si le
robot veut regarder en arrière on lui demandera de regarder à 180°
Page 32 sur 36
La fonction ci-dessous permet de mettre le capteur dans un certain angle et retourne la
distance.
float fct_Pointer(float valeur){
float angle; float adc; int1 sens=0; int32 pas;
// Vérifier si l'angle donné en paramètre est négatif ou positif
if (valeur<0){
valeur=glob_Offset-abs(valeur);
}
else{
valeur=glob_Offset+valeur;
}
adc=fct_Acquisition_ADC(); // Lire le potentiomètre
angle=valeur-adc;
if (angle<0){
sens=0;
pas=fct_Convertir_Degres_En_Pas((int32)abs(angle));
}
if (angle>0){
sens=1;
pas=fct_Convertir_Degres_En_Pas((int32)angle);
}
fct_Moteur_Pas(pas,sens,0);
while (fct_Verifier_ADC((int32)valeur)==false){
fct_Correction_Pas((int32)valeur); // Vérifier si l'angle correspond au pas
}
return fct_Distance(); // Retourne la distance
}
Page 33 sur 36
La fonction ci-dessous permet de corriger le pas.
void fct_Correction_Pas(int32 degres){
float angle; float adc; int1 sens=0; int32 pas;
adc=fct_Acquisition_ADC();
angle=degres-adc;
if (angle<0){
sens=0;
pas=fct_Convertir_Degres_En_Pas((int32)abs(angle));
}
if (angle>0){
sens=1;
pas=fct_Convertir_Degres_En_Pas((int32)angle);
}
fct_Moteur_Pas(pas,sens,0);
}
IV/ SCHEMA
Le schéma ci-dessous représente la partie commande de moteur.
Nous pouvons constater l’emploi des circuits L297 et L298 qui permette de driver le moteur
pas à pas. Ces circuits sont alimenté en +5V à l’aide du connecteur J4.
Le moteur qui se connecte à J2 peut être alimenté jusqu’à 46V à l’aide du connecteur J5, pour
nos besoins, nous l’alimenterons en 12V qui est la tension maximum du moteur pas à pas
choisi.
Les connecteurs J1 et J3 sont connectés à toutes les entrées et sorties du L297. Normalement
le prototype n’utilise pas toutes ces pattes mais nous avons décidé de les sortir pour faciliter
les différentes améliorations.
Page 34 sur 36
Page 35 sur 36
V/ CONCLUSION
Ce projet m’a permis d’aborder les différents systèmes d’asservissement de moteur à courants
continu.
Il m’a aussi permis d’acquérir de l’expérience pour résoudre des problèmes électroniques
comme l’ajout d’une résistance qui manqué au bon fonctionnement du prototype. Sachant que
avant ce prototype nous avions câblé le montage sur une plaquette d’essai et tout fonctionnait
correctement.
La partie a était entièrement réalisé et est fonctionnelle, néanmoins il reste très certainement
quelques optimisations de code à faire et quelques fonctions à ajouter. Mais je pense qu’un
projet n’est jamais terminé et l’on peut toujours l’améliorer.
Concernant le bus CAN, nous pouvons envoyer des trames et en recevoir, mais à l’heure où
j’écris le rapport les données ne sont pas encore formatées. Tous les tests on était fait avec un
affichage sur terminal.
La tourelle est en cours de réalisation à l’IUT est devrait être livré d’ici peu.
Page 36 sur 36
Téléchargement