Vous êtes sur la page 1sur 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

FACULTÉ DE GÉNIE ÉLECTRIQUE DÉPARTEMENT D’AUTOMATIQUE EN VUE DE L’OBTENTION DU DIPLÔME D’INGENIEUR D’ETAT

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

1
1

ORAN 22 juin 2008

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
2
Nous remercions ALLAH tout puissant de nous avoir donné les moyens et la force d’accomplir
Nous remercions ALLAH tout puissant de nous avoir donné les moyens et la force d’accomplir

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.

3
3

HAMANE BEKHADA AZROUG MOHAMED

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
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
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
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
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
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
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
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
11
12
12
12
12
12
12
12
12
12
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]

par leur type de locomotion, qu’ils soient marcheurs, sous-marins ou aériens. [3] Figure. Ι.1 : Les
par leur type de locomotion, qu’ils soient marcheurs, sous-marins ou aériens. [3] Figure. Ι.1 : Les

Figure. Ι.1 : Les robots mobiles

13
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
Structure
Structure de
Mécanique
Commande
L’énergie

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

14
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]

futures sur les capteurs et les cartes électroniques. [3] Avance Avance Recule Tourner à Gauche Figure.

Avancefutures sur les capteurs et les cartes électroniques. [3] Avance Recule Tourner à Gauche Figure. Ι.3

sur les capteurs et les cartes électroniques. [3] Avance Avance Recule Tourner à Gauche Figure. Ι.3

Avancesur les capteurs et les cartes électroniques. [3] Avance Recule Tourner à Gauche Figure. Ι.3 :

les capteurs et les cartes électroniques. [3] Avance Avance Recule Tourner à Gauche Figure. Ι.3 :
Recule
Recule

Tourner à

Gauche

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
15

Roues

Roues Folles Figure. Ι.4 : La forme classique avec une ou deux roues folles Les deux

Folles

Roues Folles Figure. Ι.4 : La forme classique avec une ou deux roues folles Les deux

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]

sur la trajectoire du mobile qui n’ira plus droit. [3] Figure. Ι.5 : robot mobile avec

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
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]

années d’études pour les laboratoires de robotique. [3] Figure. Ι.6 : Robot Sony AIBO Ι.3.3.3.Les chenilles

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.

cause du contact mal défini entre les chenilles et le sol. Figure. Ι.7 : robot mobile

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.

nominale pour sélectionner un moteur plutôt qu’un autre. Figure. Ι.8 : Les différents moteurs utilisés dans
nominale pour sélectionner un moteur plutôt qu’un autre. Figure. Ι.8 : Les différents moteurs utilisés dans
nominale pour sélectionner un moteur plutôt qu’un autre. Figure. Ι.8 : Les différents moteurs utilisés dans

Figure. Ι.8 : Les différents moteurs utilisés dans la robotique (Servomoteur, Moteur à courant Continu, Moteur pas à pas)

17
17

Ι.4.La structure de comma nde ou électronique:

La réalisation des cartes électron iques est déjà une difficulté en soi, mais da ns le cas de la robotique, elle se double d’un encombreme nt réduit, car on doit minimiser au maximum leur taille. L’électronique étant une partie t rès sensible du robot, elle doit être protégée. Toutes les liaisons entre les cartes, les capteurs, les moteu rs et l’alimentation sont autant de points sen sibles.

Ι.4.1.Les capteurs :

Les capteurs sont les organes s ensoriels d’un robot. Certains sont fragiles

d’autres au contraire doivent directement connectés au centre

Les autres types nécessitent un e petite interface d’adaptation, comme les

et doivent être protégés,

être capable d’absorber des chocs. Les pl us simples peuvent être de contrôle, comme les interrupteurs.

capteurs infrarouge ou à

ultrasons. D’autres plus sophistiq ués nécessitent une carte spéciale tel que les cameras.

On a deux types de capteur :

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

Ils sont des capteurs extérocep tif, délivrent des informations relative à interactions entre le robot et son environnement : capteurs de distance. [4]

le robot et son environnement : capteurs de distance. [4] Figure. Ι. 9 : Télémètres infrarouges

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

l’environnement ou aux

Ι.4.1.2.les capteurs interne (capt eur proprioceptif) :

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

ou de vitesse des roues et les cap teurs de charge de la batterie. [4] Figure.

Figure. Ι.10 : capteur de position angulaire

18
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
19
20
20
20
20
20
20
20
20
20
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.

repose le fonctionnement de tout les moteurs électrique. Figure. ΙΙ.1:circulation du courant dans une bobine ΙΙ.

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
21

.

. Figure. ΙΙ.2:Moteur à aimant permanent Caractéristiques principales : - Faibles résolution : nombre de -

Figure. ΙΙ.2:Moteur à aimant permanent

Caractéristiques principales :

- Faibles résolution : nombre de

- Couple d’utilisation plus élevé par rapport au moteur à reluctance variable.

- Présentation d’un couple résidu el lorsque le moteur est hors tension.

pas/tour peu important.

ΙΙ. 3.2. Moteur à reluctance vari able :

-Le stator présente un certain no mbre de dents ayant un bobinage. -Le rotor (en matériau magnétiqu e) possède un nombre différent de dents, ma is sans bobinage.

- Le rotor se positionne pour que la réluctance du circuit magnétique soit mini mum.

- 12 pas par tour ou 30° par pas.

- Des séquences pour un tour co mplet.

ou 30° par pas. - Des séquences pour un tour co mplet. Figure. ΙΙ.3: Moteur à

Figure. ΙΙ.3: Moteur à reluctance variable

Caractéristiques principales :

- Les fréquences de fonctionnem ent peuvent être élevées.

- Bonne résolution.

- Construction simple mais délic ate. Couple développé.

- Absence de couple résiduel ave c le moteur hors tension.

ΙΙ. 3.3 Moteur hybride :

C’est un moteur à reluctance p olarisée.il superpose le principe de foncti onnement des moteurs à aimant permanent et à reluctance variable et combine leurs avantages.

Le rotor est constitué de deux di sques dentés décalés mécaniquement entre c es 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 fl ux traversant le rotor soit maximal.

22
22
Figure. ΙΙ.4: Exemple de rotor de Moteur hybride Caractéristiques principales : - Hors tension, le

Figure. ΙΙ.4:Exemple de rotor de Moteur hybride

Caractéristiques principales :

- Hors tension, le rotor est mainte nu en position.

- Bonne précision de la position

- Grande vitesse de rotation.

du rotor.

[10 ]

de la position - Grande vitesse de rotation. du rotor. [10 ] Figure. ΙΙ.5: Moteur s

Figure. ΙΙ.5:Moteur s hybride

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

ΙΙ. 4.1. Le mode unipolaire :

La commande unipolaire n’utilis e en effet qu’une bobine par phase. Elle se f ait entre une extrémité et le point milieu de bobinage. Ce la permet néanmoins de simplifier l’électro nique de pilotage vu que l’on travaille dans environnemen t numérique.

vu que l’on travaille dans environnemen t numérique. Figure. ΙΙ.6 : Mode unipolaire ΙΙ. 4.2. Le

Figure. ΙΙ.6 : Mode unipolaire

ΙΙ. 4.2. Le mode bipolaire :

Elle permet d’augmenter le coup le de moteur, par sa position ses enroulement s.

Les enroulements au stator n’o nt pas de point milieu, chaque borne de

alimentée successivement par

enroulements statique. On invers e les pôles nord et sud de stator. [10]

chaque enroulement est

une polarité positive puis négative en inv ersant les polarités des

positive puis négative en inv ersant les polarités des Figure. ΙΙ.7 : Mode bipolaire ΙΙ. 5.

Figure. ΙΙ.7 : Mode bipolaire

ΙΙ. 5. Caractéristiques cou ple et vitesse :

ΙΙ. 5. 1-Couple d'arrêt ou couple de maintient :

C’est le couple maximum de rot ation avec lequel on peut solliciter l'arbre d'u n moteur pas à pas excité statiquement, sans qu'il ne se pro duise de modification de son angle de rotatio n.

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

ou stoppé avec cette fréquence sans perte de pas. Figure. ΙΙ.8:Domaines de fonctionnement du moteur 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
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
25
Vcc Interface Unité de De Pilotage Moteur Microcontrôleur Puissance & PC Figure. ΙΙ.9:Synoptique de la
Vcc
Interface
Unité de
De
Pilotage
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

plaçant à des positions de détente. [10]

séquence permet normalement d’alimenter une bobine à la fois, en

B A D C
B
A
D
C

Unipolaire

A

B

C

D

0

0

0

1

1

0

0

0

0

0

1

0

0

1

0

0

Tableau.III. 1

2 4 6 8 2 Clock A B C D 0001 1000 0010 ABCD =
2
4
6
8
2
Clock
A
B
C
D
0001
1000
0010
ABCD =
0100
1. Fonctionnement en mode monophasé
26
26

ΙΙ. 8.1.2. Biphasé :

Cette fonction permettra au mo teur de faire un pas complet où les positio ns d’équilibre sont à mi- chemin entre les positions de la s équence la plus simple. [10]

 

B

C

D

0

1

0

1

1

0

0

1

1

0

1

0

0

1

1

0

Tableau.III.2

1 1 0 1 0 0 1 1 0 Tableau.III.2 1 3 5 7 1 clock
1 3 5 7 1 clock A B C D ABCD=0101 1001 1010 0110
1
3
5
7
1
clock
A
B
C
D
ABCD=0101
1001
1010
0110

2. Fonctionnement en

mode biphasé

ΙΙ. 8.2. Demi –pas :

Dans ce cas, on combine les de ux séquences précédentes pour placer le ro tor successivement à une

position de détente, à une positio n intermédiaire, et à nouveau à une position

Ce mode permettra de multiplier par deux le nombre de pas. L’avantage de ce mode à demi-p as qu’il ne souffre pas de problème de réso nances, même s’il tourne

très vite, on ne tombe jamais sur un point de résonance où le couple s’annule. [10]

de détente.

A 0

0

1

1

1

0

0

0

B 0

1

0

0

0

0

1

1

C 0

0

0

0

1

1

1

0

D 1

1

1

0

0

0

0

0

Tableau.III.3

1 2 3 4 5 6 7 8 Clock A B C D ABCD= 0101
1
2
3
4
5
6
7
8
Clock
A
B
C
D
ABCD=
0101
0001
1001
1000
1010
0010
0110
0100

3. Fonctionnement en mode demi pas

27
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
28
29
29
29
29
29
29
29
29
29
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 D=25cm D=25cm 1.5cm 1.5cm 8cm 8cm 8cm 2.5cm 2.5cm 2.5cm Figure. ΙΙΙ.1: Dimension et
D=25cm
D=25cm
D=25cm
1.5cm
1.5cm
8cm
8cm
8cm
2.5cm
2.5cm
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

Diamètre intérieur =5.4cm

Figure. ΙΙΙ.2 : Roue motrice

30
30
Diamètre intérieur =5.4cm Diamètre intérieur =5.4cm Figure. ΙΙΙ.2 : Roue motrice 30 Figure. ΙΙ .3: Roue

Figure. ΙΙ .3: Roue folle

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

le moteur tourne de façon continue 100 Hz à 15 Hz. Figure. ΙΙΙ.4: Nos moteurs pas

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

qui dispose de 40 broches montées sur un boîtier DIL. Figure. ΙΙΙ.6: Brochage du PIC 16F877

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
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) (b) (c)

(a)

(b) (c)
(b)
(c)

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
34
Figure. ΙΙΙ.8 : Les éléments constituants 16F877 ΙΙΙ.2.1.6.L’organisation de la mémoire :  Le PIC16F877

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

à contrôler et configurer les différents modules (Comme le la figure Figure. ΙΙΙ.9 : Organisation de

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

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

son prédiviseur ne permet qu’une division maximale de 8. Figure. ΙΙΙ.10 : Schéma interne de Timer1

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 :

registre TCON qu’il l’active ou le désactive . T1CON : T1CKPS1, T1CKPS0 : Control du préscaler

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
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 :

broches RC6/TX et RC7/RX. L’USART contient deux ports : Figure. ΙΙΙ.11: Port de transmission 1. Le

Figure. ΙΙΙ.11: Port de transmission

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

de la transmission est contrôlé par le registre TXSTA : CSRC : Non utilisé. TX9 et

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

à décalage 1  Pas de décalage, 0  En activité. Figure. ΙΙΙ.12: Port de réception.

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

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

En activité. Figure. ΙΙΙ.12: Port de réception. 2. Le port de la réception est contrôlé par
37
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]

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

bas (0V) en 12V et les niveaux hauts (5V) en -12V. [13] Figure. ΙΙΙ.13: Brochage du

Figure. ΙΙΙ.13: Brochage du MAX232

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

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

Figure. ΙΙΙ.14 : Connecteur DB9 femelle

38
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 U1 X1 33 CONN-SIL5 C6 14 13 OSC1/CLKIN
1
C5
2
3
4
15p
5
U1
X1
33
CONN-SIL5
C6
14 13 OSC1/CLKIN
RB0/INT
34
1 OSC2/CLKOUT
RB1
35
J4
MCLR/Vpp/THV
RB2
J6
36
+5V
RB3/PGM
15p
1
2
37
1
2 RA0/AN0
RB4
3
38
2
3 RA1/AN1
RB5
R1
4
39
3
RA2/AN2/VREF-
RB6/PGC
4 5
40
4
RA3/AN3/VREF+
RB7/PGD
5
6
5
10K
RA4/T0CKI
6 7
15
J5
RA5/AN4/SS
RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
1 8
17
RE0/AN5/RD
RC2/CCP1
2 9
18
C7
RE1/AN6/WR
RC3/SCK/SCL
3
10
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
C1
29
7
RD6/PSP6
J1
30
8
RD7/PSP7
U2
1
3
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
C2
4
5
MAX232
C4
1u
1u
1u

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

39
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 +12V 2 +5V 3 GND R7 CONN-SIL3 U2 U1 12 9 4 D1
J6
1
+12V
2
+5V
3
GND
R7
CONN-SIL3
U2
U1
12
9
4
D1
D2
D3
D4
J4
1 10
4
5
RC2
ENABLE
VCC
A
IN1
VCC
VS
J1
2 20
6
7
2
RB7
RESET
B
IN2
OUT1
3 19
7
10
1
RB6
HALF/FULL
C
IN3
4 17
9
12
3
2
RB4
CW/CCW
D
IN4
OUT2
5 18
5
6
3
RB5
CLOCK
INH1
ENA
8
11
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
1
R1R2
8
L298
OSC
GND
SYNC
C1
2
L297
10p
J3
1
+12V
2
+5V
3
GND
CONN-SIL3
U3
U4
12
9
4
D9
D10 D11
D12
J5
5
10
4
5
RC1
ENABLE
VCC
A
IN1
VCC
VS
J2
4
20
6
7
2
RB3
RESET
B
IN2
OUT1
3
19
7
10
1
RB2
HALF/FULL
C
IN3
2
17
9
12
3
2
RB0
CW/CCW
D
IN4
OUT2
1
18
5
6
3
RB1
CLOCK
INH1
ENA
8
11
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
1
R4 R3
8
L298
OSC
GND
SYNC
C2
2
L297

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

40
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
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
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]

charge reliée aux émetteurs de chaque paire de transistors. [10] Figure. ΙΙΙ.18: Structure interne du circuit

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

42
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 Q1 1 R1 2 BD244 0.22 U1 TBLOCK-M2 J1 7812 R2 1 3 1
J2
Q1
1
R1
2
BD244
0.22
U1
TBLOCK-M2
J1
7812
R2
1
3
1
VI
VO
2
3
3
C4
U1
C1
CONN-SIL3
22u
2200u
Q2
R3
BD244
0.22
U2
7805
R4
1
3
VI
VO
3
U2
C3
C2
22u
2200u
U3
7805
J4
1
3
VI
VO
1
2
U3
C5
C6
TBLOCK-M
22u
22u
U4
7805
1
3
VI
VO
U4
J3
C7
C8
1
2
22u
22u
TBLOCK-M
2
GND
2
GND
2
GND
2
GND

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

 

16F877

L297

RB0

CW/CCW

RB1

CLOCK

RB2

HALF/FULL

RB3

RESET

RC1

ENABLE

RB4

CW/CCW

RB5

CLOCK

RB6

HALF/FULL

RB7

RESET

RC2

ENABLE

Tableau .III.2 : Brochage entre Le PIC et le L297

L297

L298

Moteur

A

Input1

 

B

Input 2

C

Input3

D

Input4

INH1

Enable 1

Moteur 1

INH2

Enable2

Sens1

Current

sensing A

Sens2

Current

sensing B

A

Input1

 

B

Input 2

C

Input3

D

Input4

INH1

Enable 1

Moteur 2

INH2

Enable2

Sens1

Current

sensing

A

Sens2

Current

sensing B

Tableau .III.3 : Brochage entre le L297 et le L298

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

qui nous garanti une commande en temps réel du robot. Figure. IV.1: mikroC. IV.1.2.Le logiciel de

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
46
Figure. IV. 2: Win Pic. IV.1.3.L’éditeur de schéma PROTEUS : Proteus est une suite de

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 U3 U2 12 9 4 C1 10 4
A
+5V
+12V
B
C
+12V
D
U3
U2
12
9
4
C1
10
4
5
ENABLE
VCC
A
IN1
VCC
VS
20
6
7
2
U1
RESET
B
IN2
OUT1
19
7
10
HALF/FULL
C
IN3
15p
33
17
9
12
3
14 13 OSC1/CLKIN
RB0/INT
CW/CCW
D
IN4
OUT2
34
18
5
6
1 OSC2/CLKOUT
RB1
CLOCK
INH1
ENA
35
8
11
13
MCLR/Vpp/THV
RB2
INH2
ENB
OUT3
36
3
+88.8
C2
RB3/PGM
HOME
37
14
1
14
3 2 RA0/AN0
RB4
SENS1
SENSA
OUT4
38
11
13
15
4 RA1/AN1
RB5
CONTROL
SENS2
SENSB
GND
39
5 RB6/PGC
RA2/AN2/VREF-
15p
40
15
6 RA3/AN3/VREF+
RB7/PGD
VREF
16
1
8
L298
7 RA4/T0CKI
OSC
GND
SYNC
15
+5V
RA5/AN4/SS
RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
17
2
L297
9 8 RE0/AN5/RD
RC2/CCP1
18
10 RE1/AN6/WR
RC3/SCK/SCL
R2
23
RE2/AN7/CS
RC4/SDI/SDA
24
10k
RC5/SDO
+5V
+12V
25
RC6/TX/CK
+12V
26
RC7/RX/DT
19
RD0/PSP0
U4
U5
20
12
9
4
RD1/PSP1
C3
21
RD2/PSP2
22
10
4
5
0.1u
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
P1
INH2
ENB
OUT3
PIC16F877
3
+88.8
HOME
14
1
14
SENS1
SENSA
OUT4
1
11
13
DCD
CONTROL
SENS2
15
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
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
Programme principale
par l’organigramme suivant : Programme principale Configuration des Ports E/S Charger les vitesses

Configuration des Ports E/S

suivant : Programme principale Configuration des Ports E/S Charger les vitesses Configuration USART Configuration

Charger les vitesses

principale Configuration des Ports E/S Charger les vitesses Configuration USART Configuration Timer1 Valider les

Configuration USART

des Ports E/S Charger les vitesses Configuration USART Configuration Timer1 Valider les interruptions Figure. IV.

Configuration Timer1

les vitesses Configuration USART Configuration Timer1 Valider les interruptions Figure. IV. 4: L’organigramme du

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
48
Interruption

Interruption

Interruption
Interruption
NON OUI Un octet reçue NON L’interruption provoquée par l’USART OUI Débordement du Timer1 Traitement
NON
OUI
Un octet
reçue
NON
L’interruption provoquée par
l’USART
OUI
Débordement
du Timer1
Traitement
d’interruption
L’interruption provoquer par
Timer1
Traitement d’interruption
Fin de traitement
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
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 est une vitesse La donnée reçue est une Commande
NON
OUI
cmd_recue.F7=0
La donnée reçue
est une
vitesse
La donnée reçue
est une
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
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

Donnée reçue est une commande

Donnée reçue est une commande
Donnée reçue est une commande
NON OUI B6=0 Mode de commande par trajectoire Mode console de commande Figure. IV. 7:
NON
OUI
B6=0
Mode de commande par
trajectoire
Mode console de
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
51
Mode console de commande

Mode console de commande

Mode console de commande
Mode console de commande
NON OUI cmd_recu=1 Arrêt total NON OUI cmd_recu=2 Marche totale cmd_moteur=1 NON OUI cmd_recu=4 Arrêter
NON
OUI
cmd_recu=1
Arrêt total
NON
OUI
cmd_recu=2
Marche totale
cmd_moteur=1
NON
OUI
cmd_recu=4
Arrêter les 2
Moteurs,
désactivé TMR1
cmd_moteur=2
Marche 1
Démarrer
les 2
NON
OUI
Moteurs, activé
cmd_recu=8
TMR1
cmd_moteur=4
Arrêt total
Marche 2
Arrêter
moteurs2,
Démarrer
moteur1,
cmd_moteur=4
désactivé TMR1
cmd_moteur=1
Arrêter
Arrêter les 2
Moteurs,
désactivé TMR1
moteurs1,
Démarrer
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
52

Pour notre programme nous avons appliqué l’organigramme suivant :

Vitesse

Vitesse

Vitesse
Vitesse
OUI NON B6=1 Moteur 1 Moteur 2 NON OUI NON OUI B5=0 B5=0 Portc.F1=1 Activation
OUI
NON
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
Portc.F2=0
NON
OUI
NON
OUI
L’arrêt du
L’arrêt du
B4=1
B4=1
moteur1
moteur2
Sens1 du
Sens2 du
moteur1
moteur1
Sens2 du moteur2
Sens1 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
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
m=3
Changement d’état
de RB1et RB5
Chargement t1
Chargement t2
NON
OUI
t1 < t2
OUI
NON
t2 < t1
t2=t2-t1
t1=t1-t2
Chargement de
TMR1 avec t1
Chargement de
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
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

Mode de commande par trajectoire

Mode de commande par trajectoire
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 OUI retour_interr
NON
OUI
compt_flag=1
NON
OUI
Comp_L=cmd_recu
compt_flag=2
Compt_flag++
Comp_H=cmd_recu
OUI
retour_interr
Compt_flag=0
Vitesse=cmd & 0x0F
retour_interr
PORTC.F1=cmd_recu.F4
PORTC.F2=cmd_recu.F5
Compt flag=1
Retour_interr
NON cmd_recu.F7=1
NON
cmd_recu.F7=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
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

Compt=Compt-1

Compt=Compt - 1
Compt=Compt - 1
Compt=Compt - 1
NON OUI Compt=0 Inverser la pin 5 et 1 du portb Transmettre ‘0’ au PC
NON
OUI
Compt=0
Inverser la pin 5 et 1
du portb
Transmettre ‘0’ au
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
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.

Builder qui est un environnement de programmation visuel. Figure IV.13: Borland C++ Builder Figure. IV.13: Borland

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 trajectoire l’application
Basculer vers
Console de
commande
Basculer vers
Quitter
commande
toute
trajectoire
l’application

Figure IV.14: L’interface principale

57
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 Ouvrir et fermer le port série COM1 port série COM1 Afficher
Ouvrir et fermer le
Ouvrir et fermer le
port série COM1
port série COM1
Afficher la
Afficher la
vitesse
vitesse
Arrêter le robot
Arrêter le robot
Panneau pour
Panneau pour
varier la
varier la
vitesse
vitesse
Fermer cette
Fermer cette
fenêtre et arrêter
fenêtre et arrêter
le robot
le robot

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

58
58

IV.1.5.1.2.Commande trajectoire :

La distance Parcourue Activer les deux Panneau pour varier Arrêter les deux moteurs la vitesse
La distance
Parcourue
Activer les
deux
Panneau
pour varier
Arrêter les deux
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
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
59

Le principe consiste à envoyer au

Ces coordonnées représentent le sens de rotation des deux moteurs et le nomb re de pas à effectuer pour chaque partie de la trajectoire.

robot les coordonnées de la trajectoire à eff ectuer.

1-La trajectoire est une ligne d roite :

Dans nos moteurs chaque pas cor respond à 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 pa s afin que le robot parcourue une distance X :

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

que le robot parcourue une distance X : N=X / 0.4906 ------1 Figure IV.18: Trajectoire droite

Figure IV.18: Trajectoire droite

2-La trajectoire est une rotatio n:

Dans cette étude on cherche le no mbre de pas pour un angle de rotation du rob bot. Les moteurs que nous avons utili sés font 7.5° (0.13 rad) par pas (moteur 48pa as). Le rayon de la roue r=3.75 cm do nc le déplacement ‘a’ de la roue est obtenue par la relation suivante :

a= 0.13*r

a=0.49cm => chaque p as, 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 ro tation du robot, donc :

ß (rad)= a/R =0.03925 rad = 2.2 5°

Enfin pour un pas le robot tourne avec un angle de 2.25° La formule générale pour obtenu le nombre de pas pour que le robot faire un

N=

/2.25° ------2

N : Nombre de pas :L’angle de rotation du robot e n degré

de pas Ω :L’angle de rotation du robot e n degré angle, est la suivante :

angle, est la suivante :

Figu re IV.19: Trajectoire est une dérivation

60
60

3-Exemple d’une trajectoire :

A-B=L= 1m

B-C=0.5m

C-D=0.5m

Ω=30°

ß=100°

A B Ω D ß C Figure IV.20: Exemple d’une trajectoire du robot
A
B
Ω D
ß
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
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
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
63

ANNEXE

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

ANNEXE 1. Circuit imprimé de la carte d’alimentation : Carte d’alimentation (Cote composante) Carte d’alimentation

Carte d’alimentation (Cote composante)

d’alimentation : Carte d’alimentation (Cote composante) Carte d’alimentation (Cote cuivre) 2. Circuit imprimé de