Sie sind auf Seite 1von 70

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

FACULTÉ DE GÉNIE ÉLECTRIQUE


DÉPARTEMENT D’AUTOMATIQUE

EN VUE DE L’OBTENTION DU DIPLÔME


D’INGENIEUR D’ETAT EN AUTOMATIQUE
Réalisé par :
Mr.HAMANE BEKHADA
Mr.AZROUG MOHAMED

Réalisation d’un robot mobile


commandé par PC (Phase I)

Encadreur : Mr. K.YAHIAOUI


Membre du jury :
Président : Mr. OMARI
Examinateur : Mr. MECHE
Examinateur : Mme. HOUARI

E-mail :hamane.bekhada@yahoo .com

Promotion 2008 ORAN 22 juin 2008

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

FACULTÉ DE GÉNIE ÉLECTRIQUE


DÉPARTEMENT D’AUTOMATIQUE

PROJET DE FIN D’ETUDES


EN VUE DE L’OBTENTION DU DIPLÔME
D’INGENIEUR D’ETAT EN AUTOMATIQUE

Accord de dépôt de mémoire

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 tenons à remercier vivement Mr YAHIAOUI KAMEL notre


encadreur, qui a donné un sens à notre travail grâce à ses conseils et ses
orientations significatives.

Nous tenons aussi exprimer notre sincère et profonde reconnaissance a Mr


Dahmani et a Mr Djoub et aussi a Mr Meche.

Nous exprimons notre gratitude à l’ensemble des professeurs du


département d’automatique qui ont contribué à notre formation, on les prie
de bien vouloir croire à notre gratitude en espérant que cet humble travail de
trois années fera crédibilité de leurs efforts.

Nous voudrons également remercier tous nos camarades qui étaient à nos
cotés aux liens fraternels et amicaux qui ont germé dans notre esprit.

Nos remerciements s’adressent également à tous membres de Jury, qui ont


accepté de nous honorer de leur présence et de juger notre travail Merci.

Et à toute personne ayant contribué de près ou de loin à notre soutien moral.

HAMANE BEKHADA
AZROUG MOHAMED

3
Dédicace

Je dédie ce modeste travail :

A mon père, A ma mère,


A mes frères,
A toute ma famille,

Pour leur patience, leur compréhension et leur soutien

A mes cousins et mes amis les plus proches, et

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

A mes très chers parents


A mes frères et mes sœurs,

Qui m’ont soutenu durant toutes mes études,

A toutes la famille grandes et petits,

A touts mes collègues de ma promotion,

Ainsi a mon ami HAMANE BEKHADA.

Je dédie ce mémoire à

AZROUG MOHAMED

5
Sommaire
Préambule. 11

CHAPITRE I : Généralités sur la robotique mobile.

Ι.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

CHAPITRE II : La technologie des moteurs pas à pas

ΙΙ. 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

CHAPITRE III : La réalisation de la base mobile


ΙΙΙ.1.La structure mécanique. 30
ΙΙΙ.1.1. Le châssis. 30
ΙΙΙ.1.2. La structure. 30
ΙΙΙ.1.3. Les roues. 30
ΙΙΙ.1.4. Les moteurs. 31
ΙΙΙ.1.4.1.Calcul la vitesse de notre robot. 31
ΙΙΙ.1.4.2.Le poids de notre robot. 31
ΙΙΙ.2.La structure électronique. 31
ΙΙΙ.2 .1.La carte mère (de commande). 32
ΙΙΙ.2.1.1.Présentation des PIC. 32
ΙΙΙ.2.1.2.Brochage du PIC 16F877. 33
ΙΙΙ.2.1.3.Description du PIC 16F877-04. 33
ΙΙΙ.2.1.4.L’Horloge. 34
ΙΙΙ.2.1.5.Structure interne du PIC 16F877. 34
ΙΙΙ.2.1.6.L’organisation de la mémoire. 35
ΙΙΙ.2.1.7.Présentation des modules utilisés. 36
ΙΙΙ.2.1.7.1.Timer 1. 36
ΙΙΙ.2.1.7.2.L’USART. 37
ΙΙΙ.2.1.8.Présentation de la communication série. 38
ΙΙΙ.2.1.9.La carte mère. 39
ΙΙΙ.2.2.Circuit de puissance. 40
ΙΙΙ.2.2.1.Circuit L297. 41
ΙΙΙ.2.2.2.Circuit L298. 42
ΙΙΙ.2.3.La carte d’alimentation. 43
ΙΙΙ.2.4.Le brochage entre les différents composants. 44
ΙΙΙ.2.4.Conclusion. 44

CHAPITRE IV : La programmation du robot


IV.1.La programmation du microcontrôleur PIC 16F877. 46
IV.1.1.Le compilateur MIKRO C. 46
IV.1.2.Le logiciel de programmation du PIC –WINPIC. 46
IV.1.3.L’éditeur de schéma PROTEUS (version 7.1). 47
IV.1.4. Le programme principal du robot. 48
IV.1.4.1.Le programme principal. 48
IV.1.4.2.Le sous programme de traitement des interruptions. 48
IV.1.4.2.1.Traitement d’interruption provoqué par l’USART. 49
IV.1.4.2.2.Le cas ou la donnée reçue est une commande. 50
IV.1.4.2.2.1 Mode console de commande. 51
IV.1.4.2.2.2.Détermination de la vitesse. 52
IV.1.4.2.2.3.Gestion de l’interruption déclenchée par le Timer1. 54
IV.1.4.2.1.2.2. Mode de commande par trajectoire. 55
IV.1.4.2.1.2.Gestion de l’interruption déclenchée par le Timer1. 56
IV.1.5.L’interface. 57

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

Figure. Ι.1 : Les robots mobiles. 13


Figure. Ι.2 : Constitution d’un robot mobile autonome. 14
Figure. Ι.3 : Gestion de navigation du robot avec une forme circulaire et une autre
rectangulaire. 15
Figure. Ι.4 : La forme classique avec une ou deux roues folles. 16
Figure. Ι.5 : robot mobile avec des roues. 16
Figure. Ι.6 : Robot Sony AIBO. 17
Figure. Ι.7 : robot mobile avec chenille et une caméra. 17
Figure. Ι.8 : Les différents moteurs utilisés dans la robotique. 17
Figure. Ι.9 : Télémètres infrarouges Sharp. 18
Figure. Ι.10 : capteur de position angulaire. 18
Figure. ΙΙ.1:circulation de courant dans une bobine. 21
Figure. ΙΙ.2:Moteur à aimant permanent. 22
Figure. ΙΙ.3:Moteur à reluctance variable. 22
Figure. ΙΙ.4:Exemple de rotor de Moteur hybride. 23
Figure. ΙΙ.5:Moteurs hybride. 23
Figure. ΙΙ.6 : Mode unipolaire. 23
Figure. ΙΙ.7 : Mode bipolaire. 23
Figure. ΙΙ.8:Domaines de fonctionnement du moteur pas à pas. 24
Figure. ΙΙ.9:Synoptique de la commande d’un moteur pas à pas (Boucle ouverte). 26
Figure. ΙΙΙ.1:Dimension et forme du châssis. 30
Figure. ΙΙΙ.2:Roue motrice 30
Figure. ΙΙΙ.3:Roue folle. 30
Figure. ΙΙΙ.4: Nos moteurs pas à pas utilisés. 31
Figure. ΙΙΙ.5: Synoptique de notre réalisation. 32
Figure. ΙΙΙ.6: Brochage du PIC 16F877. 33
Figure. ΙΙΙ.7 : Différents connexions à l’oscillateur. 34
Figure. ΙΙΙ.8: Les éléments constituants 16F877. 35
Figure. ΙΙΙ.9: Organisation de la mémoire. 35
Figure. ΙΙΙ.10 : Schéma interne de Timer1. 36
Figure. ΙΙΙ.11 : Port de transmission. 37
Figure. ΙΙΙ.12: Port de réception. 37
Figure. IΙΙ.13 : Brochage du MAX232. 37
Figure. ΙΙΙ.14: Connecteur DB9 femelle. 38
Figure. ΙΙΙ.15: La carte mère. 38
Figure. ΙΙΙ.16: La carte de puissance. 39
Figure. ΙΙΙ.17 : Structure interne du circuit L297. 40
Figure. ΙΙΙ.18 : Structure interne du circuit L298. 41
Figure. ΙΙΙ.19: La carte d’alimentation. 42
Figure. IV.1: mikroC. 43
46 46
Figure. IV. 2: WinPic800. 47
Figure. IV. 3: Le schéma de simulation de notre programme final. 47
Figure. IV. 4: L’organigramme du programme principal. 48
Figure. IV. 5: L’organigramme de sous programme de traitement des interruptions. 49
Figure. IV. 6: L’organigramme de sous programme de traitement d’interruption provoqué
par l’USART. 50

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).

Notre réalisation s’articule autour de trois parties :

-1- Système mécanique : configuration de la plate-forme


(Structure et disposition des éléments moteur), matériaux.

-2-Ensuite ; l’électronique de contrôle : des circuits nécessaires à la commande


des moteurs et au positionnement, des circuits de puissance et d’alimentation

-3-Enfin ; la programmation du robot.

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]

Figure. Ι.1 : Les robots mobiles

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.

Le robot mobile se décompose en trois sous-systèmes :


- La structure mécanique.
- L’énergie.
- La structure de commande. [3], [4], [5]

Structure Structure de
Mécanique Commande

L’énergie

Figure. Ι.2 : Constitution d’un robot mobile autonome. [4]

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

Figure. Ι.3 : Gestion de navigation du robot avec


une forme circulaire et une autre rectangulaire

Ι.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

Figure. Ι.4 : La forme classique avec une ou deux 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]

Figure. Ι.5 : robot mobile avec des roues


Ι.3.3.2.Les pattes :
Les structures précédentes ne sont pas adaptées dans les cas d’application sur des terrains avec des
grandes différences de niveaux ou il est nécessaire de choisir les appuis.
C’est le nombre de pattes qui va définir de complexité.
Moins il y a de pattes ou de pieds, plus le robot est sophistiqué et complexe.
Pour un robot à quatre pattes, il faut surveiller la position du centre de gravité toujours à la limite du
triangle formé par les trois autres pattes ou réaliser un déplacement dynamique. Cette technique à
déplacer le centre de gravité, en bougeant la tête par exemple.

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]

Figure. Ι.6 : Robot Sony AIBO


Ι.3.3.3.Les chenilles :
Des types de robot peuvent également utiliser des chenilles ce qui fournit une capacité de
franchissement des petites obstacles intéressantes (figure. I.7). Ces plates-formes peuvent ainsi être
utilisé en milieu urbain, ou dans des décombres. L’utilisation de chenilles conduit cependant à un
odomètre très bruité à cause du contact mal défini entre les chenilles et le sol.

Figure. Ι.7 : robot mobile avec chenille et une caméra


Ι.3.4.Le choix des moteurs :
Un moteur permet de réaliser dans un premier temps un mouvement de rotation. Ce dernier est
communiqué à l’aide de l’arbre moteur et il peut être ensuite transformé en mouvement de translation à
l’aide de différentes solutions technologique comme les systèmes visse/écrou, pignon/crémaillère,
bielle/manivelle…
Dans un robot mobile utilisant l’énergie électrique, la puissance mécanique est fournie par des moteurs
(des moteurs pas à pas, des moteurs à courant continu et des servomoteurs).
Le choix d’un moteur ou d’un autre dépend des besoins.Il est nécessaire de connaître la puissance
absorbée en charge, le couple mécanique et la vitesse nominale pour sélectionner un moteur plutôt
qu’un autre.

Figure. Ι.8 : Les différents moteurs utilisés dans la robotique


(Servomoteur, Moteur à courant Continu, Moteur pas à pas)

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 :

Ι.4.1.1.les capteurs externes (capteurs d’environnements) :


Ils sont des capteurs extéroceptif, délivrent des informations relative à l’envir
l’environnement ou aux
interactions entre le robot et son environnement : capteurs de distance. [4]

Figure. Ι.9 : Télémètres infrarouges Sharp

Ι.4.1.2.les capteurs interne (capteur proprioceptif) :


Il s’agit des capteurs qui délivrent des informations sur l’état interne du robot : les capteurs de position
ou de vitesse des roues et les capteurs de charge de la batterie. [4]

Figure. Ι.10 : capteur de position angulaire

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.3.les centres de contrôle (le cerveau d’un robot) :


Le centre de contrôle est en général une carte équipée uniquement d’un processeur ou de
microcontrôleur.
Dans ce cas là, le centre de contrôle se résume au processeur ou de microcontrôleur et à ses
périphériques mèmoires.Mais parfois, il est complété par les interfaces pour moteurs et capteurs.
Le but étant de réaliser une carte unique qui regroupe toute l’électronique et réduit la connectique. [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.

Figure. ΙΙ.1:circulation du courant dans une bobine


ΙΙ. 2. Définition :
Un moteur pas à pas est une machine tournante dont le rotor se déplace d’un angle élémentaire à
chaque fois que son circuit de commande effectue une commutation de courant dans un ou plusieurs de
son enroulement, Il s’agit donc d’un actionneur de positionnement.
Les moteurs pas à pas sont différents par rapport aux moteurs classiques. Au lieu de leur fournir une
tension continue, on peut alimenter des bobines dans une séquence précise. Grâce à ce principe, on
peut déterminer l’angle exact de rotation de l’axe, de plus, en laissant une ou plusieurs bobines
alimentaires, on obtient un maintien : le moteur est figé.
Chaque impulsion envoyée par le circuit de commande au module de puissance se traduit par la
rotation d'un pas du moteur. L'angle de rotation minimal entre deux modifications des impulsions
électriques s'appelle un pas. On caractérise un moteur par le nombre de pas par tour (c'est à dire pour
360°). Les valeurs courantes sont 48, 100 ou 200 pas par tour.
Les impulsions électriques sont du type tout ou rien c'est à dire passage de courant ou pas de passage
de courant.
Exemple:
Moteur à 400pas=0.9°
Moteur à 200pas=1.8°
Moteur à 100pas=3.6°
Moteur à 48pas=7.5°
Moteur à 24pas=15°

ΙΙ. 3. Différent types de moteur pas à pas :


En peut classer les moteurs pas à pas en 3 catégories:
- Moteur à aimant permanent;
- Moteur à réluctance variable;
- Moteur hybride.

ΙΙ. 3.1 Moteur à aimant permanent :


Il se compose de deux parties :
1. Le rotor qui est la partie mobile, comporte un nombre pair à aimant permanent magnétique dans le
sens radial.
2. Le stator qui est la partie fixe, comporte d’encoches comportant 1,2, 3,4 enroulements Electriques.

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.

ΙΙ. 3.2. Moteur à reluctance variable :


-Le
Le stator présente un certain nombre de dents ayant un bobinage.
-Le
Le rotor (en matériau magnétique) possède un nombre différent de dents, mais sans bobinage.
- Le rotor se positionne pour que la réluctance du circuit magnétique soit minimum.
- 12 pas par tour ou 30° par pas.
- Des séquences pour un tour complet.
com

Figure. ΙΙ.3: Moteur à reluctance variable

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.

ΙΙ. 3.3 Moteur hybride :


C’est un moteur à reluctance polarisée.il superpose le principe de fonctionnement des moteurs à
aimant permanent et à reluctance variable et combine leurs avantages.
Le rotor est constitué de deux disques dentés décalés mécaniquement entre ces deux disques et inséré
un aimant permanent. Le stator et le rotor ont un nombre de dents différents. Quand on alimente une
paire de bobines, Le rotor place les dents nord et sud de telle façon que le flux traversant le rotor soit
maximal.

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]

ΙΙ. 4. Le mode de contrôle :


ΙΙ. 4.1. Le mode unipolaire :
La commande unipolaire n’utilise en effet qu’une bobine par phase. Elle se fait entre une extrémité et
le point milieu de bobinage. Cela permet néanmoins de simplifier l’électronique de pilotage vu que
l’on travaille dans environnement numérique.

Figure. ΙΙ.6 : Mode unipolaire


ΙΙ. 4.2. Le mode bipolaire :
Elle permet d’augmenterr le couple de moteur, par sa position ses enroulements.
Les enroulements au stator n’ont pas de point milieu, chaque borne de chaque enroulement est
alimentée successivement par une polarité positive puis négative en inversant les polarités des
enroulements statique. On inverse les pôles nord et sud de stator. [10]

Figure. ΙΙ.7 : Mode bipolaire


ΙΙ. 5. Caractéristiques
éristiques couple et vitesse :
ΙΙ. 5. 1-Couple
Couple d'arrêt ou couple de maintient :
C’est le couple maximum de rotation avec lequel on peut solliciter l'arbre d'un moteur pas à pas excité
statiquement, sans qu'il ne se produise de modification de son angle de rotation.

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.

ΙΙ. 5. 3-Fréquence limite de démarrage :


C’est une fréquence maximale avec laquelle un moteur pas à pas ne peut démarrer à la charge
indiquée.

ΙΙ. 5. 4-Plage d'accélération:


C’est la plage de travail dans laquelle un moteur pas à pas peut être actionné en synchronisation avec
la fréquence de travail, sans qu'il ne se produise d'erreur de pas. Il faut cependant qu'il soit actionné
avec une rampe d'accélération et de décélération.

ΙΙ. 5. 5-Couple limite de travail ou d’entraînement :


C’est un couple de rotation maximale avec lequel on peut solliciter un arbre de rotation avant qu'il ne
sorte de la cadence.

ΙΙ. 5. 6-Fréquence maximale des pas :


C’est une fréquence maximale admise avec laquelle un moteur pas à pas est actionné à vide sans perte
de pas. Cependant, le moteur ne peut être démarré ou stoppé avec cette fréquence sans perte de pas.

Figure. ΙΙ.8:Domaines de fonctionnement du moteur pas à pas.

ΙΙ. 6. Configurations interne des bobines du moteur :


ΙΙ. 6.1. Les moteurs à 4 fils (bipolaire) :
Ce moteur agit comme s’il ne possédait que 2 bobines, il est obligé d’être alimenter soit une bobine à
la fois, ou les deux en même temps. A tout moment, donc le moteur a la moitié ou la totalité de ses
bobines alimentées, ce qui a comme avantage de lui donner plus de force.
Par contre, il est plus complexe de contrôler un moteur bipolaire, au niveau de l’interface de puissance.

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.

ΙΙ. 6.3. Les moteurs à 6 fils :


Avec le moteur à 6 fils, on a le choix d’une commande bipolaire, ou d’une commande unipolaire. Dans
le premier cas, on ignore simplement les connexions centrales, et dans le second cas, on relie les deux
points centraux au (+) de l’alimentation.

ΙΙ. 6.4. Les moteurs à 8 fils :


Avec ce moteur, on a aussi le choix d’une commande bipolaire, ou unipolaire. Dans le premier cas, on
ignore les 4 fils centraux, et dans le second cas, on reliant les quatre fils centraux ensemble. [10]

ΙΙ. 7. Commande des moteurs pas à pas:


Le rôle de l’électronique associée à un moteur pas à pas est d’assurer les commutations nécessaires
pour obtenir un déplacement d’un nombre de pas donné ou une rotation à vitesse fixée. Trois
dispositifs sont nécessaires.
Le principe de commande du moteur pas à pas est en boucle ouverte (Voir la figure. II.9)

ΙΙ. 7.1. Unités de pilotage :


Elle génère 2 signaux numériques .Une première sortie donne un bit qui permet de définir le sens de
rotation. Une seconde sortie délivre les impulsions. Un nombre N d’impulsions correspond à un
déplacement de N pas .Une répétition périodique des impulsions avec une fréquence correspondante à
une rotation continue à une vitesse angulaire ; Cette fonction est souvent réalisée par un circuit
programmable (PC, microcontrôleur).

ΙΙ. 7.2. Le séquenceur :


Il dirige les impulsions vers les différentes phases du moteur. Suivant le moteur utilise (Nombre de
phase) et le mode de fonctionnement choisis (pas entier, demi pas).Ce circuit délivre sur ses sorties des
signaux logiques définissant les commutations à réaliser pour chaque phase suivant les séquences
précises, il s’agit d’un circuit logique câblé (bascules,…).
Cette fonction peut également être remplie par un circuit programmable.

ΙΙ. 7.3. Les commutateurs de puissance ou l’interface de puissance :


Il permet d’alimenter correctement les phases du moteur en fonction des informations reçues
Du séquenceur, il doit donc être en mesure de fournir le courant nécessaire aux enroulements du
moteur, il s’agit d’une fonction analogique de puissance qui sera réaliser à partir d’un composant
intégré ou discret :
(Transistor bipolaire, Montage Darlington).
Chaque phase possède une voie séparée dans le commutateur. [11]

25
Vcc

Unité de Interface
Pilotage De Moteur
Microcontrôleur Puissance
&
PC

Figure. ΙΙ.9:Synoptique de la commande d’un moteur pas à pas (Boucle ouverte)

ΙΙ. 8. Le mode de séquence :


Les modes de séquence se distinguent par leur fonctionnement interne, leur séquence générée, et par la
façon dont on les commande.

ΙΙ. 8.1. Pas entier :

ΙΙ. 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

ABCD = 0001 1000 0010 0100

Tableau.III. 1 1. Fonctionnement en mode monophasé

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

ABCD=0101 1001 1010 0110


Tableau.III.22 2. Fonctionnement en mode biphasé

ΙΙ. 8.2. Demi –pas :


Dans ce cas, on combine les deux séquences précédentes pour placer le rotor successivement à une
position de détente, à une position intermédiaire, et à nouveau à une position de détente.
Ce mode permettra de multiplier par deux le nombre de pas.
L’avantage de ce mode à demi-pas pas qu’il ne souffre pas de problème de résonances, même s’il tourne
très vite, on ne tombe jamais sur un point de résonance où le couple s’annule. [10]

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

Tableau.III.33 3. Fonctionnement en mode demi pa


pas

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]

On a comme exemple de ces circuits intégrés :


Le (MC3479C).
Le (L297) et (l298) qui fonctionnent ensemble.
Le (L293).
Le (SAA1027). (SAA1042).
Le (SL7024M).

ΙΙ.10 Le critère de choix d’un moteur pas à pas :


Le choix se fait comme suivant:
-Le mode de commande, soit bipolaire ou unipolaire.
-Le nombre de pas par tour.
-La fréquence de travail.
-La puissance du moteur.

ΙΙ.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 .La structure mécanique :


ΙΙΙ.1.1.Le châssis :
Le châssis est une base sur laquelle sont disposés les éléments de notre robot mobile, il doit être solide,
léger et d’obtenir une forme adaptée pour notre application.
La forme que nous avons choisie est circulaire pour faciliter la programmation et le déplacement de
notre robot car si notre base est en face d’un obstacle cette forme lui permet de pivoter sur lui-même.

ΙΙΙ.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

Figure. ΙΙΙ.1: Dimension et forme du châssis


ΙΙΙ.1.3.Les roues :
Notre base est équipée de deux roues motrices et une roue folle en caoutchouc.
Les roues motrices possèdent les caractéristiques suivantes :

Diamètre extérieur =7.5cm

Diamètre intérieur =5.4cm

Figure. ΙΙΙ.2 : Roue motrice Figure. ΙΙ .3: Roue folle

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.

Figure. ΙΙΙ.4: Nos moteurs pas à pas utilisés


ΙΙΙ.1.4.1.Calcul la vitesse de notre robot :
La vitesse du robot est proportionnelle au diamètre des roues utilisées, nous avons un pas qui
correspond à 10 ms, donc 48 pas (un tour) correspondent à 480 ms.
La vitesse du robot est alors déterminée de la façon suivante :
1 tour = *d =3.14*7.5=23.55 cm
Avec d : le diamètre de la roue.
Nous avons un pas qui correspond à une distance de 0.4906 cm dans une période de 1/f.
Donc la vitesse = 0.4906*f cm/s.

ΙΙΙ.1.4.2.Le poids de notre robot :


Le poids est un facteur important pour notre application car il joue le rôle d’un couple résistant pour
les deux moteurs. Plus le poids est grande plus la vitesse est lente.
Le poids total est 1700gr.
ΙΙΙ.2.La structure électronique :
Pour réaliser n’importe quelle carte électronique, il faut d’abord étudier ses composants et son
environnement logiciel qu’on veut employer pour gérer cette carte.
Dans cette partie on décrit les trois cartes réalisé :

-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

Figure. ΙΙΙ.5: Synoptique de notre réalisation

ΙΙΙ.2.1.La carte mère (de commande) :


Notre carte de commande est basée sur un microcontrôleur PIC16F877 qui est le cœur de notre carte et
un circuit intégré MAX232 qui permet à la communication série.
Cette carte permet de commander nos deux moteurs, et aussi la communication série entre le PC et le
robot.

ΙΙΙ.2.1.1.Présentation des PIC :


Les PIC 16F877 est un microcontrôleur de type Mide_range, ils possèdent un jeu d’instructions réduit
qui caractérise les circuits RISC (Reduced Instruction Set component). Les circuits RISC sont
caractérisés par leur rapidité d’exécution.

Le 16F877-04 veut dire :


- 16 : c’est un PIC de la famille Mid-Range.
- F : pour indiquer que la mémoire est de type flash.
- 877 : identification du PIC.
- 4 : fréquence d’horloge que le PIC peut supporter.

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.

Figure. ΙΙΙ.6: Brochage du PIC 16F877

ΙΙΙ.2.1.3.Description du PIC 16F877-04 :


Le PIC qu’on a utilisé, est le 16F877-04 qui fait partie de la famille MID_RANG (mots à 14bits),
possède les caractéristiques suivantes :
 Une unité arithmétique et logique (ALU).
 Une horloge de 4Mhz.
 Une mémoire programme de type EEPROM flash.
 Une mémoire RAM de données de 368 octets.
 Une mémoire EEPROM de 256 octets.
 5 Ports d’entrées/sorties :
 Port A : 6 pins.
 Port B : 8 pins.
 Port C : 8 pins.
 Port D : 8 pins.
 Port E : 3 pins.
 3 Timers avec leur préscalére TMR0, TMR1, TMR2.
 Deux modules de comparaisons et de capture CCP1, CCP2.
 LE WATCHDOG.
 1 Convertisseur analogique/numérique 10bits de 8 canaux.
 Récepteur/Transformateur série synchrone et asynchrone USART.
 SSP, Port série synchrone.

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 :

 LP : à quartz, la plage de fréquence est comprise entre 32KHz et 200KHz.


 XT : à quartz, la fréquence est comprise entre 100KHz et 4 MHz
 RC : à oscillateur RC fonctionnant jusqu’à 4MHz, on note que la stabilité de fréquence est
plus fiable que les versions à quartz.
 HS : à Quartz fonctionnant de 4MHz jusqu’à 20MHz.

Il existe trois schémas différents de connexion des éléments externes à l’oscillateur.


Figure. ΙΙΙ.2.1.3 représente ces trois schémas, sachant que celui de (a) est le plus utilisé. Le Datasheet
de chaque PIC fournit les valeurs des composants correspondants.

(a)

(c) (b)

Figure. ΙΙΙ.7: Différents connexions à l’oscillateur

ΙΙΙ.2.1.5.Structure interne du PIC 16F877 :


L’architecture interne présente les principaux organes qui composent le microcontrôleur
(Figure. ΙΙΙ.2.1.6). Le but ici n’est pas d’expliquer chaque organe mais de permettre de visualiser
l’ensemble pour mieux comprendre le fonctionnement du microcontrôleur.

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

Figure. ΙΙΙ.9 : Organisation de la mémoire

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.

Figure. ΙΙΙ.10 : Schéma interne de Timer1


Le registre de configuration T1CON :
La gestion du Timer1 est gérée par le registre TCON qu’il l’active ou le désactive.

T1CON :

T1CKPS1, T1CKPS0 : Control du préscaler


00 : Division par 1
01 : Division par 2
10 : Division par 4
11 :Divisionpar8
T1OSCEN : Validation de l’oscillateur associé à TMR1
1 : Oscillateur arrêté
0 : Oscillateur activé
T1SYNC : Synchronisation de l’horloge externe
0 : Synchronisation
1 : pas de synchronisation
TMR1CS : Choix de l’horloge du Timer
0 : Horloge système (Fosc/4) : mode Timer
1 : Horloge externe : mode compteur
TMR1ON : Démarrer /Arrête le timer
0 : Timer stoppé
1 : Timer en fonctionnement

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 :

Figure. ΙΙΙ.11: Port de transmission

1. Le port de la transmission est contrôlé par le registre TXSTA :

CSRC : Non utilisé.


TX9 et TX9D : Pour utiliser 9 bits.
TXEN : Pour valider ou interdire la transmission.
SYNC : 0 mode asynchrone, 1 mode synchrone.
BRGH : Sélectionne le mode haut débit
TRMT : Indicateur de l’activité de registre à décalage
1 Pas de décalage, 0En activité.

Figure. ΙΙΙ.12: Port de réception.

2. Le port de la réception est contrôlé par le registre RCSTA :

37
SPEN : Validation du port série (1Validé, 0Inhibé).
RX9 : Validation du mode 9 bits (1mode 9 bits, 0mode 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]

ΙΙΙ.2.1.8.Présentation de la communication série :


Pour garantir la communication entre la base mobile et le PC, on a utilisé la liaison série RS232. Sur
cette liaison les bits d’informations circulent l’une après l’autre sur le même fil. Pour cette liaison les
niveaux sont -12V pour 1 logique et +12V pour 0 logique. Ils sont donc totalement incompatibles avec
ceux du PIC +5V pour « 1 » et 0V pour « 0 ».
L’utilisation du circuit MAX232 permet d’adapter les niveaux à l’aide d’un convertisseur de tension
intégré qui délivre une tension de -12V et +12V en partant d’une alimentation de 5V.
Le MAX 232 va convertir les niveaux bas (0V) en 12V et les niveaux hauts (5V) en -12V. [13]

Figure. ΙΙΙ.13: Brochage du MAX232

Pour le raccordement entre la sortie du MAX 232 et le PC, on utilise une fiche DB9 femelle.

Figure. ΙΙΙ.14 : Connecteur 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

Tableau.III.1 : Brochage entre le PIC et le MAX232.

ΙΙΙ.2.1.9.La carte mère: la figure.III.2.1.9 représente la carte mère :

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

Figure. ΙΙΙ.15: La carte mère.

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

12 U3 9 4 U4 D9 D10 D11 D12


J5
5 10 4 5
RC1 4 20
ENABLE VCC A
6 7
IN1 VCC VS
2 J2
RB3 3 19
RESET B
7 10
IN2 OUT1
1
RB2 2 17
HALF/FULL C
9 12
IN3
3 2
RB0 1 18
CW/CCW D
5 6
IN4 OUT2
3
RB1 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
D13 D14 D15 D16
R6 15
VREF
16
OSC GND SYNC
1 R4R3 8 L298

C2
2 L297

Figure. ΙΙΙ.16 : La carte de puissance

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

RESET Traslateur Sortie logique


Control
Direction D Q
CW/CW
C
U1
CLOCK NAND
Q S S Q

R R

Sync

HOME + +

- -

Oscillateur

GND
Sens1 Vref Sens2 Osc

Figure. ΙΙΙ.17: Structure interne du circuit L297.

Le circuit L297 possède deux étages principaux :


 Un translateur (séquenceur) qui génère les différentes séquences de commande.
 Un double hacheur PWM (Pulse With Modulation) qui régule le courant traversant les bobinages
du moteur.

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]

Figure. ΙΙΙ.18: Structure interne du circuit L298

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

Figure. ΙΙΙ.19: La carte d’alimentation

Cette alimentation contient :


 R1=R2=0.22 Ω.
 R3=R2=3 Ω.
 C1=C2=2200µF.
 C3=C4=C5=C6=C7=C8=22µF.
 Q1 et Q2 sont deux transistors de type BD244.
 3 régulateurs de type 7805.
 1 régulateurs de type 7812.
Notre alimentation peut fournir :
 2 tensions de 5V courant faible U3 et U4 dépasse pas 500 mA.
 1 tension de 5V courant élevé U2 jusqu’à 4A.
 1 tension de 12V courant élevé U1 jusqu’à 4A.

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 :

PIC L297 L298 Moteur


16F877 L297
A Input1
RB0 CW/CCW B Input 2
C Input3
RB1 CLOCK D Input4
INH1 Enable 1 Moteur 1
RB2 HALF/FULL INH2 Enable2
Sens1 Current
RB3 RESET sensing A
RC1 ENABLE Sens2 Current
sensing B
RB4 CW/CCW A Input1
B Input 2
RB5 CLOCK C Input3
D Input4
RB6 HALF/FULL INH1 Enable 1 Moteur 2
INH2 Enable2
RB7 RESET
Sens1 Current sensing
A
RC2 ENABLE Sens2 Current
sensing B

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 :

IV.1.La programmation du microcontrôleur PIC 16F877 :


IV.1.1.Le compilateur MIKRO C :
La programmation des microcontrôleurs PICs peut se faire par plusieurs langages informatiques tels
que l’assembleur et le langage C qui sont les plus répondus dans les applications à base des PICs.

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.

Figure. IV.1: mikroC.

IV.1.2.Le logiciel de programmation du PIC –WINPIC :


WINPIC est un logiciel qui permet de transférer les programmes convertis en code hexadécimal vers la
mémoire flash du microcontrôleur via le programmateur.

46
Figure. IV. 2: Win Pic.

IV.1.3.L’éditeur de schéma PROTEUS :


Proteus est une suite de deux logiciels, Isis et Ares, Isis permet le dessin des schémas électroniques, la
simulation en temps réel de façon dynamique et Ares permet de transformer les schémas en PCB
(Tracé du circuit imprimé).
Proteus est un outil convivial facile à prendre en main. Il reconnaît et simule beaucoup de composants
ainsi que de nombreux afficheurs, moteurs,…

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

Figure. IV. 3: Le schéma de simulation de notre programme final.

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.

IV.1.4.1.Le programme principale :


On peut présenter notre programme principal par l’organigramme suivant :

Programme principale

Configuration des Ports E/S

Charger les vitesses

Configuration USART

Configuration Timer1

Valider les interruptions

Figure. IV. 4: L’organigramme du programme principal.

Pour minimiser le temps de transmission et de traitement on a choisi d’utiliser 16 valeurs de vitesses


possibles pour le robot. Ceci nous permet ainsi de réduire l’information de la vitesse transmise du PC
vers le robot de 16 bits à seulement 4 bits qui indiquent l’indice de la vitesse choisie.

IV.1.4.2.Le sous programme de traitement des interruptions :


Ce programme va traiter deux interruptions :
 L’interruption provoquée par l’USART pour gérer la communication entre le robot et le PC.
C’est l’interruption la plus prioritaire.
 L’interruption provoquée par TMR1 pour gérer la commande des deux moteurs.
On peut représenter le déroulement de ce programme par l’organigramme suivant :

48
Interruption

NON Un octet OUI


reçue

L’interruption provoquée par


NON l’USART
Débordement OUI
du Timer1
Traitement
L’interruption provoquer par d’interruption
Timer1

Fin de traitement
Traitement d’interruption d’interruption

Fin de traitement
d’interruption

Retour vers le programme


principal (main)

Figure. IV. 5: L’organigramme de sous programme de traitement des interruptions.

IV.1.4.2.1.Traitement d’interruption provoquée par l’USART :


Afin d’optimiser la communication entre le PC et le robot on a essayé de réduire au maximum le
protocole de communication utilisée en utilisant généralement 1 octet pour représenter une donnée.
La trame envoyée du pc au robot peut être classée en 2 types de commande :
-Trame indique une vitesse
-Trame indique une commande que le robot doit exécuter.

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

cmd_recu= Donnée reçu

NON OUI
cmd_recue.F7=0

La donnée reçue La donnée reçue


est une est une
vitesse Commande

Figure. IV. 6: L’organigramme de sous programme de traitement d’interruption provoqué par


l’USART

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.

IV.1.4.2.2.Le cas ou la donnée reçue est une commande :


Pour commander notre robot on a choisi deux modes de commandes :
-Mode console de commande : Consiste à commander directement le déplacement du robot via le PC.
-Mode de commande par trajectoire : Consiste à envoyer au robot les paramètres d’une trajectoire
rectiligne, le robot doit reproduire exactement la trajectoire.

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

L’organigramme suivant représente le programme de détermination du mode de la commande choisie.

Donnée reçue est une commande

NON OUI
B6=0

Mode de commande par Mode console de


trajectoire commande

Figure. IV. 7: L’organigramme pour déterminer le mode de la commande choisie


On présente dans ce qui suit les programmes des deux modes de fonctionnement utilisés dans notre
robot.

IV.1.4.2.2.1 Mode console de commande:

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.

Les différentes commandes de mise en marche sont déterminées comme suit :

 cmd_recu = 00000001 Arrêt totale (Arrêter les deux moteurs).


 cmd_recu = 00000010  Marche (Démarrer les deux moteurs).
 cmd_recu = 00000100  Marche 1 (Démarrer le moteur1 et arrêter le moteur2).
 cmd_recu = 00001000  Marche 2 (Démarrer le moteur2 et arrêter le moteur1).
Pour la détermination du mode de fonctionnement nous avons appliqué l’organigramme suivant :

51
Mode console de commande

NON OUI
cmd_recu=1

NON Arrêt total


OUI
cmd_recu=2

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

Figure. IV. 8: L’organigramme du mode console de commande

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

NON OUI NON OUI


B5=0
B5=0
Portc.F1=1
Activation du Portc.F2=1
moteur1 Activation
du moteur2

Portc.F1=0 NON Portc.F2=0


NON OUI OUI
L’arrêt du B4=1 L’arrêt du
B4=1 moteur1 moteur2

Sens1 du Sens2 du
moteur1 moteur1
Sens1 du moteur2 Sens2 du moteur2

Determination de la vitesse du Determination de la vitesse du


moteur1 moteur2

Chargement du Timer1
Chargement duTimer1

Fin_vitesse

Figure.IV. 9: L’organigramme pour la détermination de la 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

m=3 m=2 m=1

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

Mode de commande par


trajectoire

NON OUI
compt_flag=1

NON OUI Comp_L=cmd_recu


compt_flag=2

Compt_flag++
Comp_H=cmd_recu

NON OUI retour_interr


cmd_recu.F7=1 Compt_flag=0

Vitesse=cmd & 0x0F retour_interr


retour_interr PORTC.F1=cmd_recu.F4
PORTC.F2=cmd_recu.F5

Compt_flag=1

Retour_interr

Figure.IV. 11: L’organigramme du mode de commande par trajectoire

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

Inverser la pin 5 et 1 Transmettre ‘0’ au


du portb PC

Arrêt totale
Chargement du
TIMER1

Retour_interr

Figure. IV. 12: L’organigramme Gestion de l’interruption déclenchée par le Timer1


dans le mode de commande par trajectoire.

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.

Figure IV.13: Borland C++ Builder


Figure. IV.13: Borland C++ Builder.

Nous avons réalisé 3 interfaces :

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

Figure IV.14: L’interface principale

57
IV.1.5.1.1.Console de commande :

La figure ci dessus représente l’interface de 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

Figure IV.15: L’interface de console de commande

58
IV.1.5.1.2.Commande trajectoire :

La distance
Parcourue

Activer les
deux

Panneau Arrêter les deux


pour varier moteurs
la vitesse

Commande par
trajectoire

Ouvrir et fermer le
port série COM1
Varier l’angle de
rotation

Figure IV.16 : Interface de commande trajectoire

L’organigramme suivant explique le fonctionnement de cette interface :

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

Figure IV.17 : L’organigramme de commande

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 :

N=X / 0.4906 ------1

Figure IV.18: Trajectoire droite


2-La
La trajectoire est une rotation:
Dans cette étude on cherche le nombre de pas pour un angle de rotation du robot.
Les moteurs que nous avons utilisés font 7.5° (0.13 rad) par pas (moteur 48pas).
Le rayon de la roue r=3.75 cm donc le déplacement ‘a’ de la roue est obtenue par la relation suivante :
a= 0.13*r
a=0.49cm => chaque pas,
pas la roue se déplace par 0.49cm.
Nous avons le rayon de notre châssis R=12.5 cm.
La variable ‘ß’ est l’angle de rotation du robot, donc :
ß (rad)= a/R =0.03925 rad = 2.25°

Enfin pour un pas le robot tourne


rne avec un angle de 2.25°
La formule générale pour obtenu le nombre de pas pour que le robot faire un angle, est la suivante :
N= Ω /2.25°
/2.25 ------2
N : Nombre de pas
Ω :L’angle de rotation du robot en degré

Figure IV.19: Trajectoire est une dérivation

60
3-Exemple d’une trajectoire :

A-B=L= 1m
B-C=0.5m
C-D=0.5m A B
Ω=30° Ω D
ß=100°

ß
C

Figure IV.20: Exemple d’une trajectoire du robot


On obtenu le nombre de pas en fonction de la trajectoire parcourue par le robot.
On applique la relation 1 pour le cas d’une trajectoire droite :
N=L (cm) / 0.4906.
On applique la relation 2 pour une rotation avec un angle :
N= Ω/2.25°

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

qui facilitent la commande du robot.

62
Conclusion Générale

Notre projet de fin d’étude consiste à réaliser un robot mobile commandé par PC.

Pratiquement nous avons consacré notre temps aux taches suivantes :

 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.

Comme perspectives nous proposons :

-D’ajouter des capteurs.


-Remplacer les moteurs par des moteurs plus puissants.
-L’implantation de stratégies de navigation élaborées sur le robot mobile.
-Le remplacement des cartes de commande par des cartes plus fiables.
-Choisir une batterie légère.

63
ANNEXE
1. Circuit imprimé de la carte d’alimentation :

Carte d’alimentation Carte d’alimentation


(Cote composante) (Cote cuivre)

2. Circuit imprimé de la carte d’interface de puissance :

La Carte d’interface de puissance (cote composant)

64
La Carte d’interface de puissance (cote cuivre)

3. Circuit imprimé de la carte de commande:

La carte de commande la carte de commande


(Cote cuivre) (Cote composant)

65
66
67
68
69
Références bibliographiques

[1] : Datasheet du microcontrôleur 16F87X-Microchip

[2] : Bigonoff « SECONDE PARTIE LA GAMME MID-RANGE PAR L’ETUDE DES


16F87X » (16F876-16F877)

[3] : Robots Mobiles Programmables (Technique avancées) de Frédéric Giamarchi

[4] : Boudera Ismail, Dahmane Ahmed : Conception&Réalisation d’un Robot Mobile


Deuxième version (PFE électronique 2005-2006)

[5]: Benahmed Boumediene El Ouassini, Mazari sidi Mohamed El –Khalil: Conception et


Réalisation d’un robot mobile autonome (MB.01) (PFE électronique 2004-2005)

[6] : Djoub Ahmed Belkacem, Belalem Amel : La commande optimal des MCC : étude et
Conception de la carte de commande. (PFE Automatique 2006-2007)

[7] : Mohamed Anzar, Rouabah Mohamed : Réalisation d’un automate programmable


Autonome (PFE Electronique industriel 2006-2007, Institut .N .S.F.P ES-SINIA).

[8] : Article de Wikipédia, l’encyclopédie libre.

[9] : Apprendre la programmation des PIC.

[10] : Moteur pas à pas et PC deuxième édition de PATRIQUE OGUIC.

[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