Vous êtes sur la page 1sur 216

www.facebook.

com/TechnologiePro

http://technologipro.blogspot.com

http://technologipro.blogspot.com/

TABLE DES MATIERES

C""~'''l

Gnralits

Introduction
La tche accomplir
L'environnement

1
3
3
7
17
19
20

Les capleurs
1.1 Gnralits
1.2 Les diffrents types de capteurs
1.3 Le positionnement dt'S capteurs

22

Acquisition ellraitemen! d'une informa tion capteu r

25

2.1
2.2
2.3
2.'
2.5
2.6
2.7

27
28
29
30

Entre microprocesseur ou microcontrlcur directe


Comparateur un seuil
Comparateur deux seuils
Comparateur fentre
Amplific,1lcurs diffrentiels et spcifiques
Conversion analogique/ numrique

32
35

Timer

51

Les actionneurs

55

3.1
3.2
3.3
3.4
35
3.6
3.7
3.8
3.9
3.10

Moteur OC

57
57

Moteur pas--pas

6(]

Servomoteur

64

lectroaimant
Piston lectrique
Led
Afficheur LeD

67
67
69
73

B"""

77

Gnralits el utilisation

79

TImer
3.1 1 Relais

81

[ v1

Rglages el dmarrage

83

4.1
4.2
4.3
4.4

84

Rglages analogiques
Rglages logiques
Rglages mixtes
Dmarr.lge du robot

Alimentation(s)

5.1 Gnralits
5.2 Protection des alimentations
5.3 Rgulateurs standards
5.4 Rgulateurs IOIlrdrop
5.5 Rgulateurs dcoupage: bllck ou step-dmvI/
5.6 Rgulateurs dcoupage: brust ou step-I/p
5.7 Rgulateurs dcoupage: buck-OOost
5.8 Modules OC/OC: alimentations isoles

85
95
%

99
lOI
lOI
103
103
104
105

105

galvaniquement
5.9 Batteries Ni / Cd-Ni / Mh
5.10 Recharge des batteries et circuit de marche/arrt

106
107
108

Mcanique

111

6. 1
6.2
6.3
6.4

112

Exemple de conception d'un chssis simple


Exemple de conception d'un chssis en " U
Exemple de conception d'un chssis rond
Finalisa tion de l'assemblage

Microconlrleurs

7.1 Architecture d'interconnexion directe


7.2 Architecture d'interconnexion matre/ esclave(s)
7.3 Architecture d'interconnexion volue :
rseau en toile
7.4 Architecture d'interconnexion volue:
rseau en anneau
7.5 Architecture d'interconnexion volue:
rseau parallle
7.6 Architecture d'interconnexion volue:
rseau parallle RAM double accs
7.7 PIC16F84 (Microchip)
7.8 PIC16F628 (Microchip)
7.9 PIC16F877 (Microchip)
7.10 AT90S1200 (Atmel)

AT9052313 (Ahn.l)
7.12 AT90S8515 (Ahn,l)
7.13 ATMega8 (Atmel)
7.11

7.14 MC68HCIIAI (Motorola)

(VIl

116
117

118
121
124
124
126
127
129
129
130
131
133
134
135
137
139
141

7.15 MC68HC811E2 (Motorola)


7.16 P8OC32SBPN (Philips)
7.17 SAB8OC537 (Siemens)

144
145
147

Ci rcuits de resel et superviseurs d'alimentation


8.1 Supen'iseur d'alimentation simple
8.2 Superviseur d'alimentation paramtrable
8.3 Superviseur d'alimentation et sauvegarde RAM

"9
150
151
152

Structure des programmes et algorithmes


9.1 Structure gnrale d'un programme

153
154
154
157
158
160

9.2
9.3
9.4

9.5

10

Organisation des routines


Traitement architecture prioritaire
Traitement en temps rel
Traitement multitche simple

Programmation des microcontrlcul'S


10.1 Gnralits

10.2 EPROM ex terne


10.3 EPROM interne
10.4 EEPROM interne
10.5 Flash intcrne

11

Ralisation n 1: robot Cubic


11.1 Gnralits
11.2 tude du dplacement

11.3 Palets

164
166
166
168
169
171
172
172

11.5 lectronigue : circuit principal


1\.6 lectronique; capteurs d'obstacles
11.7 lectrortique: capteurs de palets
11.8 Algorithmes de gestion
11.9 Liste des composants

175
175
176
182
183
184
190

Ralisation nO2: robot Quadripode


12.1 Gnralits
12.2 tude de la dmarche
12.3 Mcanique et motorisation
12.4 lectronique
12.5 Algorithmes de gestion
12.6 Liste des composants

191
192
195
198
202
208
21.

Remerciements et liens internet

215

11.4 Mcanique et motorisation

12

163

[VII)

"

GENERALITES
http://technologipro.blogspot.com/

Introduction

La tche accomplir

L'environn ement

Les capteurs

Acquisition ct traitement
d'une information capteur

Les actionneurs

55

Rglages et dmarrage

83

Alimentation(s)

99

Mcanique

III

Microcontrleurs

121

Circuits de reset et superviseurs

Structure des programmes


et algorithmes

153

Programmation
des microconlrleurs

163

10

d'alimentation

17
25

149

11

Ralisation nO1 :
robot Cubic

12

Ralisation nO2:

robot Quadripode
Remerciements et liens internet

171

191

215

INTRODUCTION
Lors de la conception d'un robot, on se trouve face une multitude
d'interrogations techniques inhrentes il chaque sous-ensemble
mis en uvre (figure 0.1):

la tche accomplir par le robot;


l'environnement dans lequel le robot volue;

les capteurs ct leurs interfaces;


les actionneurs et les organes de dialogue avec l'ulils..lteur ;
le processeur du robot (matriel et algorithme).

ActlOflneurs

Algorithmes
Processeur
Capteurs
EnVironnement

Nous allons donc tudier en dtail chaque partie dans cet ouvrage,
en prOpo5<1nt toujou rs le maximum de solutions possibles, ainsi

que les informations techniques ncessa ires pour les mettre en


uvre.
Cel ouvrage se terminera par J'tude et la ralisation de deux
projets complets de robotique mobile: un robot charg de dplacer
des palets cl un robot Quadripode au tonome.

LA TC HE ACCOM PLIR

t,
,

,l

L'unique but d'un robot est d 'accomplir une tche en fonction de


ses capteurs (perception de l'environnement) el grce des actionneurs (organes de dplacement dans l'environnement et organes
de travail).
D,ms l'exemple de la figure 0.2, la " tche principale du robot est
de trouver une balise inJrarouge sur une aire de jeu. Il fau t quiper
le robot de deux moteurs et d'u n rcepteur infrarouge. L1 balise
est un metteur infrarouge simple ; l'aire de jeu est dlimite par
des rebords.

Figure 0. 1.

Bahse IR

4-. -i>
"t?

""J"

Reeepteur IR

Figure 0.2.
8~lise

infrarouge
retrouver sur
une aire de jeu.

Comment programmer le robot pour raliser cette tche, 5<1chant


qu'il n'est quip d'aucun autre capteur que le rcepteur infra
rouge? On impose, a rbitrairemen t, que le dplacement du robot
est alatoire, gnr par un sous-programme spcifique.

la mise sous tension, le robot va donc se dplacer a latoirement


et s'arrter ds que la balise est dlecte (fi gure 0.3).

Figure O.l
Le robot se dplace
jusq u'.li ce que
la balise soit dtt'Ct~e.

Ce cas ne se produira qu'avec normment de chance. En ralit,


il est peu probable que cela se passe de cette manire. En effet,
il y a beaucoup plus de chances que le robot rencontre un rebord
de l'aire de;eu (figure 0.4).

Le probl.me qui apparat alors tient au fait que le robot n'est pas
programm pour viter un rebord (cela ne fait absolument pas

Figure 0.4.
Le robot rencontre
un rebord.

partie de sa tche). De toute faon, il ne dispose pas des capteurs


ncessaires.
U peut alors se produire trois vnements :
le dplacement alatoire du robot va lui faire quitter son emplacement un moment ou lm autre;
le robot reste bloqu cet endroit, cause de son programme
alatoire ;
le robot rend l'me, car les moteurs forcent" irrmdiable-ment vers le rebord.
La notion de tche secondaire apparat donc naturellement.
Dans cet exemple, la tche secondaire consistera viter les rebords
en modifiant la trajectoire du robot, grce la mise en place de
capteurs adapts (figure 0.5).

,,
~

~
,

,
E

t
j

Rcepteur IR

Figure 0.5.
Le robot
vite le rebord.

;:

Cs1

Les tapes se dcomposent ainsi :

tape 1 : le robot avance alatoirement, il rencontre un rebord.


Sa tche secondaire (viter les rebords) modifie la trajectoire pour
quitter " le rebord;
tape 2, 3, 4 : le robot poursuit sa tche principale (trouver la
balise) cn se dplaant alatoirement.
Bien que tous les lments mis en uvre d ans ccl exemple soient
rduits leu r plus simple expression, on se rend compte qu'une
tche principale seu le ne peut se suffire e lle-mme. Elle est obligatoirement paule par une ou p lusieu rs t.ches seconda ires.

Les tches secondaires seront imposes par l'environnement


(rebords, obstacles) el par certains lments ncessaires pour
accomplir la tche principale.
Par exemple, si la tche prin cipale du robot est de trouver une
balise rfrence par une identit (code unique), parmi un
ensemble de trois balises (figure 0.6), les tches secondaires seront
dfmies de la manire suivante :
tro uver la balise B: tche principale ;
viter les rebords : tche secondaire.

Par dcomposition

tester l'identit d 'une balise: tche p rincipa le ;


chercher une balise: tche secondaire directement lie la tche
p rincip.lle;
vi ter les rebo rds: tche secondaire di rectement lie la premire tche secondaire, indirectement lie la t.che principale.
Balisee

8a ll5e B

-.,fI'

Bal!seA

Figure 0.6,

/~"

t 61

L'ENVIRONNEMENT
L'environnement d'un robot est constitu paf tout ce qui se trouve
dans le milieu o il volue. Certaines donnes seront prsentes
dans tous les cas de figure, d'autres seront plus spcifiques. Ainsi,
un robot terrestre aura un milieu principal constitu d'un sol,
tandis que celui d'un robot sous-marin sera compos d'eau. La
perception de deux milieux si diffrents fera appel des capteurs
diffrents. Et de la mme manire, les tches du robot seront
excutes par des actionneurs diffrents.
Un environnement comprend un" milieu principal - et ventuellement des milieux secondaires - et des informations
essentielles , dont la nature ne dpend pas obligatoirement du
milieu principal et des milieux secondaires. Ainsi, dans le cas d'un
robot mobile voluant dans un laboratoire et ayant pour but
d'viter les murs, l'environnement sera comparable ceci:
milieu principal: le sol (1) ;
milieu secondaire: l'air ambiant, la luminosit, le bruit (2) ;
informations essentielles: les murs, les obstacles ventuels (3).
Il convient d'analyser et de lister tous les lments se rapportant
chaque constituante de l'environnement, afin de dfinir avec
prcision les capteurs et les actiOlUleurs choisir, en ne perdant
pas de vue la tche principale accomplir.
1. Lesol:
~
~
~

nature: solide ou mou, matire lisse ou rugueuse;


planit, bosses, trous, pentes ;
degr d'humidit, temprature;

- poussires;
- vibrations.
2. L'air ambiant:

~
~

air statique ou prsence de vent;


temprature ;

degr d'humidit .

La lumire:
- clairage normal ou obscurit;

1
!

i
.:l,

i
o

- nature de la source lumineuse (ampoule, non, projecteur) .

Le bruit: niveau sonore normal ou bruit important.


3. Les murs:
- nature: lisses ou rugueux, prsence de trous;
- couleur.

Les obstacles ventuels:


- une table, un bureau, un radiateur;
- une personne en moU\emenl.
Lorsque cette liste est tablie, il faut examiner chaque constituante
avec soin, pour conserver celles qui ont une influence directe sur le
robot ou sur l'accomplissement de sa tche et liminer celles qui
n'en ont pas. On peut aussi liminer certaines consti tuantes, si
l'on accepte de modifier initialement l'environnement du robot
(tableau 0.1).
Ainsi, dans l'exemple cit ci-dessus, on modifie l'environnement
pour ter table et cha ises, et on s'assure que les murs ne comportent aucune discontinuit (sauf peut-tre la porte d'entre !).

On aura ainsi simplifi au maximum l'environnemenl et les


infonnations essentielles, afin de commencer l'tude du robot de
manire trs simple. On en dduira les capteurs les mieux adapts
Tableau 0. 1.
Coo stituantes
d,1 'environnement.
Le sol

Constituante
il conserver

.,,,

Solide et

~sse

L'aIr ambiant

la lumire

clairage normal
Ampoule claSSIQue

Les actionneurs

Non
Pro;ecteur
Constituantes limines initialement (risque
de perturbation de certains capteurs infrarouges)
Bruit normal
Bruit important
Aucune influence

""'"
De

couleur blanche

Les capteurs

Humidit
Temprature
Poussires
Vibrations
Aucune influence, si ces paramtres conservent
des proportions tolrables
Air statique
Vent
Temprature
Humidit
Aucune Influence, si ces paramtres conservent
des proportions tolrables

Le bruit

Les murs

Constituante fiminer

Obstacles (table, bureau)


Personne en motNement
Constituantes limines imtialement (pour ne pas
compliquer le systme de dtection d'obstacles)

Tous ces lments peuveot interagir entre eux. Il est conseill d'analyser
leur mode de lonctionnement et les ventuels signaux gnrs qui
pourraient perturber les lments voisins.

18 1

la perception de cet environnement et les actionneurs les plus


appropris pour la tche accomplir.

Mme dans le cas de petits robots mobiles pour l'amateur, t'environnement est relativement complexe. En effet, rares sont les
personnes pouvant disposer d'une " aire de;Cu .. suffisamment

importante pour exprimenter de nouvelles crations. On se


retrouvera souvent avec une moquette qu i s'effiloche dans les
roues dentes des dmultiplicateurs des moteurs, ou avec un
parquet sur lequel les roues n'accrochent pas. Fort de ces checs,
il faud ra ngocier avec son conjoint (ou son propritaire) pour
disposer d'une surface utilisable. Mais ce n'est pas tout. Un robot
tudi et conu pour se dplacer dans un environne ment bien
spcifique ne pourra sans doute pas voluer dans un environnement similaire. On s'apercevra trs vite qu'entre une S.l l1C
manger l'lia boutique d'un amj bouquiniste, le robot trouve des
diffrences majeures et des obstacles incontournables. Quoi de
plus diffrent d 'un fauteuil qu'une pile de livres!

On se trouve alors confront un choix crucial: le robot doit-il tre


conu pour un environnement unique, ou doit-il poU\'oir s'adapter
des environnements similaires? Dans le premier cas, la mthode
d'analyse dcrite prcdemment va simplifier un grand nombre
de choix en limitant les possibilits d e changement de l'environnement; mais dans le deuxime cas, il faudra conserver de nombreuses constituantes des environnements similaires. Cela au ra
sans doute pour effet de compliquer les systmes lectroniques
et mcaniques, mais aussi d 'quiper le robot d 'lments lui permet:tant de s'adapter aux milieux rencontrs, cc qui est un avantage.
Imaginons que l'on place un robot disposant d'un capteur
d'obstacles unique (par exemple, un capteu r infrarouge) dans une
aire de jeu vide (figure 0.7). Sa tche cst d'viter les mu rs.

,
~
l

t
j

il

Figure 0.7.
Le robot doit viter
les murs.

le robot peut avancer et tourner gauche (uniquement) tant qu'il


se trouve face un mur (figure 0.8).

Figure 0.8.
Diplacemenl possible

Of

du robot

Les djffrents stades seront les suivants:


tape 1 : le robot avance et dtecte un mUf. Il tourne gauche
jusqu' ce que le mur disparaisse de son champ de dtection;
tape 2 : le robot poursuit sa trajectoire et rencontre un nouveau
mur. 11 tourne de nouveau gauche;
tapes 3, 4, 5 : la tche se rpte, le robot poursuit sa mission
avec succs.
Certes, au bout de cinq tours, on se lasse de voir le robot voluer
d e cette faon. Aussi pour pimenter la chose, on introduit un
obstacle de nature dtectable.

Premier cas: J'obstacle est plac en position A


On peut suivre la p rogression du robot sur la figure 0.9 :
tapes 1, 2 : le robot avanet dtecte un mur. II tourne jusqu'
cc que le mur dispara isse de son champ de dtection ;
tape 3: le robot avance et dtecte un obstacle. Il tou rne jusq u'
ce gue cet obstacle disparaisse de son champ de dtection;
tape 4 : le robot poursuit son cheminement.

'/
Figure 0.9.
tapes de dplacement
du robot (colS Al.

Deuxime cas: J'obstacle est plac en position 8


la progression du robot est prsente sur la figure 0.10:
tape l, 2: le robot avance el dtecte un mur. llloumc jusqu'
cc que le mur disparaisse de son champ de dtection;
tape 3 : le robot continue de rouler lout droit, mais son capteur
unique ne lui permet pas de dlecter J'obstacle. Il rencontre le
mur, mais ne peut plus tourner.

'/
Figure 0,JO.
tapes de dplacement
du robot (cas Il).

Maintenant, l'ensemble est plus intressant (figure 0.11), sau f s

tes moteurs sc mettent mettre des sons inquitants.


Pour pallier ccl inconvnient, deux solutions apparaissent, que
nous dtaillons ci-aprs.

OJJ

Figure 0.11.
Le robot ne peut
plus tourner.

So lution 1: modifier le comportement

Le robot tourne pendant un temps fixe (not Dt sur la figure 0.12),


ce qui lui permet d'viter le mur ou l'obstacle.

Igure 0.12.
Le robot tourne
pendant un temps fixe.

Ce comportement semblera plus alatoire, mais le robot remplira


tout de mme sa tche. En revanche, dans rtainscas (figure 0.13),
le problme peut se poser de nouveau .
Solution 2: modifier le robot
Uest possible d'ajouter deux dtecteUfS et de les disposer de sorte
largir le champ de dtection du robot. Le robot remplira correctement sa tche et vitera l'obstacle (figure 0.14).
Et malgr une modification de J'environnement (figure 0.15),
il continuera voluer sans encombre.

(12)

Figure 0.13.
Le robot sC' retrouve
nouvuu coinc.

5
3

FigureO.14.
Le robot vite
l'obstacle.

FigureO.15.
Le robot se dplace
sans difficult.

[13 1

Figure 0.16.

On aura ainsi compris l'utilit de concevoir le robot de manire


ce qu'il dispose de suffisamment de capteurs pour percevoir
l'environnement initial et un environnement similaire. Dans tous
les cas, il faut considrer que l'on ne matrise pas l'environnement: il peut tre variable et le robot doit s'adapter aux diffrents cas de figure (figure 0.16).

Influence
de l'environnement
sur le robot.

ENVIRONNEMENT

atelier, maison

Milieu prinCIpal: loi elllrieur


jardin, rue

aira de jeu. labo

terrain d'onal.

Milieu principal : sol courant

Milieu principal'
bassin, mer

'"

Nalu~ , consistance, aspect, couleur


humidilt, temprature. poussires

Nature. COfI,islance, aspect, couleur

Sahnrt, temprature

humid~'.

pressN>n, ~UYefn8nt

vibrations

vibrations

temprature, poussires

Milieu secondaire: air amblant


prsence. at>sence, vent , plft.8lOn atmosphrique

lempr.iIUfe
hurnidl
type de gaz
- Milieu

secondan . lumire

praen, absence
nature de la source
Infrarouge ou ultraviolet
fair augmenter la temprature ambiante 1
modifie les couleurs 7
- Milieu secondaire. bruit 8mbi.. n!

prsence. absence
nlYNu 5000fe
perturbe un capteur de son ?
perturbe une acquisition audio ou une reconnaissance vocale 7

- Milleu secondaire : I.mites


nature, aspect
couleur. hauteur

- Milieu secondaire IIore


nature. taille
assim~able des obstacles ?

Champs lectromagntiques .
perturbatioo des systemes ~troolques ?
perturbation des transmissions HF ?

Obstacles
nature. aspect, !orme
couleur
temprature
moyens de dtection

- Milieu secondaire berges, rebords


nalure, aapact
- M.1ieu secondaire . fond
nature, aspect, couleur

Aprs ces modHications, le robot va fonctionner de manire optimale, mais si l'environnement est statique, la trajectoire du robot
sera rapidement toujours identique, su rtout si son algorithme de
dcision de direction est fixe (dans cet exemple: viter les obstacles
pa r la gauche).

C H" ~, nl

LES CAPTEURS

1.1 Cnralits

19

1.2 les diffrents Iypes de capteurs

20

],3 le positionnement des capteurs

22

Acquisition et traitement
d'une information capteur

25

Les actionneurs

55

Rglages el dmarrage

83

Alimentation(s)

99

Mcanique

111

Microcon!rleurs

121

Circuits de reset et superviseurs


d 'alimentation

149

Structure des programmes


et algorithmes

153

10

Programmation
des microcontrleurs

163

11

Ralisation nO1 :
robot Cubic

171

12

Ralisation nO 2:

robot Quadripode
Remerciements Cl liens internel

191

215

na1

1
1.1 GNRALITS
Les diffrents capteurs embarqus sur un robot vont lui permettre
de percevoir l'environnement (dont les obstacles), de fournir les
informations ncessaires l'accomplissement de sa tche, ct
ventuellement de surveiller ses ressources internes (tension
batterie, temprature, etc). Les capteurs scront donc placs en
fonction des dOMes mesurer ou prendre en compte.
Un capteur va donc fou rnir une information (un signal lectrique)

en relation directe avec la grandeur physique environnante


(figure 1.1). Ce signal lectrique peul tre interprt de plusieurs
manires, c'est une question de point de vue.

GllIndeur physique -~

Capleur

1--

Lumire
Soo

Signal lectrique
T ltIl'IOfl

Signai prIOdique
InfOffl'l8tion numrique

Obo. . .

Figure 1.1.
Pri nci pe du capteu r.

Exemple d'un mi crorupteur utilis en dtecteur de choc


On constate qu'il existe deux manires de faire fonctionner un cap-

teur aussi simple (fig ure 1.2) et d'in terprter les signaux fournis
(fi gure 1.3).
v~

v~

Into (je

lofo de

d_

dO'"""'"

CAblage 1
Infoda
dlection

""""" 1

Figure 1.2.
G blages
d'un microrupleur.

CAblage 2
Inlo (je
dtectIOn

CAbiage 2

Ainsi, on peut contrler la prsence ou l'absence d'obstacle par


un signal utile "0,, ou " 1 ". Le choix du cblage, donc du
mode de fonctionnement, sera fait en fonction de la manire don t

Figure 1.3.
Signaux fournis
par les cblages
de la fi gure 1.2.

on veul grer ces informations: certains prfrent tester des 0"


el d'autres des l ", chacun ses habitudes!

1.2 lES DIFFRENTS TYPES DE CAPTEU RS


Nous allons rcapituler rapidement les diffrents types de capteurs, qui vont tre classs en trois catgories:
les capteurs d'environnement ou d'obstacles simples (composants cou rants, mise en uvre aise);

les capteurs d'environnement ou d'obstacles volus (modules


hybrides, technologies avances);

les capteurs intemes au robot.


Tllbleoilu 1.1.

les capteurs si mples

Informations Il quantifier et composants mis en uvre

Mode{s) de fon ctionnement

Collis ion, choc:

BouIon-pouSSOlr
Microrupteur

Logique

Interrupteur au mercure (ILS)

Temprature

Analog"lue/logiQue11)
Analogique/logique ll )
Numrique

CTNJCTP
Capteur de temprature actif
Capteur de temprature i2C!SPI

Suivi de ligne
metteur infrarouge + rcepteur infrarouge

LogiqueI2)/numrique

Prsence d'obstacle sans contact


$neneur ulbason + rcepteur ultrason
Emetteur infrarouge + rcepteur IIlfrarouge

Analog.queJ\ogquel'!/numriQoe
Logique{2~ numrJQue

Lumire

LDR
Convertisseur lumlreltrquence

AnalogiqueJ1og.qUe<I!
Numnque

Pression
CaptElUf de pression

Analogique/logique 111 /numrique

Bruit, volx
Microphone

Analogiquelloglque 111/numrique

Humidit
Hygromtre

AnalogiqueJlog.quell)/numnque

Position
Potentiomtre (rond ou rectiligne)

Anaiogiqueilogiqueill/numrique

Force, contrainte
Rsistance de contrainte

AnaiogIQue!Iogique111lnumrique

III Obtenu par comparaison de seuil(S). (21 Obtenu par dmodulation de signal.

rio]

1
les capteurs vol us
Informations quantifier et composants mis en uvre

Tableau 1.2
Mode(s) de fonctionnement

PrHerx:e d'obstacle sans contact


Mesure de distance
Module hybnde intrarouge
Module hybride ultrason

logtquelnumnque
loglque/numnque

Vitesse
Gnrateur d'impulsion (sur un arbre moteur ou une roue)

Numrique

Indil'\8ison
Acclromtre

Analoglqu8J1ogique(1!/numrique

Position

Boussole lectromque

Numrique

Prsence d'une personne


Dtecteur pyroleclrique

Logique

Prsence d'obstacle sans contact

RadarUHF

AnaloglQue/IogIquel )
'

Position terrestre
Module GPS

Numrique

Prsence d'obstacle sans contact

Distanmlre laser

Numrique

Vol.

Module de recoonaiSsanc9 vocale

Logique

Camra"," logiciel
Module de reconnaissance de lorme intgr

Numrique

'.....

l'l ()tenu par comparaison de sooil($).

Les capteurs internes


Les capteurs internes suivent .. l'tal de sant >1 du robot. Ainsi,
il n'y a pas de capteurs ddis ou spcifiqu es, mais des points
partkuliers prendre en compte, lant au nivea u des capteurs
ventuels, que de la fonction surveiller :
capteur de choc ;
capteur de vibration ;
temprahtre gnrale ;
, temprature d' un lment critique;
tension (donc charge) de la batterie ;
humidit gnrale;

watchdog microprocesseur / microcontrleur ;

.
1

courant global consomm ;

courant consomm par un sous-ensemble particulier.

Exemple de surveillance de la tension d'une batterie


Imaginons un robot aliment par une batterie plomb/ acide 12V
L'ensemble des circuits lectroniques fonctionne sous + 5 V, gr
un circuit de rgulation adapt (figure 1.4). Pour mesurer des
fins de contrle la tension de la batterie, on fait appel un
convertisseur analogique/numrique 8 bits dont la plage de
mesure est 0 V... +5 V. Le quantum d u convertisseur es119.5 mV.

AgulallOl'l

5V
't

/;

+i-

Rl

JO'"

Vbatt 14

CA N
R2

Figure 1,4.

"'"

/;

J,.

Une batterie de ce type est capable de fournir pleinement charge


une tension suprieure 13,5 V. Une mesure directe est donc
impossible.

Les rsistances RI et R2 divisent cette tension par quatre, afin que


la mesure soi! possible. Au travers d u convertisseur analogique
/ numrique, on mesure cette tension soit en analys.lnt le nombre
correspondant la tension divise par quatre, soit en multipliant
ce nombre par quatre pour retrouver la tension relle de la batterie.
Un petit algorithme permettra de suivre intervalles rguliers la
dcharge (et pourquoi pas la charge) de la batterie.

1.3 LE POSITIONNEMENT DES CAPTEURS


Quels que soient la fonction d' un capteur, sa technologie ou son
mode de fonctionnement, sa mise en place dtermine de faon
rigoureuse le fonctionnement gnral du robot (performances,
accomplissement de la tche).

De plus, il faut veiller ce qu'aucun lmen t n'empche le bon


fonctionnement d'un capteur :

1
perturbations lectromagntiques internes ou externes;

capteurs qui sc perturbent mutuellement (infrarouges notamment) ;

positionnement hasardeux qui rend la mesure impossible.

Exemple pour des cap teurs infrarouges d'obstacles


Dans l'exemple de la figure 1.5, tous les capteurs sont utiles si le
robot volue dans tous les sens possibles (marche avant, arrire,

rotation avec un moteur, rotation avec deux moteurs).


Avanl

o
Gauchoe

__

-+

Droite

j
Ari,.

Si le robot (ou son programme) n'est pas prvu pour reuler, les
capteurs arrire deviennent inutiles, et il ne faut pas les mettre en

uvre.
Tous ces capteurs ne sont ncessaires que si l'environnement
l'impose (figure 1.6): en effet, sur une aire de jeu ou plac au sol,
le robot n'a pas besoi n de .. savoir ,. si le sol est prsent, car il est
forcment l. De la mme manire, si aucun obstacle en hauteur
ne vient empcher le dplacement du robot, le capteur" dessus ,)
n'a pas tre implant.
Lors de la mise en place decaptcurs infrarougcsde dtection d 'obslacles, il fautlenir compte de deux choses :

la distance de dtection maximum;


l'angle de dtection.

Sur la partie gauche de la figure 1.7, les capteurs sont trop loigns, et les angles d e dtection ne permettent pas de couv rir la
zone centrale. Si le robot s'approche d'un obstacle de face, il ne le
dtectera pas.

Figure 1.5.
Capteurs infrarouges
d'obstacles
(vue de dessus).

D. . .~

Figure 1.6.
Capteurs infrarouges
d'obs tacles
(vue de ct).

Figure 1.7.

Capteur
gauche

Obstacle

Capteur
droite

Dista nce et angle


de dtection.

. 0
Captet.ll
gauche

Capteur
dr~e

Robo<

Sur la partie droite, si le robot s'avance vers les deux obstacles, il


dtectera l'obstacle noir avec le capteur de gauche et l'obstacle gris
avec les deux capteurs. Ainsi, le robot sera mme de dtecter un
obstacle et de dfinir (dans une certaine mesure) sa position:
droite, centre, gauche.
Il faut aussi veiller ce qu'un capteur ne se perturbe pas lui-mme,
ou ne perturbe pas le capteur voisin. Sur la fi gure 1.8, l'metteur
et le rcepteur doivent tre spars (par un dflecteur ou une
cloison opaque), pour viter un signal direct de l'metteur vers le
rcepteur. De la mme manire, il faut sparer les capteurs (couples
metteurs/rcepteurs).

Figure 1.B.
... iter
les perturbations
entre capteurs.

Capteur

c ..... ". (

ACQUISITION
ET TRAITEMENT
D'UNE INFORMATION CAPTEUR

2.1 Entre microprocesseur


2.2 Comparateur il un seuil

27
28

2.3 Comparateur il deux seuils

2.

2.4 Comparateur il fentre


2.5 Amplificateurs diffrentiels

J()

ou microcontrleur directe

et spcifiq ues

32

2.6 Conversion analogiq ue


2.7 Tillier

35
51

Les actionneurs

55

Rglages ct dmarrag

83

Alimcnta tio n(s)

99

Mcanique

111

Microcontrleurs

121

Circuits de reset el superviseurs


d'al imenta tion

14'

Inumrique

(251

Structure des programmes


et algorithmes

153

10

Programma tion
des mcrocontrleurs

163

11

RaliStl lion nO1 :


robot Cubic

171

12

Ral isation nO2:

robot Quadripode
Reme rciements et liens internet

191

215

2
L'acquisition de la mesure fournie par un capteur se fera de
plusieurs manires, en fonction du type de capteur, de la nature
du signal et de la faon dont elle va tre exploite :

entre logique d'un microprocesseur ou d'un microcontrleur;


comparateur un seuil;

comparateur deux seuils, trigger;


comparateur fentre ;
amplifica teurs diffrentiels et spcifiqu es;
convertisseur analogique/numrique ;
bus processeur (composant adressable dans le mcmory ImW) ;

bus spcifique : [2(, SPI, UART TIL, UA IH RS232;

limer microcontrleur pour signa ux priodiques ou mesure de


dure.

2.1 ENTRE MICROPROCESSEUR


OU MICROCONTRlEUR DIRECTE
Une entre de ce type n'est en principe utilise que pour la lecture
d'un bit logiqued'amplitudcO Vou +5 V (fi gure 2.1 ). Nanmoins.

on peut s'cn servir comme entre pour un capteur analogique,

-,v

...... _----+_ ....... +.


,.-------_
,,
,, 'v
,,
Entree '

Figure2.1.

Sortie

CAPTEUR

ov

UCipteur

OV

Mlcroc;:ontroleur

Seuil en fonctIOn du m ..... I)WI'IrO!eur

/\

/\

E??s .

Sortie (valeur logique lue)

: t'----1...--'-_-'-O.L--LL
D- ' - --L-...

qui fera office de comparateur un seuil dans une certaine limite


(en respectant une tension minimale de 0 V et une tension maximalede+SV).
On pourra ainsi cbler directement une LDR (figure 2.2) ou une
CTN par exemple, et le rsultat sera interprt comme obscurit
I lumire.
5V

.5V
"

k11
Entre

LOR

Figure 2.2.

OV

Mierocontr6leur

OV

2.2 COMPARATEUR UN SEUIL


L'avantage d u comparateur est de pouvoir rgler le seuil de
dtloction de l"informa tion issue du capteur. La figure 2.3 prsente
diffrentes manires de bra ncher le comparateur.

,- ~

.....

~"-

Figure 2.3.

Exemple de fonctionnement du comparateur positif

On remarque sur la figure 2.4 q u'avec un s ignal d'entre identique pour les trois valeurs de rglage du seuil de dtection, J'information de sortie est modifie. Ufau l donc adapter le seuil en fone-

(281

2
tion de l'information dont on a besoin. Bien entendu, le comparateur peut s'alimenter et fonctionner sous une large gamme de
tensions, aussi bien asymtriques que symtriques. La tension de
sortie (reprsente par 1" et 0 ) aura la valeur de la tension
d'alimentation.
Enlre

,
Figure 2.4.

Vs=!

E * >E-

Vs=O

E * <E -

Narunoins, l'inconvnient de ce type de comparateur est le risque


que sa sortie bascule intempestivement pour une faible variation
du signal d'entre autour du seuil de comparaison.

2.3 COMPARATEUR DEUX SEUILS


Contrairement son prdcesseur, la sortie de ce comparateur va
changer d'tat en fonction de deux rfrences, rgles selon les
besoins de l'utilisateur, mais gnres par la propre sortie du systme. La figure 2.5 prsente un trigger positif et un trigger invers.
R2
Entre 0--

I-r<> Sortie

R'

EntrM ~-{=}-y

R'
R2

Trigger positif

Trigger inve rs

Figure 2.5.

Exemple de fo nctio nnement du

trigger invers

Avec ce type de comparateur, de lgres var iations du signal


d'entre n'influent pas sur la sortie, tandis que les variations significatives seront prises en compte (figu re 2.6).

Entrte

,,-------------

Seuil ..

Seu~

,,--------

t , / v ,,

-------------

Sortie
+Valim

Figure 2.6,

-Vahm

+--'
Vs = 1

E-

Vs = - 1

Vs R2
< RI + R2

E - > VsR2
RI + R2

2.4 COMPA RATEU R FENtrRE


Il peut tre utile dans certains cas de disposer d'une information
plus explicite sur ['tat de la mesure issue du c.lpleur. Jusqu'
prsent, elle tait de type plus haut ou " plus bas " par rapport
un seuil unique. Un comparateur fentre fait appel deux
seuils de tension: un seuil bas el un seuil hau!. La tension d'entre
est compare ces seuils, et les infonnations de sortie sont du
type" plus haut , " plus bas , " dedans ", " dehors .

Exe mple d u TCA9658

le TCA965B est un discriminateur fentre performant. Dot de


deux modes de fonctionnement, il permet de comparer une tension
d'entre des seuils de rfrence. Les infonnations logiques

r3l

2
fournies indiquent l'tat de la tension d'entre par rapport ces
rfrences.
Fonctionn ement en mode d irect
Voc

V6

Vrel
V'lab

fi

~oc

Vi"

'tnhB
"hA
V7
Enlr" superieure au seoH bas
Entree mfrieure au seuil haut
Entre hors de la fen61re
Entre dans la tenAlre

A
Entree

fi

B
C

V'
V9

d,

FigureV.

V6 : seuil haut

V7 : seuil bas

V9: valeur soustraite de l'entre VS


Fonctionnemen t en mode ind ired

Voc

Voc

Vref

V'

Vstab

yoc

yoc

'"M
InhB
V9

Entree

A
B

V6
V7

d,
VS : centre de la fentre
V9: moiti de la ha uteur de la fentre

Seuil haut = VS + V9
Seuil bas = VS - V9

Entree .,frieure au Muil bas


Entree suprieure au leutl haut
Enlr" l'lors oela 'en6tre
Entree dans la feo6tre

Figure 2.8.

2.5 AMPLIFICATEURS DIFFRENTIELS ET SPCIFIQUES


Sans rentrer dans tous les dtails complexes de la conception
d'un amplificateur d'instrumentation trs performant, nous allons
voir succinctement les plus courants, notamment les amplificateurs diffrentiels.

Amplificateur diffrentiel inverseur


R2

R,

E,
E2

R,

Figure 2.9.

Scion la figure 2.9 :


R2

Vs = - - (<2 - El)

RI

Exemple d'application : mesure dans un pont de weatl,stolle

0-------,

~~ CTN refrence
)

~ <?. J

CTN mesUrfI

Figure 2.10.

E2

Amplificateur li isolation galvanique

, - 0

".0

AJlm .

FigureZ.I I.
Ampli6c.lteur
isolation galva nique.

E1

E2

E,

Sortie

IS0124

2
Selon la figure 2.11:
Vs= E2 - E1

En fonction des modles disponibles, l'alimentation isole (convertisseur hybride OC/ OC) peut tre externe ou intgre au mOOulc.
Deux grandes familles de technologies existent :
les amplificateurs transformateurs (avec modulateur el dmo-

dulateur) ;
les amplificateurs capacits commutes (ISCH24, par exemple).

En plus des avantages offerts par J'isolement galvanique, on


retrouve id aussi un amplificateur diffrentiel.
Exemple d'application: mesure de courant

A1im de puISsance

E2

Shunt '
El

loc
Char~

rsistance de faible valeur, forte pUISsance

Scion la figure 2.12 :

Vs = E2 -

El :::; R shun t '

Icc

La tension mesure reprsente l'image du courant.

Amplificateur programmable (FGA, Programmable gaill

amplifier)

<>----1 .
E, <>----1
E2

A'

1..-- A'

[n 1

Figure 2.12.

Selon la figure 2.13 :


Vs=G (E2 - n)

G est le coefficient d 'amplific.1tion programmable grce aU)


broches de slection AO et Al.
Exemple de PGA : PGA204 e l PGA20S

v.

Vin -

,,,------------_._ -,
,,

,
,,
,,
,,,

Y9L. ___ --

Feedback

Contre-ractlOn
programmable

AO
Al

-f.... ---:,

va

Vin ..

,,
,

------ vo:,----------,

L_ _._

R.,
/>

v-

Figure 2.14.

v.

Tableau 2.1.

Gain
PGA204

PGA20S

AO - A1

0-0

10

0- 1

100

1-0

1 000

1- 1

Exemple d 'a pplica tio n : calibrati on a uto matique


e n fo nctio n du niveau du s ig nal
Dans l'exemple de la figure 2.15, le microcontrleur va dtenniner
le meilleur coeffi cient d 'amplifica tion, pour disposer de la pleine
chelle du convertisseur analogique/numrique, en fonction
du niveau d'entre rel. Ainsi, la rsolution de la mesure sera
meiileufC.

[341

2
'2

CAN

El

Mictocontr6levr

A1AO

Figure 2. 15.

2.6 CONVERSION ANALOG IQUE/NUMRIQUE

chantillonnagelblocage
Le principe de l'chantillonnage/ blocage (snmple and hold) est
simple: il faut maintenir le signal analogique il mesurer une
valeur constante pendant la dure totale de la conversion
analogique/numrique.

La figure 2.16 prsente les commandes de conversion et d'chantillonnage.


Figure 2.16.

.........
Eni'"

chantilioneur
bIoqu.eUI

CAN

Sortie numtriq....

Eni' "

Commende d'khntlilonn-ee

11111111

,,

l~

Comman da da conversion

1 Il iliill l l l l l l
1351

Certains convertisseurs analogique/numrique intgrent directement un chantillonneur/bloqueur, et la circuiterie interne


s'occupe du pilotage chronologique de ces sous-ensembles,
D'autres convertisseurs ne disposent pas de cette fonctionnalit,
il fau t donc grer les signaux de pilolage " la main .. par le
microprocesseur ou le microcontrlcur.
Exemple d'chantillonne urlbloqueur : SMP04E

Il

01

12

02
03

13

"

5.,""
Com~nde,deb~e

5"'
5.3

Inc;lpendanles

50'
SMP04E

Figure 2.17.

.. VOIes

smgle-ended

Multiplexage
Cette technique consiste augmenter de manire significative
le nombre d 'entres analogiques d 'un systme, en ne gardant
qu'un seul cQlwerlsseur analogique/ numrique (figure 2.18 et
lab leau 2.2). Le principe quivaut il un rotacteur manuel classique, la diffrence que la commande se fait lectroniquement.

Figure 2.18.

Tableau 2.2.

PO

Pl

PO

Pl

Vole sle<:tioone

El

E2

E3

E'

h i;]

2
On trouvera sur le march des multiplexeurs quatre entres,
huit entres. et mme seize entres: la majorit sont de type mode
commun, mais on trouvera aussi des modles diffrentiels.
Exemple de multiplexeurs : ADC506 et AOG509
E1

0_

Sort.

E2
E,

,.....

E5
E6
E7
EB
E9

E10
Ell
E12
E13

,.

Entres

ElA
E2A
ElA
E4A

0"
O_B

E.

ActIvatIOn

Entrees

E1B
E2B
E,.
E4B

AO
Al

des VOteS

Acllvatiol"l

Sort_

Adrnsage

ADGS09AKN
4 VOMIS dlff6renttelle5

E14

AO
Al

Adressage

E15

A2

des

E16

A'

VOieS

AOG506AKN
16 VOieS single-ended

Convertisseur analogique/numrique
Ce composant, appel couramment CAN, est le pilier d'un
ensemble de mesures numriques. En effet, il transforme lm signal
analogique, inexploitable directement par un microprocesseur
ou un microcontrleur, en un code numrique proportionneL
Une quantit impressionnante de mooles diffrents existe chez
de nombreux constructeurs, tous ayant des caractristiques parti
culires en fonction de leurs performances, de leur mode de pilotage, et de leur interface vers le monde numrique.

Les convertisseurs se classent en deux familles:


les CAN approximations successives (qui intgrent une logique
spcifique, un convertisseur numrique/ analogique rseau
R/ 2R, un comparateur de tension);
les CAN flash (conus partir de comparateurs de tension en
parallle de grande prcision).
CAN approximations successives
Les avantages des CAN fi approximations successives (figure 2.20)
sont leur faible cot et leurs nombreuses interfaces de dialogue.

Leur inconvnient est que la dure de conversion ne descend pas


en dessous de quelques microsecondes.

Figure 2.19.

....

Latch de

CNA

Sort.oes logiques

parallle.

!
Lo
M.

Registre III
apprOximatIOns

'0

logique de
contrle
""'",.

II.1CC:eSSlI/eS

Slart of oonver1
End of convett

Comparateur

Figure 2.20.

CAN fla sh
L'avantage du CAN fla sh (fig ure 2.21) est sa rapidit de conver

sion (quelques nanosecondes) ; son inconvnient esl son cot lev.


Vrel

Encodeur de
poont

,,
,,
,

Sorties logiques

,,
,,
,

,,,
,,

parallles

FiguIl"2.2 1.

Ana fn

Un con\'ertisseur analogique/numrique peut tre reprsent


selon le schma de la fi gure 2.22.

,
AhmentallOfl

j
";-

CAN

Entree analogique

Figure 2.22.

h81

SortIe

nu""nque

Statut

p
ContrOle

ACQUISITION
Chaque liaison reprsente sur cette figure peut tre l'objet de
discussions en fonction de la rfrence choisie :
alimentation: symtrique ou asymtrique ;

q, entre analogique :
une ou plusieurs,
- unipolaire (rfrence commune) ou bipolaire (diffrentieUe),
- plage de mesure infrieure Volim ou rail -Io-rail ;
m, sortie numrique :

- bus parallle 8, 12, 16 bits,

sortie srieUe ;
P, contrle du CAN :
- activation, inhibition, lancement de conversion, slection de

rsolution,
- lignes parallles,
- entre srielle ;
n, statut du CAN:

- conversion en cours,

- mode de fonctionnement.

Particularits des CAN en fonction des rfrences exactes


Certains CAN peuvent convertir des signaux positifs ct ngatifs
avec une alimentation unique de +5 V.

Les enlres analogiques peuvent disposer d'chantillOtmeurs/


bloqucurs intgrs, d'un multiplexeur, voire de plusieurs canaux
spars (autant de convertisseurs que de \'oies).

Les sorties logiques peuvent tre tros tats, avec une entre
logique spcifique d'activation.

Interfaage parall le avec e ntres-sorti es:


cas d'un CAN 8 bits
Le CAN est connect directement au microcontrleur : les lignes
de sortie sur un port complet (configur en entre) et les lignes de
contrle sur un port incomplet (configur en fonction des lignes),
comme sur la figure 2.23. La lecture du rsultat de conversion
s'effectue en trois cyck>s :
1 : impulsion SOC ;

2 : attente EOC ;
3 : lecture data.

soc

POO

EOC

PB1'

OBO

PAO

OB'

PA'

SOC Slart 01 con\l8l1


EDC End 01 convetl

ou lNT

A',
Figure 2.23.
CAN 8 bits :
interfaage paullle
avec entres-sorties.

CAN 8 bits

Meu 8 bits

Interfaage parall le avec entres-sorties:


cas d ' un CAN 12 bits, 12 bits de sortie

Le CAN est colUlect directement au microcontrleur comme sur


la figure 2.24 : les lignes de sortie basses (DI3O DB7) sur un port
complet (configur en entre), les lignes de sortie hautes (DB8
0611) sur un port incomplet (configur en fonction des lignes).
Ceci s'effectuera si possible en respectant une connexion par
quartet afin d 'v iter les shift .. de donne logiciels. Les lignes
de contrles sont relies au reste du port incomplet (configur en
fonction des lignes). La lecture du rsultai de conversion s'effec
lue en quatre cycles :
1 : impu lsion SOC;

2: aUenle EOC ;
3 : lecture data lOlO (pori nO1) ;
4: lecture data higlt (port nO2).

Figure 2.24.
CAN 12 bits,
12 bits de sortie :
interfaage parallle
avec ent ries-sorties.

PBQ

SOC
EOC

PB"

080

PAO

PA'
PB<
DBll
CAN 12 bit,

PB'
MCU 8 b its

SOC Sltm 01 COfWerl


EOC EndolCon~

'ou INT

2
[NT est l'entre d'interruption. On peul utiliser le signal EOC

de deux manires :
une boude logicielle de test sur PBl qui attend le basculemen t
de EOC;
une routine d'interruption active ds le basculement de EOC.

La premire mthode n'est pas critique dans les cas o 1'on peut
~ perdre cc temps d'attente. La seconde mthode est beaucoup

plus efficace, car pendant les quelques microsecondes de la conversion, le microcontrleur peut excuter u ne au tre tche.

Interfaage parallle avec entres-sorties:


cas d'un CAN 12 bits, 8 bits de sortie
Le CAN est connect directement au microconlrleu r : les lignes
de sortie sur un port complet (configur en entre) el les lignes de
contrle sur un por' incomplet (configur en fonction des lignes),
comme sur la figure 2.25. La lecture d u rsultai de conversion

s'effectue en cinq cycles:


1 : impulsion SOC ;
2 : attente EOC ;

3 ; lecture dala low (DBO il DB7) ;


4: basculement de H/ L ;

5: lecture data lligll (DSS DBll ).

soc
HlL

POO
PB1 "
PB2

060

Pi>D

EOC

0'

SOC : 518rl convttrl


EDe End of COIIV8rl
HIl slection de data hlgh 1 data /0111'
"OU INT

An

OB7
CAN 12 bits

PA7
MCU 8 bits

Figure 2.25.
CAN 12 bits,
8 bits de sortie:

interfililge pilrall~le
nec e.ntrcs-sorties.

Interfaage parallle avec bus processeu r :


cas d' un CAN 8 bits, 8 b its de sortie

"..-- ........

Le CAN n'est pas directement connect au microprocesseur ou au ( - >~ ,._~~ 1, "Ii--'.


microcontrleur. En effet, les oprations d'criture (Start ofamrt)
.(
- ...." '\
et de lecture (End of COllvert, lecture data) se font au travers d' un
bile", :.; \ ro:
PLO (PAL, GAL, etc.) et d'un bUffeT" 8 bits Hi-Z (figure 2.26).
~'J. ~

l -.

... 7

BA

BC

BD

PLO
IEN
BA bu, d'adre5RS
BC bu. de eonlJOle
BD bu. de donnee.

SOC

EOC

OSO
A'o

OB7
CAN 12 bi~

10E

DO

00

07

Q7

Burfer Hi"z

Figure 2.26.
CAN 8 bits,
8 bits de sortie:
interfaage parallle
avec bus processeur.

Le PLO est programm simplement: on dfi.nit dans le memory mnp

global plusieurs adresses ddies au CAN, par exemple $AOO)


et $AOOI.
l'adresse $AOOO, on programme le PLO pour activer le signal

scx: lors de l'criture d'une donne. tte mme adresse, on

programme le PLO pour lire le bit EOC (par exemple (0) ou pour
le diriger vers une entre d'intermption.
l'adresseSAOOl, on programme le PLO pour activer le bit /OE

(Olltpllt enable) du bllffer HiZ, ce qui permet en une seule opration


de lire le rsultat de conversion sur le bus. L.llechire du rsultat
de conversion s'effectue en trois cycles :
1 : impulsion

scx: (criture $A{)(x));

2 : attente EOC (lecture $AOOO);

3: lecture data (lecture SAOOOl).


Inlerfaage paralll e avec bus processeur ;
cas d' un CAN 12 bits, 12 bits de sortie

Le CAN n'est pas d irectement connect au microprocesseur ou


au microcontrleur. En effet, les oprations d'criture (Start of
COI/vert) et de lecture (EI/d of com,"f, lecture data low, lectu re data
high) se font au travers d 'un PLO (PAL, GAL, etc.) et de deux
bllffers 8 bits Hi-Z (figure 2.27).
Le PLO est programm simplement: on dfinit dans le memory map
global plusieurs adresses ddies au CAN, par exemple $BOOO,

$8001 et $8002.
l'adresse $8000, on programme le PLO pour activer le signal

SOC lors de l'criture d'une donne. cette mme adresse, on


programme le PLO pour lire le bit EOC (par exemple (0) ou pour
le diriger vers une entre d 'interruption.

2
BA

BC

BD

PLD
IENL IENH
BA bus dadresse.
BC bus de contrOle
BD bus de cIonoees

sec 'OC

DBO
DB7

DO

00

07

07

Buffer Hi-Z

Ao

DBB
DBlI
CAN 12 bit.

"

DO

00

07

07

Buffer Hi-Z

Figure 2.27.

l'adresse$BIXlI, on programme le PLO pour activer le bit / ENL


(E:nable Icnv) du premier buffer Hi-Z, et l'adresse 5BOO2, on
programme le PLD pour activer le bit I ENH (fnable lligll) du
deuxime buffer Hi-Z. Deux oprations de lecture permettront de
lire le rsultat de conversion. Les quatre entres non utilises du
second buffer Hi-Z seront tires la masse. La donne complte
scra de la forme $Oxxx (12 bits utiles). La lecture du rsultat de
conversion s'effectue en quatre cycles:
1 : impwsion SOC (criture $130(0);
2 : attente EOC (lecture $8000) ;

3 : lecture data low (lecture 5BOOl) ;


4: lecture data /lig!! (lecture $60(2).

Interfaage parall le avec bu s processeur :


cas d' un CAN 12 bits, 8 bits de sorti e

Le CAN n'est pas directement connect au microprocesseur ou


au microcontrleur. En effet, les oprations d'criture (Start of
couvert) et de lecture (End of COI/1)(rl, lecture data 10111, lecture data
Irigh) sc font au travers d'un PLD (pAL, GAL, etc.) et d'un buffeT
8 bits Hi-Z (figure 2-28).
Le PLO est programm simplement : on dfinit dans le memary map
global plusieurs adresses ddies au CAN, par exemple $(000,
$COOl et $COO2.

ful

CAN 12 bits,
12 bits de sortie:
interfaage parallle
avec bus processeur.

BA Be BD

PLO
IEN
BA bus d'a(!re5$e'5

Be : bus de contrOle
60 : bus de donn6ft
HlL

SOC

10E

EOC

oBO
AI"

oB7
CAN 12 bi ts

Figure 2.28.
CAN 12 bits,
8 bits de sortie:
interfaage parallle
avec bus processeur.

"

00

00

07

07

Buffe r HI-Z

l'adresse $ClXX), on programme le PLO pour activer le signal


50: lors de l'criture d'une donne. cette mme adresse, Of!
programme le PLO pour lire le bit EOC (par exemple DO) ou pour
le diriger vers une entre d'interruption.
]' adresse $COOL on programme le PLO pour activer les bits H/L
(par exemple 0 pour data 100w) et IOE du buffer HiZ. On rcupre
data /ow par une premire opration de lecture. l'adresse $COOl.

on programme le PLD pour activer les bits H/L (par exemple 1


pour data Irigh) et IDE du buffer Hi-l. On rcupre data /zig/! par
une seconde opration de lecture. La donne complte sera de la
forme SOxxx (12 bits utiles). La lecture du rsultat de conversion
s'effectue en quatre cycles :
1 : impulsion S<X (criture $Cooo);
2: attente EOC (lecture $COOO);
3: Jecture data 1010 (lecture SC(01);
4: lecture data Iziglz (lecture $C002).
Remarque: certains CAN possdent un buffer Hi-Z interne, ainsi
que J'entre /OE correspondante. On vitera donc l'ajout d'un
buffer externe.
Exemple d taill de con nexion de PlD de type GA L20VSB

Le microprocesseur ou microcontrleur dispose d'Wl bus de donnes de B bits, et d'un bus d'adresses de 16 bits. Le bus de contrle
est simplifi: RD (Read), WR (Write) et lNT (ln/ermp/). La polarit
de ces signaux (actifs 0 ou 1) dpendra du modle exact de
composant utilis.
Le circuit 74HC688 est utilis en comparateur d'adresses. Les
entres PO .. . P7 sont relies respectivement AB ... AIS. Les entres
QO ... Q7 sont fixes pour obtenir J'adresse haute du CAN dans le

I44J

2
INT

jlf

RD
WR

00
AO
A1
Al

ln

g.
,
,

A3

A4
A5
AS

A7

SOC

SOC

EOC

EOC
IENL

SOC
EOC
HlL

IEN

IENH

IEN

::m

GAL20V8

A. A15

PO

P7
P

00

Figure 2.29.
Conne;l:ion de PLD

07
T'HeSS8

mtmory tIIap global (par exemple $AO pour les adresses compltes
$AOOJ et SAOOl), comme sur la figure 2.29.

DfillitiOIl des quations du GAL


SOC =output;

EOC =il1pllt ;
IEN =/ ENH = I ENL = ou/put.

Cas de figure
INT. EOC

,,01 : CAN 8 bits, 8 bits de sortie

SOC /VAL & 1A7 & IA6 & 1AS & lAS & 1A3& 1A2& IAl &
I AO&IJ()&WR

I EN . IVAL& I A7 & I A6& l AS & l AS & I A3& I A2& I Al &


I AO& RD
Le signal EOC provoque une interruption de fin de conversion.
Le signal scx: est actif par J'criture de la donne $01 l'adresse
SAOOO.
Lecture du CAN : opration de lecture $AOClO -+ data.

CliS de figure
1I\'T . EOC

,,02 : CAN 12 bits, 12 bits tle sortie

de type CAL20V8B.

soc ~ I VAL& I A7 & I A6& l AS & l AS & I AJ & 1A2 & l AI &
IAO&DO&W R
I ENL~

I VAL& IA7 & IA6 & I AS& I AS& I AJ& 1A2& l AI &
I AO& RD

I ENH ~ I VAL& I A7 & I A6& I AS& I A5& I AJ& I A2& l A I &


AO&RD
Le signal EOC provoque une interruption de fin de conversion.
Le signal SOC est actif paf l'criture de la donne $01 l'adresse
$AOOO.
Lecture du CAN ;

opration de lecture SAOOO --+ data /ow;


opration de lecture $AOOI --+ da/a Iligll.

Cas de figure /13: CAN 12 bits, 8 bits de sortie


INT~

EOC

H / L~

AO

SOC ~ I VAL & I A7 & 1 A6 & lAS & 1 AS & IA3 & 1 A2 & 1 AI &
I AO& WR&DO
I EN

I VAL& I A7 & I A6& l AS & I AS& I A3 & I A2 & l AI &

RD
Le signal EOC provoque une interruption de fin d e conversion.
H/L recopie AD: dala /ow pou r l'adresse $AOOJ; da/a higll pour
l'adresse SAOOI .

Le signal SOC est actif paf J'criture de la donne $01 l'adresse


$AOOO.
Lecture du CAN:

opration de lecture $AOOO --jo data Imu ;


opration de lecture SAOOl --+ dala higl!.

ii

RC\ffi
V'R,qdue : ladPdolaritod
~esl SignauxdSOC, EOC, INT, ~ / L, EN RD ~
cl
pen es m e es exacts cs compos.'1n ts miS en uvre. 's
~

Interfaage srie de type PC


Le bus Fe est un bus sriel trois fils synchrone. Nous n'allons
pas rentrer dans S.1 description complte et dtaill ici, ma is en
voici les grandes lignes:

tl
j

une ligne d'horloge, une ligne de donne el ln masse;

une grande varit de compos.1nls (microcontrleur, entressorties logiq ues, (AN, ( A, drivers LeD ... );

5
0

2
les alimentations des priphriques peuvent tre spares (de
mme valeur et avec la masse commune);

chaque composant possde une adresse de base unique (dfinie


par sa fonction) et trois entres de configuration d'adressage.
Ainsi, on peul placer sur le bus jusqu' huit priphriques
identiques, mais adresss diffremment;
plusieurs matres peuvent tre connects au bus.
Connexion d' un ci rcuit au bus

4,7 kn

5,6 kfl

50A

SCl

GNO

::1

130 (optionnel)

'0/

AO
Al adressage (he)
A2

Composant

l'C

Entrees et/ou sorties


Analogtques eVou logiques
(en fonctIOn des composants)

Figure 2.30.

Topologie du bus quand les composants sont sur une mme


carte lectronique

Figure 2.31.

Vrx; Vcc

50A

SCl

'0/
Alim
5 Wc

'0/
Entres
sorties

Ma itre

J"

'0/

J"

Capteur de
temprature

,J"

1471

'0/
CAN

,J"

Topologie d u bus quand les composants sonl sur des cartes


lectroniques spares

1
Vc:cl Vot!

,,0A ====t=;= ,o.~9~-''''

,o.
,c,

CL

VT'

VT'

SC~

- Set

Enll''''
~

J,.
Voe l VCl:2 Vc:<:3

"

FigUll' 2.32.

Exemple d'un convertisseu r analogique/numrique 12e :


PCF8591
Ce convertisseu r 8 bits dispos de quatre ca naux de conversion
(CH O CH3). La conversion s'effectue su r la plilgC de tension
com prise entre AGNO el Vref. O,1 ns l'exemple de cblage de la
figure 2.33, on a donc une plage de 5 V (0 V + 5 V).
v~

AlnO
A ln1

Entrees
ana logiques

SCL
SOA

Bus l'C

Aln2
A tn3

AD
Al

Adreue du CAN

A2
V~

Sort.

Figure 2.33.
Convertisseur
ilnalogi quel" umrique
PCF8591 .

analogique

V Re f
Aout

AG NO

0"

E.

Les quatre entres analogiques du convertisseur sont progra mmables, pou r rpondre diffrents besoins d'acq uisition :
4 entres sillgle-ended :

- CHO= AlnO,
- CHI =Alnl ,
- CH2 =Alnl,

2
-CH3=Aln3 ;
3 entres diffrentielles:

- CHO = AlnO - Aln3,


- (Hl = AIn 1 - Aln3,

- CH2 = Aln2 - AlnJ;


1 entre diffrentielle et 2 entres 5lgle-ellded:

- CHO = AInO,
- CH I ::Aln l ,
- CHl = AIn2 - Aln3 ;

2 entres diffrentielles :
- CHO=A lnO-Aln!,
- CHI = AJn2-Aln3.

lnlerfaage srie de type SP I


le bus SPI (Seriai peripheral llterface) est lui aussi un bus synchrone,
mais les lignes qui le composent sont au nombre de trois

(fig." 2.34) ,

SCK : Seriai dock;

M05r : Master outpul slave il/pllt ;


M15O: Mas/er input slave DI/tplll.

MISO

MOSI

MOSI

"'50

SCK

SCK

Figure 2.34.
Mlcroco nlr6leur

Priphrique

Cette interface est trs rapide, et elle permet en outre d 'mettre


et de recevo ir en mme temps des donnes (full duplex), g rce
['utilisation de registres dcalage d istincts (figure 2.35).

Du ct du microcontrleur, cette interface peut tre intgre sous


forme de sous-ensemble part entire (au mme titre qu'un timer
ou une UART), ou tre re(r(> par une routine.

Le priphrique peut tre un CAN, un CNA, des entres-sorties,


etc.

In!trlaage srie
de type SPI.

Regiatre III dkalage 8 tm.

~eur~SPI

Pl1IrlphrlqtHt

MCtocontfleUf

Figure 2.35.
Utilisation
de registres
li dcalage distincts.

Exemple d'un CAN SPI: ADS7841

Les caractristiques de ce CAN sont les su ivantes:


4 entres analogiques 0 V ... + 5 V shlgle-ellded ou 2 entres
analogiques diffrentielles ;

rsolu tion 8 bits o u 12 bits ;


frquence de conversion 200 kHz maximum ;
mode power-dorVlI.

Ses fon ctionnalits sont les suivantes:


les broches REF et CDM indiquent les limites de conversion du
CAN (0 V .... $000, +5 V .... $FFF);
les broches CHO CH4 sont les entres analogiques configu
Tables ;
la configuration des entres se fait g rce au logiciel ;
la broche /SHDN (SlmtdolOlI) passe le CAN en mode veille;
la broche MODE force la rsolution 12 bits " 1 ", et autorise
la con figuration 8/12 bits logicielle 0" ;
1<1 broche BUSY indique l'tat du CAN.
L'interfaage complet et l'interfaage simplifi de l'ADS7841 sont
prsents sur la figure 2.36.

lsol

2
.sv
E1

,
,

E2

E3

"

RE'

DCLK
DIN

CHO
CH1
CH'
CH'

CCM

DOUT
B~y

Mol,
ISHON
ICS

."

"

"",
"

POO
PB1
PB'
PB'
PB<
PBS
PB6
PB'
MIc:: roc::ontr6 leur

ADS18.1

ov

Inl. rfaage complet

+_5 V

E1

,
,
,

E2

E3

ov

RE'

DCLK
OIN

CHO
CH1
CH'
CH'

CCM

DOUT

.
"

"

Busy ~

Mol'
ISHON
ICS

,
"

+_5V

POO
P B1
P B'
PB'
PB<
PBS
PB6
P B'

=
=

Mlc:: roco nlrole ur

AOS7B41

Interflage I implifi

Figure 2.36.
Interf.lage
de l' ADS7841 .

2.71lMER

Les timers sont des units complexes (mais pas compliques


utiliser, contrairement ce que l'on peul penser!) de mesure de
temps, de gnration de dlais, de comptage d'vnements, etc.
Les structures lectroniques mises cn uvre d ans des composants
spcifiques (6840 de Motorola, par exemple) ou d ans les micro-

contrleurs en fon l des outils pu issants. Gnralement, ils se


prsenten t comme sur la figure 2.37.

L'lment central qui constitue un limer est le compteur: sa taille


est de 8 ou 16 bits, en fonction des modles.

("sil

ReglRre(l ) de configurl .ion el de contrle

- "- .......
,,- "'"
Figure 2.37.
Structure d'un timer.

r-

'....

S'.IC'1()tI
de IOU'CI!

- .... f-.

PredMMUr

.....'" r" ...

Comptllur

f
Prchargemenl

r-

Les circuits annexes sont chargs de configurer le limer et de le


contrler :
registre(sl de configuration : permet de configurer le timer
(mode de fonctionnement) et les sous-ensembles associs
(source, prdiviseur, interruption);
registre(sl de contrle : permet de lire l'tat des Jlags (dbordement, comparaison) ;

flags : ils sont actifs en fonction de certaines conditions: dbordement, comparaison valide ... Ils sont rinitialiss lors du trai tement de l'interruption correspondante ou par une criture dans
un registre de contrle;
prchargement : ce registre (de la mme taille que le compteur)
sert dfinir une valeur de dpa rt pour le comptage, ou une
valeur de comparaison avec le compteur ;
prdiviseur : il s'agit d'un diviseur en amont du compteur
principal. Le rapport de division est slectionn a u travers de ~
quelques bits de configuration (division par 1, par 8, par 64, par s
1024 par exemple) ;
li
gale : cet lment agit comme un interrupteur qui laisse passer

ou non les signaux d'horloge vers le prdiviseur. Cette fonction ~


est utilise pour des mesures de dure. La commande externe i
est une entre logique (programmable pour cette fonction) qui ~
fait partie de l'ensemble timer;

il
slection de source : l'utilisateur choisit l'lment qui pilotera i
le comptage du limer; l'horloge interne (qui peut tre divise,
elle aussi) ou un signal exteme prsent su r la broche d'en tre
de comptage ;

,l

2
E'nlre externe: c'est une entre logique qui fail partie de
l'ensemble timer. Le bloc .. mode,. sert dfinir quel hont active
le comptage (front descendant ou front montant).

Le compteur peul tre lu il tout instant par le processeur, on


rcupre la valeur instantane du compteur.

Le registre" prchargemcnt "sert l'criture du limer, car on ne


peut accder en criture directement au compteu r.

Une interruption peut tre gnre vers le processeur quand une


condition valide (dpendante du mode de fonctionnemen t du

timer, et sous rserve de J'activa tion du bit correspondant)


apparat.

Dans les explications qui sujvenl, on considre qu' il s'agi t d 'un


limer 8 bits, pour des raisons de lisibilit des nombres. Ces expli-

cations restent nanmoins les mmes pour un timer 16 bits.


Mode comptage

Le limer compte le nombre d'vnements externes qu i se produisent.

Dans ce mode, le compteur est incrment par la sou rce externe.


On configure le front actif de la source et le prdiviseur. La fonction gate n'est pas active.
L'utilisateu r peut lire tout instant le contenu du timer (nombre
d'\rnements qui se sont produits) et le remettre zro par l'intermdiaire du registre d e p rcha rgcment. Quand le compteu r
dborde ($FF -+ $00), un jlag passe 1 (et provoque une interruption, si celle fonction a t validC.oc).
Si l'on veut dtecter un nombre prcis et prdfini d'vnements
extrieurs, il su ffit de p rcharger le limer avec la va leur $FF Nombre. Ainsi, lorsque le compteur dborde, \'utiliS<lteur sera
averti (fIag et/ ou interrup tion) que le nombre d 'vnements
attendu est atteint.

Mode temporisation
Le timer est utilis pour gnrer u n dlai entre le moment o il est
activ ct le moment o il d borde.
Dans ce mode, le compteur est incrment par J'horloge interne.
On configure le prdiviseur et le nombre de dpart (exemple $32).
Ce nombre reprsente le dlai qui va s'couler en fonction de la
frquence de l'horloge interne et du prdiviseur. La fonction gale
n'est pas active.

Quand le compteur dborde (SFF -+ 5(0), un jlag passe 1 ..


(et provoque une interruption, si cette fonction a t \'alide). Cela
indique que la dure programme est coule. Si on ne recharge
pas le limer, le comptage se poursuit pilTtir de $00. Si on veut
reprendre le comptage partir de la valeur initiale, il faut le
recharger la main .
Rechargement automatique
La plupart des timers possdent une fonction de rechargement
automatique. Lorsque le timer dborde en mode temporisation ou
en mode comparaison1,Ie contenu du registre de prchargement
est automatiquement recopi dans le compteu r.

Mode de capture n 1
Le limer est utilis pour mmoriser l'tat du compteur lors de la
dtection d'un vnement extrieur.
Dans ce mode, le compteur est incrment par l'horloge interne.
On configure le prdiviseur et la fonction gale. La commande
externe est configure pour dtecter un front montant ou descendant.
Quand cette condition apparat, le contenu du compteur est
mmoris et unflag passe " 1 (et provoque une Lnterruption,
si cette fonction a t valide).
Mode de capture n 2

Le limer est utilis pour mesurer la d ure d'un vnement extrieur, il s'agit d'une variante du mode de capture nO1.
Dans ce mode, le compteur est incrment par l'horloge interne.
On configure le prdiviseur et la fonction gale. La commande
externe est configure pour dtecter un niveau bas ou un niveau
haut.
Sans activ,1tion externe, le compteur est bloqu, la porte gale ne
laisse pas passer le signal d'horloge. Quand la condition externe
apparat, la porte gale laisse passer le signal d 'horloge, et le compteur est incrment. Quand la condition ex terne disparat, le
contenu du compteur est mmoris et un flag passe 1 ..
(et provoque une interruption, si cette foneli on a t valide).
L Mode comp<lraiSQn ct PWM : s modes sont surtoul utiliss pour fournir un
signal logique su r une broche de sortie du IImfT. Par ron5qucnt, ils seront tudis
dans le chapitre suivant.

[54)

CH""U.

LES ACTIONNEURS

3.1
3.2
3.3
3.'
3.5
3.6
3.7
3.8
3.9

Moteur OC

57
57

Moteur pas--pas

60

Servomoteur

64

lectroai mant

67

Piston lectriqu e
Afficheur LeD

67
69
73

Buzzer

77

Gnral its et utilisation

Led

3.11 Relais

79
81

Rglages et dmarrage

83

Alimentation(s)

99

M canique

111

M icrocontrleurs

121

Circuits de reset et superviseurs


d'alimentation

149

Structure des programmes


el algorithmes

153

Programmation
des microronlrleu rs

163

3.10 limer

10

11

Ralis..1lion n 1 :

12

Ralisation nO2 :
robot Quadripode

191

Remerciements et liens internet

215

robot Cubic

171

------------------f~~~~~----------------

3
3.1 GNRALITS ET UTILISATION
Dans ce chapitre, seront dfinis comme actionneurs les lments
entrant dans les catgories suivantes:

les organes lectromcaniques qui agissent sur l'environnement;


les organes lectromcaniques utiles l'accomplissement de la
tche;
les organes lectroniques d'information vers l'utilisateur.

En rgle gnralc, un actiooneur permet un robot de se dplacer,


de mouvoir Wle ou plusieurs parties de son corps ", et de rendre
compte un utilisateur (ou un systme de suivi) d'tats internes

(temprature, charge batterie) ou d'informations d'accomplissement de tche.

Le choix d'un actionneur se fera en fonction de son utilisation


prvue et des performances requises. En effet, pour le dplacement d'un robot roues, on a la possibilit d'utiliser un moteur OC
rducteur, un servomoteur modifi ou un moteur pas--pas. Le
choix dfinitif sc fera en fonction de la vitesse souhaite, du JX)ids
du robot, et de l'nergie demande. Ensuite, il conviendra d'adapter cet actionneur une interface de commande (pont en H pour
les moteurs OC, circuit spcialis ou transistors pour les moteurs
pas--pas, sortie logique TIL pour les servomoteurs).

Dans la majorit des cas, les actionneurs seront utiliss comme


suit:
entranement de roue pou r le dplacement;
ouverture/fermetuse de pince pour la prhension d'un objet;
orientation d'un capteur (micro directiormel, reprage de balise,
etc.) ;
compte rendu d'information(s) vers l'extrieur.

3.2 MOTEUR OC

1,

Le moteur OC est sans doute le plus connu et le plus courant des


actionneurs. On le retrouve dans une quantit impressionnante

de modles diffrents, qui diffrent tant par le couple, que par


l'encombrement, la tension d'alimentation ou la vitesse de rotation de l'arbre. Mcaniquement, il est ncessaire de tenir compte
de ces paramtres pour une fixation correcte sur le chssis et pour
l'entranement direct ou indirect d'une roue. lectriquement, il
faut bien entendu fournir au moteur OC une tension etun courant
dits nominaux.

1
,~

Commande tout ou rien


Il s'agit de la commande la plus simple: le moteur est aliment
avec sa tension nominale (tout) ou n'est pas aliment (rien).
Lorsque le moteur se trouve aliment, il faut un certain temps
pour qu'il atteigne sa vitesse de rotation maximale (figure 3.1).
De la mme manire, lorsque l'on ouvre le circuit de commande,
le moteur continue de tourner (phnomne de roue libre).
1

::~~:t

Vitesse moteur

v~t(

\ A fl

Figure 3.1.
Commande
tout ou rien.

Commande proportionnelle
Une commande proportionnelle va servir faire varier la vi tesse
de rotation de l'arbre du moteur en agissant sur sa tension d'alimentation.
On s'aperoit assez vite, hlas, que le moteur en charge ne fonctionne plus de manire linaire (figure 3.2). Il faut atteindre lll1 seuil

Figure 3.2.
Commande
proportionnelle.

Alimentation
Umax

Vitesse
Vmax

,,

----------r------------

. ,-----,
"

, l'

Le seuil est
diffrent a vide ou en charge

" ,,

de fonctionnement
___ utile. la vitesse est proportionnelle a la tension
d'alimentation

,,
Moteur en charge

Moteur a vide

[58'

P~ge

de tension (ct donc de couranl) pour qu'il tourne. De la mme

manire, cn phase de rduction de tension, le fait de passer sous


ce seuil va entraner un arrt rapide.

Commande PWM (Pulse w idtlr lIIodulatiold


Ce type de commande un peu particulier est le plus performant :
variation de vitesse sur une large plage, conservation du couple
moteur sur la totalit de cette plage, dmarrage et arrt plus
rapides qu'avec une commande proportionnelle.
Pour gnrer Je signa! de commande, on uti lisera de prfrence
un limer, dont la frquence de dclenchement est fixe (de J'ordre
de plusieurs kilohertz. voire diza ines de kilohertz), mais dont le
rapport cyclique est variable. Les valeurs extrmes 0 % ct 100 %
correspondent respecti vement il l'arrt complet du moteur ct sa
vitesse de rotation maximale. Toutes les valeurs intermdiaires
feront varier celle vitesse proportionnellement de manire linaire
et en conservan t le couple du moteur (figure 3.3).
Figure 3.3.
Commande rWM.
HOf1oge
loterrupteur
leCls oruque

Horloge

j
12.5 %

de PlliSjOOC8 ./_---,

Umo'o.,
Uma.

t
~

Honogo
5

'"

,
~

um~:: t

,,,

Ho rloge

Xl ..

l,
0

"

,8

Umoteur
U~.

[591

3.3 MOTEU R PAS--PAS


Ce type de moteur est trs particulier, tant par son fonctionnement
que par son pi lotage. Ainsi, on peul l'utiliser comme lment de
dplacement (roue, chenille) ou commelrncnt de positionnement
(tte mobile, pince). Son aspect physique est en gnral celui d'un

cube, avec J'arbre dpassant d'une face. Cet arbre tourne librement
sur 360 ~, dans le sens horaire comme dans le sens anli-horaire. La

particularit de ces moteurs rside dans le fait que J'arbre tourne


par pas, le nombre de pas variant en fonction du modle de moteur.
II existe des moteurs de48 pas (7,50 par pas), 100 pas (3,60 par pas),
voire 200 pas (1,80 par pas). Autre caractristique intressante, les
moteurs pas--pas sont capables de fournir un couple important,
ce qui pennet de mouvoir un robot, ou de soulever des objets.
En qui concerne le pilotage, il convient d'amenter des bobines
internes par phases s uccessives. On pou rT,l ainsi faire tourner
l'arbre par pas entier dans chaque sens de rota tion ou par demipas, ce q ui double la rsolution angulaire de positionnement.
Tant que la commande lectrique est active, mais sans changer de
p hase, l'arbre reste dans sa position, et il ne peut tre forc de
manire ex:lrieure. La vitesse de rotation de l'arbre est fonction
de la vitesse de changement de p hase d'alimenta tion des bobines.

Les moteurs pas--pas se trouvent principalement sous les deux


formes prsen tes la fig ure 3.4.

Phl
AJm.

Ph'

Figure 3.4.

Moteurs pas-.li-pas.

8
Ph3 Alm PM

Bobinu ' point mil/eu

Les bobines des moteurs sont point milieu ou spares, et leurs


caractristiques s'en trouvent modifies. Les modes de pilotage de
ces moteurs sont donc diffrents. On pourra toutefois cbler les
bobines spares du second modle de la mme manire que le
prem ier modle, mais au d triment des performances.

Les circuits de p uiSS<lnce mettre en uvre pour ces deux types


de moteurs sont donns sur la figure 3.5.

On rema rque tout de suite que la pcrfonnan des moteurs


bobines spa res se paie pa r des circuits de puissance p lus \'olu-

[601

3
V~t

f/
CB!
CB'

CPh1

CPh2

"
t-

,.,

-{=]-~':":'_____':":'~J
/CB!
fCB2

Bobine$. po/nI milieu

Bobifl.. d~rIu

1 circuit fdenl/qllfl pour c hllque bobine

1 circuit Identique pour chaque bobine

mineux. Dans nos exemples, nous nous limiterons donc J'emploi


de moteurs pas--pas bobines point milieu, pour simplifier
les schmas et les explications.

Figure 35.

Circuits
d~

puissance

des moteurs

pas-pn.

Pilotage par pas entier

Le pilotage standard du moteur fait tourner l'arbre par pas entier.


Le nombre de pas esl donn par le constructeu r (par exemple;
48 pas, 7,50 par pas).
Pour faire un tour complet, il faudra faire 48 pas, chaque pas tant
dfini par une squence dcompose en quatre tapes (figure 3.6).
!

CPh1

"""~t-

alimente

;
1

L_ _--.JL__-'-__---1___-'-__

CPh2

t,

CPh3

,t
,

--11t-~

CPh04

Egure16.

Les tapes 1, 2, 3 et 4 sont les tapes de base. L'tape 5 correspond


en fait l'tape 1 : le cycle est rpt pour faire tourner le moteur
en continu.

Les conunandes de phase CPh 1 et CPh2 (ainsi que CPh3 et CPh4)


sont en opposition de phase (figure 3.7). Les corrunandes de phase
CPhI et CPh4 (ainsi que CPh2 et CPh3) sont en quadrature de

phase.
1

CPh1

Boooo
alimente

CPh2

,"

CPh3

,
"

,1

\,

CPM

L----+----+---~r---~----+_,.

Figure 3.7,

Pour inverser le sens de rotation du moteur, il faut modifier le


moment o les conunandes changent d'tal, en conservant toute-

fois leur chronologie.

Pilotage par demipas


Grce une aulre faon de piloter le moteur, le mode demi-pas,
on peut doubler sa rsolution. Ainsi, un moteur 48 pas (7,5 0 par
pas) devient un moteur 96 pas (3,75 0 par pas).

Sur la fi gure 3.8, les tapes 1 8 sont les tapes de base. L'tape 9
correspond ici aussi l'tape 1 : le cycle est rpt pour faire tourner le moteur en continu.

De la mme manire que lors d'un fonctionnement en mode pas


entier, l'inversion du sens de rotation se fait par la modification
temporelle des changements d'tat (fi gure 3.9).

3
f

CPhl

cm

,,
,

,,
,,
,

,,
,

,
,,,
,

,,

,,
,

,,,

,,

,
,,
,,,

,,
,

CPh 3

CPIl4

Figure 3.8.
2

CPh l

,,,
,

;
i

,,
,,,
,

,,
,,
,,
,,
,

,,,
,,,
,,
,

,,,
,,
,,
,

,,
,,
,,

,,
,,

CPh4

!
i

t
l,

Driver pour moteur pas--pas


Le circuit spcialis ULN2003 est un driver de puissance col lec
teur ouvert. Conune sur la figure 3.10, la broche E est connecte
la ligne d'alimentation du moteur (qui peut tre diffrente de
lle d u microcontrleur) el des diodes de protection en interne.
Ll ligne COM esl connecte la masse (rfrence commune).

Figure 3.9.

V"""
-5V

Ph.

Pta

Ph3

Ph<

"

O,

"

02

."

03

'"

COM

UlN2003

Figure 3.10.
Driver pou.r moteur
pas--pil'l.

Les sorties collecteur ouvert " recopient les tats p rsents sur
les entres. l 'avantage de cette solu tion est d 'tre d ' une extrme
simplicit (mise en uvre, cblage, encombrement), mais la puisSo:1.nce est tout de mme limite (Iou tmax '" 500 mA, Vm.JX::< 30 V).

Nanmoins, cela est suffisant pour bon nombre de moteurs.

3.4 SERVOMOTEUR
Servomoteur standard
Les scrvomoteurs (6g ure 3.]1), loul comme les moteurs pas--pas,
ont un mode de fonctionnemen t particulier. Ils permettent aussi
un asservissement de position, mais uniquement sur une plage
de 180" pour les moclles courants. Leur taille est sensiblement
suprieure cclle d'un petit paquet d'allumettes, pour un couple
impressionnant: 30 Ncm pour le modle 5148.

COMMANDE
(impulSIOn)

I:igurelll.
Servomoteur stand.ud.

Moteur
Dmultiplicateur

ARBRE
(positionl

PoIe'ntlometre

Le pilotage d'un servomoteur ne requiert qu'un signal logique


et une alimentation de +5 Vdc. Sa consommation est de quelques
centaines de milliampres, variable en fonct ion de l'tat du
moteur: arrt sans signal de commande, arrt sur une position
avec signal de commande ou en mouvement avec une charge.

[641

3
De trs nombreux modles sont disponibles sur le march; les
diffrences majeures se situent essentiellement au niveau de la
vitesse de rotation, du couple maximum et de J'encombrement.
Bien entendu, ces caractristiques influent sur le prix, mais on
trouve aisment des servomoteurs standards (HS300, 5148) pour

moins de 14 .

En ce qui concerne le signal de pilotage, il est toul aussi particulier


que le moteur! J] s'agit d'un signaJ de frquence fixe (F = 50 Hz,
soil T= 20 ms), mais dont la largeur de l'impulsion positive dtermine l'angle de positionnement de J'arbre.
La position neutre (0) est obtenue pour une dure de 1.5 ms
(fig ure 3.12). Les deux valeurs extrmes sont 1 ms (_90C ) el 2 ms
(+90"). Ces indications dpendent de la rfrence exacte du moteur
choisi.
Comma","
1 = 2 ms

1"1 ,5ms

...

n
D
D
D
D
D
D
"
"
.

OT-20ms

- 9,.

1
1

~
!

TI

fi

DT. 20 ms

1/

t '\

1"- ./

OT-20ms

..

"

Toutes les valeurs intermdiaires entre 1 ms et 2 ms sont acceptes, ce qui permet un positionnement prcis de J'arbre du servomoteur.
Un autre point important savoir est qu'il est inutile de grer le
sens de rotation, puisque l'lectronique intgre du servomoteur
le fait de manire automatique. Ainsi, des squences de positionnement complexes sont ralises par la seule modification de la
largeur de J'impulsion de commande. Dans ce contexte, il faut
tenir compte de la vitesse de rotation de l'arbre, afm qu'il atteigne
sa position prvue, avant de rnodiiier le signal de commande pour
la position suivante. Il faut aussi noter que J'arbre garde une posi-

Figure 3.12.

tion tant que le signal de commande cst prsent. Si celui-ci dlspa


rat, J'arbre tourne librement, ce qui peut tre gnant dans certains
cas.

Servomoteur modifi
Un servomoteur standard fonctionne sur une plage mcanique
fixe de 180. Si on dsire J'utiliser comme moyen de propulsion
pour un robot mobile, il convient de le modifier mcaniquement
et lectroniquement (figure 3.13), afin de le .. librer .. sur 360, et
sans bute (fig ure 3.14). L'inconvnient est qu'il n'est plus du toul
possible de faire de ['asservissement de position - mais ce n'est
plus alors le bul recherch.

COMMANDE

[impulslOnl

C><

Moteur

ARBRE
[arT6!. marche avant. marche arrirel

DmU~lpliClteur

Figure 113.
Servomoteur modifi

Rfrence fiKe

Com mande

10" ~ n n

DT " 20

Figure 1
. 14.

lTIfI

Rotation hOrillr.

"

TI

nnn
.. ..

DTz20ms

Rotation antihoralre

Il fa ut supprimer les bules mcaniques et la pisle au carbone du


potentiomtre, el remplacer cette dernire par un couple de rsis
tances de mme valeur, pour fournir une tension de rfrence fixe
l'lectronique de commande.

3
3.5 LECTROAIMANT
On peut raliser un actionneur simple de type tout-ou-rien grce
un lectroaimant, par exemple pour raliser une pince destine
prendre un objet. Cet lment est ronstitu d'une tige mtalJque

mobile, d'un ressort de rappel (position initiale) et d'une bobine


d'activation. On trouvera principalement deux modles: ceux qui
font sortir la tige lors de l'excitation de la bobine (exemple 1 de la
figure 3.15) et ceux qui la font rentrer (exemple 2).
Electroaimant au repos

Tige mta//tqUfl

lectroaimant actld

COfpS

Fils d'aimanta/IOn

Bobif16

lectroaimant au repos

lectroaimant aCllv'

Exemple 2

D,lns le cas d'une pince, J'activation de la bobine provoquera la


fe rmeture de cette dernire, donc la 5<lisie de l'objet. Nanmoins,
cette technique nc permet pas d'adapter la force de serrage de la
pince, puisque la tige mtallique de l'lectroaimant est soit rentre,
soit sortie, avec une force maximum lors de l'excitation de la
bobine. Il conviendra donc d'utiliser a\'E.'C soin cet actiormeur
(surtout sur u ne p ince), en fonction de l'objet manipuler.

1,

t,

3.6 PISTON LECTRIQUE


Avant de dtailler un piston lectrique, nous allons prsenter rapidementles alliages mmoire de forme. Ces lments particuliers
sont disponibles depuis quelques annes pour des produits grand
public. Il s'agit d'un alliage mtallique spcifique, dont la proprit
essentielle est d'tre mallable, tout en gardant la capacit de
retrouver sa forme initiale lorsqu'il est soumis une lvation de
temprature. On peut trouver des chantillons sous la forme d 'un
fil mtallique dans un tat initial (schma 1 de la figure 3.16). Si
on tord le fil (2) pour lui d onner une forme particulire, il reste

Figure 3.15.
t leclroaimanls.

dans ceUe position (sauf si on le tord nouveau), jusqu' ce que


l'on lve sa temprature (3). Si cela se produit, le fil recouvre sa

forme initiale, et on peut rpter l'opration.

jl' Fonne Inlll.1e

(2) Modlfle'lIon

(3)

.,,,,,,tion d. Llo
Mmpe,,..ture

(") Retour t Llo forme inttlllie


.p," quelqU" MC:ondH

Figure 116.
Princi pe des alliages
il mmoire de forme.

Eau i 100 OC

Dans le cas d'un piston lectrique, on utilise cette proprit pour


dplacer Wle tige mtallique, de manire semblable un lectro-aimant (figure 3.17).

Piston au repos

Fil AMF

Piston activ

CO,",

TIQ6 mtall"lue

Figure 3.17.
Piston lectrique.

La tige du piston, ['tat de repos, est compltement sortie grce


un ressort externe (non reprsent). Le fait de faire circuler un
courant au travers du fil AMF porte celui-d une temprature
leve qui modifie sa forme (contraction), et par consquent, qui
fait rentrer la tige mtallique dans le corps du piston. Lorsque le
courant d'excitation disparat, la temprature du fil AMF diminue
et il reprend sa forme de repos: la tige mtallique est sortie du
corps.
Ce type de piston a nanmoins quelques inconvnients: la dure
de sortie el de rentre de la tige est relativement longue (plusieurs
secondes) et le fil AMF est trs gourmand en nergie. Il lui faut
une tension de 1 V et un courant de 5 A pour fonctionner.
Malgr cela, il peut tre trs utile en fonction de l'application
souhaite.

[681

3
3.7L W
La Led est l'lmenl le plus simple pour fournir une jnJormation
l'utilisateu r. Cette information est binaire (Oll/Off), ce qui est suffisant dans bien des cas, notamment lors des phases de lest qui
consistent par exemple :
vrifier une partie d'un programme (si on
fi sort,. d'une boude par exemple);

fi

entre et si on

vrifier si J'tat d'un capteur a bien t pris en compte ;

suivre une squence de programme si plusieurs Led sont utilises.


Led stand ard s
On trouvera donc une multitude de Led adaptes ces besoins:
rondes, triangulaires, carres, rouges, vertes, bleues, etc.
Les Led cou r.lntes ont un courant direct (If) compris entre 10 mA
et 20 mA; elles se commandent gnralement partir d'un transistor NPN. Le calcul des valeurs des rsistances associes est trs
simple.

R
IF

'i
lB

RB

VC

VB~

VCE..t

Figure3.18.

1!

Selon la fig ure 3.1 8 :

R = Vcc - Vf - Vcesat
If
Rb = Vc - Vbe
lb

avec lb -

Icsa!~

J3 min

. '!.,..,vr',,:----'1:

,'/-';
\
= If dans ce cas.
j, ~."."" )~ 1
VCl:'S<lt et Vbt sont donns par te constructeur.
.,
-------------I!21-------~~,. , J 1

~lcsat

69

"",. .::,';;;'_.-:---

Si on utilise dcs Led standards (10 mA < if < 20 mA), il faut introduire entre les sorties des circuits logiques et les Led des drivers
transistors ou des bllffers en circuits intgrs. Cela augmente la
complexit du circui t et/ou le co t global.
Une excellente altemative consiste faire appel des Led 2 mA.
Leur faible if pennet au concepteur de les relier directement (mais
toujours au travers d 'une rsistance srie) une sortie de circuit
logique (porte logique, microcontrleur).
Un second av,lntage est de faire diminuer de (,1(on importante la
consommation lectrique de cette partie du montage, ce qui est
primo rdial pour [es applications embarques et la robotique.

Le surcot d'une Led 2 mA n'est pas excessif, peine 5 cents de


plus qu'une Led standa rd, mais le gain se situe au ni veau de la
consommation et de la si mplicit du montage mis en uvre.

De plus, on peut cbler les Led de deux manires diffrentes sur


un microcontrleur: tirage GND ou tirage Vcc (fi gure 3.19).
Vrx.

Vrx.

Mlcrocontr61eur

Microcontroleur

Figure 3.19.
En fon ction du rnicrocontrleur utilis, une entre-sortie (configure en sortie) peut fournir ou drainer un courant de 20 mA,
mais avec la limitation de ne pas pouvoir dpasser 45 mA pour
l'ensemble desenlres-sorties d u mme port. On ne pourra donc
pas utiliser plusieurs Led standards (10 mA < if < 20 mA) simultanment. En revanche, les modles faib le consommation (if = 2 mA)
ne poseront pas de problme, mme pour huit Led allumes en
mme temps.

R _ Vec - Vi
If

3
Led particulires

On trouve aussi sur le march quelques Led diffrentes de Ues


dcri tes ci-dessus, mais pour lesquelles on peut toujours trouver
une application intressante:
Led bicolores commandes spares ;
Led bicolores ttc-bt.'che (rouge dans un sens, verte dans l'autre) ;
Led clignotantes (3 Hz);

Led multicolores.

Bargraph

Les bargraphs sont des colonnes (ou des ranges) de Led montes
ensemble (figure 3.20). Ici aussi, on dispose de plusieurs modles:
range de dix Led ;
colonne de deux Led de mme couleu r ;

colonne de d eux Led de couleurs diffren tes;

colonne de quatre Led de mme couleur, ctc. ;


colonnes multicolores.

Bargraph horizonlal
(vue de ""us)

i,

Bargraph vertIcal
(vue d. face)

Un bargraph horizontal est pratique pour visualiser un octet entier


(avec d eux Led de rserve) ou plusieurs informations diffrentes
su r un mme composant. On ralise ainsi une lgre conomie
de place sur un circuit imprim. On peut aussi s'en servir comme
" ja uge >l, soit comme indicateur d e n iveau (compris entre 1 et 10,
ou 10 % et 100 % par exemple).

Matrice de Led
Une matrice de Led est un bargraph li d eux dimensions: les Led
sont montes en ranges et en colonnes. Comme toujours, on trouvera de nombreux modles d iffrents, mais le principe de base res te
le mme.

Figure 3.20.

Bargraphs.

Chaque Led est cble entre une colonne et une range. Dans
l'exemple de la figure 3.21, les colonnes sont connectes a ux
anodes, et les ranges aux ca thodes.

La technique de pilotage prconise est le multiplexage: on


oc adresse .. une colonne (mise oc 1 ,. de la ligne), puis on oc crit ,.
les ranges (mise 0,. des lignes). Les Led seront allumes ou
teintes en consquence. Ensuite, on adresse ta deuxime
colonne, on oc crit Ies ranges, et ainsi de suite. Pour afficher une
oc image ", on va balayer ta matrice en continu, une frquence
assez leve pour que l'il humain ne voie pas le clignotement
re] (phnomne de persistance rtinienne).

Figure 3.21.

ConnulQfl des Led


dan. 1. matric_

Matrice de Led.

Matrice de Led
(Vu. de dessus)

Afficheurs 7 segments et afficheurs alphanumriques


Un affi cheur 7 segmen ts (figure 3.22) devient plus utile gue les
composants prcdents ds lors que l'on souhaite exprimer une
valeur claire et lisible (sans tre oblig de fa ire des conversions
de puissances de 2 de tte). On obtiendra ainsi les chiffres 0 9,
les lettres A F (pou r l'hexaddmt1l). ainsi que quelques au trcs
lettres el quelques symboles.

Commun

Commun

abcdelgdp

Anoth commune

abcdelgdp

C.thocH commun.

11
1-1.
Afficheur 7 segm.nts
(vue de dessus)

Figure 3.22.
Afficheur
1 segments.

Le cblage de cet afficheur ressemble une matrice simplifie;


il n'y a qu'une seule colonne. Le principe de pilotage est le mme.

[721

3
Si on utilise plusieurs afficheurs 7 segments, on retrouvera donc un
schma global quivalent une matrice de Led, et de nouveau on
fera appel la technique du multiplexage pour piloter J'ensemble
des afficheurs.

5<woir, il existe aussi des afficheurs alphanumriques


(fi gure 3.23), qui eux couvrenll'ensemble de l'alphabet (en plus

des chiffres el symboles).

Figure 121
Afficheur

Afficheur alphenumMique
(Vue d. dessus)

alphanumrique.

3.8 AFFICH EUR LeD

L'afficheur LeD est de loin le plus souple et le plus performant


des afficheurs. En effet, des modles 1 x 16 (1 ligne de 16 caractres) aux modles 4 x 40, ces afficheurs son t capables de grer
j'alphabet entier (minuscules el majuscules), les caractres accen-

tus, les chiffrcs, certaines lettres trangres el de nombreux symboles.


En contrepartie d'une telle panoplie de fonctions, le pilotage d'un
afficheur LCD est lgrement plus compliqu, tandis que l' interface matrielle est quasi-inexistante.
L'cran LeD est directement pilot par un contrleur spcialis
(figure 3.24) qui a plusieurs fonctions: pilotage de la matrice de

Figure 3.24.
Affi cheur LCD.

,, _
{
t

1nter1_

, ,...
ll

1---1 Controi&uf

~,

Ecran Leo

..... 1vL-___-'
AfficheurLCO
de dusu-,l

SIrv<:tunr inr.m

~u.

1'731

pixel de chaque caractre, pilotage de la matrice de caractre,


mmoire " de caractres pr-programms, 0( mmoire" de caractres dfinis par l'utilisateur.
Ce contrleur n'est pas accessible directement par l'utilisateur,
il doit passer par une interface simplifie pour passer des commandes J'afficheur LCD.

On trouve:
des commandes d'initialisation;
des commandes de configuration (curseur, dcalage, etc.);
des commandes d'affichage de texte (ca ractre par caractre);
une lecture de sta tut .
Chaque afficheur LCD a des caractristiques physiques propres :
dimensions;
fixations;
emplacement du connecteur de liaison (brochage prsent
dans le tableau 3.1) ;
brochage de ce connecteur.
Tablea u 3.1.
Brochage du
connecteur de liaison.

Toutefois, le protocole de dialogue est identique pour la plupa rt


des afficheurs LCD (ceux en tout cas qui disposent du contrleur
courant H(44480).

Description

Oslgnation
V

A1imeotalion + 5 Vele

GND

Masse

Vo

Rglage de contraste

DO .. 07

Bus de donnes 8 bits

RS

Reglster select. cI10ix des registres (commandes, configuration)

FWI

Readlwrite (lecture ou criture de l'interface)

Enable (validallon de la commande passe ou lue)

A el K (en fonction des modles)

Anode el cathode des led de rtnrclairage de l'cran

L'afficheu r LeD peut se piloter suivan t deux modes: interface


complte 8 bits (un octet est transfr en un seul cycle) ou demiinterface 4 bits (un octet est transfr en deux cycles), voir
figure 3.25, En mode 8 bits, on gagne en rapidit d'excution,

3
PB7
PB6
PB'
PB<
PB3
PB'
PB'
PBO
PA>
PAl
PAO

07

V~

DG

ONO

PB7
PB6
PB'
PB<

05

Vo

'"03

07
06
05

D'

GNO

Vo

'"
03
02

02

V~

00
PB3
PB'
PB'
PBO

RS

RIW

In tltffiJ.ge Il bIt.

rm

A
K

D'

00
RS

RIW
E

In'ltffiJage" b/~

Figure 3.25.

mais il faut utiliser deux ports de microcontrleur (un port entier


et une p.ulie du second port). En mode 4 bits, on perd un peu de
temps lors des deux cycles de transfert, mais on ne se sert q ue de
7 bits d 'un port (il reste une ligne disponible).

Interfolages
8 bits et 4 bits.

Chaque mthode il donc ses avantages et inconvnients, mais


nous allons id tudier le mode 4 bits, q ui est tout de mme plus
pratique (en rason du nombre d 'entres-sorties disponibles sur
les microconlrleurs).
Commandes

les commandes sont dfinies par la ligne RS qui vaut 0 . La ligne


R/W est 0 : opration d'criture (figure 3.26).

o.t.

~
;

,!
~

+><

Quarte!

",,'

...

RS-O-Rm"o

Quarlet

1 Placer DaiaH sur le port

1 Il

P""",

II

Pulse E

,!

,i

,~

Plate!" Oatal W! le port

La lempofisation est ncessaire si on ne teste pas


le bit .. busy de fafficheur

Tampo 10 ms

Figure 3.26.

Affichage d'un caractre

I
o.~

tx

"""""
""~

les commandes sont dfinies par la l.igne RS qui vaut .. 1 ... la ligne
R/ W est ,, 0 : opration d 'criture (figure 3.27).

...

RS .. l RMo: O

Quartel

1 11

Placer OataH

IkJf

le pott

Pulse E

Placer OataL aur le port

Pulse E

Figure 3.27,

La lernpori$alion est ncessaire SI on ne teste paiS


le bit . bosy,. de rafficheur

Tempo 50 ilS

Squence d'initialisation
La squence d'initialis.ltion est envoye l' afficheur lors de la mise
sous tension. Elle sert dtennincr le mod e de fonct ionnement
de J'afficheur (interface 8 bits ou 4 bits) el sa configuration (dcaJages, curseur, etc.), voir figure 3.28.

InlerfllQl! 4 bits

2 lignes. poIt 5 10 pixels

Figure 3.28.

$33, 522

'2B

Display on, curseur off, c1igr.olemenl off

.OC

Inruallsabon de la posJbon du curseur

'06

Affichage d' une chane


L'affichage d'une chane se fait en ralit pa r un affichage caractre
par caractre. On se sert d'un pointeur (i nilialis sur le premier
caractre de la chane), qui est incrment chaque affichage. On
effectue ensuite un tcst pour savoir si le pointeur est arriv en
bout de chane (voir algorithme de la figure 3.29).

On peut se servir du caractre ASCII $04 (elld oftext) pour terminer


la chane, puisqu'il s'agit d'un caractre de contrle non-imprimable.

3
Init. du pointeur
sur la chaine

Affichage

du caractjore

IncrmentatlOll
du pointeur

YFin de

chane?

)'0

Figure 3.29.
Algorithme
de l'affichage
d'u.ne chane.

Fin

Com mandes dta ill es


Voir tableau 3.2, page suiva nte.

3.9 BUZZER
Les buzzers pizolectriques sont peu encombrants el trs pratiques pour fournir des informations sonores: on peul jouer sur
le ton et l'amplitude du signal. Pour les faire fonctionner, il faut
leur fournir un signal compris entre quelques kilohertz et 20 kilohertz (les sons graves ne sont pas correctement rendus).

On s'en sert donc pour donner une information sonore, que l'on
nomme trs souvent bip". Ces bips vont renseigner l'utilisateur
sur la dtection d'obstacle, sur la mise en route ou l'arrt d'un
moteur, ou sur la fin d'excution d'une tche par exemple.

t,
!,
,

Sur la figu re 3.30, le courant 1 qui traverse la bobine B et le transistor est fonction de ln rsistance du buzzer (donne par le constructeur).

Rb _ Vc - Vbe
lb

avec lb =

lesat"
13 min

"/csat = 1 dans ce cas.


Vcesat et Vbe sont donns par le constructeur.
Pour de petites puissances sonores, on peut cbler le buzzer directement sur une sortie de microcontrleur ( condition que ce

[77i

[781

3
Buuer

vc

_~I~B_-{R=B~_;-t

"'~

VCE,,'

Figure 3,30.

dernier puisse fournir ou drainer assez de courant, comme dans

le cas d'une Led).


Pour des raisons d'conomie d 'nergie, il est conseill de laisser
la sortie au mme potentiel que l'alimentation du buzzer, ainsi
aucun courant ne le traverse lorsqu'il est muet (figure 3.31).

BUUef

BUUef

Mi croconlroleur

Mic rocontr6 1eur

;
i

1 00 00 00
Alrdl

Marche

1
Arr'

100001
Marche

1, 3.101lMER
j

,,
!

l.

Mode comparaison
Le limer est utilis pour gnrer des signaux priodiques ou
apriodiques (dlai prcis par exemple) sur une broche de sortie

l,

(fi gure 3.32).

Dans ce mode, le compteur est incrment par l'horloge interne.


On configure le prdiviseur et le nombre de dpart (par exemple
532). Ce nombre reprsente le dlai qui va s'couler en fonction

Arr'

Figure 3.31.

lnnnnnnnnooononnnon .

Mlcrocontr6leur

Figure 3.32.

de la frquence de l'horloge interne et du prdiviseu r. On paramtre aussi quelle sortie va tre active par ce mode de fonctionnement, et de quelle manire elle va ragir (mise ,,0 , mise
" 1 , inversion de polarit). La fonction gale et les entres sont
inhibes.
Le contenu du limer est compM en permanence avec le registre

,
1

d e p rchargemcnt. Lorsque les deux deviennent identiques, la

broche de sortie affecte est place dans l'tat logique prdfini


(" 0 , "1,, ou inversion). De plus, une interruption peul tre
gnre \'CrS le processeur.
Si on utilise le mode de rcchargement automatique, les registres
vonl t re ractualiss pour recommencer le cycle.

Dans le cas o l'on configure la broche de sortie pour changer d'tat


chaque comparaison valide, on gnre de ce failun signal priodique, dont la frquence est dfinie par le prdiviseur et l'horloge
interne. Cette fonction est utilise pour piloter un buzl.ef, une corn
mande de puiss.1nce pou r moteur OC (variation de 1,1 vitesse), etc.

Dans le cas Oll "on configure la broche de sortie pour passer


ou ,,0 >l chaque comparaison valide, on gnre de ce fait
un signal actif de dure prcise (commande de servomoteur pa r
exemple). nfaut bien entendu veiller initialiser l'tat de la broche
de sortie pour un fonctionnement correct.
.. ]

)1

Mode PWM
Le mode PWM (Pulse width madJ/latioll, modulation de largeur
d'impulsion), permet de configurer la frquence du signaJ de sortie,
ainsi que le rapport cyclique de ce signal. Le mode PWM n'est
cependant pas disponible sur tous les timers. En effet, il demande
une architecture matrielle du timer bien spcifique, el seuls cer
tains constructeurs le proposenl (Microchip, par exemple). Ces
timers offrent donc l'utilisa teur un regislre de configuration de
la frquence, el un registre de configuration du rapport cyclique.
Le rapport cyclique va donc pouvoir varier dans la plage 0 %-

[801

3
100 %, avec la rsolution offerte par ce deuxime registre (8 bits,
10 bits, 12 bits), comme sur la fi gure 3.33.

F"""',uO%

MM III 2S"

h
b

""'" n_

Mlcroconlrleu,

0 0

f'lNM 111 50 %

FWM III 87 ,5 '"

1 Il

Il

Il

PWM4I 100%

Ce mode quelque peu spcifique de pilotage est en ralit trs


cou rant ds que l'on souhai te commander un orga ne proportionnellement : un moteur OC dont on veut fa ire varier la vitesse mais
pas te couple, une lectro-vanne, etc.

3.11 RELAIS
Le relais n'est pas rellement un actionneu r, il est plutt considr
comme une interface entre deux ensembles lectrotques (ou lectriques). Toutefois, nous allons le dcrire rapidement dans ce
chapitre, puisqu 'il est pilot de manire semblable une Led ou
un lectroaimant el qu'il peul commander (commande de puissance) un moteur, une sirne, ou un voyant.
Sur la fig ure 3.34, le courant 1qui traverse la bobine B et le transistor est fonction de la rsistance de la bobine (donne par le
constructeur).

[81')

Figure 3.33.
Mode PWM .

Rb -

Vc - Vbe
lb

avec lb ;:;

lesat
~ min

"lcsat = 1 dans ce cas.


Vcesat et Vbe sont donns par le constructeur.
v~

vc

"

RB

e-

VB~

VCEsat

Figure 134.

Le circuit CRT (commun, repos, travail) est utilis pour commander


directement un circuit de puissance. La tension de ce circuit peut
tre compltement spare du circuit transistor.
Plusieurs modles de relais existent:
un ou plusieurs circuits;
broches repos et travail ou travail uniquement;
plage de tension de commande;
modles bistables ou monostablcs.

[821

REGLAGES
,
ET DEMARRAGE

4.1 Rglages analogiques


(exemple pour une LOR)

84

4.2 Rglages logiques


4.3 Rglages mixtes

85

4.4 Dmarrage du robot

9.

Alimentation(s)

"

Mcanique

111

Microcontrleurs

121

Circuits de restt et superviseurs

Structure des programmes


et algorithmes

153

10

Programmation
des microcontrleurs

163

11

Ralisation n" 1 :
robot Cubic

171

12

Ralisation n" 2:
robot Quad.ripode

191

Remerciements ct liens internet

215

d'alimentation

95

149

4.1 RGLAGES ANALOGIQUES


(EXEMPLE POUR UNE LOR)
La plupart du temps, les rglages analogiques servent dfinir des
niveaux de tension utiliss lors de comparaisons avec des signaux
analogiques issus de capteurs.

On se sert la figure 4.1 de l'lment de rglage pour .. calibrer .


l'ensemble capteur + conditionneur, afin de fournir un signal actif
en fonction d'un dpassement de seuil de luminosit ou en fonc
tion d'u ne perte de luminosit.

Rfrence

._-------- Rglage analogique

Figure 4.1.

Les rglages d' un robot sont essentiels ds qu'il est amen il


changer d'environnement. En effet, certains lmen ts varient en
fonction de la dmonstr,ltion que l'on fait ou de l'aire de jeu sur
laquelle \'olue le robot, comme:

la luminosit;
la couleur d' un dam ier au sol (certains .. bla ncs sont plus
"blancs que <' blancs,. comme l'avai t remarqu Coluche):
le bruit.

Les rglages analogiques se font principalement au travers dl'trois


composants:
une rsistance ajustable (figure 4.2) : la course du curseur se fait
sur un tour ;

Figure 4.2.
Rk islance ajustable.

.
1

un potentiomtre (fi gure 4.3) : la course du curseur se fa it sur


un tour, la manipulation est plus aise;

(Ml

4
Figure 4.3.
Potentiomtre.

.
1

un trimmer (figure 4.4) : la course du curseur se fail sur 15, 20

ou 25 tours, le rglage est trs fin.

Figure 4.4.
TriHlmer.

4.2 RGLAGES LOGIQUES


Une calibration ou un rglage peul aussi se faire de manire
logique, grce l'emploi d'interrupteurs ou de boutons-poussoirs.
Ces deux solutions sont toutefois trs diffrentes l'une de l'autre.

Les interrupteurs

L'o interrupteur fournit une information binaire (<< 0 ou " 1 ) de


faon pennanentc. CeUe information peut tre lue tout instant
par le circuit de gestion du robot ( J'initialisation, ou lors de l'excution d'une routine particulire).

l
l

Certains microcontrleurs sont quips de rsistans de tirage


internes el programmables (figure 4.5). On peut ainsi utiliser un
interrupteur SPST (Single pole, single tJJrow) - voir figure 4.6 - moins
encombrant et moins cher qu'un interrupteur SPDT (Shlgle pole,
dual throw), ou n'utiliser aucun composant additionnel.

l
V

Tses,

;
!

SPOT

'1

SPST

"""

TqgeilVoc.

Sanw f"~tance

Tirage aGNO

[851

Figure 4.5.

,------ ---------- ------------ -----"


,

SPST

Figure 4.6.

._---------------------------------

Utilisation d'un SI)ST.

Voici quelques exemples d'utilisations:


(( 0 .. : fuir la lumire; 1 : suivre la lumire ;
0 .. : viter un obstacle par la droite; l .. : viter un obstacle
par la gauche;
0 .. : trouver des palets rouges; 1 : trouver des palets verts;
0 .. : a rrter les moteurs brusquement;
moteurs progressivement.

l ,, : a rrter les

Mis en parallle (figure 4.7), les interrupteurs peuvent indiquer


un nombre hexadcimal (tableau 4.1 ).
----- - ----- -- ---- -~,

~ f=~,=.=..~.=.~...==.t.=..=
_ j~L

Figure 4.7.
Interrupteurs
mis en parallle.

Tabluu4.1 .

Miaoconl!6leur

S,

52

53

INO

IN'

IN2

Nombre

a
a

a
a
a

a
a

a
a

a
a

(116)

4
On peut ainsi dfinir un seuil de manire numrique, indiquer la
vitesse de dplacement maximale, le nombre de palets trouver,
etc.

La visualisation pour l'utilisateur de l'tat d'un interrupteur est


faite de manire implicite par le positionnement du levier de
celui-ci (contrJe visuel direct).
Les boutons-poussoirs
Un bouton-poussoir fournit une information binaire (<< 0 ou
1 ) de faon momentane (tout du moins lors de son actionnement). Cette information peut tre lue tout instant par le circuit
de gestion du robot, mais il faut imprativement que ce dernier
indique J'utilisateur quand manipuler lets) bouton(s)-poussoir(s),
si le besoin s'en fait sentir.

On peut liminer cette contrainte si lets) bouton(s)-poussoir(s)


est (sont) gr{s) de manire interruptive par le microcontrleur
(interruption lors de l'appui ou interruption en temps rel de
lecture).
Les diffrents cblages d'un bouton-poussoir sont illustrs sur la
fi gu re 4.8.
V

"""

BP SPOT

"k<>

Tirage il Vcc

,i
i

!
~,

,~------- -- - ------- ----------------",,


,
V
Rslslimce programmable

IN

0
0

Sans rs istance

Cblages
d'un bouton-poussoir.

Comme dans le pa ragraphe prcdent, on peut attaquer directement l'entre d'un mjcrocontrleur dont la rsistance de tirage
interne a t active (figure 4.9).

f,,
!

Tirage GND

Figure 4.8.

')

Mlcrocontr~eur

Figure 4.9.

Utilisation s ur demande du microconlrleur


Il faut que le microcontrleur soit quip d'un systme d'information vers l'utilisateur (mme minimal) qui lui indique quel
moment il peut actionner un bouton-poussoir,

Le microcontrleur va allumer la Led de la figure 4.10 pendant


deux secondes. Durant cette tem~risaton, il va lire constamment
l'tat de l'entre Bi>.
--------------------~

~-.-- -- -------- --- ---,

~ LI2mA

MicrQC:(ll.bOlel.lr

Figure 4. 10.

Si cetle ligne reste toujou.rs .. 1 , il va mmoriser l'tat .. 1 >1. Si


cette ligne passe "0,, (actiotmement par l'utilisateur), il va!'1'lm>
riser l'tal " 0 ".

On peut ainsi imaginer une squence complte, au travers de


laquelle le mCrocontrleur va se renseigner sur plusieurs para
mtres (figure 4.11).

--- -----_ .. .. _. _,

1,
.. 1

--

,l _ _ ________ __ ____ ,,

Figure 4.11.

Squencemenl

une
ou plusieurs Led.

Dans le cas o l'on multiplie le nombre de boutons-poussoirs


(figure 4.12), on peut les fai.re fonctionner de faon semblable
des bascules 0, avec visualisation d'tal sur des Led associes.
Chaque appui sur un bouton-poussoir va faire passer la Led
1 >louO ...

Mais dans ce contexte, il faul que le microcontrleur scrute en per.


manence l'tat des entres (interruption temps rel de le<:ture).

[881

4
:--- --- -- ----- -- --- ----- -- _.,

Lod1

'"

Lod'

9P2
9P3

Co"
Lod'

'"

Figure 4.12.

M~rocol'ltrOleur

u prendra en compte les appuis qui modifieront les paramtres


et qui feront basculer ['tat des Led.

Les shunts - cavaliers de codage

les shunts fonctionnent de la mme manire que les interrupteurs


et sont cbls l'identique (figure 4.13).

,-----------------------------V

10 kO

Shoot

Reslstilnce

programma~e

,-i---'------

'N

10 kn
MicrocontrlelJr

Tlr.ge' Vc

Tir.ge" Gnd

,,
;

Shunt Inilctif

Shunt aClif

1
,!

f,,

!,

Leur emploi est justifi dans plusieurs cas:


rduction de l'encombrement;
rduction du cot;
manipulation peu frquente.
Ce dernier poinl est souvenlle plus signifiant. Un shunt, cause
de sa taille et de sa forme physique, n'est pas amen tre rgulirement manipul.

On peut s'en servir aisment lors de tests ou de mises au point.


et le laisser dans la position adquate par la suite.

Figure 4.13.
Shunts.

\
les roues codeuses
Les roues codeuses fonctionnent de la mme manire que les

interrupteurs, la diffrence qu'clics ont un systme de lecture


de la valeur choisie intgr.

Les interrupteurs internes la roue codeuse sont groups par 4


(figure 4.14) .

"""

r----------,
"...

: A

.
Figure4.14.

Roues codeuses.

o
c~

----------,

;,1,

Roue codeuse
Vue de faee

Le circuit de lecture peul tre u n microcontrlcur, avec ou sans


rsistances de tirage internes.

On trouvera sur le marchdcs modles dcimaux (0 fi 9) ou hexadcimaux (0 fi 9 - A F).


Le ta bleau 4.2 p rsente le chiffre slectionn en fonction de l'tal
des interrupteurs.
Tableau 4.2.

Chiffre
slectionn

Valeur binaire

tal
des interrupteurs

Tirage Vcc

Tirage .il GND

.--

-- -

4
Les claviers
Un clavier est dfmi pa r un ensemble de boulons-poussoirs
placs d'une manire particulire. La frontire enlre un clavier et
un ensemble de boutons-poussoirs est donc mince, car le cblage
d'un clavier simple (peu de touches) est identique au cblage de
quelques boutons-poussoirs (figure 4.15).

..'"

"

OP3

,pO

OP,

.es

.,.
OP7

MICIOCOIlbOleur
rslstilncn de
brage Interne

' C~
,,
.... _________ J

Lorsque le nombre de touches augmente de manire significative, on parlera reUemenl de clavier. De fai t, le nombre de
rom\exions entre le clavier et le microcontrleur va augmenter
aussi.
Deux modles de Ctmexion existent : les daviers non-multiplexs
el [es daviers multiplexs (appels aussi claviers matriciels).

Clavier 16 touches non-multiplex


Un clavier 16 touches non-multiplex est propos su r la
figure 4.16. L..1 mise en uvre de ce type de clavier est trs simple
(matrieUement et logiciellement), au prix du sacrifice de nombreuses entres.

Si l'application ne rclame pas de nombreuses entres-sorties,


cette solution est envisageable.

Nanmoins, ces claviers sont relativement chers, cause de la


connectique mise en uvre.

l,
!

t-,
,

On peut toutefois limiter le nombre d 'entres ncess.1ircs par


l'adjonction de circuits supplmentaires (figure 4.17).

Le pori d'entre 8 bits du microcontrleur reoit les va leurs d es


deux groupes de 8 touches d u clavier, grce au pilotage des bllffers
par les sorties Cl el C2, actives alternativement.
Pour ces deux solutions, l'algorithme de lecture du cla vier pellt
tre bas soit sur une routine" appele en cas de besoin Ousqu'

--

.r~de
~rage

Inleme

Figure 4.15.
BoutonspoussoilS
et d.lIVier 8 touches.

,,

,-----------~

2
3

""
""
""

"

Figure 4.16.
Oavier 1 16 touches
non.multiple)(.

rlustancw de
brage inle.-ne,

J,

Reseaux de ""tances
de~rage

, ,
,
A

"~-

~--._------.'

~.

B
F

C,

Vcc

"".

s..-

Hi..z

....

Pon 8 bits

C,
C2

Hi--Z

~
Figure 4.17.

MlcrocontrOleur Siln.
r_stances de
tirage inter""

appui sur une touche), soit sur une routine temps rel " appele"
frquence fixe, auquel cas le programme connat en pennanen
l'tat du clavier.
Clavier 16 touches matric

Un clavier 16 touches matric l'st propos sur la figure 4.18. La


mise en uvre de ce clavier est tout aussi simple que celle d'un
clavier non-multiplex, mais le pilotage logiciel est un peu plus
complexe. L'avantage dl' la structure interne du clavier est que le
nombre d'entres-sorties est limit.

4
07
06

D'

---- --~. ,

R2

~.

-- - ---- -,,,
~. ~.

0<

,,

L~~ :

03

~~ ~. ~ ~

02

~~ ~' 4 :
_____________
----_1_,

00

R3

Cl

C2

C3

01

C-4

<:000_

Le nombre de touches est dfmi par le produit colonnes x range>.


Les colonnes du cla\'ier sont relies 4 sorties du rrucrocontrleur,
et les ranges 4 entres.

Le principe de lecture est le suivant :


adressage d'une colonne par un 0 (puisque les ranges sont
tires Vee) ;

lecture des ranges.


Si un " 0 ,, apparat dans le quartel bas (ranges), c'est qu'une
touche a t active. Comme il y a 4 colonnes, une lecture complte
de ['ensemble du davier se fait pac la scrutation des 4 colonnes.
La concatnation des deux quartets (colonnes + ranges) forme un
octet unique identifiant la touche active.

L'algorithme complet est propos sur la figure 4.19, page suivante.

1
\

!l
,!

l
J,

,l

La figure 4.20, page suivante, illustre un exemple de fonctionnement de davier 16 touches matric.

Clavier 16 touches matric et encodeur de davier


Une autre solution pour grer un davier matriciel consiste faire
appel un circuit spcialis: le 74C922 (encodeur de davier).
Son fonctionnement est simple: il se charge naturellement de
piloter les colonnes et de lire l'tat des ranges. Si une touche
quelconque est active, il fou mit sur ses quatre sorties logiques
le code de la touche (code hexadcimal naturel: la touche 0 Il
vaut $0, la touche .. 6 . vaut $6, etc.), avec en plus un signal de
validation. On le cblera donc directement fi un microcontrleur
(figure 4.2] ), ce qui limite Je nombre d'entres utilises.

Figure 4.18.
Cb.vier 16 touches
matric.

Inl. Col 0

,
o

Figure 4.19.
Algorithme complet.

R._

Cdoo~

07 De 05 0.
CC2C3C

, ,

1
1
1

Figure 4.20.
bemple
de fonctionnement
de davier
16 touches matric.

Aucun.

.., ,,

,""", ,

l,

, 1
~

COL ,

R' 00
R' D2

, ,

, ,

,0

, ,

, 1

ROW 1
COL ,

R3 ",
R' 00

ToudlninadlVM

1,

, 1

, ,

0,
: ROW 3
COL'

Le conden5<1teur de 10 IlF (KBM) fixe la dure d 'anti-rebond de


la touche, ct lecondensaleur de 47 nF (ose) dtermine la frquence
de scrutation des touches.
Les 4 bits de sortie sont relis 4 entres du microcontrleur (sans
rsistance de tirage interne), et la sortie DA (Data auai/able) provoque une interruption (routine de rcupration du code de la
touche).

4
"

"
", '"

03

D'
0'
00

Xl

,," ---,

----

",,
,,
,
,,
,
~. ~. ~ . ,
R2 :
,,
,,
~ . ~. I ~' ~. ,
R3 :
,,
,
, ~. ~.
~ . ,,
R4 :
,,
,
'" ------------------" ""

" " "

C3

P2

"
"

"

"'

'NT

, "

Y2

i ~'

C,

'"

Pl

Mo'
t
C,

DA

""

V~

Y3

"

, """
ose
5

C'

10~F

47rF

"j; J;

v~

"

DE

"

CND

Microcontr6le1Jr

74C922
/-

"

4.3 RG LAGES MIXTES


Une dernire solution de rglage et de calibration peut tre base
sur un convertisseur analogique/numrique multi-canaux. Celte
solution combine avec peu d'lectronique les avantages des deux

technologies, analogique et logique.


Si J'utilisateur doit configurer plusieurs seuils de manire analogique, sans incidence directe sur le capteur acqurir, cette solution est recommande.

;
l,

l
i;

!,
j

,~

Chaque lment de rglage analogique (rsistance variable, trimmer, potentiomtre) est connect entre Vec et GND. La plage de
tension disponible su r le curseur va de 0 V Vcc (+5 V, + 12 V,
etc.).
En fonction de la prcision souhaite pour la calibration, on utilisera un convertisseur analogique/ nwnrique 8 bits ou 12 bits.
La liaison avec le microcontrleur dpendra du nombre d'entressorties disponibles: liaison parallle (voir exemple de la figure 4.22)
ou liaison srielle.

Pour gue ce systme fonctionne correctement, il faut que le robot


dispose d'lUl moyen d'informer l'utilisateur sur le rglage en
cours, et sur la valeur de la calibration. Comme il s'agit ici de
donnes numriques, il faut utiliser un afficheur LeD. De plus,
un bouton-poussoir de " demande de calibration doit tre ajout
afin de lancer ce processus.

Figure 4,21.
Clavier
16 to uches matric
et encodeur de clavier.

"
SOC
EOC

/}

4-

Convertu,$8Uf ;.JN

MocrocoolrOieuf

.AtIId'oew LeD

-~

"l'

Figure 4.22.

4.4 DMARRAGE DU ROBOT


Cette tape est critique dans deux cas:

si les moteurs de dplacement du robot sont activs ds la mise


sous tension;
si le robot fait l'objet d 'un jeu chronomtr lOfS d'un concours.
Dans le premier cas, le robot va partir immdiatement ds la mise
sous tension, qu'il soit dans les mains de J'utilisateur ou pos sur
le sol. Si le robot est tenu en main, les roues tournant pleine
vitesse peuvent devenir fortement abrasives pour les paumes ou
les avant-bras. Malgr de bons rflexes ou une prise en main correcte, le fail de le poser au sol avec les moteurs activs va entraner
une forte augmentation de courant dans les moteurs (frottement
intense pendant un rourt instant), qui peul tre nfaste pour les
moteurs ou les circuits Jectroniques de commande.
Si le robot est pos sur le sol puis mis sous tension, d'autres problmes peuvent se poser : la main de l'utilisateur risque d 'accrocher le robot ( cause de son dpart rapide) et de perturber sa
trajectoire, ou bien le robot peut venir percuter les pieds de l'utilisateur, ce qui n'est pas forcment une bonne stratgie de dmar-

rage.

4
Dans le second cas, ces mmes problmes peu . . ent perturber les
premiers dplacements du robot, lui faisan t perdre de prcieuses
secondes au chronomtrage.
Pour paJlier ces inconvnients, p lusieurs solutions existent.

Temporisation aprs la mise sous tension


M'M __

(ntIr~"")

j
Inotiatiution dM 110.
\IaI'UbIaI

pelpilto~

j
T~tion
lou2_",~

T~

,,",,<

rutilialo ...... pouo- ..

. . . . el poMr le roboI au KIl

I--~I

1
f'fograrnme

Figure 4.23.

Activation par bouton-poussoir

Inrt'*"""" des 110,

p600ph0Moque&, .........

,~,
,

L'iIPPU''''''''''''

-~--

i-

l,

action rapide,

~~

n+s'Me pour rKUief

1,

..

8P",~".

,
progr...,...,... po.~

Figure 4.24.

[97]

Activation par con necteur Jack


Dans la majorit des concours, ce systme de dmarrage est
impos: il s'agit d'ter un connecteur Jack l'aide d'un morceau
de ficelle qui y est accroch (figure 4.25). Cela permet au joueur
d'tre suffisamment loin du robot pour ne pas gner son dpart,
et la manipulation est aise.
v~

il" "'

~~v """'
Jaclc femelle

Ficelle

Figure 4.25.
Utilisation
d'un Jack.

Quand le connecteur Jack est en place, le signal de sortie vaut


0 ". Ds que le connecteur est arrach, ce signa l passe l . Le
front montant gnr est dtect pour dmarrer le robot. L'algorithme correspondant est propos sur la figure 4.26.

Mise sous tension


(inter gnral)

Le robot est positionn sur l'aire de jeu

j
Initialisation des 110,
p8nphriques, variables

Jack en
place ?

'1

Dmarrage des moteurs

j
Figure 4.26.
Algorithme pour

Programme principal

l'utilisation d'un Jack.

(981

Le robot est prt

Ds que le Jack est rellr ,


le robot dmarre

<: HAPIT"

ALIMENTATION(S)

5.1

Gnralits

101

5.2

Protection des alimentations

101

5.3

Rgulateurs standards

103

S.,

Rgulateurs fowdrol'

103

5.5

Rgulateurs dcoupage:
bl/ck ou step-down

10'

Rgulateurs dcoupage:
boost ou step-up

105

Rgulateurs dcoupage:
bl/ck-boost

105

5.6
5.7
5.8

Modules OC/OC: alimentations


106
isoles galvaniquement

5.9

Balleries NilCd-NilMh

107

5.10 Recharge des batteries


et circuit de marche/arrt

108

Mcanique

\ll

Microcontrleurs

121

Circuits de rese! et superviseurs


d'alimentation

149

Stmcture des programmes


et algorithmes

153

Programmation
des microcontrleurs

163

10

(99)

,
Ralisation n 1 :

11

robot Cubic

12

Ralisation nO2 :
robot Quadripode

191

Remerciements et liens internet

215

171

5
5.1 GN RALITS
L'alimentation d'un robot est un point cma], que l'on il tendance
mettre de ct et tudier seulement vers la fin de la ralisation.
Or il convient de l'intgrer rapidement dans l'tude, car l'nergie

demande par les moteurs, les capteurs, les actionneurs et le processeur va influer sur la capacit de la (ou des) batterie(s), el donc
sur le poids supplmentaire, el ventuellement engendrer une
augmentation de la pu issance des moteurs.

Heureusement, ces compromis sont vite rsolus, grce l'emploi


de cellules de forte puissance (batteries Ni/ Cd ou Ni/Mh) el de
rgulateurs performants, linaires ou .. dcoupage ,
certains robots quips de moteurs OC de forte puissance,
l'utilisation d'une batterie au plomb/ acide scelle sera plus

SUI

adapte.
5.2 PROTECTION DES ALIMENTATIONS
Si l'on veut parer tout risque de mauvaise manipulation ou une
situation imprvue, il est prfrable de prendre certaines prcautions ~ur protger le circuit d'alimentation du robot.
Prenons l'exemple du robot prsent su r la figure 5.1. On distingue :
deux moteurs OC de propu lsion ;
un sen'omoteur pour orienter un capteu r spci.fique;
un microcontrlcur ;
deux capteurs de choc avant.

La figu re 5.2 propose un exemple de structu re de l'alimentation


ncessare ce robot.

!
i

Mais dans la plupart des cas, tte solu tion s'apparente du luxe,
si les puissances mses en jeu sont faibles, si on choisit de n'utiliser
qu'un seul fusible, ou si 1(>5 rgulateurs sont protgs contre les
courts-circu its et! ou contre les lvations de temprature.
En revanche, ds que l'on met en uvre un robot utilisant des
moteurs OC de puissance, il est fortement conseill de sparer les
circuits lectriques et d e protger particulirement celui qui commande les moteurs.

!
/101J

Capteur de choc avant

c,.,,,,,...,,,
servomoteur
Moteur OC

R~

/'

o
Carte lectronique
- mCl'ocontrleur
- commande de PUissance des moteurs OC
- commande du 5efVOIlloteur

Figure 5,1.

Al imentation de pUissance
pour les moteurs OC

FUSIb lE!

~IE!

Figure 5.2.
Ex emp l e
de structu r e
d 'alim entation

du robot.

Batterie N,Mh
7,2 Vil AH

Reg5V

Alimentation " 5 V
pour le servomoteur

Reg5V

Alimentation .. 5 V
pour rlectronique

5
5.3 RGU LATEURS STANDARDS
Le rgulateur linaire le plus connu est le 7805 (quel que soit le
fabricant). Ces rgulateurs sont trs courants, faciles mettre en
uvre, peu chers, el ils peuvent fournir un courant de sortie
important (1,5 A pour les modles classiques, et jusqu' 3 A pour
le MC78TOSCT).

Une poigne de composants discrets rendent le circuit oprationnel.


Malgr cela, son inconvnient principal est de ncessiter au
moins + 6,5 Vdc de tension d 'entre pour une rgulation correcte
(figure 5.3).
lN4001

7805

+6,5Vmn

,
100 oF

~
/.

22 ,F

"SVl15A

100 nF

Figure 5.3.

1
1

5.4 RGU LATEURS LOW-DRDP


Un rgulateur low-drop (faible tension de dchet) fonctiollne de la
mme manire que son homologue 78xx, la seule diffrence
qu 'il lui fa ut une tension d'entre moins importante pour assurer
une rgulation correcte.
Prenons l'exemple du L4931C50 (fi gure 5.4). Ses caractristiques
sont les suivantes :

tension de dchet comprise cntre 0,6 V et 0.8 V ;

,~

courant de sorte 250 mA max. ;

fi.

protection contre l'lvation de temprature et contre les


courts-circuits (300 mA);

courant de fuite 6 mA max.;

tension d'entre 20 V max.


Ainsi, ce rgulateur peut parfaitement servir alimenter sous +5 V
une carte lectronique avec une batterie de +6 V ou 5 cellules de
1,2 V, ce qui aurait t impossible avec un rgulateur classique.

lN4001

L4931C50

Figure SA.

100 nF

22

~F

100nF

5.5 RGULATEURS DCOUPAGE :


BUCK OU STEP-DOWN
Sans entrer dans les dtails des alimentations dcoupage, une
a limentation buck ou step-down abaisse la tension d 'entre et la
rgule.

La grande qualit de ces alimentations est de dissiper beaucoup


moins de chaleur qu'un rgula teur linaire, et de pouvoir (ournir
par la mme occasion un courant de sortie import.,mt. Il (aut utiliser
en plus une diode rapide et une self.
Il existe des circuits tout fa its comme le LM2575-S.0 (figure 5.5),
qui a pour caractristiques :
tension d'entre min. 7 V ;
tension d'entre max. 20 V ;
courant de sortie max. 1 A;
protection contre l'lvation de temprature et contre les
cou rts-circui ts.
LM2575 .50

, 'N
.]V

100 ~F

OUT

/, 7

330~H

ONO ""lOf!
3

+ 4QV

Figure 5.5.

FB

lN5822

330 jJF

+5V/1A

ALIMENTATION 5

5.6 RGULATEURS DCOUPAGE:


BOaST OU STEP-UP

Les aliment,ltions dcoupage brust ou slep-up lvent la tension


d'enlre et la rgule. Id aussi, il fa ut utiliser en plus une diode
rapide et une self.

Un exemple de circuit intgrant le LM2577-1 2 est propos sur la


figure 5.6. Il prsente les caractristiques suivantes:
tension d'entre 5 V min. 10 V ;
tension de sortie 12 V ;

courant de sortie 800 mA max.;


proletion contre ]'l\'ation de temprature et contre les courts-

circuits.
100llH

51

.'v
.IOV

l N5821

,1
FB

IN

SN

ONO

COMP

l.M257712

+ 12 VI800

mot.

2.2 kO

3JOnF

100 nF

1000 iF

100 oF

5.7 RGULATEU RS DCOUPAGE: BUCK-BOaST

Certaines alimentations d<:oupage sont capables d 'adapter leur

mode de fonctionnement en fonction de la tension de sortie dsire

el en fonction de la tension d'entre.

!
~

,,
i
,

J
,

,<

Parexcmplc, le circuit propos la figure 5.7, intgrant un LTl.300,


permet de fournir une tension de sortie d e + 5 V pour une plage
d'entre de +2,5 V +8 V. Si ln tension d'entre est comprise
entre +2,5 V ct +5 V, le circuit fonctionne en boost; si la tension
d'entre esl comprise entre +5 V Cl + 8 V, le circuit fonctionne en

buck.

Figure 5.6.

,
'"

,,

~H

27

100
0

~F

7
ON

"'- ~1"5V
~
OHO" ,

5V/3, 3V
roND

""0

l- lN$817

0 _ 3,3V
0

"

IUm

.. 5Vf220 mA

LTlXlO

220~F

27 ~H

100 nF /,

220~F

100 nF

Figure 5.7,

5.8 MODULES DCfDC :


ALIMENTATIONS ISOLES GALVANIQUEMENT
Dans certains cas, la mise en uvre d'un convertisseur OC/OC
peut rendre de nombreux services, En effet, diffrents modles
existent en fonction de la plage de tension d'entre, de la plage
de tension de sortie, du type de sortie (simple ou double) et du
courant de sortie disponible,
L'utilisation la plus sim ple est de fournir un systme Wle seconde
alimentation totalement isole de l'alimentation principale. On
peut toutefois relier entre elles les masses d'entre et de sortie pour
conserver une masse commune,
Le besoin peut se faire sentir si l'on doit par exemple alimenter
un capteur sous + 12 V, alors que l'alimentation principale +5 V
provient d'une batterie 9,6 V Ni/Mh.

Convertisseurs DClDC sortie simple


v~,

v~,

[7]

GND2

GNOl

Figure 5.8,

Vin_.$Vdc{10%)
Vin $ Vdc (10 %)
Vin 12 Vo:Ic (1 0 %)

TMMS05S
TMNJ512S
TMA1205S

VWI" +$ VdcI200 mA
VWI _ + 12 Vdcl60 mA
Vwl. + 5 VdcI200 mA

5
Convert isseurs DODe so rti e double

l21

G NDI
....... . 5 Vde (10 %)
Vin " 5 Vde (10 %)
v... .. 12 Vtlc (10 %J

"""""'"

TMA0512D

TMAI2MO

Vee

GN02

VOUI . .. !! VdcJlOO mA.. 5 VdcJl00 mA


Veut. + 12 VdcJ l 00 mA 12 VdcJl00 mA
Valt + 5 Vdcll00 mA - 5 VdcJl00 mA

Figure 5.9.

Convertisseurs Da De : crer une tension ngative


avec un module sortie simple
lN40 01

'OlS

'if

+ 5V/l,5A

~
100 nF

~
22 !-IF

,.,1;.

100 nF

MIXI~ e

oc/oc

.,1Vee
Figure 5.10.

5.9 BATTERIES NIICD-NIIMH


i

,;i

Il est prfrable d'utiliser des batteries Ni/Cd ou Ni/ Mil pour


alimenter un robot. En effct, ces ba tteries ont une capacit trs
leve fournir du courant. On trouvera auprs des revendeurs

de nombreux modles :
des cellules de base de 1,2 V, de quelques centaines de mA / H

(LR03) 5 000 mAI H (R20) ;

,",

,!

des packs monts de diffrentes tensions (3,6 V 9,6 V) el de

diffrents courants.

Bien entendu, on peut crer ses propres packs partir de cellules


1,2 V (figure 5.11).

bol

'2Vr-

~III

r
TTTT

'2 V

1,2V

1,2v

1,2v

l
l
1,2V l

1.2V

' .2V

4.8V

TL _ _

1,2V

parallle: augmentation du COlmllnt


peu utile ave<; des cellules de 1,2 V-

MOIIllfgfI

de,.

MOnlage srie: .ugmenUltion


tension
trs utile avec des cellules de forte capaciU

FigureS.ll .
Montage parallle
et srie des cellules
de 1,2 V.

5.10 RECHARGE DES BATIERlES


ET CIRCUIT DE MARCHE/ARRT
Pour recharger une batterie Ni/Cd ou Ni/Mh, il convient d'utiliser
un chargeur adapt, achet dans le commerce ou de fabrication
maison". Cependant, un inconvnient apparat: quand les
batteries sont dcharges, il faut les sortir, les charger elles remettre
en place. force, cela devient contraignant: l'utilisateur est oblig

d'effectuer de frquentes manipulations et de petites pannes petJ,


vent tre provoques (fils d'alimentation qui cassent, support de
batterie qui se dcolle, etc.).
Pour se simplifier la vie, on peut utiliser l'interrupteur march
/ arrt du robot pour pallier ces inconvnients (figures 5.12 el 5.13).

,-------<In--- - - - - +
Battefi.e

Circuits lect~
du robot

Interrupreur DPOT
- MarchelAfTIt (Recharge) -

Figure 5.12.

FIChes banar'les femelles


{chargeur)

" " Interrupteur


MllfchelArr6t (Recmarge)

FigureS.ll

,,
,

,,

1
,
!

MECANIQUE

6.1 Exemple de conceptio n


d' un chssis simple
6.2 Exempl e de conception
d' un chssi s en .. U ..

112

116

6.3 Exempl e de conception


d' un chssis rond

117

6.' Fina lisation d e l'assemblage

118

Microcontrleurs

121

Circuits de resel el superviseurs


d'alimentation

149

Structure d es progra mmes


el algorithmes

153

10

Programmation
d es microcontrleurs

163

11

Ralisation n 1 :

12

Ralisation n 2:

robot Cubic

robot Quadripode
Remerciements el liens internet

blll

171

191

215

la construction mcanique est souvenlla partie la plus dlicate


raliser pour les lectroniciens" purs et durs , par manque de
connaissances, d'outillage ou de matriaux. Ces deux derniers
points peuvent de plus s'avrer trs onreux, si on a des rves de
grandeur concernant la construction.

Si l'aspect mcanique du robot est trs bien pens et longuement


rflchi, on arrive dans pratiquement tous les cas un chssis trs
simple, peu coteux et qui correspond parfaitement aux besoins.

On utilisera principalement deux matriaux: le plastique et l'aluminium. Ces matriaux sont courants, bon march, disponibles
sous plusieurs fo rmes (tubes, barres, plaques, etc.). Ils sont par
ailleurs facilement usinabJes et trs lgers.
la fixation et l'assemblage de pices en aluminium se feront a\'e<
de ta visserieM3, tandis qu'on utilisera une colle ildilpte pour
les plastiques. Pour terminer, les robots peuvent tre peints ou
recouverts d'autocollants (merci aux sponsors !).

D'autres matriaux ont des inconvnients gnants en robotique:


l'acier est trop lourd, le bois est fragile et sa finition dlicate.
Attention toutefois certains plastiques qui sc collent difficilement, il conviendra de faire des essais pralables.
D'une manire gnrale, l'usinage comprend les dcoupes, [es
perages et la finition des pices. C'estlil dernire tape lors de la
conception mcanique. En fait, chaque tilpe de lil conception
du robot, il faut remettre en question les parties lectroniques et
mcaniques.
Il est impratif de faire deux choses : un croquis d 'ensemble du
robot et un es5<li de montage des lments mcaniques en l'air_.
En effet, a\'ec un peu d'exprience, on s'aperoit rapidement que
deux servomoteurs standards n'ont pas les mmes dimensions,
que les palonniers fournis avec le deuxime moteur ne s'adaptent
pas sur le premier, que tes roues n'ont pas le mme diamtre entre
deux commandes, et qu'il est difficile de retrouver une plaque de
PYC de 2,8 mm d'paisseur pour complter un morceau trouv
dans un tiroir.

On procdera donc de la manire prsente 1,1 figure 6.1 .


6.1 EXEMPLE DE CONCEPTION D'UN CHSSIS SIMPLE
Le dplacement du robot se fait grce deux servomoteurs modifis (figure 6.2, page 114). Les roues sont cotles aux palonniers
(livrs avec les servomoteurs) ou fixes directement sur l'arbre
(roues spciales pour servomoteur). Les servomoteurs sont directement colls sur la plaque PVc.

[1121

..___. -

EIIDo gIobM du . ........... i . . ~

.,,-'

1 ..

. .....'"
-.ctioo

("JI

'f

~-

...........'*"'"

j
P'....,...d'.... ~IP.

p. I l
(piro 1* . . . ,"'")

P, ......, - " '..... I* . . . . , .


("..,...,. 1*
'1fIItl

j
~~

.....,...,<*la,,,.
.

WOb ..... ' du _


-

(~

du ....~ ~OOliquio -' """"niQolo

clio .. _

V"~i

~-~

ftaIlon 110

+".

oompoMntt

0- ..:lion........ l*Iicu~)

-_el ~"_

"-

.---

"" _ _ _ ,. . . " ....q.-

Vtrlllation

dio r",*- cie ~_

_m._'~I11~

-P.,_ .... '"'bItS __ COI" -.,.,q...

\/,"""",\10<1 _

~"~"'IHo"'"

,/

R6 . .. IJDO, . . . . _~

~-~-"""*
j

j
1oIon~~du_

j
~

"" Ionction_t III .......lKIronoq_

v..ifIcebonde1oncl............. _I*I_o' -" .

~
~
,

Figure 6.1.

L'ensemble ainsi ralis va donner la ha uteur enlre le dessous de


la plaque PVC elle sol (figure 6.3, page 114).
Plusieurs solutions sont envis.1geables pour les roues libres avant

et arrire.

; Patins en plastique
!
Si la hauteur Il est faible, on peul utiliser des patins cn plastique,
~

,
i

disponibles dans les grands magasins de bricolage. Ces patins sont


habituellement utiliss sous les pieds des meubles pour qu' ils
puissent glisser et tre dplacs facilement. Si la hauteur du patin
n'est pas tout fait adapte, on peut intercaler un module de

PVC (figure 6.4).

Unl

Roue libre

Figure 6.2.
Chssis simple.

~=--_- Servomoteur modrfl6

_ - - - Servomot&llf modl~
Plaque PVC
Roue libre

Figure 6.3.

I:igure 6.4,
Utilisation de patins
en plastiq ue.

P"lns de h. uleur Irop I.iblto

6
Billes de manutention

Les biUes de manutention se prsentent sous la forme d'un disque


mtallique (perc pour la fixation); la bille dpasse de la face
infrieure, et un capot dpasse de la filCC suprieure (figure 6.5) .
Elles sont disponibles en plusieurs tailles (diamtre de la bille el
donc hauteur).
TrOllS de fixatlOO

Figure 6.5.
Bille

Billes de manutention.

Pour s'adapter la hauteur disponible sous le chssis, la bille de


manutention peut se monter de deux manires, (oonne indiqu

sur la figure 6.6.

MonUog.

~r

Montage paf le des.u.

le dessous

Figure 6.6.

~
;

II suffira simplement de percer la plaque de PVC pour laisser Montage d'une bille
passer la bille ou Ic capot, et pour les fixa tions.
de manutention.

i Roulette
1

i,,

I
,
,

les roulettes sont de petites roues monles su r un pivot (figure 6.7).

Elles peuvent se trouver facilement ou tre fabriques avec des

,,

Figure 6.7.
Roul ettes.

[115)

galets d'entranement issus de mcanisme de lecteur de cassettes


audio.
Ces mcanismes ne sont toutefois pas parfaits : ils peuvent entraner un " accrochage au sol lors de certains changements de
direction. De plus, ils peuvent modifier la trajectoire du robot,
lors des " S<1utS du pivot excentr dans les virages. Ce systme
est en gnral mont une seule fois, soit l'avant, soit l'arrire
du robot.
Vis de fixation
Une demire solution consiste utiliser les fixations naturelles
des plaques aux entretoises. Des vis M3 tte ronde offrent ainsi
un double avantage : le maintien mcanique des lments et le
glissement du robot. Ici aussi, il conviendra de calculer avec
rigueur la hauteur des lments utiliss. On pourra aussi se servir
de rondelles plates pour adapter la hauteur des vis aux roues et
au sol (figure 6.8).

EntretoISe de billion
VIS MJ rooc:le
(+ rondelle plate ventueOe)

Figure 6.8.
Vis de fixation.

6.2 EXEMPLE DE CONCEPTION D' UN CHSS IS EN U.


Un chssis en 1< U (figure 6.9) est un peu plus compliqu
fabriquer, mais il possde l'norme avantage d'tre parfaitement
adapt aux dimensions dL'S moteurs, des roues et des roues libres.
La plaque de fond est dimensionne scIon les besoins des
moteurs, de la batterie, des capteurs et de la (ou des) carte(s) lectronique(s). On fixe dectement sur te dessous les roues libres ou
les patins.
Les deux plaques de .. ct 1> sont dimensionnes selon la fixation

des moteurs, le passage des arbres et le diamtre des roues.


Les hauteurs d'usinage seront dfinies par les roues et les roues
libres (ou les patins).
La fix.1tion des plaques entre eUes peut se faire par collageou avec
des querres.

1'1161

Vue de d.......

,,.---------- . --.,
:,
,:

'----------- -

---'

Vue de ct6

Figure 6.9.

Chassis en .. U ..

Vue de face

l; 6.3 EXEMPLE DE CONCEPTION D'UN CHSSIS ROND


,;,

t
l

L'utilisation d'un chssis rond (figure 6.10) rend trs facile la mise

en place de capteurs sur le pourtour du robot (capteurs d'obstacles


par exemple). De plus, cela facilite la rotation du robot sur luimme: il n'est plus ncessaire de se proccuper des obstacles
prsents. puisque dans tous les cas ils se situent hors du gabarit
du robot.

I117J

Vue de dessus

Figurc6.10.

Chssis TOnd.

Vue de face

Au niveau de la ralisation mcanique, la difficult se trouve


dans la dcoupe en cercle de la plaque de fond , ainsi que dans
les deux dcoupes rectangulaires de passage des roues.
Si on ne dispose pas de l'outillage ncessaire, on peut faire appel
une socit spcialise dans l'usinage et la srigraphie de panneaux, coffrets ou tiquettes plastiques et mtalliques.

6.4FINALISATION DE L' ASSEMBLAGE


Quel que soit le type de chssis retenu, il faut laisser un lger jeu
en hauteur entre les roues et les roues libres (ou les patins).

[lisl

6
De ce fait, quand le robot avance ou recule, il est toujours en appui
sur une roue libre, ce qui limite les frottements au sol, sans que la
soit visible pour l'utilisateur ou gnant pour le fonctionnement
du robot.
Plusieurs solutions existent pour structurer les parties mca-

niques et lectroniques du robot.

Empilement simpl e
~ peB microoontrOleur

:;:=====;::Tl
~:===========~~ ~ peB capteurs d'obstacln
~~====::;:::::::====~~ ~ Alimenlatlons,ldlstributionimarcOe-al1'6t
. - / Entretoise '-13 plastique ou inox

~ P~que

support pour les moteIJr& et batterie(s)

~~~~

Figure 6.11.

Empilement compact
pee microcontrleur
~

n===~===rr

et capteurs d'obstacles

Entretoise M3 plasHque ou inox

~
peB support pour les moteurs. batterie{s),
~

~~~~

i, 1

alimentation et distributioo

Empilement 3D
La fixat ion et [a connexion lectrique des diffrents PCB se font
par des connecteurs mles et femelles couds.

,,l"
1119)

Figure 6.12.

Pe6 alimentallon

PeB capleurs ---...

~ et dlltribution

d'OOstaclel

Figure 6.13.

Passages de cbles pour empilements en hauteur


Le passage des fils ou des cbles en nappe " l'intrieur" du
gabarit du robot est une bonne solution car rien ne dpasse de
celui-d. En effet, cela vite l'accrochage d'un objet ou d'un autre
robot, notamment lors du contournement d'un obstacle.
Une connexion" extrieure au gabarit du robot par cbles en
nappe et connecteurs couds offre cependant une architecture
claire et are, facilement dmontable. Si la longueur de ces cbles
est rduite au minimum, ils ne dpasseront pas exagrment du
gabarit d u robot. Les d iffrentes solutions sont prsentes sur la
figure 6.14 .

Conn8lllon par cA ble en nappe


(structullI de type bu. parallele)

Conn8ll.lon par fils


ellou cAb les en nappe

Figure 6.14.
P.JSs.lges de cbl es.

l120l

CHA P " n

MICROCONTROLEURS
A

7.1

Architecture d'interconnexion
directe
124

7.2

Architecture d 'i nterconnexion


matre/esclave(s)
124

7.3

Architecture d'interconnexion
126
volue: rseau en toile

7.4

Architecture d'interconnexion
volue: rseau en anneau
127

7.5

Architecture d'interconnexion
volue: rseau en anneau
129

7.6

Architectu re d'interconnexion
volue: rseau parallle
RAM double accs
129

7.7

PIC16F84 (Microchip)

130

7.8

PIC16F628 (Microchip)

131

7.9

PIC16F877 (Microchip)

133

7.10 AT90S1200 (Atmel)

134

7.11 AT90S2313 (Atmel)

135

7.12 AT90S8515 (Almel)

137

7.13 ATMega8 (Atme!)

139

7.14 MC68HCllAl (Motorola)

141

7.15 MC68HC8nE2 (Motorola)

144

7.16 PSOC32SBI'N (Philips)

145

7.17 SABSOC537 (Si emens)

147

Circuits de sel et superviseurs


d'alimen tation

149

11211

Structure des programmes


et algorithmes
Programmation

10

des microconlrleuT$

11

Ralisation n 1 :
robot Cubic

12

Ralisation nO2 :

robot Quadripode
Remerciements el liens internet

153

163

171

191

215

7
Toutes les gnralits conrnant les microcontrleurs vont s'appliquer aux microcontrlcurs slIgle-chip, aux microcontrleurs exlended, aux microprocesseurs et aux systmes hybrides.
Le processeur est au centre de tous les organes d'entre (informations) el de sortie (commandes), comme cela est illustr sur la
figure 7.1.

InlormabOOl
utilisateur

Progflltnme

1
1

Compilation

Programme

Processeur

Nous nous limitons ['tude des microcontrleu rs (slIgle-chip ct


extcl1dl'd), car l'utilisation d' un microprocesseur s'avre injustifie,

face aux possibilits et aux performances des miCfOContrleurs


actuels.

Nanmoins, si un robot doit tre dol d'une forte puissance de


calcul, le microprocesseur devient indispensable, cond ition d 'utiliser un systme de type embedded PC, puisque le routage d'une

j
;
l

i,
i

!,
4

carle lectronique base de Pcotium est impossible pour un


amateur.
Plusieurs modles de microcontrleurs vont tre prsents, avec
pour chacun d'eux un rcapitulatif de leu rs caractristiques et un
exemple de ci rcuit minimal de mise en uvre.
Nous ne ferons aucune comparaison de performances pour telle
ou telle utilisation, chacun trouvera coup s.r celle qui sira le
mieux son robot (possibilits matrielles et logicielles, langage
de programmation, habitudes et prfrences, extensions futures,
systme de programmation, etc.).

,
l

,l
11231

Figure 7.1.

7.1 ARCHITECTURE D' INTERCONNEXION DI RECTE

L'interconnexion directe entre le microcontrleur et ses priphriques est Iii plus courante. Il s'agit de relier directement les entressorties du microcontrleu r aux capteurs, aux actionneurs et aux
lments d 'informations vers l'utilis.1teur (figure 7.2).

'-"

" Of>. CAH

""""'""'"

..

""-
~

~ oIuo ".IIOi ..

-"'--~

.-

.rs.. , . _,
~

_m

o.m., ___

R"

Jet

... ...

""'."""

MiO l ~ OI"'OIeur

Figure 7.2.

En ralit, seuls certains lments ncessitent wu~ ad.lptatiOIl en

tension ou en courant par des nlerfuces places entre ces derniers


elle microconlrleur.

La prsence de ces interfaces dpendra du type exact des lments


connecter au microcontrleur, comme indiqu sur ta figure 7.3.
0.....

cr_......

_m

s..-.oo,_

Informatiortl

__ rutO-.ut

Co"

.""""-

eom..,.
~'"

,,,,-

OAN

.Figure 7.3.

7.2 ARCHITECTURE D' INTERCONNEX ION


MAT REIESCLAVE(S)

Si les priphriques sont .. gourmands en ressources processeur


(enlrs-sorties, calculs, etc), il est utile de les interfacer au travers

de microcontrleu rs esclaves, qui se chargen t de les grer, tout en


laissant un microcon trleur matre le soin de prendre les dcisions ncessaires l'accomplissement de la tche.

Iq41

7
Architecture un esclave
Dans l'exemple de la figure 7.4, le microcontrleur matre est
dcharg des oprations utiles la commande de deux moteurs

pas--pas (8lgnes de sortie pour deux moteurs, tables de valeurs


des squences de rotation, timer de commande des squences),
ainsi que du pilotage parallle des lignes de contrle de l'afficheur
LeD (6 lignes de sorties en mode 4 bits, routines d'criture de
caractres).

...

""""

""""""

,.
...... r~

~''''

AI'IIeIIe<I< LeD

-~

'"'"'

,~

_..

,-,

d'Hmentallon

AOf>. CAN

Aoapl.tion nl

SurvenlllllOll

r rrr

MlCfOCOIIIr6Ieur _

"'-

"""""'"

AOP. GAN

'"'"'

'"'"'

..

MlCfocontr6+eur malt...

Figwe 7.4.
Architecture
un esclave.

Architecture plusieurs esclaves


Dans l'exemple de la figure 7.5, le microconlrleur matre est
dcharg des mmes oprations vers les acliOimeurs, mais il est
aussi dcharg des oprations de lecture des convertisseurs analogique/numrique. La lecture du prener CAN sert acqurir

,,

~,

t
o

..

""""

,,

,~

~'-

......
.........

l"""",,,-tioIls

C~""rI

rlJlijif.ateu<
AftictIeur LCD

WlaIogoq ....

ve<1O

!
OAN

'"""

rr r r r r
MiaO<Xll la6leu, eodav<i

,,,-

'"CV<

MioOCOtI~

iloIeur esdeve

.J

,l

Microcontr6leur mallr1i

Figure 7.5.
Architecture
plusieurs esclaves.

SUIV~

d'lIIimerIl8!IOn

Adap(aOOrt TIL

""'"''"""

en permanence les mesures issues des capteurs; la lecture du


second permet d'acqurir sur demande les mesures issues des
organes de ca libration.

7.3 ARCHITECTURE D' INTERCONNEXION VOLUE :


RSEAU EN TOILE
Si les priphriques sont vra iment volus cl ncessitent un processeur eux seuls ( cause du nombre d'entres-sorties ou de la
p uissance d e calcul), on se retrouve rapidement avec une architech lre cn rsea u.

Un avantage qui dcoule de ce type de raccordement cst l'universalit des modules racco rds au microcontr lcu r maitre : module

d'entres analogiques, module d'entres logiques, modules de


sorties analogiques, modules de sorties logiques, mod ule de transmission de donnes sans fil, elc. (figure 7.6).

Figure 7.6.
Rseau en toile.

---- -- ------ --- ----- -- -----,, ------_ ._--- -...... _-_. .. --,,

-"

,,
,,
,
,,,
,,,
,,,
,,

Module de lOrties ~

2 moteurs pat.-'-p;os
servomo4el.lfI

InformMians verll'UIiIIu1_
A/'Iic:hfIur Le D

Ledl o:Ie oontr6le-Bu:u:...

,, ,,
, ,

puisurQ

MlerocoolrOleor HClaVfl

MouIe de SOfties Ioglqun

...

'"'~

,
,,, ,,
,, ,,
,
,,, ,,
,, ,,
,
,,, ,,

M ~ocontrOiellf

eldave

,+ --- -- -------

,
,,,
,,
,,
,,
,,
,,,
,,
,,
,
,,,
,,
,,
,
,,,
,

Module cr"'tr6e5Iogiq .....

""""'"'"

Ccmmandes manuel. .

'"'~

Microoootr6leur elClilve

MiCf(x;ontrO!eur mallre

......

Miclocoo,trOleu" ndIIvtI

T""T

T"'T

CAN

R~

..aIogIqo-

CAN

,,
,,
,,
,

c.,o_ .........

,,
,,
,,
,,
,,
,,
,,
,,,
,,

,.....

Mk>QI;OIotIOIeur ~

Adaptation TIL

Sunoeili''''''
d'ali" ... otatioo ~'l

------ ------ --- ------ --- -_. ------ --------------------_. ---.-- ------------ ... ----.
Module (l'&n1r6el .... aIogiql$

Modu le o:rantr6etl analogiquel

Supervision dalimentaIOO(I)

7
Au besoin, et suivant la programmation des modules, certains
priphriques esclaves peuvent d ialoguer cntre eux, le microcontrleur matre ne faisan t que redistribuer les informations.

7,4 ARCHITECTURE D' INTERCONNEX ION VOLUE:


RSEAU EN ANNEA U
D'une manire semblable, on peut connecter ces modules volus
travers un rseau en anneau. Le microcontrleur matre gre
les informations d'entr (capteurs) et de sortie (actionneurs).

Ch.lque ordre pass vers un module esclave (criture d'une donne


ou lecture d 'une donne) transite paT tous les modules (figu re 7.7).
Si l'ord re ne fail pas rfrence au module M, ce dernier passe
J'ord re au module M + 1, et ainsi de suite jusqu'au bon module.
Celukj tra ite ['information, puis rpond au maitre par le module
suivant selon le mme procd.

'_.........
,....... -- -----

...

-;-

MOCfOCOf1tr61otU' _

, ~-------------------~
_
de _
k9qo.:
,,,
,,,
,,
,,
~~.
,,
,
.... l'utih.o_
,
,
,,,
,,,
,, ,, MiQocor~rOieu, .oeII .. ,,
, ,
,

------~

_~

..

-- -------- ----- --- -- '

--------------------~

----- --- -- --- -- -- ---,

Modulo .,...... 100_

.......

Micfocontr6lot", _

..

,,:
,,
,
,,,
,,
,,
,

---------------------,
Ma

------ -- ----,, ,,..------ -- --------- --,


,,---_..----"'.n_
.""Iogoiq..... ,, ,,
, ,
-

R~ .naIog"l"'"

-;-

lb : :

,~0.

.. _

,,,
,
,,,
,

,,
,,
,,
,,
,, ,,
, ,

.,...,- ... oIogiqua

C"""""'" ",.~
....... ocor ... - . . _

,
,,,--------------------,
,, S...,.,..osoon .,.. . . .Iotion!.) ,,,
,,
,,,
~
,,
,
"._tion(l)
,
,,
,,
,, M...ocor'b _ _ ,
,,
,, ,,
, ,
,

-- --- -- -------, ---- -- ----- ----- -- --~


i

i,
j

t
J

,b _ _1n

......

--- --- -- --- ---- --- ---'

Figure 7.7.
Rseau en ann eau.

~--------------------------

,,, Module de SOrtie$loglque5


MlCroconlrOleur maHre

,,
,,
,,
,
,,
,

,,,
,,
,

,'

Actionneur.

MicrooontrOleur esclave

~-------------------------

~-------------------------

Module de sorties logiques


Informations
vers l'utilisateur
MicroconlrOleur esclave

-------------------------

,,~------------------------,, Module d'entres logiques


,,
,
,

,,
,
,,
,,

,,
,

D6mal'Tage

MicrocontrOleur esclave

----------------------------------------------------Module d'entres analogiques

Rglages analogiques

Mlcnx:onlrOleur esclave

-- --- -- --- -- --- -- ----- --_ ...


,,~----- --- -- ----------------,,
,, Module d'entres analogiques ,,
,,
,
,,
,
,,
,

,,,

Capteurs analogIQues

MicrocontrOleur esclave

,,

,,
,,,
,,,
,,,
,,
,,

~-------------------------~
, ,

----------------SuperviSion d'alimentallOn(s)
Surveillance
d'alimenliillicm(s)
Microconlrleur esclave

Figure 7.8.

---------------------------

Rseau parallle.

[1281

7
7.5 ARCHITECTURE D' INTERCONNEX ION VOLUE,
RtSEAU PARALLLE
Dans celle architecture, le rseau est le plus souvent constitu
par une ligne RSl8S bidirectionnelle. Chaque module reoit les
ordres passs par le matre, en d iffrenciant l'en-tte du message
pour connatre le destinataire de l'envoi (figure 7.8). Seul le microcontrleur esclave rpondra la demande:
pour la lecture d'une information d'entre, le matre interroge
l'esclave et celui-ci renvoie une dOlme;
pour l'criture d'une donne de sortie, le matre pilote l'esclave
et celui-ci rem'oie un acquittement.

7.6 ARCHITECTURE D'INTERCONNEXION VOLUE,


RSEAU PARALLLE RAM DOUBLE ACCS
Une RAM classique dispose d'un bus d'adresses, d'un bus de
donnes et d'un bus de contrle. Un seul processeur peul y crire
et y lire des donnes.
Une RAM double accs (drml pori RAM) d ispose de deux bus

d'adresses, de deux bus de donnes et de deux bus de contrle.


Ainsi, deux processeurs peuvent y crire el y lire des donnes, sur
la mme plage totale d'adressage, et de manire quasi-simultane
(figure 7.9).

Proce..eur

,
1

Donn".

-,

,
,-

--

Processeurl

RAM
standard

Ad.....,

MM

0""''''''

"""""",

""" "'"

Donn6e.2

Processeur2

Conbo.2

,,
,

Grce cette solution, on peut in terconnecter plusieurs microprocesscurs/microcontrleurs au travers d'un bus systme parallle (figure 7.10). Certes la complexit du syslme global est plus
importante, mais elle permet une capacit de calcul des plus

Figure 7.9.

puissantes. Il faut noter que cette solution est surtout employ


avec plusieurs cartes enfiches dans un mme rack (bus passit).

Processeur
maltre

Process.eur

esdave

_..

Processeur

Processeur

esclave

S1

_...R""_..R""R""

doub1e~

Figure 7.10.

7.7 PIC16FB4 (MICROCHIP)


Le PIC16F84 (fi gure 7.11 et tableau 7.1) est un microcontrleur
performant plusieurs titres: architecture RISC, frquence de
travail leve, simplicit de 5.1 structure matrielle. Il conviendra
aisment aux applications les plus simples, comme aux applica
tions les plus volues, malgr l'absence de certains priphriques.

R'

2700

C3

10 IFI63 v

Figure7.11.
Schma lectronique
du l'I C16F84.

[1301

7
Entres-sorties

13

Flash

1024 words (14 brts)

EEPROM

64 octets

RAM

68 octets

Watchdog

Oui, oscillateur ddi

Code protection

Oui

Instructions

35

Type d'oscillateur

Quartz, AC externe

Frquence maximum

10 MHz

Temps d'excution

400 ns

Interruptions eKternes

SP'

Tlmer(s)

1 timer B bits

PWM

Comparateur analogique

CAN

Boiller

DIPIS

Plage d'alimentation

2.0V5,5 V

Consommation

<2mA

Programmation

ICSP, programmateur

Foocllon(s) spc:late(s)

UART

,,
i

l,, 7.8 PIC16F628 (MICROCHIPI


,, Le PIC16F628 (fi gu re 7.12 ct tableau 7.2), compatible pn-to-pill

t-
,-
!

avec le PICt6F84, peut tre considr comme une .. amlioration


dece dernier. En cffet, les plages mmoire sont tendues, de nouveaux priphriques apparaissent (second titncr, UART, etc.), et
les performances RISC sont conserves.

Tableau 7.1.
Caractristiques

du PICI6F84.

Figure 7.12.
Schma lectronique
du PIC16F628.

"
cu, f..---L-"''''
100 '"

"

j ,,"" 10S0
1OS l ' " " "

Tableau 7.2.

Caractristiques
du PIC16F628.

Entres-sorties

15

Flash

2048 wards (14 bits)

EEPAOM

128 octets

RAM

224

Watchdog

Oui, oscillateur ddi

Code protection

Oui

Instructions

35

Type d'oscillateur

Quartz, Re externe

Frquence maximum

20 MHz

Temps d'excution

2oon$

Interruptions externes

UART

SP'

Timer{s)

2 timars B bits
1 limer 16 bits

PWM

Oui

Comparateur analogique
CAN

Botier

DIP18

Plage d'alimentation

3,OVS,5V

Consommation

<2mA

Programmation

ICSP, programmateur

Fonclion(s) sJ)ciale(s)

Compatible pin-to-pin PICt6F84

[132]

octets

7
7.9 PIC16F877 1MICROCHIPI
Le PIC16F877 (fi gu re 7.13 et tableau 7.3) fait partie des .. gros)l
mcroconlrleurs proposs par Microchip. Les foncti onnalits et
les priphriques intgrs sont beaucoup plus nombreux: plages
mmoire, priphriques de communication srielle et paraUle,
systme de debuggage interne.
Figure 7.13.
Schma lectronique
d u PIC16FSn.

"100 MI
ose1

MelA:

_L_.'l=
EOIAN5
t--i-i RREI/AN6

RE2' .... N7

RDOIPSPO
ROIIPSPl
RD2 / PSP2
RD 3/PSP3
RO./PSP.

RDSIPSPS
R0 81PSP6
RD71PSP7

33

Flash

8 Kwords (14 bits)

EEPROM

256 octets

, .A.

1;
,

,,
,

j
!.

Tableau 7.3.
Caractristiques

Entres-sorties

368 octets

Walchdog

Oui, oscillaleur ddi

Code protection

Oui

Instructions

35

Type d'oscillateur

Quartz, RC externe

Frquence maximum

2OM",

Temps d'excution

200".

[1331

du PIC1 6FS77.

Interruptions externes

UAAT

SPI
Timer(s)

2 timers 8 bils
1 tlffl8f 16 bits

PWM

0"

Comparateur analogique
CAN

5 entres 10 bits

Botier

DIP40

Plage d'alimentation

2,OVS,SV

Consommation

< 0,6 mA

Programmation

ICSP, programmateur

Fonctlon(s) spclale{s)

ln circuit debugging
Readlwrite access to programm mernory
Parallel slave port

7.10 AT90S1200 (ATM EL)


L'AT90S1200 d'Atmel li a rchitecture RISC (figure 7.14 et
tableau 7.4) offre des performances intress.lntes, ma lgr le peu
de priphriques intgrs. Il conviendra de ce fa it aux applications les plus simples.
Il n'y a pas besoin de tirer la / RESET il Vcc au travers d'une rsistance exteme, elle l'est naturellement au moyen d'une rsistance
interne (100 500 ka).

Figure 7.14.
Schma lectronique
de l' AT90S1200.

!;

Entres-sorties

15

Tableau 7.4.
Caractristiques

Flash

1Ko

de l'AT90S1200.

EEPROM

64 octets

RAM

Watchdog

Oui, OSCillateur ddi

Code protection

Oui

Instructions

B9

Type d'oscillateur

Quartz, RC interne

Frquence maximum

12 MHz

Temps d 'excution

SO'"

Interruptions externes

UART
SPI

Tlmer(s)

PWM

Comparateur analogique

CAN

Boitier

DIP20

Plage d'alimentation

2,7V6V

Consommation

'mA

Programmation

ISP, programmateur

Fonction(s) spelale(s)

1
l
!

fl.

,,
~

!,

7.11 AT90S2313 (ATM EL)


L'AT90S231 3 (figure 7.15 et tableau 7.5) reste un petit microcontrleur en termes d'entres-sorties, mais il dispose de plus de
mmoire el intgre de nouveaux priphriques (comparateur analogique. UART). Il conviendra ainsi des applications milieu
de gamme ", en offrant toujours une rapidit d 'excution impressionnante.

JI n'y a pas besoin de tirer la I RESET Vcc au travers d'une rsis-

tance externe, elle J'est naturellement au moyen d'une rsistance


interne (100 500 Hl).

[1351

Figure 7.15.
Schma lectronique
de l'AT90S2313.

"T90S2313

Tableau 7.5.
Caractristiques

Entressorties

15

de ]'AT90S2313.

Flash

21<0

EEPROM

128 octets

RAM

128 odets

Watchdog

OUI, osdllaleur ddi

Code protection

Oui

Instructions

118

Type d'oscillateur

Quarlz, AC interne

Frquence ma.llimum

tOMHz

Temps d'e.llcutlon

100 ns

Interrupllons e.llternes

UART

SPl

TImer(s)

t limer8 bits
1 tllner16 bits

PWM
Comparateur analogique

""'

CA"

Boitier

01P20

Plage d'alimentation

2,7V6V

Consommation

2,8 mA

Programmation

I$P, programmateur

Fonction(s) spc:lale(s)

11361

7
7,1l AT90S8515 (ATMELl
L'AT90S8515 (fig ure 7.16 el lableau 7.6) est le oc grand frre,. de

la famille AT90S. Les performances restent inchanges, mais on


trouve encore une fois des priphriques additionnels: limer,
entres-sorties, SPI. Les plages mmoire sont aussi tendues.

c,

Figure 7.16.
Schma lectronique

"

om

d e l' AT90S8515

singlN:hip.

'"

c,

'c,

""

PAOJAOO
PAlIADI
PA2/A02
PAl/AD3

PMIAOot

"'"''''
'''''''''
PAr/AD1

""'''

pel /AlI
PCl/A10
PellAl1
PC.'A 12
PCSlA13
PC6lAl~

Entres-sorties

32

Tableau 7.6.
Caractristiques

Flash

8Ko

de]' AT90S8S15.

eEPROM

512 octets

RAM

512 octets

Watchdog

Oui. oscillateur ddi

Code protection

Instructions

""'

Type d'oscillateur

Ouartz, AC interne

l,

Frquen maximum

8MHz

Temps d'exKution

125 ns

,
1

!,

118

Interruptions externes

UART

SPI

Tlmer(s)

PWM

"";

Comparateur analogique

CAN

--

Botier

OlP40

Plage d'alimentation

2,7V6V

Consommation

3mA

Programmation

ISP, programmateur

Fonctlon(s) spclale(s)

Mode extended (RAM, 110)

Une caractristique particulirement intressante est le mode


extended (figure 7.17), q ui permet d'ajouter des circuits externes
sur le bus processeur (recr avec de ux ports 8 bits, le signal ALE
et un la tch 8 bits).
Figure 7.17.

II n'y a pas besoin de tirer la / RESET Vcc au travers d'une rsistance externe, elle l'est naturellement au moyen d'une rsistance
interne (100 500 H l ).

Schma lectronique
de l 'AT90S8515
txtended.

-r-a, L
---1I-J - J -''l

1ljXT"'L2

OC16

XT ... L1

"'LE

8101Hz

,c,
,>W'o
PB1fl"1
PB2/.,;na
PB3IAln1

PB<I/SS

P... OI... OO
PA'/AC1
PA2JAC2
PA3IAD3

P.... /~

pewosi

PASlAD5

P9SlMlSO

'"''''''

PB7ISCK

""""0

POlfl"O
P02IImo

P03llNTI

""
PD5JQC, ...

'''''''''
P01IRO

... roOS8515

P... 71AD7

1-"'-,

7
7.13 ATMEGAB (ATMELI
Les performances ellcs caractristiques de l'ATMega8 d 'Atme!
(figure 7.18 et tableau 7.7) en font un circuit impressiOiUlanl : les

priphriques sont nombreux el le temps d'excution d'une


instruction est trs faible. De plus, le multiplicateur cbl vite
les longs calculs en boucle, gourmands en ressources.
Il n'y il pas besoin de tirer la 1RESET Ver au travers d'une rsislance externe, elle l'est naturellement au moyen d'une rsistance
interne.

PC6-IRESET

al

f------------------------""1
=F~~,,-"
...
100"1'

Av ec

"

Figure 7.18.
Schmol ledroniqu e
de l'ATMega8.

...

PCS/-'DC5ISCL
PC'IIA0C41S0A
PClIAOC3
PC2IADC2
PClIADCl
PCOIADCO

Tableau 7.7.
Caractristiques
del'ATMcga8.

Entres-sorties

23

Flash

6Ka

i
j
,

EEPROM

512 octets

RAM

1Ka

Walchdog

QUI,

Code protection

Oui

Instructions

130

Type d 'oscillateur

Quartz, AC interne

Frquence maximum

16 MHz

Temps d'excution

62,5 ns

j,

,
l

oscillateur dcll

11391

Interruptions externes

UART

SPI

TImer(s)

2 tlmers 8 bits
1 limer 16 bits
RTC

PWM

Comparateur analogique

CAN

4 canaux tO bits
2 canaux 8 bits

Boitier

DIP28

Plage d'alimentation

4,SVS,SV

Consommation

3,6 mA

Programmation

ISP, programmateur

Fonction(s) spciale(s)

MultIPlicateur cbl 2 cycles

7
7.14 MC68H01Al (MOTO ROLA)
La famille 68I-1C11 est en gnral utise en mode extended. ce qui
offre une plage mmoire de 64 Ko, tout en laissant l'utilisateur
de nombreuses enlres-sorties d'usage gnral ou ddies aux
priphriques internes (UART, SPI, limers). Le MC68HClIAl
(figure 7.19 et tab leau 7.8) est sans doute le plus cou rant, pour
entrer dans la gamme des microcontr61eurs Motorola. Le jeu
d'instruction tendu (architecture CISC) en fait un processeur
performant et puissant, notamment sur des donnes de 16 bits
(figure 7.20) .

."

~41kOSi.

P87/A.15

P9&',,'4
PB5iA1J

P&uAI2
P831"11

P82/A,O
PSI/AS

"""
"""""
""'",,,

"0' "0'o.

PCTIMJ7

"0' 0'
'"0' '"0'

'CM...
"""~,

PC21A.02
PCII""1

'"0'

""""'"

'"
0'

0<

"

PA2IICI

PAMel
PAOIlC3

""""

PDo4JSCK

POJNOSI
PD2IMISO

Figure 7.19.
Schma lectronique
du MC68HCn
rxlended.

11411

Tableau 7.8.
Caractristiques
du MC68HCll .

Entres-sorties

22

Plage mmoire'

64 Ko

AAM interne

256 octets

EEPAOM interne

512 octels

Watchdog

Oui

Code protection

Instructions"

109

Type d'oscillateur

Quartz

Frquence maximum

8MHz

Temps d'excution

500"

Interruptions eKternes

UART

SPI

Timer(s)

1 timer 16 bils
1 gnrateur d'interruption temps rel
1 accumulateur d'impulsions

PWM

Comparateur analogique

CAN

8 canauK, 8 bits

Botier

PLCC52

Plage d'alimentation

s,av

Consommation

35mA

Programmation

EPAQM eKterne

Fonction(s) spciale(s)

Architecture Von Neumann: un seul memory map (programme, donnes, 1f0),


Instructions de base, dclines en fonction dU(des) registre(s) utilis{s),

FlTn'il ,,,

"lt.Flf ~ ..

,7 kil SI.

,"--C~="C,C,,"

1'91)/"" .
Pf!~"'13

l'lW'A'2
PlI3IA11

PlIl/A'O
P'II ' I"'~

-~

;
l
~

"

1,
,

""

PE71" ~ 7

PE&I"'~
PE5IA N ~

l'HIA ""
PEJlAN3
PE2IA N2

PEI/ANI
PEO/ANO

'"

Figure 7.20.
Schma lectronique
du MC68HC11
extended avec PRU.

7.15 MC68HC811E2 (MOTOROLA)


Le MC68HC811E2 (figure 7.21 el tabl eau 7.9) est sans doute le
microcontrleur Motorola le plus simple implmen ter sur une
application, puisqu'il est disponible en OINS. Malgr une petite .
plage de mmoire de code, il reste un composant fort apprci.
Son utilisation se fait en sillgle-chip, ce qui offre de nombreuses
entres-sorties l'utilisateur. Sa programmation peut ventuel-

lement se faire via la SCI (liaison RS232).

,~-,~--l---LJl

H AL

ST_AS
S TRBlllw

" ODAlUR

.. ooe lO '~ '

Figure 7.21.
Schma lectronique
du MC68HC811E2.

.,.

7
Enlres-sorties

38

EEPROM interne'

2 Ko

RAU Interne

256 octets

Watchdog

Oui

Tabluu 7.9.
Caractristiques

du MC68HC811E2.

Code protection
Instructions"

109

Type d'oscillaleur

Quartz

Frequence maximum

8 MHz

Temps d'excution

500",

Interruptions elternes

"ART

SPI
nmer(s)

,,i

1,
,
l
j

1 timer 16 bits
1 gnrateur d'interruption temps rel
1 8CC1Jrnuialeur d'impulsions

PWM

Comparateur analogique

CAN

B canaux, 8 bits

......
i

DIP48

Plage d'alimentation

s,av

Consommation

35 mA

Programmation

Programmateur, SCI

Fonction(s) spci.le(l)

MrTlOlre de programme.
"Instructions de base, dclines en fonction du (des) regislre(s) utiliss.

7.16PS0C32SBPN (PHILIPS)
Le P80C32SBPN de Philips (figure 7.22 et tableau 7.10) est bas sur
le noyau 8051 de (nleL Il est donc entirement compatible avec son
anctre, mais quelques points onl t amliors: le programmeur
dispose de plusieurs pointeurs de donnes, de modes de consommation rduite, etc. Il trouvera sa place aussi bien sur une nouvelle
application, que sur une application dveloppe avec un 8051 que
l'on souhaite booster ".

[1451

Figure 7.'12.
Schma lectronique
du 1'8OC32SBPN.

",

Il ,

Tableau 7.10.
Caractristiques
du P80C32SBPN.

Entres-sorties

32

EPROM externe

641<0

110 RAM externe

641<0

RAM Interne

256 octets

EEPROM Interne
Watchdog
Code protection
Instructions

256

Type d'oscillateur

Quartz, rsonateur

Frquence maximum

16MHz

Temps d'excution

750ns

Interruptions externes

UART

SPl
TImer(s)

3 llfners 16 bits

7
CAN

Botier

DIP4Q

Plage d 'alimentation

2,7Vas,SV

Consommation

15,5 mA

Programmation

EPAOM externe

Fonction(s) spclale(l)

PW.

Comparateur analogique

7.17 SA BBOC537 (SIEMENS)


Le SAB8OC537 (figure 7.23 et tableau 7.11 ) est un microconlrleur
particuJirement ddi aux .. grosses applications: il prsente

de nombreuses entres-sorties, des plages mmoire de 64 Ka et des


priphriques intgrs de plusieurs types. Malgr une vitesse
d'excution un peu lente" compare d'aulres microcontrleurs,
il reste tout de mme en tte de liste des composants puissa nts,
notamment gr.'lce une unit de calcul 16/32 bits cble.

!
,-

,
5

Tableau 7.11.

Entres-sorties

52

EPROM externe

641<0

lfO RAU uteme

641<0

RAU interne

256 octets

EEPROM Interne

Wotd>dog

Ou;

Code protection

Instructions

256

Type d'oscillateur

Quartz

Frquence maximum

16MHz

Temps d'excution

750 ns

Interruptions externes

UARl

SPI

Tlmer(s)

4 timers 16 bits

Caractristiques
du SAB80C537.

[147j

PWM

Oui

Comparateur analogique

CAN

4 canaux, 8 bits

Boitier

PLCC84

Plage d'alimentation

4,5V5.5V

Consommation

52,3 mA

Programmation

EPROM externe

Fonction(s) spciale(s)

MultiplicaliorVdivlsion 16 bits cAbles

~TA~'

"'

'"~

"
'"

'"
~
~
~

~
~
~
~

''''

'"'"
'"
'"
,~

VAR"

VAGHO

"'" ,
'"
m
m
'"

".
'"

".
m

'"
'"

'"
~,

'"'"
'"
'"
'"
".
".
'"

"""
""

'",
~

~,

~,

Figure 7.23.
Schma lectronique

du SA880C537.

~ ,

~.
~.

~
~

'"

[1481

,Q
,Q

~
~

'" '"
.,'"roro ro
., "
~

00

( H .. PIT . .

CIRCUITS DERESET
ET SUPERVISEURS
D'ALIMENTATION

8.1 Su perviseu r d'a1imentation


simple

150

8.2 Supe rviseur d'alimen tation


paramtrabl e

151

83 Superviseur d'alimentation
et sauvega rde RAM

152

Structure des programmes


et a lgorithmes

153

10

Programmation
des microcontrleurs

163

11

Ralisation nO1 :
robot ( ubic

12

Ralisation nO2 :
robot Quadripode

191

Remerciements et liens internet

215

171

Dans tous les systmes microprocesseur ou microcontrleur,


il est ncessaire de disposer d'un" circuit de reset . Que ce module
soit fait avec des composants d iscrets ou avec des cn:uits intgrs
spcialiss, son emploi est justifi si la tension d'alimentation chute
de manire trop importante, ou si elle fluctue en fonction de
l'activation de moteurs.
Certains microcontrleurs peuvent fonctionner avec une alimentation infrieure +5 V, mais certaines oprations, en RAM par
exemple, peuvent engendrer des rsultats alatoires. Ainsi, le fonctionnement global du systme est affect, avec des consquences
plus ou moins graves.
Si cette condition d'alimentation trop faible apparat, il est prfrable de bloquer le fonctionnement du mcrocontrleur par l'activation de son entre reset.

8.1 SUPERVISEUR D'ALIMENTATION SIMPLE

le MCPI30 se p rsente en botier ID92. Son cblage est indiqu


la figure 8.1. Sa rfrence exacte indique le seuil maximum de
dclenchement d e resel (figure 8.2 et lableau 8.1 ).

"..
V
0.1

~f

ON'

MCP130

ON'

Figure 8. 1.
Su~rviseur
d '~li ment~tion

simple.

GND

:.1

Rese!

[
Figure 8.2.

,,
,

:1

:0---'"

[150]

'

-o,~

8
Rfrence

Min. (V)

Typ. (V)

Max. (V)

MCPl3Q-450

4,25

4,375

4,50

MCPl 3(}.460

4,35

4,475

4,60

MCPl 3Q-475

4,5

4,625

4,75

MCP1 JO.485

4,6

4,725

4,85

Tablea u 8.1.

Lors de la mise sous tension du systme, t1 est compris entre


150 ms (min.) el 700 ms (max.), la valeur typique lant 350 ms.
Lors d'une fluctuation de Vcc ou lors de l'arrt complet du syir
tme (en ralit ds que le seuil de dtection est dpass), la sortie
sel est active en 10 ils (12).

8.2 SUPERVI SEUR D'ALIMENTATION


PARAMTRABLE

le TL7705 se prsente en botier DIPS. Son cblage est prsent


sur la fi gure 8.3. Le seuil de dclenchement de reset est fixe (min.
= 4,5 V, typo= 4,55 V, max. = ~,6 V).

10kH

~'"

,---1 '"
LC_'_--,GN'r0'--.JTl77'05
0.1

~,

~F

__

__-L______L-________________

L'entre / ReseUn peut tre utilise avec l'adjonction d'un bouton-

poussoir par exemple; l'entre Sense mesure la tension d'alment.ltion. L'alimentation du TL770S peut provenir de tte mme
alimentation ou tre spare. La sortie / Reset_out est collecteur
ouvert

Le condensateu r CT permet d 'ajuster le retard d 'activation de la


sortie / Reset_out :
Ik/,y (s) = 1,.1 x 10' x CT(F)

[151)

Figure 83.
Superv iseu r
d ' illi men tilti on
paril mtrilbl e.

8.3 SUPERVISEUR D'ALIMENTATION


ET SAUVEGARDE RAM
Dans les systmes microprocesseur, on trouve obligatoirement
de la RAM. Le con tenu d'une RAM est perdu chaque coupure
d'alimentation. Si l'on dsire toutefois conserver ces donnes, il
faul faire appel un circuit permettant de basculer l'alimentation
principale vers l'alimentation d'une batterie. De p lus. ce circuit
d ispose des fonctionnalits d'un superviseur d'alimentation.

Le circuit employ da ns la figure 8.4 est un MAX690. Quand


l'alimentation principale est prsente. l'ensemble du systme ainsi
que la RAM sont aliments par ce biais. Si l'alimentation prind-

pale fluctue dans de trop grandes proportions, ou si elle disparat


compltement, le superviseur provoque le resel du micropros-

seur, de la mme manire que pour les circuits tudis prcdemment, mais il alimente cette fois la RAM pt1r la batterie. Il faut
veiller ce que l'entre /CE de la RAM soit force J'tat haut,afin
de garantir son mode stand-by (faible consommation et sauvegarde
des donnes).

~\'-

'''1 -

"1'-

"1'-

,~,

~,

~o

w.

-l

W'_

Figure 8.4.
Supe rviseur
d'al i menlalion
el siluvegilrde KAM.

1>-

~"

~,

/,

1::::'

,~

~.

..",

d,

~,

10 !Q,

""'
d,

~p ~c

ONO

-""

c ..... " ..

.AC l

STRUCTURE DES
PROGRAMMES
ET ALGORITHMES

9.1 Structure gnrale


d'un programm e
9.2 Orga nisati on des routines
9.3 Traitement il! architectu re
prioritaire
9.' Traitement en temps rel
9.5 Traitement multitche si mple

1;4

154
157
158
16<1

10

Programmation
des microcontrleurs

163

11

Ra lisa tion nO1 :


robot Cubic

171

12

Ralisa tion nO2:


robot Quadripode

191

Remerciements et Liens intemet

215

[153)

Un programme est une suite d'instructions excutes par le processeur en vue de la ralisation d'une opration, C'est donc un
ensemble structur qui obit des rgles prcises. Nous allons en
tudier les grandes lignes, sans entrer dans les dtails spcifiques
aux diffrents langages et processeurs. De plus, ces exemples
seront orients vers le domaine qui nous intresse, la robotique.

9.1 STRUCTU RE GNRALE D'UN PROGRAMME


De manire gnrale, un programme crit en assembleur est struc-

tur comme sur la figure 9.1.

o.finitIon """ 6quiv.-.- (pata,


Dlftoitioo,_._

~... oonst.nIn)

1
1
1

l 'Nh."
l00,,lIeoonoinoFIoqi
-_ .... iP. _ _
_ CI'iPi"'" .. , ''''001'''''
''ni"'!Ie
1101_ I....
wn
1. :~:::::=======] h"'
,"" """ _ ".,.-

~
__ -1

diooctioo. <100 porII

~~

......

"..,.. .... iP .......

R"""'-

- . Ile _ _ Cl'lIUgO 0'<*aI (~,

""""-(ulcul. _

_1Ie_
1

1_ _ ....

R"""'- -

Ile _

P'< .,.... .....


_1

<le_

iP ..'\qoM

""')

,- ---

Figure9.1.
Structure-type
d'un programme.

9.2 ORGANISATION DES ROUTIN ES

les routines de gestion des priphriques doivent tre organises


par priphrique, ce qui simplifie l'criture du programme prin
cipal, ainsi que la relecture du programme.

Priphriques internes (titl/ er, RAM, EEPROM)


Gestion du tlmerO
Initialisation du tlmer
Source d'horloge. Prescaler.

pSl

Actl~atlon

9
: Routine d'Interruption
tO_h r :
: Test de la RAM Interne
lnt ra ..~test:
: Gestion de 1'[[PROH Interne
read eeprOIl :
~r l te_eepra.:
: Economies d'nergie
j)Ower. down;
Idle:

Priphriques internes qui communiquent avec l'extrieur


IUART, SPI)
; Initialisation de 1'UART
: lnterruptlon(sl. vitesse. etc
ulrCln1t:
; Envol d'un caractre
wr1te3ar:

: Envol d'une chaT ne de caractres


1Irlte_5trln9:

;Interruptlon de rception
uHCIsr:

Priphriques externes (AOC sriel, LeD, elc.)


Gestion d'un AOC
Initial i sation de l 'AOC

IOde de fonctionnement. etc


'dcJnlt;

; Acquisition d'une(des ) -.esure(s)


rUlUdc;

,,
,,

: ~nlon d'un affiCheur LeD


: ln1tlilllSltlon du .ode de fonctlonnellent
'nlt_lcd:

,!

: Ecriture d'une co.mande

,
,

; Clear . RetUTn Home. etc


~ rl

te_co.and:

: Ecriture d'un caractre


1 : Ecriture d'une cha1ne de caractres
wrltLstr lng :

[155)

Autres routines

On peut ensuite faire suivre les autres routines, qui n'agissent

pas forcment sur des priphriques (routines logiques, arithmtiques, conversions, etc.).

; Conversion en
upcase;

m~jusules

; Conversion ASCII-)binalre
~si12bin;

; Conversion binaire-)ASCII
bln2ascll;
: Multiplications et divisions
mula"a:
mul16-16:
diva/a;
dlv16/16;

le progranune principal va ensuite utiliser ces routines pour faire


fonctionner le robot. L'algorithme correspondant est prsent sur
la figure 9.2.
Aprb "inWalisstion

Lecture(s) Cilpteur(S)

Test(a)
Comparalson(s)
Analyse(s)
Mise en rn6moire

Commande des

-~

En fonction

des rsultats

Figurc9.2.

Les vnements lus au travers des capteurs vont forcer le programme prendre des dcisions, et en fonction des routines appliques sur ces info rmations, des ordres seront transmis vers les
actionneurs.

9
9,31RAITEMENT ARCHITECTURE PRIORITAIRE
li s'agit de la manire la plus simple d'<:rire un programme
linaire, Dans un premier temps, on liste toutes les tches que le
robot aura accomplir, p uis on les classe de la moins importante
la plus importante.
Dans cel exemple, le robot avance, jusqu' rencontrer un obstacle
(mur, palet, ctc.). S'il s'agit d'un pa let, il doit en ramasser trois,
puis s'arr{>ter ; si c'esl un autre obstade, il doit reculer et tourner:
tche 1 : avancer ;
tche 2: reculer et tourner;

tche 3 : ramasser un palet;


tche 4: a rrt.
Il faut aussi lister les tests effectuer, par ra pport J'environnement du robot, pour appeler les diffrentes tches en fonction de

leur priorit:
lest 1 : dtection d'obstacle?
lest 2: palet ou obstacle?
test 3: 3 palets ramasss?

Le programme va excuter en premier lieu la tche la moins


importante (avancer, tche 1). S'il rencontre un obstacle, il faut
dterminer la nature de l'obstacle (mur ou palet). Si c'est un mur,
on appelle la tche 2; sinon, la tche 3. Si 3 palets ont t ramasss,
on appelle la tche 4 ; sinon on retourne la tche 1.
Ainsi, la tache 2 l'St p riori taire par rapport la tche 1, la tche 3
est prioritaire p ar rapport la tche 2 (et implicitement la
tche 1), eic.
L'algorithme correspondant est prsent sur la figure 9.3.

,\i
,
,

,,
,

i,
l

,
1

[157J

Dto,.,._
If.. _

~,,,.

Tkt10 n' ,

,,-

00._'

T.
P .... ?

TkfII n' 2
R.wIoIII ""' ......

Tk/Io n' l
,~

,-,

,.
n.
"'"

Tk/Io

Figurc9.3.
A 19orithme
.
d'une ~rch l teclure
prioritaire.

9.41RAITEMENT EN TEMPS REL


Le traitement en temps rel d' une information se fait par l'intermdiaire des entres d 'interruption, ou par un timer spcifique

(rea/ time iI/terri/pt).


Dans le premier cas, l'apparition d'un vnement provoque l'arrt
du programme cn cours, pour sauter une routine ddie de
gestion de cet vnement.
Par exemple, un robot doit trouver une balise infra rouge; il est
muni d' un dtecteur infrarouge (reli une entre d'interruption),
de deux moteurs et de deux capteurs d 'obstacles (microruptelm).

Le programme principal scrute en permanence les capteurs


d'obstacle. En fonction des informations rcupres, il prendra des
dcisions qui seront transformes en ordres vers les moteurs.
Si la balise IR est dlecte, le capteur envoie un signal d 'interruption vers le processeur. Celui-ci suspend les traitements en cours

9
pour excuter une routine spcifique (voir algorithme de la
figure 9.4). Dans cel exemple, le robot s'arrte, puisque 5.1 tche

esl accomplie.

r=r::J.-li=:!==:~

Dmarrage et

lecture dM
capteurs

Capleu' IR
de balise

Interruption par
dtecteur de balise

inrtJalisabOm

___

_dn

....

Fln du programme
(boucle vide inflf1te )
Tests des
resullals

Commande

'" """""

Figure 9.4 .

!,

,,

i,

,
j

Dans le second cas, le limer RTl (Real time illtermpt) provoque une
interruption frquence fixe. chaque fois que cette interruption
arrive, le p rog ramme lit l'tat d e tous ses capteurs et positionne
des flags d 'indication (voir algorithme de la figure 9.5). Le programme principal ne fait qu'analyser ces flags pour piloter tes

moteurs.

OMecteurs d'obstacles

~=::{=J-C:J=;:=-

___

Capteur IR
de balise

Dmarrage et
inijialisations

InterruptIOn
temps rel

j
Lecture des
d'obstacles

InitialisatIOn du
Timer RTl

capteu~

j
Posij!Or1nement
des lIags

j
Action sur
les moteurs

Lecture de
capteu r de balise

Posijjormement
du lIag

Retour

Arrt des moteurs


Desactivation de la RTl

Figure 9.5.

Fm du programme
(boucle vide Infi me)

9.51RAITEMENT MULTlT CHE SIMPLE


Un programme multitche excute (en apparence) plusieurs
routines en mme temps, qui forment dans leur globalit un progranune complet. On prcise bien en apparence , car n'importe
quel processeur ne peut faire qu'une chose la fois. Dans la ralit,
on excute plusieurs fois par seconde ces routines, ce qui donne
l'impression au final qu'elles tournent en mme temps.

9
Dans l'exemple d e la figure 9.6, on utilise une interru ption temps
rel (RTl) il 10 ms. chaque appel de cette interruption, le processeur excute une routine diffrente (tche Tl T10).

Chaque tche doit se tcnniner en moins de 10 ms (avanll'inlerruption suivante). Ainsi, on peut faire tourner 10 tches diffrentes,

chacune tant excute toutes les tClO ms.


Cette mthode est la plus simple pour implmenter ce type de
fonctionnement dans un microcontrleur. Bien videmment, ce
n'est pas du vrai rnultitche ", car il faud rait sinon grer de
manire complexe (ma is beaucoup plus efficace) la pile principale
du processeur ct autant de contextes que de tches.
100 ml 200

ml

300"..

.00.... 500 ml IlOO ms 700 ml

800 ms

900 lM t 000".. 100 ma

200""

11

"

Tl

"

11t

T7

TI

"

110

Int8ll\lptJon RTl. 10 ms

Dans les variables globales. on utilisera un flag " numro de tche ",
pour que l'interruption RTl sache quelle tche doit tre excu te
(voir ,1lgorithme de la figure 9.7).

On peul aussi faire communiquer les tches entre eUes par le biais
d'autres variables globales.

1
,

,
!

Figure9.6.

""""""

I_isabono
gIoI:ll ..

~i'u

-00

n e!".. "" fond ~)

,
o

,
o

E ~ ion tkho3

:, ,

'" ,

E.uIioo """" 10

Figure 9.7.

,-

C"""1" .

PROGRAMMATION
DES MICROCONTRLEURS

10.1 Gnralits

164

10.2 EPROM externe

166

10.3 EPROM interne

166

10.4 EEPROM interne

168

10.5 Flash interne

169

11

Ralisation nO 1 :
robot Cubic

171

12

Ralisation nO 2 :
robot Quadripode

191

Remerciements et liens intemet

215

10.1 GNRALITS
D'une manire concrte, la programmation d'un microcontrlcur
se fait en trois tapes majeures:
criture du code source excuter;

compilation du cocle source;

programmation de la mmoire de code.


Ces trois tapes fondamenta les obissent certaines rgles, an'C
toutefois des nuances en fonction du type de microcontrleur
retenu .

L'criture du code source se fait en gnral avec un simple diteur


de texte. Le choix du langage utilis est laiss au programmeur,
en fonction de la complexit du code excuter, de la souplesse
du langage, ctc. On trouvera surloull'assembleur et le C.

L'assembleur est le langage de plus bas niveau auquel peul accder le programmeur. On pense souvent - tort - qu 'il est dsuet
et rbarbatif. C'est faux, en manipulant correctement l'assembleur,
la comprhension d ' un systme microprogramm est facilite,
ainsi que la rechen::he d'erreur (dbogage). Par ailleurs, l'optimisation en taille et en rapidit est des plus efficace.
Devinette: quelle est la taille d'un code pour SAB8OC537 devant
faire l'acquisition en temps rel de 256 entres analogiques ct
144 entres logiques, 10 ms avec chantillonnage/blocage simultan et envoi par liaison parallle ECP dans un systme de mesure
industriel?
Eh bien, moins de 256 octets quand il est crit en assembleur...
En revanche, ds qu'il s'agit de faire des calculs mathmatiques,
de l'analyse de signal, ou du squencemenl complexe, le Coffre
toute 5.1 puissance. De plus, l'criture et la relecture du code sont
plus aises qu'en assembleur (surtout si on tente de modifier du
code crit par une autre personne !).

Le C a aussi le grand avantage d'tre plus facilement porl sur des


mCroconlrleurs diffrents. En effet, charger une constante dans
un registre d'un 68HC11 s'crira LDAA It$Jl, tand is que sur un
AT90S2J13, on crira LDI R16.$32. En C, s diffrens de syntaxe
sont totalement invisibles pour le progr,1mmeur.

La compilation est la .. traduction .. du code assembleur ou du


code C en langage machine. L, on obtient quelque chose de vraiment rbm"batif, vu qu'il s'agit d'une suite d'octets bruts. Ces octets
seront directement interprts par le noyau du microcontrleur
pour excuter le p rogramme.

10
On trouvera sur le march des centaines de compilateurs, en fonction du langage utilis pour le code source, du constructeur, du
type de microconlrleur.
En utilisant le C. le compilateur (en particulier les logiciels profus.
sionncls) sera fourni avec des libra iries prtes l'emploi. Une

librairie contiend ra par exemple toutes les fonctions ncessaires


aux calculs trigonomtriques (cos, sin, arctan, etc.), ce qui est long
et dlicat crire en C. et encore plus en assembleur. Ces librairies
seronllies avec le code source compil grce un linm.

Outre l'aspect .. traduction de langage, le compilateur va vrifier


le code sour . Il sera ainsi (,'pable de dire : oc cette condition est

toujours fausse ", .. cette fonction appele n'existe pas .., etc. Le

programmeur pourra dj corriger tous ces bugs avant de tester


son programme sur l'application finale .

Pour terminer, quand le code source aura t compil, il fa udra


l'implanter dans la mmoire decodedu microcontroleur. Pour cela,
toujours en fonction du type de microcontrleur, e l en fonction
de l'architecture du systme, plusieurs mthodes seront possibles.
Mthode d'criture en assembl eur

.7'.;.0", ......<
File l .a . m

;
i

i,
1,

,
,

,j

,
:::::::------------------------------,

File2 u m

"'"

/
COMPILATEUR

uu -j Co rreclkm~ . rreu,.

,,
,

Lialioge du ~
Table dM

--------- -------,

.~mboI 8'

Table des \f~n.bIeI

PJogranwne HEX
FIChier obfet

---------__ -- _- __ ~,_ _.S.'M.U.'-'_T.E.U.R_ _~.

IMPLAHTAT1OtoI
DU PROGRA MME

Figure 10.1.

Mthode d'criture en C

diteur eN

._tI

"".

/
lIb .. ,ri.l lob

FMI e

""-

Lib,.,1ie2hb

File2

----- -- --- --- -- .-.-- -. --. -- ,


--------------,,
,
,,,
,,

C<>n'Ktion dH

COMPILATEUR

UNKER

-----------,

j
Ultage du ptogremmll

_un

,,
,

--------------------.---------_.

Table des '~lOoboIe&

T.tlIe des vanabIeI

,--

P,ogo.,.,. H'"

---------------------------- 0{

MUUlEUR

IMPLANTATION
DU PROGRAMME

Figure 10.2.

10.2 EI'RQM EXTERNE

Certa ins mcroconlrleurs comme le 68HCliAO ou le 8002

ncessitent une mmoire de programme externe. Il convent donc


de la programmer avec un programmateur adapt el de la placer
sur la platine de l'application (figure 10.3). ventuellement, on

peul aussi y ajouter une RAM, si le mcroconlrleuTn'en dispose


pas en interne ou si S<1laille esllrop petite.

10.3 EPRQM INTERNE

On trouve des microcontrleurs qui disposent d 'une EPROM

interne (figure 10.4), reprogrammable si le botier est en cramique


avec fentre de quartz pour l'effacement (MC68HC711E9) ou OTP
si le botier est en plastique opaque (PIC16C54).

10

....

"'

''''''''

Bue <flldr_, <le <100 .....


et ... tG III ClIo

Ti ....... UNIT SPI.o.oc

'-

Ia". 2 : mlH lM pIM:. de I"EPRON

Figure 10.3.
Programmation
et mise en place
de l'EI'ROM externe.

N,,,.

ROMOTP
EPROM

""
~

Trne~

t
t
-

l;

UART SPI AOC

R""

Figure 10.4.
Programmation
et mise en place
du microcontr leur.

10.4 EEPROM INTERNE

De rares microconlrleuTS comme le MC68HC81! E2 sont quips


d'une EEPROM interne (figure 10.5). Cette technologie est de nos
;Ours remplace par la flash. La programmation de ces composants
peut se faire grce un programmateur spcialis, ou par le biais
d'une astuce logicielle" appelebootstrap mode. Un programme
simple de dialogue est charg dans la RAM du microcontrleur
par la liaison srie RS232, qui est ensuite capable de programmer
la mmoire EEPROM avec le fichier de programme envoy par
cette mme liaison sric.

Noy,"

RAM

EEPROM

""

Totr'Iefl'I UNIT SPI AOC

III
III

III
III

oC

oC

1
1

tllpe 2 ; dllliogue IIVK le mlt:rot:ontrtJleur el Inn,,,,,, du progrllmme

Figure 10.5.

dIlns ,.EEPROM

10
10.5 FLAS H INTERN E

Les microcontrleurs modernes sont quips de mmoire flash


interne (figure 10.6). De plus, quelques broches du composant sont
ddies sa programmation in situ. L'avantage est donc de pouvoir le programmer directement sur la platine d'application, sans
avoir recours un programmateur spcifique. Lorsque la programmation est termine, les broches de programmation sont gnra-

lement rutilisables comme entres-sorties classiques (PIC16F87x,


AT90Sxxxx).

,L
Noyau

'LAS"

RAM

vo

limers - UART SPI - AOC

III 1
IC

,
,1,
,

,
,
,

DI./O(Jue c:ompl.'llvec 1. mlerocontr'6leuf pour 1. programmllrlon


dei. FLASH

Figure 10.6.

C" " p" u

REALISATION W1:
ROBOTCUBIC

11.1 Cnralits

172

11 .2 tude du dplacement

172

11.3 Palets

175

11.4 Mcanique et motorisation

175

11 .5 lectronique:

circuit principal
11.6 lectronique:
capteurs d'obstacles

176
182

11.7 lectronique:

capteurs de palets

11.8 Algorithmes de gestion


11.9 Liste des composants

12

183
184
190

Ra lis.1tion nO2 :
robot Quadripode

191

Remerciements et liens intemet

215

~ 71l

la premire ralisation pratique portera sur un petit robot mobile,


qui a pour but de librer une aire de jeu des palets placs au sol.
Voici ses ca ractristiques principales :
chssis: plastique rigide, dessin et usin sur mesure;
alimentation : pack de quatre batteries rechargeables 1,2 VI
1 850 mA / H, soit 4,8 V/ 1 850 mA / H ;
microconlTleur : AT90S8515, 8 Ko flash, 512 octets de RAM,
512 octets d'EEPROM, cadenc 8 MHz ;
motorisation: servomoteurs modifis ;
capteurs: dtecteurs infrarouges 1S471F et opto-coupleurs
HOAI405 ;
d ivers: des Led de contrle, bouton-poussoir (marche/arrt),
interrupteur Oll/Off, connecteur d'extension par UART ;
programmation : le programme a t crit en C. Un compilateur
C pour Almel ainsi qu'un logiciel de programmation ISPseront
ncessaires (Linux, Windows ou autre).

11.1 GNRALITS
Ce robot (fig ure 11.1 ) se dplace grce deux servomoteurs
modi fis (rota tion libre sur 360). Sa tche princi pa le consiste
librer une aire de jeu des palets qui encombrent le sol. Pour la,
il se dplace de manire pseudo-alatoire, tout en vitant les
obstacles. Ds qu'il dtecte un palet dans ses guides, le robot le
pousse \'ers un bord de l'aire de jeu. Au bout de quelques minutes,
l'aire de jeu sera .. nettoye ".

11.2 TUDE DU DPLACEMENT


Le robot sc dplace de manire pseudo-alatoire (algorithme
numrique et interaction asynchrone avec l'environnement).
Si le robot dtecte un obstacle (bord de l'aire de jeu ou obstacle
plac sur l'aire), il change de direction pour l'viter (figure 11.2).
Si le robot rcupre un palet dans un de ses deux guides, il continue sa tra}ectoire en ligne droite, jusqu' l'amener contre un bord
de l'aire de;eu (figure 11.3).
Au bout de quelq ues minutes, l'aire de jeu sera compltement
dgage (figure 11.4).

[17i!

c:> . " ""01:>

~ 1''''''~~ '' ;' n~ n ~u,u,; ...... , . " un .. ",~.

Connecteur
d'alimentation

Connecteurs
capteurs ---,
Marche/Arrt

~ONIOFF

J 1 /_

~&.i:d-+-~o-fJ- -Jhl

L,,"

'1

.~

....
'"
T

Capte<.Jf de
dtection d'obstacle

Opto-coupleurs de
dtectlOll de palets

dtection d'obstacle

Opto-eotJpleurs de
dtectIOn de palets

Cireurt Imp!1m

-----ru

S8fVomotel.lr'S

\ 11 ~

Captaur de

Vue de face

Support plastIQue

Connecteurs

Q ~

Capteur de
dtediofl

d'obsl3de

Vue de dessus
ErltretOI5e

Opto.lUpIe\.Ir de
1 dtecteur

Support plastique /

Servomoteurs !

Vue a ni re

Figure Il.1. Robot Cubic,

.....-

Support pl astique

Vue de cOI'

de palet

~
~

/~--

.',

-'-. -".

,,
,,
,,
,,
,,
,,
,,
,,
,,
,,
,,
,

o,/ .'

-",

,
,,,
,
,,,
,
,,,

C~I.~<It
~IIM!OM'e

.'

,,
,,
,

Figure Il.2.
lnplilctmenl

pseudo-alaloire.

Figure 11.3.

11

11.3 PALETS

Les palets auront un diamtre de 2 cm el une paisseur de 5 mm


environ. On peul les faire usiner dans du plastique, ou se servir
de bouchons de lige peints.

11.4 MCAN IQUE ET MOTORISATION


La partie mcanique du robot, q ui est toujours gnante raliser

;
,

1,,
!,

pour les lectroniciens, est rduite au minimum.


Elle est constitue de deux plaques en plastique horizonta les,
fais.lnt office de chssis (batteries el carle lectronique), et de deux
plaques en plastique verticales sur lesquelles sont fixs les servo-

moteurs.

"

Les servomoteurs seront fixs avec des vis el des crous M3


(figure 11.5).

Les plaques verticales sont colles sur 1<1 plaque horizontale basse
avec de la colle adapte (figure 11.6, page 171). Les entretoises sont

,,

l,

en inox, les extrmi ts lant de type femelle, afin de ne laisser


apparatre qu'une tte de vis pour des raisons esthtiques.

Figure 11.4.

les servomoteurs sont modifis mcaniquement et lectroniquement afin de les librer sur 36(}0, ct sans bute (voir chapitre 3,
section 3.4).

-------,T-

L-_ _@
-'
~

Figure 115.
Montage

Fixil~on par quatre

VisM3

d' u n servomoteur.

11.5 LECTRONI QUE , CIRCUIT PRINCIPA L


L'lectronique du robot Cubic est constitue par deux circuits
imprims simple face.

Le premier comporte les capteurs de dtection d'obstacle. Les optocoupleurs de dtection de palets seront monts en l'air , mais
fixs sur ce circuit imprim. Le second circuit imprim comporte
le microcontrleur 8 bits Atmel, ainsi que six Led et un boutonpoussoir; les servomoteurs viennent se brancher directement sur
la carte, qui leur fournit leur alimentation ainsi que le signal de
commande.

La fig ure 11 .7 prsente le schma lectronique du circuit principal,


la fig ure 11.8 son circuit imprim et la fig ure 11.9 l'implantation
des composants.
L'lectronique du robot Cubic est base sur un microcontrleur
Atmel AT90S851S. Voici ses caractristiques principales:
noyau 8 bits RISC;
frquence d'horloge maximum 8 MHz (1 cycle = 125 ns);
8 Ko de flash programmable ISP ;
512octetsdeSRAM;
512 octets d'EEPROM ;
1 timer 8 bits ;
1 timer 16 bits (compare, caplllre, PWM);

11

l',

.1

'-0 _ _ _ _ _ _ _ _ _ _0- -'=:1_


, ---.J
9

i
l,

!
i

,,,
,"
!
!

"

33
23

"
1.

.1

Figure 11.6.
Schma mcanique :
plaques horizonta les
et verticales.

8;
no
ri
~

(Hil

....

.~

~I

:;; ";
E .-0

1
.,

,1 ".
."V'. ..

~".
-' ~

d li

'.
-"- """2".g"r.I-,
,

III'

.x~

-_.

,1 .... Dt"',1'
Q ..

JV\"

0,,11

,1 .... Dt

Q>. ".".

1
A/'o .... Dt
JO,!'

0'"

-_.

c ..

d-1I1

~.

_8
0_

>
>

-8
o

,
>

~
>

."

fT

i 1-

-1
f

,
-~ !

>

'Il'

~.

III'

J"V'",

O Ai

Il

, 1 0:;'
-'-' DtN

-_.

III.

-_.

Il

11
0

Uo

000

...

8w

0
1)

0
0

0
0
0
0
0
0

Il

0-...0

Figure 11.8.

Circuit imprim
du circuit principal.

o
i
l,
,

Figure 11.9.
Implantation
des composants pour
le circuit principal.

[li9)

walchdog ;
UART;
SPI;

' 321/0;
compa rateur analogique;
2 entrc$ d 'interruptions extemes;
CMOS fa ible consommation.

le quartz QI fail fonctionner 8 MHz le micnxontrleur, ce qui


est sa vitesse maximale. Un cycle d 'excu tion se fait en 125 IlS, ce
qui permet l'emploi de routines trs rapides. Les condensateurs
C3 et C4 garan tissent la stabilit de l'oscillateur.

Le connecteur jP2 (089 mle droit) sert la programmation [SP


du microcontrleur. Elle peut se faire avec Wl progranunateur
un programmateur commercial ou un
Atmel de
programmateur K fait maison Jo. Bien entendu, si on ne se sert pa!>
de la fonctionnalit [SP, il est possible de programmer le microcontrleur sur un programmateur, puis de le placer ensuite sur
son support.

typesn<2oo/soo,

Le connecteur JP5 est un connecteur d'extension utilisant l'UART,


si on dsire ajouter une carte lectronique su pplmentaire (capteurs, actionneurs, etc.). On trouvera les deux lignes TO et RD,
ainsi qu'une masse commune et l'alimentation +5 V.

Le bouton-poussoir pm est connect sur le port PA7 (dfini en


entre), pour une mise en marche et un arrt manueL Cette entre
est tire Vcc en interne, au travers d 'une rsistance de 100
500 kll.
Six Led sont connects aux ports l'BO, PB1 , PB2, POS, PD6et PD7.
Ce sont des modlcs 2 mA, on peut donc les piloter directement
avec le microcontrleur. Les rsistances RI R6 servent [imiter
le courant dans les Led.

Les Led bleues indiquent la dtection d'un obstacle, les Led rouges
la dtection d'un palet et lcs Led vertes l'activation des servomoteurs.

Les entres PAO el l'Al reoivent les informations de dtection


de palet. Les entres PA2 et 1'A3 reoivent les informations de
dtection d'obstacle.
La figure 11.10 prsente le brochage des connecteurs.

Il
,"'~'-

~ GND

:"
0 Vcc
:' ____ 0 Signal

,, ,,

"/

.J

0 ............

""""" .......

_---.!
_____--11

, ,
, '._---'.
...
,

'------

~
GND
0 Signal
0 Vcc

Figure 11.10.
Brochilse
des connecteurs.

Les deux servomoteurs sont pilots au travers de PCO et PCl ,


dfinis en sortie. Le programme se charge de gnrer les signaux
ML! qui correspondent aux deux valeurs .. avant .. et .. arrire ..

pour chaque servomoteur. Les connecteurs JP3 et JP4 fournissent


aux servomoteurs J'alimentation + 5 V et le signal de commande.
L'alimentation provient d' un pack de quatre batteries Ni/Mh
1,2 V/ 1850 mA/H, soit 4,8 V / 1 850 mA/H. Le pack de batteries
est reli un bornier vis sur le circu it imprim (figure 11.11 ).

Un interrupteur SPOT fait office de on/of! principal.

,---
+t=:;--Pack 4 .1 ,2V

1 850 mAH

+
Vers bornler

!
1,

Figure 11.11.
Connexion du pilck
de qUiltre bilUeries
Ni/Mh..

La rgulation de J'alimentation est confie un rgulateur Iaw-drop


(faible tension de dchet .. 0,6 V) qui fournit +5 V ['ensemble
de l'lectronique si les batteries charges fournissent plus de
+4,8 V. Sinon, la tension de sortie du rgula teu r suit linairement
la tension d'entre .

Les servomoteurs sont quant eux aliments directement par le


pack de batteries sous + 4,8 V.

11.6 LECTRONIQUE, CAPTEURS D'O BSTACLES


Le capteur U1 correspond la dtection droite .. et le capteur U2
la dtection .. ga uche . Ce sont des 1S471F, des rcepteurs
infrarouges modulateur intgr. Us uffit de cbler une Led infrarouge de type LD274 sur la sortie de commande .. LED ... Le docuit
pilote la Led, el analyse la prsence (ou non) d'une rception
infrarouge. Le signal lumineux reu est amplifi, filtr et dmodul.
Si un obstacle rflchit le signal, la sortie du IS471F passe 0 .
La sortie du capteur est collecteur ouvert, on a donc programm
des rsistances de lirage Vcc internes au microcontrlcur. Les
condensateurs C1 el C2 dcouplent les alimentations.

La distance de dtection maximale est de 15 cm environ, mais


dpend du matriau de l'obstacle, ainsi que de sa cou leur.

La figure 11.12 prsente le schma lectronique du circuit des capteurs d'obstacles, la figure 11 .n le circuit imprim et la figure 1l.14
l'implantation des composants.

,("SZ

'",,
,

LDl

lO2 H

"

~~

"'", ,
<0,
'''''
Go'
IS 411F

es.c)

~-~

-,~

""

'",

,,

. . :sZ lD214
~D2
~

"

~~

,
"'",
<0,
o.,

~~

Go'
IS.rlF

Droit.

-L

I:igure 11.12.
Schma lectronique
des capteurs
d'obstacles.

eS.c3

Glue'"

11

Figure 11.13. ( gauche)


Circuit imprim d es
capteurs d'obstacles.
Figure 11.14. ( droite)
Implantation d es
composants pour les
capteurs d'obstacles.

o
11.7 LECTRONIQ UE : CAPTEURS DE PALETS

r.,., dtection des palets se fait par des Oplo-coupleurs de type


HOA 1405 (figu rI' 11.15). Les rsistances associes sonl soudes
en ['a ir ') el connectes directement des fils vers les cormecteurs
de la platine principale.

Les opto-coupleurs sont monts avec des querres mtalliques qui


permettent facilement leur rglage avant/arrire et haut/bas.

,,

OND

v~

OUT

l,

,,

,,

,,

1,

,., n

10 krl

p-

E C

1
l

Figure 11.15.
Cblage

des opto-coupleurs.

La figure 11.16 prsente le schma lectronique du circuit des


capteurs de palets.

"

""''''

"""

A
K

I~~

v"

Pelet 0

GNO

Droit.

"'

HOA 1405 2

"'''' "
A

Figure 11.16.
Schma lectronique
des cilpteurs de palets.

1(

~~

""'.,
C

V"
Palet G

Gauche

GNO

0'

HOA '.OS 2

11.8 ALGORITHMES DE GESTION


Nous allons maintenant dtailler les diffrents modules qui corn
posent le fonctionnement logiciel du robot. On fait appel une
interruption temps rel pour gnrer les signaux MU des servomoteurs, et un progranune principal se charge d'appeler les
routines de gestion des capteurs et du comportement.
Le programme a t crit en C sous Windows et compil avec
WINAVR (compi lateur open $Ource gratuit - GNV Gee compiler).
Il est videmment possible de le compi ler avec un autre logidel
et/ou su r un au tre systme d'exploitation.
Les deux signaux de commande des servomoteurs sont gnrs

l'un la suite de l'autre, toutes les 20 ms (figure 11.17). l 'interruption temps rel est donc active ce rythme l'aide du Imer1.
Comme les servomoteurs ont t modifis pour tourner !ibment sur J6OO, seules deux valeurs de commande sont utilises :
l ms pour la rotation dans un sens, et 2 ms pour la rotation dans
l'autre sens.
Pour gnrer ces deux dures, on utilise le ImerO.

Il

InterruptIOn temps rel

'-'------t::=:::;'------"---'----"-------Dt,
,

SMO

id
,' DT=20ms ,,

,,
,,,

,,
,,

,,
S MG

,
,,

<>-

dl proportIOnnel la direction

,,
,,
,,
,,
,,
,

,,~--

~-_/ ,,~--

Marhe avant

~-_/

Virage

Figure 11.17.

,
l,
,
l

1
l

,t,

On constate que les signaux SMG et SMD ne sont pas synchrones


par rapport il l'interruption temps reL En effet, le signal SMG

n'est cr que lorsque le signa l SMD devient inactif. Cela n'a


aucune consquence su r le fonctionnement des servomoteurs,
seule la dure de l'impulsion de commande est importante.

Algorithme global
Mise sou, tension

~
Ini~alrsatlon

Dtection d'objet
(mise il j our FLAG)

Dtaction de palet
(mise jour FLAG)

Compot1.emef1t
(mise jour de la direction)

Gnration de Itajecloue
pseudo-alatoire

Figure Il.lS.

Algorithme d'initialisation
Initlalisallon

Confl{luration des poltS

TlMERO CK/1024

TlMER1 CKJ1024

Tl MER1

init il 20 ms

1 Validation interruption TI MERI

Figure 11.19.

Fin

Il
Interruption temps rel

nt.4ER1ISR

R4Mruli~TIMeRI

M,se jour du nag


d'''at du bouton-pou.lOir

----

'---

~RCHE ?.......---

0
Commande du servomoteor
drOIt en Ioncbon de

la direction

Commande du servomoteur
gauche en fonction de
la directIOn

Incr6menlatio!'1 du compteur
de changement de directon
~Ioi ...

F.

1,

t
j

Le timerl est paramtr pour provCXJuer une interruption interne


toutes les 20 ms. Lorsque cette condition apparat, le systme de
contrle du timerl bloque une prochaine interruption de la mme
nature par l'activation d'un !lag. Le fai l de traiter cette interruption libre le flag, elle timer l conti nue voluer. Cependant,
il s'incrmente partir de la valeur en rours, ce qui fausse la dure.
Il faut donc rinitialiser le contenu du timer! avec la dure
souhaite.

Figure 11.20,

Dtection d'obstacles
ObjeCCdeteetIOf1()

Capteur droit

ac1I~.

0
obs_status_d" 1
Led bleue dro;te ON

<

Caple\Jr gauche

obs_ status_d= 0
Led bleue drOlie OFF

iICIj~.

0
obs_swws-.Q = 1
Led bleue gauche ON

obs_statuS-lj = 0
Led bleue gaucM OFF

F"

Figure 11.21.

Dtection de palets
D,se_deteclion()

Capteur droit
acb~.

0
pajecstatus_d = 1
Led rouge drOite ON

<

Capteur gauche

Led 'ouge droite OFF

actl~ ?

0
palet_status_o = 1
Led rouge gauct1e ON

Figure 11.22.

F"

Led rouge gauche OFF

Il
Comportement

Robot_BiO

P ...

.-"

~~1

0
Recul 0,4.

V...geO.4 1

Avance

Obslade
droite 1

0
Virage ;auc:he 0 4

~bstade
gauche?

0
Virage drole 0 4 Il

Chili tgemelli de dnct!on


pseJdo .IMtOtrfl

,,,

Figure 1I .D.

11.9 LISTE DES COMPOSANTS

Circuit principal

Rfrence

Dsignation

JP1

Bornier vis 2 points. 2,54 mm

JP2

OB9 mle coude

JP3, JP4, JP6 JP9

Sarralle scable 3 points mle

JPS

Barrette scable 6 points mle

SW1

Interrupteur SPOT

U1

l4931C50

U2

AT90S8515 + support DIL40

a1

Quartz 8 MHz

C1

100 IJF/25 V

C2

100 nF

C3,C4

22 pF

PB1

Bouton-poussoir KSA

At R6

330

LOt , LD2

Led 2 mA verte

LD3,LD4

Led 2 mA rouge

LOS, LOO

Led 2 mA bleue

Capteurs d'obstacles

Capteurs de palets
Rfrence

Dsignatlon

Dsignation

Rfrence

Ut, U2

1S471F

Rt, R3

180

LD 1,lD2

LD274

R2,R4

10'"

Ct , C2

330 oF

01,02

HQA140S

JP1, JP2

Barrette scable 3 points mle

c ..... n ..

REALISATION N 2:
ROBOT
QUADRIPODE

12.1 Gnralits
12.2 lude de la dmarche
12.3 Mcanique el motorisation

192
195
198

12.5 Algorithmes de gestion

202
208

12.6 Liste des composants

214

Remerciements et liens internet

21 5

12.4 lectronique

La deuxime ralisation pratique portera sur un robot marcheur


de type Quadripode.
Voici ses caractristiques principales :
chssis: plastique rigide, dessin et usin sur mesure;
alimentation: pack d'accumulateur Ni/Cd 6 V /1450 mA/H;
microcontrleur: AT90S8515, 8 Ko flash, 512 octets de RAM,
512 octets d'EEPROM, cadenc 8 MHz;
motorisation: servomoteurs standards;
capteurs: dtecteurs infrarouges 15471 F ;
divers: des Led de contrle, boutons~poussoirs (rrset, stand-by,
marche), interrupteur marche/arrt (et recharge), cormecteur
d'extension par UART ;
programmation: le programme a t crit en C. Un compilateur
C poUf Atme\, ainsi qu'un logiciel de programmation ISP sera
ncessaire (Linux, Windows ou autre).

12.1 GNRALITS
Ce robot (fi gures 12.1 et 12.1bis) a la particularit de se dplacer
grce quatre pattes, chacune pouvant voluer indpendamment
de bas en haut et d'avant en arrire. En coordonnant prcisment
les pattes, le robot peut avancer, reculer et tourner.
Toutefois, il ne faut pas s'attendre il le voir voluer avec grce et
volupt, courir ou sauter un obstacle: il reste un sujet d'exprimentation el de curiosit.

Le robot est entirement gr par un microcontrleur AT90S8515.


Il reoit les ordres" stalld-by " (position de dpart) et " marche "
au travers de deux boutons-poussoirs. Le troisime ordre tant le
" rest!", il sera rarement utilis.
Une fois l'ordre de marche donn, le robot avancera suivant des
squences de mouvement dtermines.
Encas de rencontre avec un obstacle sur la droite ou sur la gauche,
le robot reculera, puis pivotera vers la direction oppose pour
viter l'obstacle.

La fi gure 12.2 propose la numrotation des servomoteurs.

11921

12
EntretOiIM

Circuit

imPfi~

SoNo

A,~VA"',. /

Servo HeutlBa.
Mouvement Haut/Ba.

Vue de 'acl

Plaque ern.re

CWc!.iil lmprimj

o
o

Vue

Ir",,..

Figure 12.1.
Robot Quadripode
(vue de face et vue anire).

1
J,

11931

En\fetor&e

Circuit Imprim

Support plalltiql,lll

MOl/IIement AvantlAmere

Figure 12. Ibis.


Robot Quadripode
(vue de ct et vue de dessus).

12
Arrire
SM'

AT90S8515
Connecteur. pour

Figure 12.2.
Numrotation
des servomoteurs.

Avant

12.2 TUDE DE LA DMARCHE


La dmarche du robot est dtermine par un positionnement

prcis \'ertical et ho rizontal de chaque patte. Pour l'tudier, nous


allons nous baser su r les schmas de la figure 12.3.

MMChe

ev.nr

IO-_ L--''-...J - --.-

PMle~"

Pette eu miheu

1
Patte

t
J,

g9.
o

Le mouvement coordonn des quatre pattes du robot est dcompos en huit sq uences, numrotes de ! 8. Un changement de
squence est effectu au bout de 0,3 s. Cette dure a t dtermine
exprimentalement, elle permet tous les servomoteurs d'effl">
tuer leurs changements de position correctement et au robot de
garder un quilibre relatif. Lorsque les huit squences ont t
excutes, le cycle reprend partir de la squence 1.

en_
Figure 12.3.

Conventions
pour la dmarche
du robot.

La figure 12.4 prsente l'enchanement des squens pour une


marche avant, la figure 12.5 poUI une marche arrire, la figure 12.6
pour un virage droite et la figure 12.7 pour un virage il! gauche.

1
1

Figure 12.4.
M~rche

avant.
1

Figure 12.5.
Marche arrire.

12
1

.'---,- "

Figure 12.6.
Vi rage droite .

A""""-.--.

12.3 MCAN IQUE ET MOTO RI SATIO N


La mcanique du robot est simplifie au maximum, afin de pou-

voir usiner les pices facilement, ct de nc pas passer trop de temps


la construction.
Le chssis et les lments des pattes sont raliss avec du plastique,
du PVe, etc. On peut les usiner facilement (avec un peu patience!)
ou les faire usiner par une socit spcialise: le rsultat est pro-

fessionnel, pour un cot modeste.


Les servomoteurs sont fixs sur le chssis avec les vis fournies
(2 nun), et ils sonl maintenus entre eux deux par deux (pour chaque
patte) avec des colliers de serrage. C'est une solution certes peu
lgante, mais qui a l'avantage de simplifier la mcanique, et de
limiter le cot de la ralisation.

La carle lectronique (format Europe 160 mm x 100 mm) est fixe


sur le chssis avec des entretoises M3 (hauteur 25 mm, en fonction
des dimensions de la batterie).
Certains trous ne sont pas utUiss, mais on pourra toujours s'en
servir pour ajouter un capteur, un actionneur, etc.
Toutes les fixations se font avec des boulons M3, des rondelles
M3, et des crous NYLSTOP M3.
Les fi gures 12.8 12.12 prsentent les schmas mcaniques des
diffrents lments du robot.

12

/
+

"

/
+

"

~o
,
;

+
0

"10

"-

./
1 l

10

"

10

, , 10

t"'
,

il

Figure 12.8.
Dcoupe
du chssis princi pal.

--/ 0,
>

05mm

o ",.t

/
0

0 0
0

02mm

00 0
0

0 3,5 mm

"

0
N

0
N

00 0
"- 0 /

\. o -'
10

0
0

00 0

1 1

Figure 12.9.
l'erage du chssis
principal.

[,200)

2,5

25

12

Figure 12.10.
t lmenls d'une patte.

03,5mm

02mm

:1

_ 10 .

_ 10 _

. 10 _

Patte (1)

Patte (2)

1~
j 0 0 ';.

10 _

_17_

Patte (3)

Plaque (-4)

06,5 mm
_20_

11 1

, j .
!,

j
j
8

-4

(\

N
N

1,,

20_

,/
r------------------------------,~

,!,

N
N

.'5~~

""

03.Smm

f~
j

Figure 12.11.
Plaque ma rche/.urt
- recharge.

,
,,,
)

1~(11]

Patte (2)

Plaque (4)

Chssis

')~

')
0

li

-----

000

w
,

Servomoteur
Hautleas

Figure 12.12.
Montage
d'une palle.

Patte (3)

, Patte (1)

ooo

~ SeNomoteur
Avant/Arrire

SeNomOleur
Haut/Bas

Patte (1)

12.4 LECTRONIQU E
L'lectronique du robot Quadripode se limite un seul circuit
imprim simple face. Il comporte tous les lments ncessaires au
fonctionnement du robot: un nucrocontrleur 8 bits Atmel, trois
capteurs de dtection d'obstacle, quatre Led et trois boutonspoussoirs. Les servomoteurs viennent se brancher directement
sur la carte, qui leur fournit leur alimentation ainsi que le signal
de commande.
Un circuit de rgulation simple permet de fourn ir + 5 Vdc aux
composants.

La fi gu re 12.13 prsente le schma lectronique, la fi gure 12.14 le


circuit imprim et la figure 12.15 l'implantation des composants
pour le robot Quadripode.

Les caractristiques principales de l'AT90S8515 sont:


noyau 8 bits RISC;
frquence d'horloge maximum 8 MHz (1 cycle = 125 ns);
8 Ko de flash programmable ISP;
512 octets de SRAM ;
512 octets d'EEPROM ;
1 timer 8 bits;

1 limer 16 bits (compare, cap/lire, PWM);

12
-,
0_

,t--IH

C:

"

C:

~:

.--.
-'i

-.

0"

"

-s
0_

0_

0"
o

""

.
., ,
, !
"

,
0

~
,

t:l

,.

;1 1

!!

-.

o .

,.

-,

<
0

Figure 12.13.
Schma ltronique
du robot Quadripode.

~(13\)
,

IlOOOO

"<
N

-
~

o
Figure 12.14.

Circuit imprim
du robot Quadripode.

12

0
ft

...

<
...

...

...

.hhm~i

Hem-e

'"

"l90S~1I1

o
Figure 12.15.
Implantation

des composants pour


le robot Quadripode.

120S)

watchdog ;
UART;

SPI;
321/0;
comparateur analogique;
2 entres d'interruptions externes;
CMOS faible consommation.
Le quartz QI fait fonctionner 8 MHz le microcontrleur, ce qui
est S.l vitesse maximale. Un cycle d'excution se fait en 125 ns,ce
qui permet l'emploi de routines trs rapides. Les condensateurs
C7 et CS garantissent la stabilit de l'oscillateur.
Le connecteur lPl (OB9 mle coude) sert la programmation
ISP du microconlrleuT. Elle peut se faire avec un programmateur
Atmel de type SfK200/SOO, un programmateur commercial ou
un programmateur fait maison . Bien entendu, si on nc se sert
pas de la fonctionnalit 151', il est possible de programmer le
mcrocontrleur sur un programmateur, puis de le placer ensuite
sur son support.
Le colUlecteur JP2 est un connecteur d 'extension utilis.lntl'UART,
si on dsire ajouter une carte lectronique supplmentaire (capteurs, actionneurs, etc.). On trouvera les deux lignes TD et RD,
ainsi qu'une masse commune et l'alimentation +5 V.
Le bouton-poussoir PB3 est connect J'entre RESET, pour une
remise fi zro manuelle. Cette entre est tire Vcc en interne
au travers d'une rsistance de 100 fi 500 ka.
Le bouton-poussoir l'B2 est colmect l'entre PD6, il s'agit de
la commande stand-by. Le robot se met .. debout , et attend l'ordre
de mise en marche. Ce bouton fait aussi office de mise l'arrt
(il reste nanmoins dans le mode ct dans la position stmrd-by).
Une rsistance interne de tirage Vcc est programme, pour viter
d'en souder une externe.
Le bouton-poussoir l'BI est connect fi l'entre 1'07, il s'agit de la
commande marche . Le robot avancer" et contournera les ventuels obstacles rencontrs. Ici aussi, une rsistance interne de tirage
Vcc est programme, pour viter d 'cn souder une externe.
Quatre Led sont connectes respectivement aux ports l'CO PC3.
Ce sont des modles 2 mA, on peut donc les piloter directement
avec le microcontrlcur. Les rsistances R4 R7 servent fi limiter
le courant dans les Led.

12
La Led rouge indique un tat de reset

lorsqu'elle est allume,


cela signifie que le programme a dmarr ct a pass les routines
d'initialisation (1 / 0 des ports, variables, etc.). Ensuite, il attend
le premier ordre par le bouton-poussoir PB2 : stand-by.
:

La Led jaune indique l'tat de stand-by : le programme a activ les


servomoteurs pour faire prendre au robot sa position .. debout
d'attente de mise en marche.

Le1 premire Led verte s'illumine lorsque le robot est en marche.


Le1 deuxime Led verte indiquera une dtection d'obstacle par
un des trois capteurs IR placs l'avant.

Les entres PCS, PC6 et PC7 reoivent les informations de dtection


d'obstacle. Le capteur U3 correspond la dtection droite ", le
capteur U4 la dtection" milieu ", ct le capteur US la dtection
" gauche . Ce sont des 15471E des rcepteurs infrarouges modulateur intgr. Il suffit de cbler une Led infrarouge de type LD274
sur la sortie de commande .. LED ... Le circuit pilote la Led et
analyse la prsence (ou non) d'une rception infrarouge. Le signal
lumineux reu est amplifi, filtr et dmod ul. Si un obst,lcle
rflchit le signal, la sortie du 15471 F passe ,,0 ". La sortie du
capteur est collecteur ouvert, on a donc programm des rsistances de tirage Vcc internes au microcontrleur.

La distance de dtection maximale est de 15 cm environ, mais


dpend du matriau de l'obstacle, ainsi que de sa couleur.

Les huit servomoteurs sont pilots au travers du port A, dfini en


sortie. Le programme se charge de gnrer les signaux MU qui
correspondent aux diffrentes squences et positions des moteurs.
C haque cOlmecteur
11'12) fournit au servomoteur l'alimentation +5 V et le signal de commande.

urs

L'alimentation provient d'un pack de cinq batteries Ni/ Cd 1,2 V


/1 450 mA / H, soit 6 V/1450 mA / H. Le pack de batteries est
reli un interrupteur DPDT, fix sur la plaque arrire du chssis
(figure 12.16). Cct interrupteur fai t office de marche/arrt principat, mais permet aussi la recharge du pack grce deux fiches
bananes femelles, ce qui vite de devoir enlever le pack pour le
charger.

La rgulation de l'alimentation est confie un rgulateur law drop


(faible tension de dchet '" 0,6 V), qui fournit + S V l'ensemble
de l'lectronique.

Les servomoteurs sont quant eux aliments directement par le


pack de batteries sous + 6 V. Normalement, ils fonctionnen t sous
+5 V, mais ils peuvent supporter sans problme cette surtension.
De plus, cela augmente sensiblement le couple du moteur.

;;--

:
l
l

-f-

,,,
,,
,,
,,
,,
,,
,,
,
,,

---

Figure 12.16.

12.5 ALGOR ITHMES DE GESTION


Nous allons maintenant dtailler les diffrents modules qui composent le fo nctionnement logiciel du robot. On fa it appel une
interru ption temps rel pour gnrer les signaux MU des servomoteurs, et un programme principal sc charge de grer les
boutons-poussoirs, les capteurs, et les squences des sen'omoteurs.
Pour des raisons pratiques de gestion de tableaux (les diffrentes
positions des servomoteurs), le programme a t crit en C sous
GNV / Linux et compil avec AVR-GCC. Il est videmment possible
de le compiler avec un autre logiciel et/ ou sur un autre systme
d 'exploitation.

Pi lotage des huit servomoteurs


les signaux de commande des sen"omoteurs sont gnrs en parallle, mais dcals dans le temps les uns par rapport aux autres
(figure 12.17). Ainsi, chaque servomoteur est rel!ement pilot
toutes les 20 ms. L'interruption temps rel est donc active ce
rythme.

La d ure de chaque signal de pilotage est dtermine par le mode


dans Jequel est le robot (stalld-by, marche, recul, virage). Pour cela,
le progr<1mme utilise un pointeur dans le tableau appropri. Ces
d ures sont gnres J'aide d u timeri) . Son horloge tourne
8 MHz/ ! 024, soit !28 ).Is. Les tableaux de positionnement des
servomoteurs contiennent les valeurs correspondant aux dlais
souhaits. La v<11eu r lue dans le tableau sera" multiplie" par
1281Js, pour crer un dlai variable de 128lJs (minimwn : TCNTO

f2081

12
Int..,.,."ption temps

r~ 1

ILLI --~~~~L-~-J_ _~_ _' t


,, DT-2Clml ''
''
,,,
''
,,
'

SM'

1n ~

n,,,

,,
,,

5M2

du IJervc>moleur

,,
,

1 0 :00

5M3

000

n o

n o

000

00 .

non

O.

D, on

0,

1 0
5"'

1 o

SM'

1 o

SMG

%
"

!
-s.,

j
",

0
Z

"0

1
SM'

1
SM'

Figure 12.17.

:
1

255) 32,64 ms (maximum: TCNTO ::: 1). Comme le signal de

commande d'un servomoteur est compris entre 1 ms et 2 ms, la

gnration du dlai est ralise avec une prcision de 128 ).Is.

Algorithme global

lnillallsatlon

GesbOrl du po'nteur

de Hquence

MOOE STAt-ID-BY

MODE MARCHE

MOOE RECUL
,,""

MODE VIRAGE

Test de changelll4ltlt

"""~

"" Ioncbon d .. MODE


Gesonde$~

dant les tablet


de squences
Ch~deMODE

.pm RECUL el
aprMVIRAGE

Figure 12.18.

12
Algori thme d'initialisation
Inlllaiisatlon

PORTA

PORTB en

en

lOftie

entr~

R6alstanees de pull-up

PORe T en enlr6elsome
Rn..lal1Q8!l de pull-op

PORTO en entre
Rkl$lan de P\lII.up

Tl MERO CK/ l 024

TlMER! CK/l024

TlMeRI init. 20 ms

Validat!on inlem.tplton TlMER!

,,

t,,

ReMI

~ ag

TI MER !

,,,

Figure 12.19.

Algorithme de temporis ation

D""

Rnetnag

Valeur ct. dla,-> TeNTO

< - ;agOVF ?

Figure 12.20.

,.

Comme le timerO est toujours activ, il s'incrmente sans cesse,


au rythme de l'horloge interne (CKII02-1). Par consquent, il
dborde rgulirement, ce qui active son tlag OVF. Si on ne
rinitialise pas le tlag avant d 'utiJiser le timer pour une temporisation, la routine va immdiatement .. voir .. fiag actif et fausser
la dure souhaite. Il convient donc de rinitialiser le fIag OVF
avant d'utiliser le timer.

;/1

12
Interruption temps rel

TIMER11SR

R4wlrtlatiulion lIMER1

<

ARRI!T 7

---

STANDBY 7

Tempo SM1 SM'


Ta~e STAND-BY

CPT_SEO"
Tempo SM1
T..,MARCHE

~
MARCHE 7

.....

VIRAGE D 7

CPT_SEO_
CPT_V1R ....
Tempo SM1
Table VlRAGE_G

.....

~RAGEG ?

CPT_SEOCPT_VIR_
Tempo SM1
5MB
hble VlRAGE_D

RECUL 7

CPT_SEO_
CPT_RECUl_
Tempo SM!
TfbIe RECUL

.....

F.

Figure 12.21.

13

12.6 LISTE DES COMPOSANTS

Dsignation

Rfrence

JPl

DB9 mle coude

JP2

Barrette scable 4 points mle

JP'

Bomter vis 2 points 5,OB mm

JP5 JP12

Sarrene scable 3 points mle

SW I

Interrupteur SPOT

PBt PB3

Boulon-poussoir K5A

Cl

470 IJFf2S V

C2, C3, C6

100 IJF/tG V

C4, CS, Cg

100 nF

C7,ce

22 pF

QI

Quartz 8 MHz

Ul

l4931CSO

U2

AT90S85 15 + support DIL40

A4 A7

330

LOI

Led 2 mA rouge

L02

Led 2 mA jaune

L03, L04

Led 2 mA verte

LOS lO7

lD274

US US

1S471F

Les composmlts utiliss sont courants, on pourra les trouver


auprs des revendeurs pour particuliers, soil dans les boutiques,
soit par correspondance.
Les rsistances peuvent avoir une prcision de 5 % ou 1 %, le
bouton-poussoir KSA peu l tre remplac par un modle semblable (ventuellement avec une modification d u l'CB), idem pour

les LD274.

REMERCIEMENTS
ET LIENS INTERNET

Je tiens remercier :

Florence, pour avoir support mes tongues absences quand


j'tais cach dans mon bu reau;

Jean-Louis Schmitt, pour la mise disposition de matriel de


dveloppement el de fabrication ULS Informatique - www.jlsinfo.com) ;

M. Cdric Lorant et M. Henri Du Faux pour la mise disposition


de matriel de dveloppement el de fab rication (EmTroniX
- www.emtronix.lu) ;

Lucien Woirgard pour la fabrication et l'usinage des pices en


plastique (b ijouterie et atelier de gravure);
Ju lien Schmitt pour les longues converS<1tions sur la robotique,

son exprience et ses conseils (Dclphi );


Bernard Fighicra el Pascal Declerc pou r leu r sympathie lors
des salons de l'lectronique et de la robotique, ainsi que poUf

leurs conseils;
Alexand re, bouquiniste, pour ses thories. ses piles de livres et
ses obstacles divers;
David et Thomas, patrons de l'Elixir Caf, pour les journes de
trava il passes dans leur tablissement ;
la communaut GNV/Linux pour les logiciels de dvelop~ment gra tuits et performants :
WINAVR GNV GCC compiler for Windows : http://winavr.
sourceforge.net,
AV R-CCC - GNV GCC compiler for GNV - Linux : hltp:/ /
microbot. free.fr / gnu-avr.html.
Les codes sources et codes compils pour les deux robots sont
disponibles su r le si te de l'au teur :

hllp:/ /microbot.free.fr