Académique Documents
Professionnel Documents
Culture Documents
1
République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université des Sciences et de la Technologie d’Oran
MOHAMED BOUDIAF
Président du jury :
Monsieur. OMARI
Date : 22/06/2008
Signature : ……….
Encadreur :
Monsieur K.YAHIAOUI
Date : 22/06/2008
Signature : ……….
2
Nous remercions ALLAH tout puissant de nous avoir donné les moyens et la
force d’accomplir ce modeste travail.
Nous voudrons également remercier tous nos camarades qui étaient à nos
cotés aux liens fraternels et amicaux qui ont germé dans notre esprit.
HAMANE BEKHADA
AZROUG MOHAMED
3
Dédicace
A mon ami AZROUG MOHAMED avec qui j’ai partagé les peines et
les joies de ce projet fin d’étude,
HAMANE BEKHADA
4
Dédicace
Je dédie ce mémoire à
AZROUG MOHAMED
5
Sommaire
Préambule. 11
Ι.1.Introduction. 13
Ι.2.Définition. 14
Ι.3.La structure mécanique. 15
Ι.3.1.Le châssis. 15
Ι.3.2.La structure. 15
Ι.3.3.La locomotion. 16
Ι.3.3.1.Les roues 16
Ι.3.3.2.Les pattes. 16
Ι.3.3.3.Les chenilles. 17
Ι.3.4.Le choix des moteurs (Les actionneurs). 17
Ι.4.la structure de commande ou électronique. 18
Ι.4.1.Les capteurs. 18
Ι.4.1.1.les capteurs externes (capteurs d’environnements). 18
Ι.4.1.2.les capteurs interne (capteur proprioceptif). 18
Ι.4.2.Les interfaces de puissance des moteurs. 19
Ι.4.3 .les centres de contrôle (le cerveau d’un robot). 19
Ι.4.4 .L’alimentation. 19
ΙΙ. 1. Introduction. 21
ΙΙ. 2. Définition. 21
ΙΙ. 3. Différent types de moteurs pas à pas. 21
ΙΙ. 3.1 Moteur à aiment permanent. 21
ΙΙ. 3.2 Moteur à reluctance variable. 22
ΙΙ. 3.3 Moteur hybride. 22
ΙΙ. 4. Le mode de contrôle. 23
ΙΙ. 4.1. Le mode unipolaire. 23
ΙΙ. 4.2..Le mode bipolaire. 23
ΙΙ. 5. Caractéristiques couple et vitesse. 23
ΙΙ. 5. 1.Couple d'arrêt ou couple de maintient. 23
ΙΙ. 5. 2.Plage de démarrage. 24
ΙΙ. 5. 3.Fréquence limite de démarrage. 24
ΙΙ. 5. 4.Plage d'accélération. 24
ΙΙ. 5. 5.Couple limite de travail. 24
ΙΙ. 5. 6.Fréquence maximale des pas. 24
ΙΙ. 6. configurions interne des bobines du moteur. 24
ΙΙ. 6.1. Les moteurs à 4 fils (bipolaire). 25
ΙΙ. 6.2. Les moteurs à 5 fils (unipolaire). 25
ΙΙ. 6.3. Les moteurs à 6 fils. 25
ΙΙ. 6.4. Les moteurs à 8 fils. 25
ΙΙ. 7. Commande des moteurs pas à pas. 25
ΙΙ. 8. Le mode de séquence. 26
ΙΙ. 8.1. Pas entier. 26
ΙΙ. 8.1.1. Monophasé. 26
6
ΙΙ. 8.1.2. Biphasé. 27
ΙΙ. 8.2. Demi pas. 27
ΙΙ. 9. Commande de moteur pas à pas par des circuits intégrés spécialisés. 28
ΙΙ.10 .Le critère de choix d’un moteur pas à pas. 28
ΙΙ.11.Conclusion. 28
7
IV.1.5.1.L’interface principale. 57
IV.1.5.1.1.Console de commande. 58
IV.1.5.1.2.Commande trajectoire. 59
IV.6 .Conclusion. 62
Conclusion générale. 63
ANNEXE. 64
Références bibliographiques. 70
8
La liste des figures
9
Figure. IV. 7: L’organigramme pour déterminer le mode de la commande choisie. 51
Figure. IV. 8: L’organigramme du mode console de commande. 52
Figure. IV. 9: L’organigramme pour la détermination de la vitesse. 53
Figure. IV. 10: L’organigramme de gestion de l’interruption déclenchée par le Timer1
dans mode console de commande. 54
Figure. IV. 11: L’organigramme du mode de commande par trajectoire. 55
Figure. IV. 12: L’organigramme Gestion de l’interruption déclenchée par le Timer1 dans
le mode de commande par trajectoire. 56
Figure. IV.13: Borland C++ Builder. 57
Figure .IV.14: L’interface principale. 57
Figure. IV.15 : L’interface de console de commande. 58
Figure .IV.16 : L’interface de commande trajectoire. 59
Figure. IV.17 : L’organigramme de commande trajectoire. 59
Figure .IV.18: Trajectoire droite. 60
Figure. IV.19: Trajectoire est une dérivation. 60
Figure. IV.20: Exemple d’une trajectoire du robot. 61
10
Préambule
Depuis le milieu des années 70, la robotique est devenue une science extrêmement populaire dans les
milieux universitaire. Alliant un grand intérêt pédagogique et industriel,
Cette nouvelle science demande beaucoup de créativité et des connaissances pluridisciplinaires
(Mécanique, Electronique numérique et analogique, électrotechnique, Programmation, Intelligence
artificielle, Temps réel, Automatique…..)
Pour être réellement autonome en environnement inconnu, un robot mobile doit pouvoir disposer de
plusieurs modes de déplacement, à savoir plusieurs solutions pour les phases de perception, décision
et d’action, et de la capacité de sélectionner le meilleur mode en fonction du contexte. Pour cela, il
peut utiliser des informations extéroceptives provenant, par exemple de caméra mais il doit surtout
tenir compte de son comportement courant en terme de locomotion, afin de changer de stratégie si
celle qu’il utilise se relève inadaptée.
Pour cela notre projet de fin d’étude consiste à réaliser un robot mobile commandé par PC (Phase).
11
12
Ι.1.Introduction :
Les robots de la première génération n’étaient que des simples autonomes capables d’accomplir des
tâches répétitives dans des milieux parfaitement connus.
La deuxième génération a vu apparaître des robots équipés de capteurs leur permettant de percevoir les
modifications de l’environnement et d’agir d’une manière simple.
Depuis, les robots se sont largement développés et généralisés .Ils sont dotés de moyens de perception
et de décision leur permettant de comprendre et d’évoluer dans différents types d’environnement.
Certains sont même utilisés pour l’exploration de planètes lointaines (Lune, Mars).Le robot de la
cinquième génération devrait être haut degré d’autonomie, il fait l’objet des recherches intensives.
Si l’autonomie a longtemps constitué un but suprême, on s’est de plus en plus rendu compte, que pour
plusieurs années encore, une coopération entre l’homme et la machine était inévitable ; ne serait-ce que
pour des raisons de sécurité.
Le robot ROBOSTO fut l’un des premiers projets de développement d’un robot autonome à
l’université USTO. Son système de locomotion est d’un type classique avec deux roues motrices
indépendantes installées sur un même axe et deux roues folles pour garantir l’équilibre .Son système
de perception était composé des capteurs à collusion ne lui permettant pas de connaître son
environnement. Le système informatique était déporté de la communication avec le robot. [13]
Ces robots réalisent des opérations répétitives ou dangereuses, telle que la soudure, la peinture, le
moulage… ils sont aussi capables des travaux de précision. Pratiquement, tous ces robots remplacent
les ouvriers des usines et en cela rendent raison aux prévisionnistes des années 1950-1960.
Aujourd’hui, seulement 1% de tous les robots sont dévolus à des taches plus valorisantes. Ils
interviennent dans des endroits inaccessibles (fond de l’océan, pente d’un volcan, tube d’une centrale
nucléaire, exploitation de la planète Mars…).Pour ces taches, ils sont équipés de calculateurs qui leur
donnent plus de liberté.
D’une manière générale, on regroupe sous l’appellation robots mobiles l’ensemble des robots base
mobile, par opposition notamment aux robots manipulateurs. L’usage veut néanmoins que l’on désigne
le plus souvent par ce terme les robots mobiles roues. Les autres robots mobiles sont en effet le plus
souvent désignés par leur type de locomotion, qu’ils soient marcheurs, sous-marins ou aériens. [3]
13
Ι.2.Définition de robot mobile :
Il existe diverses définitions du terme robot :
1.Un robot est une machine équipée de capacités de perception, de décision et d’action qui lui
permettent d’agir de manière autonome dans son environnement en fonction de la perception qu’il
possède
.
2. Un robot mobile est d’abord une base mobile .A ce titre, il peut être utilisé pour le transport. Mais
dés lors qu’il est doté d’un bras manipulateur ou d’une caméra, ses applications sont plus nombreuses
(surveillance, détection d’incendie, etc.…).
3. Un robot mobile est un manipulateur reprogrammable multifonctionnel conçu pour déplacer des
matériaux, des outils, des pièces ou des composants spécialisés à travers une série de mouvements
programmés pour effectuer une tache précise.
Les déplacements représentent l’aspect le plus important d’un robot mobile autonome, car sa
navigation et sa locomotion en environnement naturel, inconnu à priori, sont un problème difficile qui
est encore loin d’être résolu.
Pour être réellement autonome, un robot doit ainsi être capable d’interpréter ce qu’il perçoit de
l‘environnement, de modéliser cet environnement si cela peut être utile .De choisir une trajectoire
adaptée et d’avoir une locomotion, la plus efficace possible, quelle que soit la situation qui se présente.
Structure Structure de
Mécanique Commande
L’énergie
14
Ι.3.La structure mécanique :
Ι.3.1.Le châssis :
Pour commencer, une base classique permet de nombreuses expérimentations. Le choix d’une forme
cylindrique assure au robot, d’éviter les obstacles en allégeant la programmation.
Le robot cylindrique détecte une collision par ses capteurs de chocs avant, son programme lui
commande de pivoter à gauche jusqu’à disparition de la détection (Figure. Ι.3).Puis le robot poursuit
son chemin.
Le robot rectangulaire commence par reculer avant de réagir comme le premier robot
(Figure. Ι.3).Son programme est donc plus compliqué.
La taille finale dépend du contexte global lors de l’utilisation du robot. Un labyrinthe ne permet pas les
mêmes libertés qu’une arène de démonstration. Dans un labyrinthe ou un couloir, le robot doit tourner
sur place, d’où le choix d’un châssis avec deux roues différentielles placées sur un axe central .Des
formes plus libres peuvent être choisies avec un plateau de démonstration (robot à pattes, à chenilles,
roues à l’arrière du mobile, etc.…) .
Mais il est nécessaire de prendre aussi en compte les modifications futures sur les capteurs et les cartes
électroniques. [3]
Tourner à
Gauche
Avance
Avance
Recule
Ι.3.2.La structure :
La structure d’un robot mobile peut utiliser divers matériaux. Mais la plupart des robots sont réalisés
en aluminium et en plexiglas (plastique).Ces deux matériaux étant légers et facilement disponibles.
Concernant le châssis le plus courant, deux roues propulsent le mobile, les roues sont placées sur le
même axe et une ou deux roues folles équilibrent l’ensemble comme la montre
(Figure. Ι.4). La roue est souvent une roue qui tourne librement ou glisse.
15
Roues
Folles
Les deux solutions (une ou deux roues) n’ont pas les mêmes performances. Il n’y a pas une solution
meilleure que l’autre, cela dépendra du terrain dans un premier temps.
Le châssis à trois roues, deux roues motrices et une roue folle, est plus performant sur des terrains
faiblement accidentés et assure un contact permanent avec le sol .Le châssis à quatre roues, deux
roues motrices, nécessite quand à lui un terrain parfaitement plat.il est possible d’atténuer un peu ce
problème avec des amortisseurs sur les roues folles.
Le deuxième problème est la répartition des masses des châssis .Nous savons bien que le poids d’un
mobile doit se situer sur les roues motrices pour améliorer les déplacements. [3]
Ι.3.3.La locomotion :
L’analyse de la locomotion humaine ou animale a donné lieu à de très nombreux modes de locomotion
pour se déplacer, les robots ont besoin des roues, des chenilles ou des pattes. [3]
Ι.3.3.1.Les roues :
C’est la largeur et la nature des pneus qui caractérisent les performances. Des pneus trop fins sont en
général très rigides, comme les joints toriques. Cela entraîne des erreurs de symétrie qui font tourner
légèrement le robot. A l’opposé des pneus trop larges et en caoutchouc mou améliorent l’adhérence,
mais augmentent la puissance nécessaire des moteurs .La bonne taille est donc compromise.
Un pneu plus mou que l’autre entraîne une différence de diamètre qui introduira une erreur de symétrie
.La conséquence sera immédiate sur la trajectoire du mobile qui n’ira plus droit. [3]
16
Les robots les plus spectaculaires sont humanoïdes. Mais les équations et les techniques qui permettent
de programmer et construire ces créatures nécessitent des années d’études pour les laboratoires de
robotique. [3]
17
Ι.4.La structure de commande ou électronique:
La réalisation des cartes électroniques est déjà une
une difficulté en soi, mais dans le cas de la robotique,
elle se double d’un encombrement réduit, car on doit minimiser au maximum leur taille.
L’électronique étant une partie très sensible du robot, elle doit être protégée. Toutes les liaisons entre
les cartes, les capteurs, les moteurs et l’alimentation sont autant de points sensibles.
Ι.4.1.Les capteurs :
Les capteurs sont les organes sensoriels d’un robot. Certains sont fragiles et doivent être protégés,
d’autres au contraire
ntraire doivent être capable d’absorber des chocs. Les plus simples peuvent être
directement connectés au centre de contrôle, comme les interrupteurs.
Les autres types nécessitent une petite interface d’adaptation, comme les capteurs infrarouge ou à
ultrasons. D’autres
autres plus sophistiqués nécessitent une carte spéciale tel que les cameras.
On a deux types de capteur :
18
Ι.4.2.Les interfaces de puissance des moteurs :
On ne peut contrôler directement les moteurs qu’en passant par une interface de puissance.
En connaissant ses caractéristiques, cela nous permet de choisir la meilleure interface.
Un point particulièrement important est la dissipation thermique des transistors ou circuit intégré. [3]
Ι.4.4. L’alimentation :
Le dimensionnement de l’alimentation du robot consiste à définir l’autonomie souhaitée pour un
fonctionnement normal, et accessoirement à repartir la capacité sur plusieurs sources
indépendantes .L’énergie nécessaire est calculée à partir de la consommation de tous les éléments du
robot.
Le calcul est simple, il suffit de multiplier le courant total consommé par l’autonomie souhaitée.
L’alimentation peut être sous forme de batteries ou d’accumulateurs en tenant compte du poids final
du robot, sa puissance et son autonomie.
Le problème avec les robots est le manque de place.
Le choix de batterie dépend des caractéristiques du robot. [3]
19
20
ΙΙ. 1. Introduction :
La circulation d'un courant électrique dans un bobinage entraîne l'apparition d'un champ magnétique,
comme le détaillé la figure ci-dessous dans le cas du solénoïde, et donc la présence de pôles Nord et
Sud; c'est sur ce principe de base que repose le fonctionnement de tout les moteurs électrique.
21
.
Figure. ΙΙ.2:Moteur à aimant permanent
Caractéristiques principales :
- Faibles résolution : nombre de pas/tour peu important.
- Couple d’utilisation plus élevé par rapport au moteur à reluctance variable.
- Présentation d’un couple résiduel lorsque le moteur est hors tension.
Caractéristiques principales :
- Les fréquences de fonctionnement peuvent être élevées.
- Bonne résolution.
- Construction simple mais délicate. Couple développé.
- Absence de couple résiduel avec le moteur hors tension.
22
Figure. ΙΙ.4:Exemple
Exemple de rotor de Figure. ΙΙ.5:Moteurs
Moteurs hybride
Moteur hybride
Caractéristiques principales :
- Hors tension, le rotor est maintenu en position.
- Bonne précision de la position du rotor.
- Grande vitesse de rotation. [10
10]
23
ΙΙ. 5. 2-Plage de démarrage :
C’est la plage dans laquelle un moteur pas à pas peut être actionné en synchronisation avec la
Fréquence de travail sans rampe d'accélération ou de décélération.
24
ΙΙ. 6.2. Les moteurs à 5 fils (unipolaire) :
Le moteur comporte deux bobines à point centrales, on relie le point central à l’alimentation et les
autres bobines à l’interface de puissance.
25
Vcc
Unité de Interface
Pilotage De Moteur
Microcontrôleur Puissance
&
PC
ΙΙ. 8.1.1. Monophasé: Cette séquence permet normalement d’alimenter une bobine à la fois, en
plaçant à des positions de détente. [10]
B A
D C
Unipolaire
2 4 6 8 2
A B C D
Clock
0 0 0 1 A
1 0 0 0 B
0 0 1 0 C
D
0 1 0 0
26
ΙΙ. 8.1.2. Biphasé :
Cette fonction permettra au moteur de faire un pas complet où les positions d’équilibre sont à mi
mi-
chemin entre les positions de la séquence la plus simple. [10]
1 3 5 7 1
B C D
clock
A
0 1 0 1
B
1 0 0 1
1 0 1 0 C
D
0 1 1 0
1 2 3 4 5 6 7 8
A 0 0 1 1 1 0 0 0
B 1 0 0 0 0 0 1 1 Clock
A
B
C 0 0 0 0 1 1 1 0
D 1 1 1 0 0 0 0 0
C
D
ABCD=
0101 0001 1001 1000 1010 0010 0110 0100
27
ΙΙ. 9. Commande de moteur pas à pas par des circuits intégrés spécialisés :
Les deux dispositifs pour la commande du moteur pas à pas qui sont le séquenceur et l’interface de
puissance avec le développement scientifique sont intégrés tout les deux dans un seul circuit qui
renferme 4 étages de commande (Position, direction, amplification et vitesse).
Et ne reste alors qu’à délivrer les impulsions pour le nombre de pas et un bit pour le sens de rotation
par le moyen de deux lignes de données du port d’un microcontrôleur par exemple, pour faire tourner
le moteur de plus, ces circuits intégrées protègent très bien l’unité de pilotage d’un retour de courant.
[11]
ΙΙ.11.Conclusion :
Dans ce chapitre nous avons présenté les trois grandes familles de moteur pas à pas et les
caractéristiques de chacun ; ces moteurs sont simple à réaliser et présentent une faible inertie, ce qui
nous permet d’avoir une accélération importante.
Les moteurs pas à pas sont des transducteurs électromécaniques qui assurent simultanément deux
fonctions :
-La conversion d’énergie électrique en énergie mécanique.
-La conversion d’information électrique digitale en action mécanique.
28
29
Introduction :
Notre robot mobile est un ensemble de mécanique associée à l’électronique. La mécanique consiste à
construire une base roulante qui pourra accueillir l’électronique qui permettra la commande de la base.
Dans ce chapitre consiste à présenter la partie matérielle de robot, et expliquer les différentes étapes de
la conception et la réalisation de notre robot mobile.
ΙΙΙ.1.2.La structure :
Pour notre application nous avons utilisé un châssis en plexiglas ayant les dimensions suivantes :
D=25cm
1.5cm
8cm
2.5cm
30
ΙΙΙ.1.4.Les moteurs :
Pour notre application on a choisi des moteurs pas à pas qu’ont les caractéristiques suivantes:
- Les deux moteurs ont un diamètre de 4 cm et une profondeur de 2.5 cm.
- Résistance interne de 115 Ώ.
- Une tension d’alimentation de 12 volts à 36 volts.
- Un courant nominal de 0.25 A.
- 48 pas par tour.
- 6 fils : deux pour l’alimentation (rouge), le jaune et l’orange pour la première bobine, le noir et le
marron pour la deuxième bobine. .
- Le moteur est du type pas à pas unipolaire
- La gamme de fréquence pour laquelle le moteur tourne de façon continue 100 Hz à 15 Hz.
-Carte mère.
-Carte de puissance.
-Carte d’alimentation.
31
Le schéma suivant présente la synoptique de notre robot mobile :
Carte
Batteries
d’alimentation
Carte de Carte de
carte mère
puissance
(Commande)
Tension de batterie
Tension de 5v
Tension de puissance (12v)
Communication avec PC
32
ΙΙΙ.2-1.2.Brochage du PIC 16F877 :
Comme pour tout circuit intégré, chacune de ses broches a une ou plusieurs fonctions qui sont résumées
par un sigle mnémotechniques. La figure. ΙΙΙ.2.1.1 présente le brochage du PIC 16F877 qui dispose de
40 broches montées sur un boîtier DIL.
33
ΙΙΙ.2.1.4.L’Horloge :
Pour fonctionner le PIC 16F877 il faut qu’il soit connecter avec un circuit d’horloge.
Les PIC disposent d’un oscillateur interne nécessitant une adaptation à un circuit externe. Les pins
OSC1 et OSC2 sont les entrées de l’oscillateur. Pour cela on y trouve différents types d’horloges à
quartz ou à cellule RC, qu’on peut classer suivant leurs gammes de fréquences :
(a)
(c) (b)
34
Figure. ΙΙΙ.8 : Les éléments constituants 16F877
ΙΙΙ.2.1.6.L’organisation de la mémoire :
Le PIC16F877 a une mémoire programmée (flash) de 8k octets, elle contient le code binaire sur
14 bits des instructions que doit exécuter le microcontrôleur.
Le PIC16F877 contient une RAM de taille 368 octets divisée en 4 banques de128 registres.Ces
registres servent à contrôler et configurer les différents modules (Comme le la figure
35
ΙΙΙ.2-1.7.Présentation des modules utilisés :
Les modules utilisés pour notre application sont :
Le Timer1 : La fréquence du signal de commande est lente donc on a besoin d’un
Timer de 16 bits, c’est pourquoi nous avons utilisé ce module dans notre application au
lieu du Timer0 et du Timer2 qui est utilisé pour la génération de la commande PWM.
L’USART : Pour gérer la communication série entre le PC et le PIC.
ΙΙΙ.2.1.7.1.Timer 1 :
Timer1 est un Timer/compteur 16bits accessible en lecture/écriture par intermédiaire des registres 8bits
TMR1H et TMR1L qui constituent sa partie haute et sa partie basse.
Le Timer 1 permet de générer une interruption une fois le débordement effectué, son prédiviseur ne
permet qu’une division maximale de 8.
T1CON :
36
ΙΙΙ.2.1.7.2.L’USART :
L’USART (Uiversal Synchrone Asynchrone Receiver Transmetter) est un module de communication
série. Il peut être configuré comme module de communication asynchrone full duplex ou synchrone
half duplex.
La communication se fait sur les deux broches RC6/TX et RC7/RX.
L’USART contient deux ports :
37
SPEN : Validation du port série (1Validé, 0Inhibé).
RX9 : Validation du mode 9 bits (1mode 9 bits, 0mode 8 bits).
SREN : Validation de la réception d’un seul octet.
CREN : Validation du mode de réception continue.
ADDEN : Validation du mode de réception d’adresse en mode 9bits.
FERR : Erreur de synchronisation.
OERR : Erreur de débordement du buffer.
RXD9 : En mode 9 bits, le 9 éme bits reçue.
Pour que la communication série s’effectue correctement l’utilisation de l’USART doit se dérouler
suivant les étapes suivantes ;
Pour la transmission :
1-Assurer que l’interruption TXI n’est pas validée.
2-Configurer la broche TX/RC6 en entrée.
3-Configurer le registre TXSTA.
4-Initialiser le registre SPBRG pour définir la vitesse de transmission
5-Placer la donnée à transmettre dans TXREG.
Pour la réception :
1-Assurer que l’interruption RCI n’est pas validée.
2-Configurer la broche RX/RC7 en entrée.
3-Initialiser le registre SPBRG pour définir la vitesse de la réception.
4-Configurer le registre RCSTA.
5-Attendre le drapeau RCIF ce qui donne la fin de la réception. [1], [2], [6], [7]
Pour le raccordement entre la sortie du MAX 232 et le PC, on utilise une fiche DB9 femelle.
38
La communication série nécessite trois fils au minimum, une masse pour référencier les signaux, un fil
émetteur et un fil récepteur .Notre liaison série est en effet full_duplex, c’est à dire que l’on peut
émettre et recevoir en même temps.
La vitesse de transmission de l’émetteur doit être identique à la vitesse d’acquisition du récepteur.
Ces vitesses sont exprimées en BAUDS (1 baud =1 bit/seconde) .Il existe différentes vitesses
normalisées : 9600, 4800, 2400,1200…bauds.
Les lignes utilisées dans notre application sont représentées ci-dessous :
PC PIC
RXD RC7
TXT RC6
GND GND
J2
1
C5 2
3
4
15p 5
X1 U1
13 33 CONN-SIL5
C6 14
OSC1/CLKIN RB0/INT
34
OSC2/CLKOUT RB1
1 35
J4 MCLR/Vpp/THV RB2
36 J6
+5V RB3/PGM
15p 12 37 1
RA0/AN0 RB4
23 38 2
RA1/AN1 RB5
R1 34 39 3
RA2/AN2/VREF- RB6/PGC
45 40 4
RA3/AN3/VREF+ RB7/PGD
56 5
10K RA4/T0CKI
67 15
J5 RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
18 17
RE0/AN5/RD RC2/CCP1
29 18
C7 310
RE1/AN6/WR RC3/SCK/SCL
23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/TX/CK
0.1u 26
RC7/RX/DT J7
19 1
RD0/PSP0
20 2
RD1/PSP1
21 3
RD2/PSP2
22 4
RD3/PSP3
27 5
RD4/PSP4
28 6
RD5/PSP5
29 7 C1
RD6/PSP6
30 8 J1
RD7/PSP7
1 3 U2 1
PIC16F877 CONN-SIL8 1u 6
2
C1+ C1-
7
11 14 3
T1IN T1OUT
12 13 8
R1OUT R1IN
10 7 4
T2IN T2OUT
9 8 9
R2OUT R2IN
5
2
VS+ +5V
6 CONN-D9F
VS-
C2+ C2- C3
4 C2 5 MAX232
C4
1u
1u
1u
39
ΙΙΙ.2.2.Circuit de puissance :
Pour notre projet on a utilisé les circuits intégrés L298 et L297 qui sont des composants les plus
utilisés pour la commande des moteurs pas à pas. Ils permettent en effet de commander n’importe quel
type de moteur qu’il soit unipolaire ou bipolaire.
La figure ΙΙΙ.2.2.1 représente la carte de puissance réalisée :
J6
1
2
+12V
3
+5V
GND
R7
CONN-SIL3
12 U2 9 4 U1 D1 D2 D3 D4
J4
1 10 4 5
RC2 2 20
ENABLE VCC A
6 7
IN1 VCC VS
2 J1
RB7 3 19
RESET B
7 10
IN2 OUT1
1
RB6 4 17
HALF/FULL C
9 12
IN3
3 2
RB4 5 18
CW/CCW D
5 6
IN4 OUT2
3
RB5 CLOCK INH1
8 11
ENA
13 4
INH2 ENB OUT3
CONN-SIL5 3
HOME
14 1 14 CONN-SIL4
SENS1 SENSA OUT4
11 13 15
CONTROL SENS2 SENSB GND
D5 D6 D7 D8
R5 15
VREF
16
OSC GND SYNC
1 R1R2 8 L298
C1 2 L297
10p
J3
1
2
+12V
3
+5V
GND
CONN-SIL3
C2
2 L297
40
Les valeurs des composants :
R4=R3=R1=R2=1Ω.
R5=R6=240KΩ.
R7= 47KΩ.
Rv =10KΩ (Résistance variable).
C1=C2=10nF.
J1, J2 connecteurs vers les moteurs.
J3, J5 connecteurs d’alimentation.
J4, J5 Les entrées du L297.
2 circuits L298.
2 circuits L297.
ΙΙΙ.2.2.1.Circuit L297 : Le circuit L297 est un contrôleur de moteur pas à pas, il fonctionne avec un
circuit de puissance à double pont. Il lui suffit de lui fournir les signaux d’horloge (CLOCK : pour
avance des pas), de direction et de mode afin de piloter le moteur pas-à-pas. Le L297 génère alors la
séquence de commande de l’étage de puissance. [10]
Vs A INH1 B C INH2 D
HALF/FULL Enable
R R
Sync
HOME + +
- -
Oscillateur
GND
Sens1 Vref Sens2 Osc
Le translateur génère trois séquences différentes. Ces différentes séquences sont déterminées par le
niveau logique appliqué sur l’entrée HALF/FULL :
La commande en mode monophasé : une seule phase alimentée.
La commande en mode biphasé : Deux phases alimentées.
La commande en demi-pas : Alternativement une phase puis deux phases alimentées.
41
Le L297 génère deux signaux d’inhibition (INH1 et INH2) dans les modes monophasées et demi pas.
Ces signaux qui sont appliqués directement aux entrées de validation du L298, permettent d’accélérer
la décroissance du courant dans les bobinages du moteur lorsque ceux-ci ne sont plus alimentés.
Lorsque le L297 est utilisées pour la commande d’un moteur unipolaire, les hacheurs agissent sur ces
lignes.
Une entrée «CONTROL » détermine le moment ou le hacheur devra agir sur les sorties A, B, C, D ou
les entrées INH1 et INH2.
Le L297 contient un oscillateur interne qui commande les hacheurs. Lorsque le courant traversant l’un
des bobinages du moteur atteint la tension qui est fixée par les résistances connectée aux entrées
SENS1 SENS2, le comparateur correspondant interrompt l’alimentation du moteur jusqu’à la
prochaine impulsion de l’oscillateur.
ΙΙΙ.2.2.2.Circuit L298 :
Le circuit intégré L298 est le circuit complémentaire du L297. Il permet la simplification extrême de la
construction d’une carte de commande pour moteur pas-à-pas.
Le circuit L298 est un double pont de commande de puissance, il permet l’utilisation d’une tension
d’alimentation élevée. Il peu être utilisé aussi pour la commande de deux moteurs à courant continu.
Le schéma interne du L298 contient deux ponts de 4 transistors de puissances commandées par les
portes logiques, ainsi que la connexion des résistances de mesure du courant consommée par la charge
reliée aux émetteurs de chaque paire de transistors. [10]
42
ΙΙΙ.2.3.La carte d’alimentation :
Cette carte permet d’alimenter toutes les interfaces à partir de la tension de la batterie :
Le schéma du circuit que nous avons réalisé :
J2
1 Q1
2
R1 BD244
TBLOCK-M2
0.22 U1
R2 7812 J1
1 3 1
VI VO
2
3
GND
3
C4 U1
22u C1 CONN-SIL3
2
2200u
Q2
R3 BD244
0.22 U2
7805
R4 1 3
VI VO
3
GND
U2
C3
2
22u C2
2200u
U3
7805
1 3 J4
VI VO
1
GND
C5 C6 U3 TBLOCK-M2
2
22u 22u
U4
7805
1 3
VI VO
GND
U4 J3
C7 C8 1
2
22u 22u 2
TBLOCK-M2
Pour générer les tensions U1 et U2 avec un courant élevé nous avons utilisé les régulateurs 7812 et
7805 équipés de transistors BD244. Les deux transistors BD244 sont montés d’une manière permettent
à amplifier le courant. Ces derniers nous permettent d’atteindre un courant de 4A.
Si le courant consommé à travers R2 et R4 dépasse 0.3A la tension de la base de Q1 ou Q2 atteint
0.6V ce qu’il entraîne la commutation du ballaste (il devient passant).
La sortie U3 de 5 v avec un courant faible est utilisée pour l’alimentation de la carte de commande, le
PIC et le MAX232
La sortie U3 de 5 v avec un courant élevé est utilisée pour l’alimentation de la carte de puissance, le
L298 et le L297.
43
ΙΙΙ.2.4.Le brochage entre les différents composants:
Les deux tableaux ci-dessous présentent les connexions utilisées pour notre application :
Tableau .III.2 : Brochage entre Tableau .III.3 : Brochage entre le L297 et le L298
Le PIC et le L297
ΙΙΙ.2.5.Conclusion :
Dans ce chapitre nous avons présenté la partie matérielle qui réalise notre robot. Cette partie
matérielle est constitué en deux étapes :
La première consiste à construire une structure mécanique qui composé d’une plate forme, les roues, et
les moteurs pas à pas.
Pour la deuxième partie nous avons réalisé la carte de commande pour commander notre robot.
44
45
Dans le chapitre précédent nous avons décrit toutes les étapes concernant la réalisation de la base
mobile .Dans le chapitre présent nous présentons la partie logicielle réalisée dans notre travail.
Partie logiciel :
Dans notre projet nous avons opté pour le compilateur de MIKRO C qui est un compilateur en langage
C (langage évolué) et qui permet d’intégrer certaines routines en assembleur. Ceci nous permet ainsi
d’écrire les routines d’interruptions en assembleur afin de garantir un temps de traitement rapide qui
nous garanti une commande en temps réel du robot.
46
Figure. IV. 2: Win Pic.
A +5V
+12V
B
C
+12V
D
12 U3 9 4 U2
C1 10 4 5
ENABLE VCC A IN1 VCC VS
20 6 7 2
U1 19
RESET B
7 10
IN2 OUT1
HALF/FULL C IN3
15p 13 33 17 9 12 3
OSC1/CLKIN RB0/INT CW/CCW D IN4 OUT2
14 34 18 5 6
OSC2/CLKOUT RB1 CLOCK INH1 ENA
1 35 8 11 13
MCLR/Vpp/THV RB2 INH2 ENB OUT3
36 3 +88.8
C2 2
RB3/PGM
37
HOME
14 1 14
RA0/AN0 RB4 SENS1 SENSA OUT4
3 38 11 13 15
RA1/AN1 RB5 CONTROL SENS2 SENSB GND
4 39
RA2/AN2/VREF- RB6/PGC
15p 5 40 15
RA3/AN3/VREF+ RB7/PGD VREF
6 16 1 8 L298
RA4/T0CKI OSC GND SYNC
7 15
+5V RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17 2 L297
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
R2 10
RE2/AN7/CS RC4/SDI/SDA
23
10k 24
RC5/SDO +5V +12V
25
RC6/TX/CK +12V
26
RC7/RX/DT
19
RD0/PSP0
20 12 U4 9 4 U5
RD1/PSP1
C3 RD2/PSP2
21
0.1u 22 10 4 5
RD3/PSP3 ENABLE VCC A IN1 VCC VS
27 20 6 7 2
RD4/PSP4 RESET B IN2 OUT1
28 19 7 10
RD5/PSP5 HALF/FULL C IN3
29 17 9 12 3
RD6/PSP6 CW/CCW D IN4 OUT2
30 18 5 6
RD7/PSP7 CLOCK INH1 ENA
8 11 13
PIC16F877 P1 3
INH2 ENB OUT3
+88.8
HOME
14 1 14
SENS1 SENSA OUT4
1 11 13 15
DCD CONTROL SENS2 SENSB GND
6
DSR
2 15
RXD VREF
7 16 1 8 L298
RTS OSC GND SYNC
3
TXD
8
CTS
4 2 L297
DTR
9
RI
ERROR
COMPIM
47
IV.1.4.Le programme du robot :
Le programme que nous avons implémenté dans notre robot se divise en deux parties :
Un programme principal qui permet l’initialisation des entrées sorties du micro
contrôleur et des variables utilisées dans le programme.
Un sous programme de traitement des interruptions qui permet de gérer les interruptions
de l’USART et du Timer1 utilisées dans notre programme.
Programme principale
Configuration USART
Configuration Timer1
48
Interruption
Fin de traitement
Traitement d’interruption d’interruption
Fin de traitement
d’interruption
cmd_recu : B7 B6 B5 B4 B3 B2 B1 B0
49
L’interruption provoquée par
l’USART
Remettre le drapeau à « 0 »
PIR1.RCIF=0
NON OUI
cmd_recue.F7=0
Le teste du 8éme bit de l’octet reçue permet le choix entre la vitesse et la commande c’est-à-dire :
Si B7=1 La donnée est une vitesse.
Sinon B7=0 La donnée est une commande.
Le choix du mode de la commande utilisée est indiqué dans le 7 éme bit (B6) de la commande envoyée
par PC au robot.
50
cmd_recu B7 B6 B5 B4 B3 B2 B1 B0
NON OUI
B6=0
Mode console de commande consiste à envoyer d’abord la vitesse de chaque moteur au robot puis on
envoi la commande de mise en marche.
Dans la commande de mise en marche on peut soit commander les deux moteurs en même temps soit
commander uniquement un seul moteur.
51
Mode console de commande
NON OUI
cmd_recu=1
Marche totale
cmd_moteur=1
NON OUI Arrêter les 2
cmd_recu=4
Moteurs,
désactivé TMR1
cmd_moteur=2
NON OUI Marche 1 Démarrer les 2
cmd_recu=8 Moteurs, activé
TMR1
cmd_moteur=4
Arrêt total Marche 2 Arrêter
moteurs2,
Démarrer
moteur1,
cmd_moteur=4
cmd_moteur=1 désactivé TMR1
Arrêter
Arrêter les 2 moteurs1,
Moteurs, Démarrer
désactivé TMR1 moteur2,
désactivé TMR1
Fin_interr
IV.1.4.2.2.2.Détermination de la vitesse :
Dans ce cas on va déterminer le sens de rotation et la mise en marche de chaque moteur et aussi la
vitesse :
cmd_recu B7 B6 B5 B4 B3 B2 B1 B0
B6 : Choix du moteur.
B5 : Marche/Arrêt.
B4 : Sens de rotation du moteur.
B3-B2-B1-B0 : Vitesse.
52
Pour notre programme nous avons appliqué l’organigramme suivant :
Vitesse
NON OUI
B6=1
Moteur 1 Moteur 2
Sens1 du Sens2 du
moteur1 moteur1
Sens1 du moteur2 Sens2 du moteur2
Chargement du Timer1
Chargement duTimer1
Fin_vitesse
53
IV.1.4.2.2.3.Gestion de l’interruption déclenchée par le Timer1 :
Le timer1 est attribué aux 2 moteurs. A chaque interruption on détermine le moteur qui sera attribué au
timer1.
L’organigramme suivant présente l’algorithme utilisé pour la détermination la valeur qui sera chargée
dans le timer1.
m=3
Changement d’état
de RB1et RB5
Chargement t1
Chargement t2
NON OUI
t1 < t2
NON OUI
t2 < t1 t2=t2-t1
t1=t1-t2
Chargement de
Chargement de
TMR1 avec t1
TMR1 avec t1 Chargement de
TMR1 avec t2
retour_interr
Figure. IV. 10: L’organigramme de gestion de l’interruption déclenchée par le Timer1 dans le
mode console de commande.
54
IV.1.4.2.1.2.2. Mode de commande par trajectoire :
Mode de commande par trajectoire consiste à envoyer la même vitesse au deux moteurs ainsi que le
sens de rotation de chacun dans une trame de 1 octet suivi par le nombre de pas (2octets) que le robot
doit effectué et par une commande de mise en marche (1 octet) .
L’organigramme suivant présente l’algorithme utilisé pour le chargement de la vitesse le compteur
NON OUI
compt_flag=1
Compt_flag++
Comp_H=cmd_recu
Compt_flag=1
Retour_interr
A la réception de la vitesse transmise par le PC, la variable compt_flag ayant été initialisée par 0 sera
mise à 1.Après la réception du poids faible du compteur la variable compt_flag sera mise à 2.
Après la réception du poids fort du compteur la variable compt_flag sera remettre à 0.
55
IV.1.4.2.1.2.Gestion de l’interruption déclenchée par le Timer1 :
Un compteur de 16bits est utilisé pour exécuter le nombre de pas transmis par le PC. A chaque
interruption ce compteur est décrémenté. Lorsque le compteur atteint la valeur ‘0’ le robot s’arrête et
envoie le caractère’0’ au PC.
Compt=Compt-1
NON OUI
Compt=0
Arrêt totale
Chargement du
TIMER1
Retour_interr
56
IV.1.5.L’interface :
Pour faciliter la commande de notre robot nous avons réalisé une interface avec le logiciel Borland
C++ Builder qui est un environnement de programmation visuel.
IV.1.5.1.L’interface principale :
Cette interface nous permet de choisir le mode de commande soit console de commande ou commande
trajectoire.
Basculer vers
Console de
commande
Basculer vers
Quitter commande
toute
l’application trajectoire
57
IV.1.5.1.1.Console de commande :
Ouvrir et fermer le
port série COM1
Afficher la
vitesse
Arrêter le robot
Panneau pour
varier la
vitesse
Fermer cette
fenêtre et arrêter
le robot
58
IV.1.5.1.2.Commande trajectoire :
La distance
Parcourue
Activer les
deux
Commande par
trajectoire
Ouvrir et fermer le
port série COM1
Varier l’angle de
rotation
Lecture de l’angle
Angle=Pos_a -Pos_p
NON OUI
Angle>0
Sens2 Sens1
Activer le moteur2 Activer le moteur1
Pos_p=Pos_a
59
Le principe
cipe consiste à envoyer au robot les coordonnées de la trajectoire à effectuer.
Ces coordonnées représentent le sens de rotation des deux moteurs et le nombre de pas à effectuer pour
chaque partie de la trajectoire.
1-La
La trajectoire est une ligne droite :
Dans nos moteurs chaque pas correspond à 7.5°, et avec un rayon de la roue r =3.75cm, donc chaque
pas provoque un déplacement de ‘L’avec :
L = 2**r /48 = 0.4906 cm
Pour déterminer le nombre de pas afin que le robot parcourue une distance X :
60
3-Exemple d’une trajectoire :
A-B=L= 1m
B-C=0.5m
C-D=0.5m A B
Ω=30° Ω D
ß=100°
ß
C
Pour A-B :
N=100/0.4906=204 pas.
Au point B le robot s’arrêt et attend la nouvelle commande.
Le robot tourne avec un angle de 30° dans le sens négatif :
N= Ω /2.25°=30°/2.25°
N=13 pas
Le robot fait 13 pas et il s’arrêt jusqu'à la nouvelle commande.
Pour B-C :
N=50 /0.4906=102 pas
Au point C le robot s’arrêt et attend la nouvelle commande.
Le robot tourne avec un angle de 100 ° dans le sens positif :
On applique la relation 2 :
N= ß /2.25°=100°/2.25°
N=44 pas
Le robot fait 44 pas et il s’arrêt et attend la nouvelle commande.
Pour C-D :
N=50/0.4906=102 pas
Au point D le robot s’arrêt.
61
L’appel de ce fichier texte permet au robot de faire cette trajectoire ;
//Trajectoire A-->B
VaComm1->WriteChar (vitesse1+64);
VaComm1->WriteChar (0xCC);
VaComm1->WriteChar (0x00);
VaComm1->WriteChar (0x02);
//Angle Ω
VaComm1->WriteChar (vitesse1+64+32);
VaComm1->WriteChar (0x0D);
VaComm1->WriteChar (0x00);
VaComm1->WriteChar (0x02);
//Trajectoire B-->C
VaComm1->WriteChar (vitesse1+64);
VaComm1->WriteChar (0x66);
VaComm1->WriteChar (0x00);
VaComm1->WriteChar (0x02);
//Angle ß
VaComm1->WriteChar (vitesse1+64+16);
VaComm1->WriteChar (0x2C);
VaComm1->WriteChar (0x00);
VaComm1->WriteChar (0x02);
//Trajectoire C-->D
VaComm1->WriteChar (vitesse1+64);
VaComm1->WriteChar (0x66);
VaComm1->WriteChar (0x00);
VaComm1->WriteChar (0x02);
IV.6 .Conclusion:
Dans ce chapitre nous avons présenté les différents algorithmes du programme implémenté dans le
PIC du robot, et nous avons aussi présenté les différents modes de commande du robot ainsi l’interface
62
Conclusion Générale
Notre projet de fin d’étude consiste à réaliser un robot mobile commandé par PC.
Aspect mécanique :
- Etude de la robotique mobile du point de vue réalisations
- Choix de la forme, des dimensions et de la matière de la base ainsi que du type
de moteurs à utiliser.
Aspect électronique :
La réalisation des cartes électroniques pour la commande de notre robot et la
communication avec le PC.
Aspect informatique :
- Programmation du robot pour la commande des moteurs pas à pas utilisés et
pour l’exécution des commandes transmises par le PC.
- Réalisation d’une interface graphique en C++ Builder permettant de
commander le robot soit en mode de commande en mode console soit en mode
de commande en mode trajet.
63
ANNEXE
1. Circuit imprimé de la carte d’alimentation :
64
La Carte d’interface de puissance (cote cuivre)
65
66
67
68
69
Références bibliographiques
[6] : Djoub Ahmed Belkacem, Belalem Amel : La commande optimal des MCC : étude et
Conception de la carte de commande. (PFE Automatique 2006-2007)
[11] : Fellouh Sofiane, Allouani Cherif : Conception et réalisation d’une plate forme légère
Mobile commandé par PC (PFE Electronique 2003-2004).
[12] : Terrah Mohamed Amine, Hadjouni Mohamed : Réalisation d’une plate forme mobile
Commandé par PC(deuxième Parie) (PFE Electronique 2004-2005).
[13] : Yahiaoui kamel, Kenniche Mohamed : Réalisation d’un robot mobile Phase 3
[14] : Benkablia Ameur, Boulerial Mohamed : Commande numérique d’une table traçante (PFE 2007)
SITES INTERNET
1 : htt://www.bigonoff.com
2 : htt://www.microchip.com
3 : htt://www.lextronic.com
70